飞信协议识别与多元通联关系提取方法
2014-11-07游翔葛卫丽
游翔+葛卫丽
摘 要: 针对飞信协议尚未公开与复杂互联网环境带来的飞信各类应用相关协议识别困难以及单包通联关系缺失等问题,基于SIP协议的基本框架,从文本聊天、文件传输以及音/视频通信三方面解析了飞信常用业务的协议交互过程;提出了端口与正则表达式相结合的飞信协议识别方法和基于会话还原的飞信通联关系提取方法,能够从大量混杂的数据包中快速定位飞信业务报文,获得飞信多种通信行为的通联关系。实验结果证明了本文方法的有效性。
关键字: 协议解析; 多元通联关系; 正则表达式; 飞信协议识别
中图分类号: 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 引 言
飞信是中国移动通信集团面向中国移动的手机用户推出的一款即时通信软件。从被动截取分析的角度对飞信软件通信协议进行研究,并提取基于飞信软件通信的通联关系,能够对飞信用户的通信行为进行监控,获得大量的敏感信息。这将对构建社会关系网络、动态寻找和跟踪目标人群提供有力依据,对预防和打击网络团伙犯罪有着重要的意义。
尽管飞信的通信框架比较明确,且通信内容非加密,但是对飞信软件的通联关系进行高效准确地识别和提取还存在诸多难点,如:未知协议导致对飞信各业务相关协议的交互过程不清晰,复杂的互联网环境导致飞信各类应用相关协议识别困难,以服务器中转方式为主的通信过程导致单包提取会缺失大量通联关系。
针对以上困难,本文通过手工分析,解析了基于SIP承载的飞信通信协议的主要过程和报文格式,提出了端口与正则表达式匹配相结合的飞信协议识别方法,能够从复杂的互联网环境下对三种常用通信行为进行识别;设计了针对飞信的会话识别、排序及还原方法,克服了单个数据包携带通联关系存在关系缺失的问题。设计了并实现了飞信的多元通联关系识别与提取系统;能够在局域网关口处通过截取、识别、还原、提取的基本步骤获得飞信多种通信行为的通联关系信息,并以直观的网络形态展现用户通联关系网络。
1 相关研究
作为一种新型网络应用,即时通信自诞生就受到研究者们的广泛关注,以AIM,ICQ,MSN等即时通信软件为例,由于大多数使用私有协议,缺乏公开的定义文档,研究人员大多通过逆向分析[1]的方法分析即时通信协议的功能、结构特点[1]。文献[2]从系统安全的角度出发,在此基础上设计改进即时通信系统的架构,克服蠕虫、病毒等攻击弱点[3],为用户提供更全面、高效、安全、稳定的服务;网络分析和监控系统[4]从流量识别的角度出发,用于网络流量测量、异常行为检测和信息安全保护等应用;文献[5]从网络活动的角度出发,通过对即时通信流量的采集分析用户的行为特征以及流量变化规律;文献[6]则针对即时通信用户行为和数据流量的特点做出深入分析;文献[7]从网络拓扑结构的角度分析即时通信中社会关系和社团变化的规律以及信息传播特点等。从信息监控的角度出发,多数从数据包中分析还原协议的报文结构和属性特征,重组还原即时通信的文本聊天内容[7]和语音聊天信息[8],文献[9]在协议分析与会话还原基础上实现了即时通信信息监控系统,文献[10]研究了并行即时通信消息还原技术。
由于新技术的不断融入,即时通信现已成为同时拥有视频、音频和文本等多种沟通方式和渠道的沟通技术,特别是其对视频/音频技术的捆绑,使用户在在线沟通和交流中的社会临场感得到极大提升。随着用户群体的不断扩大,即时通信系统内部的用户之间也形成了结构化的社交网络,但由于即时通信协议的私有性以及在协议识别和数据获取方面的困难,目前即时通信数据中蕴含的社会网络尚不如电子邮件网络那样受到广泛的研究;同时,丰富多样的社交行为和复杂多样的通信方式,使得即时通信应用成为目前社会网络分析的研究热点。
2 基于SIP承载的飞信通信协议解析
飞信的通信协议使用SIP(会话初始协议)作为主要框架,在具体细节上按照基于中国移动通信企业标准的综合即时通信接口规范实施。
SIP是由IETF(Interne工程任务组)提出的IP电话信令协议,是一个客户/服务器协议。协议消息分为邀请和响应两类,其目的是建立或者终止会话。邀请是SIP协议的核心机制;响应消息分为中间响应和最终响应两类。
飞信使用的SIP?C(Compact SIP)协议是一个简化和增强的SIP协议,以适应移动终端设备的接入特点,但会话的逻辑过程与SIP及相关协议确立的逻辑过程保持不变。飞信通信的协议主要基于SIP?C/4.0的框架。以下通过对飞信具体通信报文的分析,总结提取了飞信文件传输、文字聊天及音/视频通信的传输全过程。
2.1 飞信文件传输过程
飞信文件传输借助SIP进行会话初始协商,建立P2P直连,进行文件内容传输。图1描述的是飞信用户Alice向好友列表中的Bob发送文件的过程,包括请求发送文件、同意接收文件、协商传输细节、实际传输以及传输完毕几个过程。
2.2 飞信文本聊天过程
飞信文本聊天与文件传输类似。图2描述的过程是飞信用户Alice点击好友列表中的飞信用户Bob,打开聊天窗口给Bob发送一段文本信息的过程。这个过程包括Alice请求服务器授权、双方加入会话以及实际发送文本信息。
图1 飞信文件传输的全过程
图2 飞信文本聊天的全过程
2.3 飞信音/视频通信过程
图3描述的过程是飞信用户Alice点击好友列表的飞信用户Bob,请求视频通信,Bob同意视频通信;然后视频通信一段时间后,Alice断开视频通信,视频通信结束。这个过程包括Alice的视频请求、Bob同意请求、双方建立P2P直连传输视频数据以及最后视频结束断开连接。
3 端口与正则表达式匹配相结合的飞信报文
识别
在计算机科学中,正则表达式是指用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串;一个正则表达式就是用某种模式去匹配一类字符串的一个公式。在飞信报文的识别方面,同样是采用一个正则表达式去匹配飞信报文的某些特征字段,达到从大量混杂网络数据中准确识别和筛选出飞信通信的相关报文并对其进一步分类的目的。
图3 飞信视频通信的全过程
3.1 飞信通信特征分析
为了快速准确识别飞信通信报文,并达到进一步分类的目的,对飞信通信报文的特征字段的选择成为一个关键问题。
对飞信通信报文识别的协议特征分为以下两个层面:
(1) 飞信业务报文特征;
(2) 飞信特定应用服务报文特征。
通过仔细研究飞信通信的数据报文,如图4所示,飞信业务报文特征主要有两个:
(1) 绝大部分飞信通信报文通过TCP协议的固定端口8080传输。选择8080端口作为初次筛选的报文特征,能够快速去除混杂网络数据当中绝大部分的冗余,提高报文识别的效率。
(2) 由于飞信通信是基于SIP的承载,在每个飞信数据包的data字段中均有“SIP?C/4.0”的SIP协议版本字段。通过对这个字段的匹配可以较为准确地识别飞信业务报文。
图4 飞信文本聊天数据包
3.2 基于正则表达式的飞信通信报文识别
飞信特定应用服务有很多种,本文主要关注与飞信文件传输、文本聊天、音/视频通信的相关应用。通过对不同类型飞信数据报文的分析,可以发现所有类型的飞信数据类型均能够使用“SIP?C/4.0”附近的一些字符串来识别。具体过滤规则如表1所示。
表1中的特征字段是具体各个飞信通信报文中的实际报文字段,每种字段代表了一种飞信通信类型的报文,可以通过对这个特征字段的识别达到识别飞信特定应用服务类型的目的。表1中的区分标示是指在具体的区分过程中构造正则表达式区分这些特征的标示。这样,就可以对不同类型的飞信数据报文进行分类处理。
表1 飞信特定应用服务报文特征
[特征字段\&报文类型\&区分标示\&S fetion.com.cn SIP?C/4.0\&文本聊天会话初始化报文\&S\&M fetion.com.cn SIP?C/4.0\&主动发送文字信息数据报文\&M fetion\&M 己方飞信号SIP?C/4.0\&被动接收文字信息数据报文\&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\&]
得到飞信通信数据报文的匹配特征之后,可以通过构造正则表达式匹配的方式实现飞信通信数据报文的识别。
如图5所示,飞信协议识别的流程主要分为三个步骤:
(1) 对8080端口的筛选,从大量混杂的网络数据当中除去冗余数据,提高后续处理的效率;
(2) 构造正则表达式,对飞信业务报文的承载特征进行匹配,从网络数据当中识别相关的业务报文;
(3) 通过正则表达式匹配飞信特定应用服务的标示字段,从飞信的业务报文中识别各个特定的飞信业务信息。
图5 飞信协议识别流程图
4 基于会话还原的飞信通联关系提取
通过对单个飞信数据包的分析,发现并不能够完整地获得其中的通联关系。主要原因有:
(1) 与飞信通信机制相关。因为飞信的通信大部分通过代理服务器进行,飞信用户实际上是在跟各自的代理服务器通信,而不是直接通信。
(2) 通信用户信息的缺省。有些通信报文是缺省飞信接收方的,这是因为双方在短时间内曾经建立通信会话,代理服务器可以通过会话号来寻找信息接收对象。
基于以上两点原因,飞信通联关系的单包提取有以下情况:
(1) 单包中包含通信双方完整的通联信息,可以从单包直接提取;
(2) 单包中只包含用户及代理服务器之间的通联信息,需要关联提取;
(3) 单包中不含通信双方的信息,只包含会话信息。
其中第二种情况较普遍。鉴于单包提取的局限性,需要将同一会话的飞信数据包关联组合起来,还原飞信通信的会话。飞信通信会话还原的流程如图6所示,主要包含两个步骤:飞信会话的识别和飞信会话数据包的排序还原。
图6 飞信通信会话还原流程图
在飞信会话识别方面,通过寻找同一会话的惟一标识来识别。对于不同的会话类型,惟一标示是不一样的。文本会话主要基于M类型数据包识别;文件会话传输的数据包中有“filetransfer?id”可以惟一标示此类会话;视频会话传输的数据包中的字段“I:”代表CallID,在整个会话过程中是保持不变的。
在会话数据包排序方面,基于SIP的排序机制进行数据包排序。飞信数据包中均包含有一个字段“Q:”代表CSeq,也就是Command Sequence,由一个整数的序列号和一个SIP方法组成。这个序列号在一个会话过程中每次加1,来标识一个飞信会话过程各个数据包的顺序。
5 飞信协议识别与多元通联关系提取系统设计
与实现
5.1 软件主要功能及实现流程
本系统基于Microsoft Visual Studio 2008以及Microsoft SQL Server 2005设计实现。该软件具有以下功能:
(1) 基于端口筛选和SIP协议的识别,得到与飞信通信相关的原始数据记录;
(2) 基于正则表达式匹配处理飞信相关的各类协议数据,将飞信通信相关的数据报文分成三类:文本聊天、文件传输及音/视频通信;
(3) 基于数据包关联技术还原飞信通信完整的会话过程;
(4) 从飞信通信的会话中分类提取飞信用户及他们之间相互通联的信息;
(5) 根据数据库中的数据调用Pajek软件画出基于飞信软件通信的用户通联关系图。
软件处理流程图如图7所示。
图7 Fetion通联关系提取软件实现流程图
5.2 软件系统测试分析
软件系统测试环境如图8所示。在20台PC机上分别使用飞信软件做相互聊天、发送文件、视频通信等试验。在出口交换机上设置端口镜像采集网络数据,利用wireshark软件截包存成pcap文件写入数据库。测试中用数据量大小为200M的pcap文件。
图8 软件测试场景图
将测试数据导入软件系统,得到测试结果。以飞信文件传输为例,图9展示了飞信文件传输通联关系的部分数据图,图10展示了使用Pajek绘图软件绘制的飞信文件传输通联关系网络图。
在实验过程中对通联关系提取完整率进行评估,如图11所示。已知20个飞信用户共发送文本聊天信息200条,软件系统实际提取192条,通联关系完整率为96%;共发送文件50次,软件实际提取49次,通联关系完整率为98%;共使用视频通信40次,实际提取34次,通联关系完整率为85%。
图9 飞信文件通联关系部分数据图
图10 飞信文件传输通联关系网络图
图11 软件实际提取通联关系完整率统计图
6 结 语
作为中国移动官方推出的即时通信软件,飞信拥有广大的客户群,对飞信用户通信行为的识别与分析对犯罪组织行为分析、敏感人群定位等具有重要的研究意义。尽管飞信通信内容是明文可见的,但复杂的互联网环境导致对飞信多业务通联关系提取仍面临诸多现实困难,本文通过对飞信通信的数据包分析,总结提取出基于飞信文本聊天、文件传输、音/视频通信的相关通信协议,采用端口和正则表达式匹配的方式从大量混杂的网络数据中准确识别和提取飞信通信相关报文;采用数据包关联的技术还原了飞信通信会话,增强了在多种飞信业务中通联关系获取的完整性;设计并实现了在被动截获方式下飞信协议识别与多元通联关系提取系统,验证了上述方法的有效性。
参考文献
[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] 赵远萍.即时通信系统拓扑建模及消息传播模型研究[D].北京:北京邮电大学,2010.
[8] 金婷,王攀,张顺颐.基于DPI和会话关联技术的QQ语音业务识别模型和算法[J].重庆邮电学院学报:自然科学版,2006,18(6):789?792.
[9] 吴琼.即时通信信息检测监控技术的研究与实现[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] 余飞,吴鑫.基于网络数据包的即时通信协议信息还原技术的研究[J].电子测量技术,2010,33(6):130?133.