林 楠
(中國電子科技集團公司第四十七研究所,沈陽110032)
異常郵件流量檢測方法研究
林 楠
(中國電子科技集團公司第四十七研究所,沈陽110032)
在網絡管理過程中,大量的垃圾郵件給網絡管理員帶來沉重的工作負擔。而處理垃圾郵件的重點在于對垃圾郵件的鑒別。提出一種新穎的異常郵件檢測方法。以擴展的SMTP協議狀態(tài)機模型為基礎,選取若干參數為測度,并通過大量的實驗進行驗證分析。實驗結果表明,此方法是有效的,管理人員可以用它來設計有效的規(guī)則和策略以減少異常郵件流量。
流量;檢測;流量特征
簡單郵件傳輸協議,也稱SMTP協議,誕生于1982年,雖然已經有20多年的歷史,但目前仍然得到廣泛應用。盡管多數人認為郵件系統在正常、可靠的工作,但令人吃驚的是,目前幾乎沒有數據能支持上述論斷,原因是缺乏理論方法和難以處理異常流量數據。
目前,現有方法都不能準確檢測到郵件流量的異常。在這種情況下,急需一種機制來發(fā)現異常郵件流量。
本文認為針對郵件服務器的攻擊,采用特殊工具批量發(fā)送郵件或郵件服務器配置錯誤往往會產生與標準協議相背離的郵件流量。通過選擇合適的參數處理流量數據,發(fā)現流量數據中的異常數值來識別異常郵件流量。
在SMTP協議狀態(tài)機中,龐大的郵件報文序列轉化為一系列規(guī)范的狀態(tài)、事件序列和狀態(tài)變量的集合,狀態(tài)轉移信息和相關屬性的統計值可以為流量參數選擇提供依據。
2.1 基于SMTP協議的EFSA模型
(1)狀態(tài)。如圖1所示,SMTP協議狀態(tài)機M包含如下6個狀態(tài):INIT,HELO,ENVELOPE,DATA,TEXT和DONE。其中:INIT為M的初始狀態(tài),代表郵件會話的開始;HELO,ENVELOPE,DATA和TEXT是M的中間狀態(tài),在事件驅動下可彼此轉化。DONE為M的停止狀態(tài),代表郵件會話的結束。
(2)事件。根據操作的性質,M中的事件可以分為三類:
第一類由一簇_command(p,l)事件組成。這些事件對到來的IP報文進行內容解析,且每次處理一行數據。該簇事件有相同的參數:參數p表示當前IP報文的負載部分,負載長度用sizeof(p)表示。參數l表示p中待處理的數據行,事件名稱中的command指明喚醒該事件所需的命令。當事件被喚醒后,M首先發(fā)生狀態(tài)轉移,l指向p中的下一行內容,M不斷重復此過程直至p被處理完畢。
圖1 基于SMTP協議的EFSA模型
第二類為無效事件(invalid)。無效事件捕獲不遵守協議的異常流量行為。在擴展狀態(tài)機M中,如果當前輸入出現在一個和SMTP協議定義不一致的上下文環(huán)境(特定的輸入和狀態(tài))中,則喚醒無效事件。
第三類為超時事件(timeout)。為防止網絡報文丟失和網絡攻擊影響狀態(tài)機狀態(tài)轉移,引入超時事件來增強M的異常處理能力。
(3)狀態(tài)變量。在狀態(tài)機工作過程中,狀態(tài)變量記錄郵件流量的各種統計屬性值。關注的焦點是狀態(tài)轉移序列、事件發(fā)生序列以及與IP報文負載相關的各種屬性。擴展狀態(tài)機的狀態(tài)變量情況如表1所示。
表1 狀態(tài)變量
(4)定義。
·事件序列:si和sj為EFSA M的兩個狀態(tài),M可進行si到sj的轉移。從si到sj的轉移表示為Se(si,sj)此過程中M接收的不同命令報文的數量為sizeof(Se(si,sj))。相似地,郵件m的事件序列表示為Se(m)且M接收的不同命令報文表示為sizeof(Se(m))。
·完整會話:狀態(tài)機中存在一條從狀態(tài)INIT到DONE的路徑,且路徑中無超時事件,則稱狀態(tài)機對應一個完整會話,否則稱狀態(tài)機對應一個不完整會話。
·完整郵件:M中存在一條從HELO到HELO的路徑,且Se(HELO,HELO)中至少包含4個不同的事件,則稱M包含一個完整郵件m,否則稱M包含一個不完整郵件。
(5)SA工作流程
發(fā)送方提出SMTP請求,系統首先為其創(chuàng)建一個狀態(tài)機實例,并將其加入系統的狀態(tài)機實例表中。該表以散列槽的形式存儲數據,并以會話的IP地址、端口四元組信息作為實例的索引,用于后續(xù)的查詢、更新操作。首先,M處于INIT狀態(tài),隨著會話中數據交互,一系列的get_command(p,l)事件被喚醒。例如,當前IP報文的負載部分為p,當前狀態(tài)為si=“ENVELOPE”,當前輸入為l=“DATA\r\n”,可喚醒事件ei=Get_Data(p,l),M狀態(tài)轉移為sj=“DATA”。狀態(tài)變量CommandSize.data=sizeof(p)。
如果當前的輸入出現在一個與SMTP協議定義不一致的上下文環(huán)境中,就會喚醒無效事件。例如:當前狀態(tài)為si=“DATA”,當前輸入為l=”RSET\r\n”,喚醒事件invalid,M保持狀態(tài)sj=“DATA”不變。狀態(tài)變量Invalid.state=“DATA”,Invalid.command=“RSET”。
2.2 參數選擇
在SMTP狀態(tài)機模型中,系統為每個郵件會話創(chuàng)建一個狀態(tài)機。首先,在狀態(tài)機中,把龐大的郵件報文序列轉化為一系列狀態(tài)、事件序列組合,這兩者實際上是相關郵件流量行為的抽象表示。因此模型可將對原始網絡數據的統計轉化為對狀態(tài)機行為的統計,這是一種有效的屬性約簡方法;其次,保存在狀態(tài)變量中的狀態(tài)轉移信息和負載相關的各種屬性統計值,可為流量參數選擇提供依據。例如,超時事件引發(fā)的狀態(tài)轉移可能代表網絡故障或者網絡攻擊發(fā)生。通常,狀態(tài)變量的屬性空間較大,這里重點關注那些能夠表征郵件流量的網絡協議特性??坍嫯惓P袨榈膮蛋ㄒ韵聝刹糠郑?/p>
(1)狀態(tài)轉移序列和事件序列出現頻率。例如無效事件、超時事件的出現頻率,完整會話與不完整會話的比率等。此類參數可用于了解協議的工作情況,發(fā)現濫用協議等異常情況。
(2)負載相關的各種屬性統計值。例如,一封郵件中命令長度分布、命令報文數量分布、完整會話中完整郵件數量分布以及各郵件間關系等。此類參數可用于分析郵件流量變化的規(guī)律。
為此,本文選取同一會話多封郵件等有代表性的郵件流量參數,以其為測度不同網絡環(huán)境的郵件流量數據進行處理,并對其中的異常郵件流量特征及成因進行深入探討和分析。
2.3 郵件流量特征研究
2.3.1 實驗數據
采集的數據分為兩部分,數據集D1是中國某大型商業(yè)ISP核心路由器一條鏈路上的郵件流量。因流量規(guī)模較大,對郵件流量做實時處理,并保留必要日志和統計信息供驗證時使用。數據集D2是局域網郵件網關的郵件流量,總量約為8GB。數據均被保存成tcpdump文件。通過對比兩種不同時間、不同網絡環(huán)境、相互無干擾的數據,研究分析郵件流量特點以及模型的適用范圍。
表2 實驗數據
本實驗主要由四個模塊組成,可支持對tcpdump數據和實時流量的操作。
(1)流量產生器
從tcpdump文件中讀取數據,并使用libnet提供的接口函數庫發(fā)包,以模擬互聯網中的真實流量。通過調整參數設置,可以控制發(fā)包的速度,實驗中的郵件流量產生速度為100Mb/s,原型系統可正常處理數據且無丟包現象發(fā)生。
(2)接口模塊
接口具有處理IP分片、TCP流重組、簡單的應用層協議解析功能。接口將原始郵件數據轉發(fā)給檢測模塊,便于后者對流量進行全面統計并提供各種異常處理機制,保證所有狀態(tài)機實例在平臺中正確運行。
(3)EFSA模塊
EFSA模塊是平臺的核心部分,為每個郵件會話創(chuàng)建狀態(tài)機實例,負責管理和維護系統中的實例列表。
(4)檢測模塊
檢測模塊可訪問實例列表,提取狀態(tài)變量信息,同時結合原始郵件數據進行全局統計,并將最終分析結果寫入日志。
2.3.2 實驗結果
針對郵件服務器的攻擊,如采用特殊工具批量發(fā)送郵件或郵件服務器配置錯誤,往往會產生與標準協議相背離的郵件流量??梢酝ㄟ^選擇合適的參數處理流量數據,然后通過發(fā)現流量數據中的異常數值來識別異常郵件流量。
表3 電子郵件通訊事件序列
(1)<*RQ>
事件序列<*RQ>。無論是骨干網還是局域網網關,郵件流量中都包含大量的RSET命令。使用回放方式對流量內容進行分析,產生Get_RSET事件的情形有兩種:①發(fā)送方取消當前發(fā)送,通知接收方重置會話,這屬于RFC 2821中規(guī)定的行為。②接收方采用SMTP callback技術,即郵件服務器在接收郵件前,先給發(fā)信者發(fā)送一封不含用戶數據的測試郵件。如果該發(fā)送者存在,則接收該郵件;否則將其標注為垃圾郵件。由于上述測試在DATA狀態(tài)之前結束,因此,測試方通常發(fā)送RSET和QUIT命令提前中斷并退出會話。在數據集D1中,這種事件序列組合占RSET事件總數的4.8%。
(2)<*T>
事件序列<*T>(即超時事件)。如果狀態(tài)機在規(guī)定時間內沒有收到任何數據,將喚醒超時事件。通過記錄超時事件發(fā)生時狀態(tài)機所歷經的狀態(tài)序列,D1中約有超時事件125萬個。一般地,主要有三種原因產生不完整會話(流量回放時將引發(fā)超時事件):①HELO攻擊或SMTP端口掃描行為。攻擊者發(fā)出大量HELO命令,用以消耗服務器或網絡帶寬資源,產生大量不完整會話,狀態(tài)機在停機前處于HELO狀態(tài)。②網絡擁塞、網絡故障或無效事件引發(fā)的會話中止。③在骨干網鏈路捕包過程中,發(fā)生郵件報文丟失現象。后兩種情況引發(fā)超時事件時狀態(tài)機在停機前可能處于任何非終止狀態(tài),無法正常結束,直至系統喚醒超時事件將實例清除。
(3)無效事件
在擴展狀態(tài)機中,如果當前的輸入出現在與RFC 2821定義不一致的上下文環(huán)境中,則喚醒無效事件。實驗數據集中主要出現三類無效事件,如表3后三行所示。對于郵件服務器來說,異常的輸入會產生不可預期的結果。采用外部測試的方法,對主流郵件服務器例如Hotmail、Yahoo和Sina等進行無效事件測試(因為上述郵件服務器用戶較多,配置規(guī)范)。
2.3.3 總結
將郵件流量分為兩類,異常與正常。此方法的優(yōu)點在于能夠將精力集中在流量的子集上,而不用關注所有流量。
通過實驗證明,此方法是可實現的,現有算法(未經優(yōu)化)處理1361386封郵件用時不超過600秒,使用內存最大值為30MByte,此方法可以在大流量環(huán)境下較好地工作。
提出了一種新穎的方法來研究異常郵件的流量特征。通過對有代表性的互聯網郵件流量的調研,以擴展的SMTP協議狀態(tài)機模型為基礎,選取若干參數為測度,并以某局域網郵件網關和某大型ISP(Internet Service Provider)國際出入口路由器的郵件數據為例,對其中異常流量特征及成因進行分析。實驗結果表明,此方法是有效的,管理人員可以用它來設計有效的規(guī)則和策略以減少異常郵件流量。
[1] 劉波.IP組播通信機制及其實現[J].計算機工程,2001(6):35-36.
[2] 張磊.安全群組通訊在流媒體傳輸方面的應用[J].微機發(fā)展,2004,14(7):76-78.
[3] 秦剛.一種高效的群組通信數據安全機制[J].微電子學與計算機,2005,22(6):84-90.
[4] 唐桂忠,張廣明,趙亞琴.基于無線通信的電力負荷監(jiān)控系統的設計[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