- 文献综述(或调研报告):
目前常见的三种软件识别技术各有优劣,下面对这三种软件识别技术的优劣进行简单对比:
1) 端口识别法
基于端口的识别技术是通过解析网络数据包中的端口信息进行应用的识别。数据包的抓取主要是借助Wireshark或Tcpdump完成,而端口检测只需要对所捕获的数据包的指定字段进行识别和分析,这种分类技术的时间和空间复杂度都较低,可以实现流量的高速分类。同时,几乎全部的传统应用、部分P2P应用协议(尤其是早期的P2P软件)都使用IANA所分配的划定端口进行网络通信,所以该分类方式在早期的流量分类领域中有较高的准确率。但目前的许多新业务 (尤其是P2P应用)为了能有效穿越防火墙,普遍釆用动态端口技术(随机分配应用端口,而不是使用IANA所固定分配的端口号),如Bittorrent,Thunder等应用软件;此外,端口伪装技术将目标应用的数据封装在传统应用数据中,目前大量应用数据被封装在 HTTP 或者 HTTPS数据包中。这些反检测技术的广泛釆用使得传统的端口识别方法不再有效,识别精度也迅速下降,一般情况下仅能对约40%的互联网流量进行有效识别。尽管如此,由于高效和快速地识别网络流量是高速网络首要考虑的问题,所以,基于固定端口的识别法依旧被广泛的用于网络流量的识别,尤其是在高速的骨干网络流量识别中。但是单独使用基于端口的识别技术对流量进行分类的情况已经较少出现,该技术主要是作为其他识别技术的一种补充。下表列出了一些常见的端口及其对应的应用名称。
表1:应用软件与其对应端口号
应用名称 |
对应端口 |
Bitborrent |
6881-6889(TCP) |
DHCP |
67,68(UDP) |
DNS |
53(TCP,UDP) |
Fast Track |
1214(TCP) |
FTP |
20,21(TCP,UDP) |
HTTP |
80,8080(TCP) |
KUGOO |
7000(TCP) |
MSN |
1863(TCP) |
POP3 |
110(TCP) |
SMTP |
25(TCP,UDP) |
Telnet |
23(TCP,UDP) |
TFTP |
69(UDP) |
Thunder |
15000(TCP) |
SOCKS |
1080(TCP) |
2) 基于负载内容的识别技术
与基于端口的识别技术不同,基于负载内容的识别技术依据出现在应用层数据中的特征来指导识别。通常由应用产生的数据包中提取其特征,然后依据这些特征对网络数据包的应用数据进行特征匹配,从而实现应用识别。与基于端口的识别技术相比,它在解析完协议首部后,要对应用数据内容进行深度扫描,所以传统上也称为DPI技术(Deep Packet Inspection深度包检测技术)。近些年来,不少应用已经不能仅仅依靠一个单一特征字符串进行判别,而需要利用多个字符或字符串联合匹配以实现应用类型的准确识别。但是总体而言,该方式依旧是较为精准的细粒度判别方法。可以直接识别出具体是何种应用而不是仅仅识别到所使用的协议。例如可以使用该方式将所截获的数据包分类到Bittorrent、Bitcomet、Utorrent,而不仅仅是P2P协议。
DPI的识别精度高,是当前流量识别的主流方法。但也存在以下明显的缺点:
1)DPI需要较高的处理和存储能力;
2)对于经过加密算法处理后的用户数据,数据流的字符特征就不固定,所以DPI方式一般不能识别加密流量;
3)应用特征提取困难。应用特征的准确与否是DPI能否有效识别和分类网络流量的关键性因素。然而,目前的字符特征提取主要依靠手工提取,费时、费力、工作量大,而且需要反复地验证和评估,特别是在新应用和应用新版本更新频繁的情况下,能否及时准确地更新特征库成为影响DPI系统竞争力的关键性因素之一,这也是传统DPI特征提取方式的弊端;
4)随着所提取的特征字符数量的大幅上升、特征字符表达方式的多样、同一应用不同版本特征之间的相关性等因素的影响,使得特征的归类和管理日益复杂;
5)DPI只能识别那些已经提取出特征的应用流量,而无法识别其他未知的流量。
3) 基于数据流统计特征的识别技术
基于数据流统计特征的识别,针对的是在负载内容中无法提取特征的应用,是对基于负载内容的识别技术的有效补充,主要运用于加密流量分析的场合。
数据报文在网络传输过程中,如果其应用数据被加密了,那么在它们的负载内容中无法提取相应的特征,这时只能通过分析数据流中数据包的交互序列、数据包长度、上下行流量、流量比等信息,进行应用类别的判断。因为这种识别技术主要是利用数据流相关信息进行应用的识别,所以也被称为DFI技术。
基于数据流统计特征的识别技术虽然能识别数据加密的应用,但它也存在着许多问题:
1)特征不可信:与基于负载内容的识别技术一样,基于数据流统计信息的识别技术也需要提取相应特征,但因为网络环境的复杂性和差异性,在某一网络环境中提取的应用特征在另一个网络环境中并不一定生效:
2)误识别风险比较大:因为网络环境的复杂性和特征的不可信,基于数据流统计信息的识别技术存在误识别的风险。应用B的网络流量可能匹配上了应用A的特征,导致应用B的网络流量误识别为应用A。
针对上述三种识别技术,下表对三种技术进行了一次对比:
表2:三种识别技术的优劣对比
识别技术 |
准确性 |
识别粒度 |
识别速度 |
端口 |
低 |
粗 |
快 |
负载内容 |
高 |
细 |
慢 |
统计特征 |
中 |
中 |
慢 |
由上表可以看出,基于端口的识别技术虽然准确率比较低,但是对于常见的端口其识别的速度是最快的;基于负载内容的识别技术的识别效果最好,但是它所花费的时间资源都比较多,并且对于加密过的流量难以总结出其中的规律,此时需要使用基于统计特征的方法。本次设计将综合运用前两种技术。对于常见的基于端口的应用,可以最先识别出来,然后对剩下的流量进行DPI分析得出应用软件的特征,以此来识别后续的应用。
参考文献:
[1] TCPDUMP amp; LIBPCAP.[Online]. Available: http://www.tcpdump.org, 2008.
[2] Wireshark. [Online]. Available https://www.wireshark.org. 2015.
[3] Snort. [Online]. Available https://snort.org. 2015.
[4] Roesch M. Snort: Lightweight Intrusion Detection for Networks. LISA. 1999, 99(1): 229-238.
[5] Hypertext Transfer Protocol. [Online]. Available: https://tools.ietf.org/html/rfc2616. 2009.
[6] 欧良;基于流量分析的应用识别系统研究与实现[D];湖南大学;2013年.
[7] 牟澄;互联网流量特征智能提取关键技术研究[D];北京邮电大学;2014年.
- 文献综述(或调研报告):
目前常见的三种软件识别技术各有优劣,下面对这三种软件识别技术的优劣进行简单对比:
1) 端口识别法
基于端口的识别技术是通过解析网络数据包中的端口信息进行应用的识别。数据包的抓取主要是借助Wireshark或Tcpdump完成,而端口检测只需要对所捕获的数据包的指定字段进行识别和分析,这种分类技术的时间和空间复杂度都较低,可以实现流量的高速分类。同时,几乎全部的传统应用、部分P2P应用协议(尤其是早期的P2P软件)都使用IANA所分配的划定端口进行网络通信,所以该分类方式在早期的流量分类领域中有较高的准确率。但目前的许多新业务 (尤其是P2P应用)为了能有效穿越防火墙,普遍釆用动态端口技术(随机分配应用端口,而不是使用IANA所固定分配的端口号),如Bittorrent,Thunder等应用软件;此外,端口伪装技术将目标应用的数据封装在传统应用数据中,目前大量应用数据被封装在 HTTP 或者 HTTPS数据包中。这些反检测技术的广泛釆用使得传统的端口识别方法不再有效,识别精度也迅速下降,一般情况下仅能对约40%的互联网流量进行有效识别。尽管如此,由于高效和快速地识别网络流量是高速网络首要考虑的问题,所以,基于固定端口的识别法依旧被广泛的用于网络流量的识别,尤其是在高速的骨干网络流量识别中。但是单独使用基于端口的识别技术对流量进行分类的情况已经较少出现,该技术主要是作为其他识别技术的一种补充。下表列出了一些常见的端口及其对应的应用名称。
表1:应用软件与其对应端口号
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。