游翔+葛衛(wèi)麗
摘 要: 針對飛信協(xié)議尚未公開與復雜互聯(lián)網(wǎng)環(huán)境帶來的飛信各類應用相關協(xié)議識別困難以及單包通聯(lián)關系缺失等問題,基于SIP協(xié)議的基本框架,從文本聊天、文件傳輸以及音/視頻通信三方面解析了飛信常用業(yè)務的協(xié)議交互過程;提出了端口與正則表達式相結合的飛信協(xié)議識別方法和基于會話還原的飛信通聯(lián)關系提取方法,能夠從大量混雜的數(shù)據(jù)包中快速定位飛信業(yè)務報文,獲得飛信多種通信行為的通聯(lián)關系。實驗結果證明了本文方法的有效性。
關鍵字: 協(xié)議解析; 多元通聯(lián)關系; 正則表達式; 飛信協(xié)議識別
中圖分類號: TN91?34; TP393.01 文獻標識碼: A 文章編號: 1004?373X(2014)21?0019?05
Protocol identification and multi?conversation relationship extraction in Fetion
YOU Xiang, GE Wei?li
(Department of Information Engineering, Engineering University of Armed Police Force, Xian 710078, China)
Abstract: As the protocols of Fetion are not public, it is difficult to recognize the Fetion application protocals caused by complex Internet environment and single?package conversation relationship is deficient, three common business protocol procedures (text messaging, file transfer and audio/video communication) are parsed on the basis of the basic framework of SIP protocol. The Fetion conversation relationship extraction method based on conversation revivification and protocol identification method of combining port and regular expressions are proposed for quickly locating Fetion service packets in promiscuous raw packets to achieve variety business relationships. Experimental results demonstratd the effectiveness of the method.
Keywords: protocol analysis; conversation relationship; regular expression; Fetion; protocol identification
0 引 言
飛信是中國移動通信集團面向中國移動的手機用戶推出的一款即時通信軟件。從被動截取分析的角度對飛信軟件通信協(xié)議進行研究,并提取基于飛信軟件通信的通聯(lián)關系,能夠對飛信用戶的通信行為進行監(jiān)控,獲得大量的敏感信息。這將對構建社會關系網(wǎng)絡、動態(tài)尋找和跟蹤目標人群提供有力依據(jù),對預防和打擊網(wǎng)絡團伙犯罪有著重要的意義。
盡管飛信的通信框架比較明確,且通信內(nèi)容非加密,但是對飛信軟件的通聯(lián)關系進行高效準確地識別和提取還存在諸多難點,如:未知協(xié)議導致對飛信各業(yè)務相關協(xié)議的交互過程不清晰,復雜的互聯(lián)網(wǎng)環(huán)境導致飛信各類應用相關協(xié)議識別困難,以服務器中轉方式為主的通信過程導致單包提取會缺失大量通聯(lián)關系。
針對以上困難,本文通過手工分析,解析了基于SIP承載的飛信通信協(xié)議的主要過程和報文格式,提出了端口與正則表達式匹配相結合的飛信協(xié)議識別方法,能夠從復雜的互聯(lián)網(wǎng)環(huán)境下對三種常用通信行為進行識別;設計了針對飛信的會話識別、排序及還原方法,克服了單個數(shù)據(jù)包攜帶通聯(lián)關系存在關系缺失的問題。設計了并實現(xiàn)了飛信的多元通聯(lián)關系識別與提取系統(tǒng);能夠在局域網(wǎng)關口處通過截取、識別、還原、提取的基本步驟獲得飛信多種通信行為的通聯(lián)關系信息,并以直觀的網(wǎng)絡形態(tài)展現(xiàn)用戶通聯(lián)關系網(wǎng)絡。
1 相關研究
作為一種新型網(wǎng)絡應用,即時通信自誕生就受到研究者們的廣泛關注,以AIM,ICQ,MSN等即時通信軟件為例,由于大多數(shù)使用私有協(xié)議,缺乏公開的定義文檔,研究人員大多通過逆向分析[1]的方法分析即時通信協(xié)議的功能、結構特點[1]。文獻[2]從系統(tǒng)安全的角度出發(fā),在此基礎上設計改進即時通信系統(tǒng)的架構,克服蠕蟲、病毒等攻擊弱點[3],為用戶提供更全面、高效、安全、穩(wěn)定的服務;網(wǎng)絡分析和監(jiān)控系統(tǒng)[4]從流量識別的角度出發(fā),用于網(wǎng)絡流量測量、異常行為檢測和信息安全保護等應用;文獻[5]從網(wǎng)絡活動的角度出發(fā),通過對即時通信流量的采集分析用戶的行為特征以及流量變化規(guī)律;文獻[6]則針對即時通信用戶行為和數(shù)據(jù)流量的特點做出深入分析;文獻[7]從網(wǎng)絡拓撲結構的角度分析即時通信中社會關系和社團變化的規(guī)律以及信息傳播特點等。從信息監(jiān)控的角度出發(fā),多數(shù)從數(shù)據(jù)包中分析還原協(xié)議的報文結構和屬性特征,重組還原即時通信的文本聊天內(nèi)容[7]和語音聊天信息[8],文獻[9]在協(xié)議分析與會話還原基礎上實現(xiàn)了即時通信信息監(jiān)控系統(tǒng),文獻[10]研究了并行即時通信消息還原技術。
由于新技術的不斷融入,即時通信現(xiàn)已成為同時擁有視頻、音頻和文本等多種溝通方式和渠道的溝通技術,特別是其對視頻/音頻技術的捆綁,使用戶在在線溝通和交流中的社會臨場感得到極大提升。隨著用戶群體的不斷擴大,即時通信系統(tǒng)內(nèi)部的用戶之間也形成了結構化的社交網(wǎng)絡,但由于即時通信協(xié)議的私有性以及在協(xié)議識別和數(shù)據(jù)獲取方面的困難,目前即時通信數(shù)據(jù)中蘊含的社會網(wǎng)絡尚不如電子郵件網(wǎng)絡那樣受到廣泛的研究;同時,豐富多樣的社交行為和復雜多樣的通信方式,使得即時通信應用成為目前社會網(wǎng)絡分析的研究熱點。
2 基于SIP承載的飛信通信協(xié)議解析
飛信的通信協(xié)議使用SIP(會話初始協(xié)議)作為主要框架,在具體細節(jié)上按照基于中國移動通信企業(yè)標準的綜合即時通信接口規(guī)范實施。
SIP是由IETF(Interne工程任務組)提出的IP電話信令協(xié)議,是一個客戶/服務器協(xié)議。協(xié)議消息分為邀請和響應兩類,其目的是建立或者終止會話。邀請是SIP協(xié)議的核心機制;響應消息分為中間響應和最終響應兩類。
飛信使用的SIP?C(Compact SIP)協(xié)議是一個簡化和增強的SIP協(xié)議,以適應移動終端設備的接入特點,但會話的邏輯過程與SIP及相關協(xié)議確立的邏輯過程保持不變。飛信通信的協(xié)議主要基于SIP?C/4.0的框架。以下通過對飛信具體通信報文的分析,總結提取了飛信文件傳輸、文字聊天及音/視頻通信的傳輸全過程。
2.1 飛信文件傳輸過程
飛信文件傳輸借助SIP進行會話初始協(xié)商,建立P2P直連,進行文件內(nèi)容傳輸。圖1描述的是飛信用戶Alice向好友列表中的Bob發(fā)送文件的過程,包括請求發(fā)送文件、同意接收文件、協(xié)商傳輸細節(jié)、實際傳輸以及傳輸完畢幾個過程。
2.2 飛信文本聊天過程
飛信文本聊天與文件傳輸類似。圖2描述的過程是飛信用戶Alice點擊好友列表中的飛信用戶Bob,打開聊天窗口給Bob發(fā)送一段文本信息的過程。這個過程包括Alice請求服務器授權、雙方加入會話以及實際發(fā)送文本信息。
圖1 飛信文件傳輸?shù)娜^程
圖2 飛信文本聊天的全過程
2.3 飛信音/視頻通信過程
圖3描述的過程是飛信用戶Alice點擊好友列表的飛信用戶Bob,請求視頻通信,Bob同意視頻通信;然后視頻通信一段時間后,Alice斷開視頻通信,視頻通信結束。這個過程包括Alice的視頻請求、Bob同意請求、雙方建立P2P直連傳輸視頻數(shù)據(jù)以及最后視頻結束斷開連接。
3 端口與正則表達式匹配相結合的飛信報文
識別
在計算機科學中,正則表達式是指用來描述或者匹配一系列符合某個句法規(guī)則的字符串的單個字符串;一個正則表達式就是用某種模式去匹配一類字符串的一個公式。在飛信報文的識別方面,同樣是采用一個正則表達式去匹配飛信報文的某些特征字段,達到從大量混雜網(wǎng)絡數(shù)據(jù)中準確識別和篩選出飛信通信的相關報文并對其進一步分類的目的。
圖3 飛信視頻通信的全過程
3.1 飛信通信特征分析
為了快速準確識別飛信通信報文,并達到進一步分類的目的,對飛信通信報文的特征字段的選擇成為一個關鍵問題。
對飛信通信報文識別的協(xié)議特征分為以下兩個層面:
(1) 飛信業(yè)務報文特征;
(2) 飛信特定應用服務報文特征。
通過仔細研究飛信通信的數(shù)據(jù)報文,如圖4所示,飛信業(yè)務報文特征主要有兩個:
(1) 絕大部分飛信通信報文通過TCP協(xié)議的固定端口8080傳輸。選擇8080端口作為初次篩選的報文特征,能夠快速去除混雜網(wǎng)絡數(shù)據(jù)當中絕大部分的冗余,提高報文識別的效率。
(2) 由于飛信通信是基于SIP的承載,在每個飛信數(shù)據(jù)包的data字段中均有“SIP?C/4.0”的SIP協(xié)議版本字段。通過對這個字段的匹配可以較為準確地識別飛信業(yè)務報文。
圖4 飛信文本聊天數(shù)據(jù)包
3.2 基于正則表達式的飛信通信報文識別
飛信特定應用服務有很多種,本文主要關注與飛信文件傳輸、文本聊天、音/視頻通信的相關應用。通過對不同類型飛信數(shù)據(jù)報文的分析,可以發(fā)現(xiàn)所有類型的飛信數(shù)據(jù)類型均能夠使用“SIP?C/4.0”附近的一些字符串來識別。具體過濾規(guī)則如表1所示。
表1中的特征字段是具體各個飛信通信報文中的實際報文字段,每種字段代表了一種飛信通信類型的報文,可以通過對這個特征字段的識別達到識別飛信特定應用服務類型的目的。表1中的區(qū)分標示是指在具體的區(qū)分過程中構造正則表達式區(qū)分這些特征的標示。這樣,就可以對不同類型的飛信數(shù)據(jù)報文進行分類處理。
表1 飛信特定應用服務報文特征
[特征字段\&報文類型\&區(qū)分標示\&S fetion.com.cn SIP?C/4.0\&文本聊天會話初始化報文\&S\&M fetion.com.cn SIP?C/4.0\&主動發(fā)送文字信息數(shù)據(jù)報文\&M fetion\&M 己方飛信號SIP?C/4.0\&被動接收文字信息數(shù)據(jù)報文\&M [0?9]*\&SIP?C/4.0 200 OK\&應答類型報文\&200 OK\&R fetion.com.cn SIP?C/4.0\&文本聊天會話注冊報文\&R\&BN fetion.com.cn SIP?C/4.0\&好友信息更新報文\&BN\&IN fetion.com.cn SIP?C/4.0\&主動邀請報文\&IN fetion\&IN 己方飛信號SIP?C/4.0\&被邀請報文\&IN [0?9]*\&I fetion.com.cn SIP?C/4.0\&主動請求視頻通信報文\&I fetion\&I 己方飛信號 SIP?C/4.0\&被請求視頻通信報文\&I [0?9]*\&SIP?C/4.0 100 Trying\&等待視頻請求應答報文\&100 Trying\&SIP?C/4.0 183 Session Progress\&同意視頻通信請求報文\&183 Session\&B fetion.com.cn SIP?C/4.0\&斷開視頻連接報文\&B\&]
得到飛信通信數(shù)據(jù)報文的匹配特征之后,可以通過構造正則表達式匹配的方式實現(xiàn)飛信通信數(shù)據(jù)報文的識別。
如圖5所示,飛信協(xié)議識別的流程主要分為三個步驟:
(1) 對8080端口的篩選,從大量混雜的網(wǎng)絡數(shù)據(jù)當中除去冗余數(shù)據(jù),提高后續(xù)處理的效率;
(2) 構造正則表達式,對飛信業(yè)務報文的承載特征進行匹配,從網(wǎng)絡數(shù)據(jù)當中識別相關的業(yè)務報文;
(3) 通過正則表達式匹配飛信特定應用服務的標示字段,從飛信的業(yè)務報文中識別各個特定的飛信業(yè)務信息。
圖5 飛信協(xié)議識別流程圖
4 基于會話還原的飛信通聯(lián)關系提取
通過對單個飛信數(shù)據(jù)包的分析,發(fā)現(xiàn)并不能夠完整地獲得其中的通聯(lián)關系。主要原因有:
(1) 與飛信通信機制相關。因為飛信的通信大部分通過代理服務器進行,飛信用戶實際上是在跟各自的代理服務器通信,而不是直接通信。
(2) 通信用戶信息的缺省。有些通信報文是缺省飛信接收方的,這是因為雙方在短時間內(nèi)曾經(jīng)建立通信會話,代理服務器可以通過會話號來尋找信息接收對象。
基于以上兩點原因,飛信通聯(lián)關系的單包提取有以下情況:
(1) 單包中包含通信雙方完整的通聯(lián)信息,可以從單包直接提??;
(2) 單包中只包含用戶及代理服務器之間的通聯(lián)信息,需要關聯(lián)提??;
(3) 單包中不含通信雙方的信息,只包含會話信息。
其中第二種情況較普遍。鑒于單包提取的局限性,需要將同一會話的飛信數(shù)據(jù)包關聯(lián)組合起來,還原飛信通信的會話。飛信通信會話還原的流程如圖6所示,主要包含兩個步驟:飛信會話的識別和飛信會話數(shù)據(jù)包的排序還原。
圖6 飛信通信會話還原流程圖
在飛信會話識別方面,通過尋找同一會話的惟一標識來識別。對于不同的會話類型,惟一標示是不一樣的。文本會話主要基于M類型數(shù)據(jù)包識別;文件會話傳輸?shù)臄?shù)據(jù)包中有“filetransfer?id”可以惟一標示此類會話;視頻會話傳輸?shù)臄?shù)據(jù)包中的字段“I:”代表CallID,在整個會話過程中是保持不變的。
在會話數(shù)據(jù)包排序方面,基于SIP的排序機制進行數(shù)據(jù)包排序。飛信數(shù)據(jù)包中均包含有一個字段“Q:”代表CSeq,也就是Command Sequence,由一個整數(shù)的序列號和一個SIP方法組成。這個序列號在一個會話過程中每次加1,來標識一個飛信會話過程各個數(shù)據(jù)包的順序。
5 飛信協(xié)議識別與多元通聯(lián)關系提取系統(tǒng)設計
與實現(xiàn)
5.1 軟件主要功能及實現(xiàn)流程
本系統(tǒng)基于Microsoft Visual Studio 2008以及Microsoft SQL Server 2005設計實現(xiàn)。該軟件具有以下功能:
(1) 基于端口篩選和SIP協(xié)議的識別,得到與飛信通信相關的原始數(shù)據(jù)記錄;
(2) 基于正則表達式匹配處理飛信相關的各類協(xié)議數(shù)據(jù),將飛信通信相關的數(shù)據(jù)報文分成三類:文本聊天、文件傳輸及音/視頻通信;
(3) 基于數(shù)據(jù)包關聯(lián)技術還原飛信通信完整的會話過程;
(4) 從飛信通信的會話中分類提取飛信用戶及他們之間相互通聯(lián)的信息;
(5) 根據(jù)數(shù)據(jù)庫中的數(shù)據(jù)調(diào)用Pajek軟件畫出基于飛信軟件通信的用戶通聯(lián)關系圖。
軟件處理流程圖如圖7所示。
圖7 Fetion通聯(lián)關系提取軟件實現(xiàn)流程圖
5.2 軟件系統(tǒng)測試分析
軟件系統(tǒng)測試環(huán)境如圖8所示。在20臺PC機上分別使用飛信軟件做相互聊天、發(fā)送文件、視頻通信等試驗。在出口交換機上設置端口鏡像采集網(wǎng)絡數(shù)據(jù),利用wireshark軟件截包存成pcap文件寫入數(shù)據(jù)庫。測試中用數(shù)據(jù)量大小為200M的pcap文件。
圖8 軟件測試場景圖
將測試數(shù)據(jù)導入軟件系統(tǒng),得到測試結果。以飛信文件傳輸為例,圖9展示了飛信文件傳輸通聯(lián)關系的部分數(shù)據(jù)圖,圖10展示了使用Pajek繪圖軟件繪制的飛信文件傳輸通聯(lián)關系網(wǎng)絡圖。
在實驗過程中對通聯(lián)關系提取完整率進行評估,如圖11所示。已知20個飛信用戶共發(fā)送文本聊天信息200條,軟件系統(tǒng)實際提取192條,通聯(lián)關系完整率為96%;共發(fā)送文件50次,軟件實際提取49次,通聯(lián)關系完整率為98%;共使用視頻通信40次,實際提取34次,通聯(lián)關系完整率為85%。
圖9 飛信文件通聯(lián)關系部分數(shù)據(jù)圖
圖10 飛信文件傳輸通聯(lián)關系網(wǎng)絡圖
圖11 軟件實際提取通聯(lián)關系完整率統(tǒng)計圖
6 結 語
作為中國移動官方推出的即時通信軟件,飛信擁有廣大的客戶群,對飛信用戶通信行為的識別與分析對犯罪組織行為分析、敏感人群定位等具有重要的研究意義。盡管飛信通信內(nèi)容是明文可見的,但復雜的互聯(lián)網(wǎng)環(huán)境導致對飛信多業(yè)務通聯(lián)關系提取仍面臨諸多現(xiàn)實困難,本文通過對飛信通信的數(shù)據(jù)包分析,總結提取出基于飛信文本聊天、文件傳輸、音/視頻通信的相關通信協(xié)議,采用端口和正則表達式匹配的方式從大量混雜的網(wǎng)絡數(shù)據(jù)中準確識別和提取飛信通信相關報文;采用數(shù)據(jù)包關聯(lián)的技術還原了飛信通信會話,增強了在多種飛信業(yè)務中通聯(lián)關系獲取的完整性;設計并實現(xiàn)了在被動截獲方式下飛信協(xié)議識別與多元通聯(lián)關系提取系統(tǒng),驗證了上述方法的有效性。
參考文獻
[1] CUI W, KANNAN J, WANG H J. Discoverer: automatic protocol reverse engineering from network traces [C]// Proceedings of 16th USENIX Security Symposium on USENIX Security Symposium. Boston, MA, USENIX Association, 2007: 111?121.
[2] RAYMOND B. JENNINGS I I I, NAHUM E M. A study of internet instant messaging and chat protocols [J]. IEEE Network. 2006(6): 34?40.
[3] 馮朝勝,鄧婕,秦志光,等.即時通信蠕蟲傳播建模[J].計算機工程,2010,36(5):143?145.
[4] LEVANDOSKI J, SOMMER E, STRAIT M. Application layer packet classifier for Linux [EB/OL]. [2010?10?24].http://l7?filter.sourceforge.net.
[5] ZHEN Xiao, GUO Lei, TRACEY John. Understanding instant messaging traffic characteristics [C]// Proceedings of 27th International Conference on Distributed Computing Systems. [S.l.]: [s.n.], 2007: 150?160.
[6] AVRAHAMI D, HUDSON S E. Communication characteristics of instant messaging: effects and predictions of interpersonal relationships [C]// Proceeding of CSCW'06. Banff, Alberta, Canada: CSCW, 2006: 505?514.
[7] 趙遠萍.即時通信系統(tǒng)拓撲建模及消息傳播模型研究[D].北京:北京郵電大學,2010.
[8] 金婷,王攀,張順頤.基于DPI和會話關聯(lián)技術的QQ語音業(yè)務識別模型和算法[J].重慶郵電學院學報:自然科學版,2006,18(6):789?792.
[9] 吳瓊.即時通信信息檢測監(jiān)控技術的研究與實現(xiàn)[D].鄭州:解放軍信息工程大學,2010.
[10] 余壯輝,黃永忠,周蓓.即時通信信息還原并行處理模型[J].計算機工程,2008,34(5):128?130.
[11] CHRISTIAN D, WICHMANN A, FELDMANN A. An analysis of internet chat systems [C]// Proceedings of the 3rd ACM SIGCOMM Conference on Internet Measurement. [S.l.] ACM, 2003: 51?64.
[12] 余飛,吳鑫.基于網(wǎng)絡數(shù)據(jù)包的即時通信協(xié)議信息還原技術的研究[J].電子測量技術,2010,33(6):130?133.