吴欢 宋力 刘遇哲
(河北远东通信系统工程有限公司,河北石家庄 050000)
基于HTTP协议特征字的识别研究
吴欢 宋力 刘遇哲
(河北远东通信系统工程有限公司,河北石家庄 050000)
在网络应用日益膨胀的互联网时代,HTTP协议凭借自身众多的优点,应用于大部分的网络应用中,如何通过协议的载荷特征字识别出应用,是当前DPI面临的重要挑战。针对这个挑战,在当前采用的识别技术基础上,对软件更新类应用的识别方法进行了简要介绍,主要解决识别过程中识别率低和出现误识别2个问题,采用优化后的特征匹配顺序和资源方法顺序相结合的方法,进行应用识别测试,通过对比前后的测试结果,从而论证特征匹配顺和资源方法顺序的合理性以及识别方法的科学性。
特征字特征匹配资源方法识别率误识别DPI HTTP
网络应用识别技术由传统的基于端口映射的识别技术发展为基于深度数据包识别(DPI)和基于深度数据流识别(DFI)两种方法[1,2]。其中,DPI是在分析报文头的基础上,结合不同应用的特征从而综合判断所属应用的技术,DFI它是基于一种流量行为的应用识别技术,不同的业务应用类型体现在会话连接或数据流上的状态各不相同[3]。本文中的识别方法是在DPI的基础上产生的,运用基础的识别方法,结合HTTP协议报文头含义[4],采用合理的特征搭配方式和资源提取方式的新识别方法,由于该方法仅针对HTTP协议适用,在HTTPS、UDP等网络协议中暂时没有得到认证。
识别方法中的特征搭配和提取顺序根据HTTP协议的RFC文档各个报文头含义结合唯一资源定位符内容而确定,特征库运行在34核的Linux系统平台下,10 G带宽下识别无丢包、无延迟,实验数据为应用识别的真实内容。为验证识别方法的合理性和正确性,要求识别率≥90%,且不出现应用误识别,上述2种标准均满足,则表示特征识别方法正确。
在软件更新类的识别过程中,或在任何应用的识别过程中,都应着重考虑2个指标:①识别率;②误识别。而针对这2个指标出现的问题也有2个:①识别率不达标;②出现误识别,它们直接反应了应用识别方法的正确性。
识别率和误识别有着即相对又统一的微妙关系,相对性体现在减少程序处理时间、提高识别率时,往往采用通用性的特征字符,而通用性字符又是造成误识别的主要原因;统一性体现在不管是识别率还是误识别都是对应用识别的判断标准,都可以判断基于特征字符识别方法的正确性。在这种情况下,从客户体验角度出发,二者的关系可以理解为:无误识别是识别的前提,识别率达标是识别的基础。
在实际识别过程中,识别率和误识别的具体问题主要有2个:①单条特征字符的匹配;②通用性特征字符的匹配。采用这2种识别方式,虽然可以即简约又高效的识别出应用,但是与此同时也会提高误识别的可能性。所以如何让识别率和误识别达到一个相对合理的平衡点,如何避免单条或通用特征字符的匹配方式并缩短程序处理时间,是应用识别方法优化和改进的重点。
识别方法的优化分为2部分:一部分是特征匹配方式的优化,也就是报文中的特征字符如何进行搭配匹配;另一部分是特征字符提取方式的优化,也就是每条特征信息如何进行字符舍取。
3.1 特征匹配方式的优化
特征匹配方式的优化主要解决单条特征匹配所带来的误识别和识别率问题,根据统一资源标识符在各报文头的信息不同[5],对HTTP协议报文方法进行粗略的分类作为特征匹配优化的基础,由此可以分为资源具体信息、资源地址信息、资源其他信息3类。资源具体信息包括GET、PUT、POST、HEAD等方法的报文内容;资源地址信息包括Referrer、Host、IP、端口的报文内容;资源其他信息包括User-Agent、Server、Content-Type等方法的报文内容。
3.1.1 特征匹配方式的优先级
特征匹配方式优化的解决方案将特征搭配分3种级别,从高到低依次采用,具体情况如下:
一级:资源具体信息+资源地址信息+资源其他信息
二级:资源具体信息+资源地址信息;资源具体信息+资源其他信息;资源地址信息+资源其他信息
三级:资源具体信息;资源地址信息;资源其他信息
上述优化方法中,优先采用一级匹配方式,最后采用三级匹配方式,在每一级别,按照书写的前后顺序依次采用,例如在二级匹配方式中,优先采用资源具体信息+资源地址信息;其次采用资源具体信息+资源其他信息;最后采用资源地址信息+资源其他信息。
3.1.2 资源方法的优先级
资源具体信息主要是请求方法的内容,包括应用名称、具体路径、资源类型或者其他特征,常用的方法有GET、PUT、POST、HEAD。在请求报文中出现哪个方法就对该方法的内容具体分析并提取特征字符,它们之间没有优先级别区分,有时一条会话中有时会出现多个请求方法,根据载荷回应报文的2xx状态来确定提取哪个方法的特征字,若特征字符可以独特并且精确的表示了资源信息,可以采用该单条特征字符匹配应用[6]。
资源地址信息主要存在于请求方法Referrer和Host中,如果应用的具体功能与某一IP和端口是对应的,其也可以表示资源的地址信息。在这些地址信息中,Referrer方法优先级最高,Host和IP次之,根据HTTP协议的RFC文档可知,Referrer中http_URL="http:""//"host[":"port][abs_path[ "?"query]][4],URL可以用于定位网络资源的位置,从而作为应用的识别特征,而Host是URL的组成部分,仅表示资源主机的相关信息,没有很精确的定位。所以在仅有地址信息的情况下Referrer方法可以作为单条特征匹配应用,但是Host方法和IP不能单独作为特征来匹配[7]。
资源其他信息主要有资源产品信息、资源数据格式等,对应的方法分别是User-Agent、Server、Content-Type、Content-Length等,他们的优先级按照书写的顺序由高到低排序,其中User-Agent和Serve用于产品标记,使通信软件能够通过名称和版本来标识自己,从而可以识别出应用,特别情况下也可以作为单条特征进行识别匹配,而资源数据格等信息不能单独作为特征进行识别匹配,只可以作为应用限制条件增加识别准确性[8]。
3.2 特征字符提取方式的优化
根据协议分类可知,在数据报文中有资源具体信息、资源地址信息和资源其他信息3种,每种信息的特征都是通过字符确定,其中包含了可识别字符(包括应用的名称、命令、格式等)和不可识别字符(包括特殊字符、数字等),下面主要介绍基于特征字符串提取方式的逻辑方法[9],其中包含了2种情况。
3.2.1 含应用信息的特征字符提取方法(以名称为例)
在Spybot应用中,更新过程数据包的GET请求方法信息如下所示:
①GET/updates/spybot2files/spybotsd2.uid-20140522.cab
②GET/updates/spybot2files/TTLASSH.sbs-20080624.cab
③GET/spybot2files/Trojans-ZL-000.sbi-20140115.cab
④GET/updates/spybot2/Trojans-VM-021.sbi-20140115. cab
⑤GET/data/spybot/spybot2/Trojans-VM-023. sbi-20140115.cab
经初步分析可知,1和2有共同特征字符“/updates/spybot2files/”;2和3有共同特征字符“/spybot2files/”;3和4有共同特征字符“/spybot2”,4和1、2有共同特征字符“/updates/spybot2”;5和其余4条方法信息均有“spybot”或“spybot2”的特征字符。
若上述GET方法的名称特征作为一级或者二级的辅助搭配特征,采用的方法是1和2提取共同特征A,A和3提取共同特征B,B和4提取共同特征C,以此类推,最终用统一的特征字符识别所有报文,本例最终以特征字符“/spybot”,偏移位置为7-14,加上Host方法的主要特征,联合匹配出spybot应用;若上述特征字符作为主要特征或者单条的资源具体信息进行匹配,字符串提取分为3种,分别是“/updates/spybot2files/”、“/spybot2files/”和“/data/spybot/spybot2/”,提取的原则是资源路径提取到具体文件的上级以上目录,路径越具体识别越精确。与此同时,由于软件更新过程的独特性,往往加上文件类型(.cab)作为辅助特征,提高识别准确性。
而在资源地址信息的特征字符提取方式中,与资源具体信息的提取方式雷同,在Referrer或者Host方法中,地址信息特征字符越详细资源定位越精确。而资源其他信息中的产品信息或数据格式等则是如实提取,表达是什么就提取什么。
3.2.2 不含应用信息的特征提取方法
不含应用信息的特征提取方法根据特征字符所在位置和位置出现的字符特点,采用联合匹配方式,按联合数大小排序,决定提取优先级,例如应用会话报文中有3处字符一致,则将这3处的字符联合起来作为该应用的特征,通过此特征进行识别,若会话报文中有4处字符一致,则优先采用4处字符联合匹配,该匹配方式比3处特征优先级别高,识别更准确[10]。
现以Mcafee软件为例,对优化后的识别方法进行评估,在软件更新过程中,通过对数据包的统计分析,发现其中有2条大流量会话,具有共同的Host方法特征信息,具体内容为“download.mcafee.com”,从而可以判断会话内容来源于Mcafee软件的下载服务器中,是更新过程中文件的主要来源,若按照之前的识别方法,则采用Host特征来匹配Mcafee应用的更新过程,此时识别率为98.50%,达到标准。
但在误识别测试时,在其官方网站下载应用或其他工具造成了误匹配,通过跟踪打印的五元组信息,锁定网页下载数据包的会话,发现其Host方法特征为“download.mcafee.com”,与更新过程会话特征一致,但其资源具体信息的请求方法内容不一致,更新过程中的请求方法为HEAD,内容特征为“/molbin/iss-loc/amcore/0001006/001712/meddat.cab
HTTP/1.1”,由此可知请求文件类型为.cab,而网页下载的请求方法为GET,内容特征为“/molbin/iss-loc/mmi/zh-cn/7. 6.263/7/downloadButton.html HTTP/1.1”,由此可知请求文件的类型为.html。
经过分析可知,网页下载和软件更新文件均来自于Mcafee的下载服务器,不能单独采用Host方法特征进行应用匹配,按照优化后的识别方法,采用二级匹配方式的资源具体信息+资源地址信息方式识别,即Host域内容+请求方法内容+文件类型,具体的识别特征字符为Host:download.mcafee. com+String:/molbin/iss-loc/+String:.cab。将带有新特征库的程序在公网上进行误识别测试,截止至文章编写时,未出现问题。
采用优化后的特征匹配方式和特征字符提取方式对22个软件更新应用进行测试,识别率均达到90%,无一误识别。同时,在文件传输、即时通信、下载类等其他采用HTTP协议进行通信的网络应用中,这种识别方法起到了显著的作用,为应用识别提供了基础,与此同时也具有弊端[11],在实际应用中尽量将弊端降到最小,优点充分使用。本方法的核心内容是将统一资源标识符与报文方法的结合,通过资源信息的独特性、唯一性确定应用,从而识别出应用。这种识别方法的逻辑思维不仅仅适用于HTTP协议,同样可以延伸至TCP、UDP等协议中,结合其他协议自身的特点,采用合理的特征字符提取方式和匹配方式也能简洁、准确、快速的识别出协议应用。
[1]王梁.基于深度数据包检测与深度数据流检测相结合的业务识别技术研究[D].中南大学.Y1761966.2010:2-6.
[2]张玲,李君,孙雁飞.快速应用层流量识别方法的研究与实现[C].电信快报论文选粹,2009:29-33.
[3]张志群.浅谈应用识别技术的实现[J].IP领航.2009:1-2.
[4]李鑫.基于DPI的网络流量识别系统的设计与实现[D].武汉理工大学,Y1817346.2010:7-8.
[5]RFC2616,Hypertext Transfer Protocol--HTTP/1.1[S].
[6]吴昊,程光.HTTP网络应用特征串的自动提取[D].东南大学,2011:2.
[7]孟娟娜.浅谈《IP地址与域名》[J].电子世界,2013(15):156.
[8]吴昊.基于HTTP的网络应用分类系统[D].东南大学, 2012:14-16.
[9]王向辉.基于DPI与特征识别的P2P流量监测技术研究[D].广西大学.2010.3-9.
[10]陈亮,龚俭,徐选.基于特征串的应用层协议识别[J].计算机工程与应用,2006(24):16-19+86.
[11]王慧谦.基于端口号、统计特征和协议特征字的实时数据流分类[D].山东大学,Y1938284.2011:8-9.
Research on Feature Character Recognition Based on HTTP Protocol
WU Huan,SONG Li,LIU Yu-zhe
(Hebei Far-east Communication System Engineering Co.Ltd,Shijiazhuang Hebei 05000,China)
In the Internet era of network application expansion,HTTP protocol is used for most web applications by virtue of its various advantages.The method of identifying application protocol by load feature characters is an important challenge faced by current DPI.To address this challenge,based on application of identification technology,the recognition software update class applications are briefly introduced,mainly to solve such two problems as low recognition rate and misrecognition in the identification process.The method of combining optimized features and match order with resource method order is used to perform application identification test. The test results show that the proposed method is feasible and the recognition method is scientific.
feature character;feature matching;resource method;recognition rate;misrecognition
TP391.4
A
1008-1739(2015)09-32-4
定稿日期:2015-04-12