林 楠
(中国电子科技集团公司第四十七研究所,沈阳110032)
异常邮件流量检测方法研究
林 楠
(中国电子科技集团公司第四十七研究所,沈阳110032)
在网络管理过程中,大量的垃圾邮件给网络管理员带来沉重的工作负担。而处理垃圾邮件的重点在于对垃圾邮件的鉴别。提出一种新颖的异常邮件检测方法。以扩展的SMTP协议状态机模型为基础,选取若干参数为测度,并通过大量的实验进行验证分析。实验结果表明,此方法是有效的,管理人员可以用它来设计有效的规则和策略以减少异常邮件流量。
流量;检测;流量特征
简单邮件传输协议,也称SMTP协议,诞生于1982年,虽然已经有20多年的历史,但目前仍然得到广泛应用。尽管多数人认为邮件系统在正常、可靠的工作,但令人吃惊的是,目前几乎没有数据能支持上述论断,原因是缺乏理论方法和难以处理异常流量数据。
目前,现有方法都不能准确检测到邮件流量的异常。在这种情况下,急需一种机制来发现异常邮件流量。
本文认为针对邮件服务器的攻击,采用特殊工具批量发送邮件或邮件服务器配置错误往往会产生与标准协议相背离的邮件流量。通过选择合适的参数处理流量数据,发现流量数据中的异常数值来识别异常邮件流量。
在SMTP协议状态机中,庞大的邮件报文序列转化为一系列规范的状态、事件序列和状态变量的集合,状态转移信息和相关属性的统计值可以为流量参数选择提供依据。
2.1 基于SMTP协议的EFSA模型
(1)状态。如图1所示,SMTP协议状态机M包含如下6个状态:INIT,HELO,ENVELOPE,DATA,TEXT和DONE。其中:INIT为M的初始状态,代表邮件会话的开始;HELO,ENVELOPE,DATA和TEXT是M的中间状态,在事件驱动下可彼此转化。DONE为M的停止状态,代表邮件会话的结束。
(2)事件。根据操作的性质,M中的事件可以分为三类:
第一类由一簇_command(p,l)事件组成。这些事件对到来的IP报文进行内容解析,且每次处理一行数据。该簇事件有相同的参数:参数p表示当前IP报文的负载部分,负载长度用sizeof(p)表示。参数l表示p中待处理的数据行,事件名称中的command指明唤醒该事件所需的命令。当事件被唤醒后,M首先发生状态转移,l指向p中的下一行内容,M不断重复此过程直至p被处理完毕。
图1 基于SMTP协议的EFSA模型
第二类为无效事件(invalid)。无效事件捕获不遵守协议的异常流量行为。在扩展状态机M中,如果当前输入出现在一个和SMTP协议定义不一致的上下文环境(特定的输入和状态)中,则唤醒无效事件。
第三类为超时事件(timeout)。为防止网络报文丢失和网络攻击影响状态机状态转移,引入超时事件来增强M的异常处理能力。
(3)状态变量。在状态机工作过程中,状态变量记录邮件流量的各种统计属性值。关注的焦点是状态转移序列、事件发生序列以及与IP报文负载相关的各种属性。扩展状态机的状态变量情况如表1所示。
表1 状态变量
(4)定义。
·事件序列:si和sj为EFSA M的两个状态,M可进行si到sj的转移。从si到sj的转移表示为Se(si,sj)此过程中M接收的不同命令报文的数量为sizeof(Se(si,sj))。相似地,邮件m的事件序列表示为Se(m)且M接收的不同命令报文表示为sizeof(Se(m))。
·完整会话:状态机中存在一条从状态INIT到DONE的路径,且路径中无超时事件,则称状态机对应一个完整会话,否则称状态机对应一个不完整会话。
·完整邮件:M中存在一条从HELO到HELO的路径,且Se(HELO,HELO)中至少包含4个不同的事件,则称M包含一个完整邮件m,否则称M包含一个不完整邮件。
(5)SA工作流程
发送方提出SMTP请求,系统首先为其创建一个状态机实例,并将其加入系统的状态机实例表中。该表以散列槽的形式存储数据,并以会话的IP地址、端口四元组信息作为实例的索引,用于后续的查询、更新操作。首先,M处于INIT状态,随着会话中数据交互,一系列的get_command(p,l)事件被唤醒。例如,当前IP报文的负载部分为p,当前状态为si=“ENVELOPE”,当前输入为l=“DATA\r\n”,可唤醒事件ei=Get_Data(p,l),M状态转移为sj=“DATA”。状态变量CommandSize.data=sizeof(p)。
如果当前的输入出现在一个与SMTP协议定义不一致的上下文环境中,就会唤醒无效事件。例如:当前状态为si=“DATA”,当前输入为l=”RSET\r\n”,唤醒事件invalid,M保持状态sj=“DATA”不变。状态变量Invalid.state=“DATA”,Invalid.command=“RSET”。
2.2 参数选择
在SMTP状态机模型中,系统为每个邮件会话创建一个状态机。首先,在状态机中,把庞大的邮件报文序列转化为一系列状态、事件序列组合,这两者实际上是相关邮件流量行为的抽象表示。因此模型可将对原始网络数据的统计转化为对状态机行为的统计,这是一种有效的属性约简方法;其次,保存在状态变量中的状态转移信息和负载相关的各种属性统计值,可为流量参数选择提供依据。例如,超时事件引发的状态转移可能代表网络故障或者网络攻击发生。通常,状态变量的属性空间较大,这里重点关注那些能够表征邮件流量的网络协议特性。刻画异常行为的参数包括以下两部分:
(1)状态转移序列和事件序列出现频率。例如无效事件、超时事件的出现频率,完整会话与不完整会话的比率等。此类参数可用于了解协议的工作情况,发现滥用协议等异常情况。
(2)负载相关的各种属性统计值。例如,一封邮件中命令长度分布、命令报文数量分布、完整会话中完整邮件数量分布以及各邮件间关系等。此类参数可用于分析邮件流量变化的规律。
为此,本文选取同一会话多封邮件等有代表性的邮件流量参数,以其为测度不同网络环境的邮件流量数据进行处理,并对其中的异常邮件流量特征及成因进行深入探讨和分析。
2.3 邮件流量特征研究
2.3.1 实验数据
采集的数据分为两部分,数据集D1是中国某大型商业ISP核心路由器一条链路上的邮件流量。因流量规模较大,对邮件流量做实时处理,并保留必要日志和统计信息供验证时使用。数据集D2是局域网邮件网关的邮件流量,总量约为8GB。数据均被保存成tcpdump文件。通过对比两种不同时间、不同网络环境、相互无干扰的数据,研究分析邮件流量特点以及模型的适用范围。
表2 实验数据
本实验主要由四个模块组成,可支持对tcpdump数据和实时流量的操作。
(1)流量产生器
从tcpdump文件中读取数据,并使用libnet提供的接口函数库发包,以模拟互联网中的真实流量。通过调整参数设置,可以控制发包的速度,实验中的邮件流量产生速度为100Mb/s,原型系统可正常处理数据且无丢包现象发生。
(2)接口模块
接口具有处理IP分片、TCP流重组、简单的应用层协议解析功能。接口将原始邮件数据转发给检测模块,便于后者对流量进行全面统计并提供各种异常处理机制,保证所有状态机实例在平台中正确运行。
(3)EFSA模块
EFSA模块是平台的核心部分,为每个邮件会话创建状态机实例,负责管理和维护系统中的实例列表。
(4)检测模块
检测模块可访问实例列表,提取状态变量信息,同时结合原始邮件数据进行全局统计,并将最终分析结果写入日志。
2.3.2 实验结果
针对邮件服务器的攻击,如采用特殊工具批量发送邮件或邮件服务器配置错误,往往会产生与标准协议相背离的邮件流量。可以通过选择合适的参数处理流量数据,然后通过发现流量数据中的异常数值来识别异常邮件流量。
表3 电子邮件通讯事件序列
(1)<*RQ>
事件序列<*RQ>。无论是骨干网还是局域网网关,邮件流量中都包含大量的RSET命令。使用回放方式对流量内容进行分析,产生Get_RSET事件的情形有两种:①发送方取消当前发送,通知接收方重置会话,这属于RFC 2821中规定的行为。②接收方采用SMTP callback技术,即邮件服务器在接收邮件前,先给发信者发送一封不含用户数据的测试邮件。如果该发送者存在,则接收该邮件;否则将其标注为垃圾邮件。由于上述测试在DATA状态之前结束,因此,测试方通常发送RSET和QUIT命令提前中断并退出会话。在数据集D1中,这种事件序列组合占RSET事件总数的4.8%。
(2)<*T>
事件序列<*T>(即超时事件)。如果状态机在规定时间内没有收到任何数据,将唤醒超时事件。通过记录超时事件发生时状态机所历经的状态序列,D1中约有超时事件125万个。一般地,主要有三种原因产生不完整会话(流量回放时将引发超时事件):①HELO攻击或SMTP端口扫描行为。攻击者发出大量HELO命令,用以消耗服务器或网络带宽资源,产生大量不完整会话,状态机在停机前处于HELO状态。②网络拥塞、网络故障或无效事件引发的会话中止。③在骨干网链路捕包过程中,发生邮件报文丢失现象。后两种情况引发超时事件时状态机在停机前可能处于任何非终止状态,无法正常结束,直至系统唤醒超时事件将实例清除。
(3)无效事件
在扩展状态机中,如果当前的输入出现在与RFC 2821定义不一致的上下文环境中,则唤醒无效事件。实验数据集中主要出现三类无效事件,如表3后三行所示。对于邮件服务器来说,异常的输入会产生不可预期的结果。采用外部测试的方法,对主流邮件服务器例如Hotmail、Yahoo和Sina等进行无效事件测试(因为上述邮件服务器用户较多,配置规范)。
2.3.3 总结
将邮件流量分为两类,异常与正常。此方法的优点在于能够将精力集中在流量的子集上,而不用关注所有流量。
通过实验证明,此方法是可实现的,现有算法(未经优化)处理1361386封邮件用时不超过600秒,使用内存最大值为30MByte,此方法可以在大流量环境下较好地工作。
提出了一种新颖的方法来研究异常邮件的流量特征。通过对有代表性的互联网邮件流量的调研,以扩展的SMTP协议状态机模型为基础,选取若干参数为测度,并以某局域网邮件网关和某大型ISP(Internet Service Provider)国际出入口路由器的邮件数据为例,对其中异常流量特征及成因进行分析。实验结果表明,此方法是有效的,管理人员可以用它来设计有效的规则和策略以减少异常邮件流量。
[1] 刘波.IP组播通信机制及其实现[J].计算机工程,2001(6):35-36.
[2] 张磊.安全群组通讯在流媒体传输方面的应用[J].微机发展,2004,14(7):76-78.
[3] 秦刚.一种高效的群组通信数据安全机制[J].微电子学与计算机,2005,22(6):84-90.
[4] 唐桂忠,张广明,赵亚琴.基于无线通信的电力负荷监控系统的设计[J].计算机测量与控制,2004,12(12):1178-1180.
Study on Method of Monitoring AbnormalMail-flow
LIN Nan
(The 47th Research Institute of China Electronics Technology Group Corporation,Shenyang 110032,China)
In the process of network management,there're a large number of junk e-mails which bring heavy workload to the network-administrator.However,the key point for dealing with junk email is to identify them.This paper presents a new method for dealingwith abnormalmails.Based on the model of expanded SMTP protocol,the number of parameters is selected to measure and verify through analysis of a large number of experiments.The experimental results show that thismethod is effective and the administrator can use it to design effective rules and strategies to reduce the flow of abnormalmails.
Flow;Testing;Characteristic of flow
10.3969/j.issn.1002-2279.2014.02.008
TP393.08
A
1002-2279(2014)02-0023-03
林楠(1982-),男,辽宁庄河市人,工程师,主研方向:微电子。
2013-09-25