特殊网络流量识别综述
2018-09-13曹诗敏王娟
曹诗敏 王娟
摘要:特殊网络是指与传统的客户端/服务端结构不同或者使用了特殊技术或工具形成的网络,前者以P2P网络为代表,后者以匿名网络、僵尸网络等为代表。这类网络相较传统网络更加高效、隐蔽、目的性强,难以用传统方法进行监管,带来了一系列管理和安全问题。传统流量识别技术不能有效应对特殊网络的流量识别,针对特殊网络的流量识别成为网络管理及网络安全领域新的热点。本文首先简要介绍传统网络的流量识别技术;进而介绍三种常见的特殊网络以及对应的流量识别技术,其中重点介绍目前Internet中最成功的公共匿名通信网络,即Tor网络的流量识别进展及存在问题。
关键词:特殊网络;流量识别;P2P网络;僵尸网络;匿名网络;Tor
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2018)17-0022-05
Abstract: The special network is different from the traditional client/server structure, with which formed by using the special technologies or tools, the former is represented by the P2P network, the latter is represented by anonymous network and botnet. Compared with traditional network, the special network is more efficient, covert and purposeful, and it is difficult to analysis with traditional methods, resulting in a series of management and security problems. The traditional traffic identification technology cannot effectively deal with the traffic identification of special network, and the traffic identification of special network becomes a new hot spot in network management and network security fields. Firstly, this paper introduced the traffic identification technology of traditional network, then three common special network, and the corresponding traffic identification technology were introduced, which focused on the most successful public anonymous communication network of Internet, namely the progress and existing problems of Tor network traffic identification.
Key words: the special network; traffic identification; P2P network; Botnet; anonymous network; Tor
1 引言
網络流量分析是有助于维护网络持续、高效和安全运行的一种手段,它广泛应用于网络管理中的安全监控和服务质量的改善[1],常见的产品如入侵检测系统(Intrusion Detection System:IDS)、防火墙、流量控制设备、负载均衡设备等也都和流量分析技术直接相关。对网络流量的分析可以很好地了解网络的运行规律,同时分析网络应用产生的流量以了解应用的运行情况。其次,流量分析还是了解网络用户的网络行为的重要途径,每个网络用户的网络行为都是相互影响的,同时会对网络的运行产生影响,用户在网络中的每个网络行为都伴随着网络流量的产生,通过对用户的网络流量的分析能够直观地了解用户的网络行为。在了解正常网络运行情况的基础上,可以进一步发现网络中存在的异常,异常的网络行为也都具有可统计的流量特征,如感染的蠕虫病毒、安装了木马程序等,都可以通过流量分析及时的发现网络用户的这些异常网络行为,从而有效的应对各种网络和应用问题。
近几年来,互联网应用由传统应用如HTTP、SMTP等占主导地位转变为各种新型网络应用。随着对等网络(Peer to Peer:P2P)各类应用的使用逐渐增多,以及在全球范围内加密流量的不断增加,用户的个人隐私保护和网络安全意识逐渐增加,安全套接层(SSL)、安全外壳协议(SSH)、虚拟专用网(VPN)等技术也大量应用于互联网。加密协议的良好兼容性和可扩展性使得采用加密技术越来越简单。但是,传统的信息加密技术能够实现对传输内容的保护,却不能很好的隐匿通信双方的身份信息、地理位置和通信模式等信息[2],匿名通信技术[3],[4]随之被提出,匿名网络逐渐被应用匿名网络提供的匿名性使得对该类网络服务的监管难度加大。互联网技术发展为网络用户提供了便利性的同时,也打开了网络恶意活动的大门,僵尸网络就是其中一种。由此,各类技术的发展使得特殊网络的存在也越来越广泛,通过网络流量分析来对网络行为进行监管就具有了重大意义。
2 传统的流量识别方法
目前,主要的流量识别技术可以划分为以下几类,即基于端口号的流量识别方法、基于深层包检测(Deep Packet Inspection:DPI)的流量识别方法、基于行为特征的流量识别方法和基于流特征的流量识别方法。下面分别介绍这四种流量识别方法。
2.1 基于端口的流量识别方法
一些典型应用常用的传输层协议和端口号是固定的,根据这类信息来识别流量是最简单的一类流量识别方法。此类方法依据互联网地址指派机构(IANA)指定的端口映射表[5],IANA将端口分为三类:
(1)熟知端口(well known ports):由IANA分配给TCP/IP最重要的应用程序,端口范围在0~1023。
(2)注册端口(registered ports):这类端口号是为没有熟知端口号的应用程序使用的。使用这类端口号必须在IANA按照规定的手续登记,以防止重复,其端口号范围为1024~49151。
(3)短暂端口(ephemeral ports):这类端口仅在客户进程运行时才动态选择,它是留给客户进程选择暂时使用,其端口号范围为49152~65535。
端口号映射的方法实现起来较简单,只需要分析到数据包的传输层,识别开销小、速度快,该方式在以往应用服务种类不多的情况下较为实用。由于防火墙等访问控制技术的屏蔽了很多未授权的端口,很多协议都使用了常用端口以避开防火墙,同时,随着网络规模的快速增长,尤其是P2P网络的大量应用,使得用户数据的类型增多,众多进程启用了大量的随机端口,这些因素都对使用端口号来识别流量非常不利。
2.2 基于DPI的流量识别方法
基于DPI的流量识别检测[6]又叫基于载荷特征的流量识别方法,是一种基于应用层的流量检测技术,它利用模式匹配算法[7]搜索流量的有效载荷中的特征值以识别各种不同的应用层协议,根据各协议特有的模式特征确定流量所属协议类型,分析出各应用层协议的特有特征是实施DPI方法的关键。
基于DPI的流量检测方法有效的弥补了基于端口号识别流量的不足,端口的变化不会影响检测率,也能够检测广泛使用的P2P应用[8]。这种方法不仅能够识别出使用单一连接进行通信的协议,而且还能识别出SIP、流媒体协议等基于会话协商的应用协议,此类协议通常是由控制和数据会话两部分组成,通信双方的数据端口是在控制会话中动态协商产生的,控制和数据会话使用的传输层协议是可能不同的。但DPI方法也有自身的缺陷,其一,该方法只能识别特征库中已有的协议,无法识别其他未知流量,对于新的协议需要分析其载荷特征将其加入特征库,才能对新的协议进行识别,这也就加大了实时载荷分析的难度;其二,对于加密的有效载荷识别率不高。
2.3 基于行为特征的流量识别
网络中的应用都具有不同的行为特征,根据不同的行为特征可以将其作为流量识别的方法。基于行为特征匹配的流量识别方法是通过观察网络应用的连接行为来匹配是何种应用,此方法不需要用到数据包的内容,所以即便数据包加密也不会受到影响。这种识别方法需要维护和匹配大量的启发式规则、无须解读数据包的负载、处理性能要求不高、具有新的流量特征发现能力、准确度也较高, 还能提醒用户检查那些疑似的病毒攻击流。但是这种方法需要大量流量进行离线分析,不利于实时识别和实际应用,此外该方法是利用应用流量的行为属性,可能会随着网络应用自身的改进而逐步失效[9]。
2.4 基于流特征的识别方法
基于流特征的识别方法不需要提取应用层协议的特征建立特征库,它不是对数据包的有效载荷进行分析,而是利用协议规范的不同造成的流测度的差异来区别各个协议,是针对数据流进行统计分析。通过建立数据流的特征模型并分析数据流的统计特征,如数据流中数据包的平均大小、到达时间、时间间隔等,依据这些特征对不同协议进行区分。
该方法可以有效地独立于基于端口信息和载荷特征的识别方法,即便是端口号和载荷特征发生了变化,但数据流的一些统计特性依然可以保持不变。目前,对数据流的统计、建模、分析可以采用机器学习的方法来对流量进行分类[10],[11]。机器学习算法分为三种,即有监督学习法、无监督学习法、半监督学习法。有监督学习方法目前使用最多的是用贝叶斯分类法、神经网络和遗传算法。无监督学习方法通常使用数据包长度、时间间隔、持续时间等作为分类特征,通过分类器进行学习,学习和分类的结果再作为下一次分类的评估标准,这种方法随着学习次数的增加有效的增加了分类的准确率。而半监督的机器学习方法不同于前面来年各种方法的是它的训练集中采用的是少量已标记的数据流样本和大量为标记的数据流样本。
根据流特征识别网络流量的方法需要收集历史的流量数据作为训练数据以建立分类模型,且不能处理数据包的丢失和重组,但是,该方法在识别流量中性能高、可扩展性好,还能识别加密流量。
3 特殊网络流量分析
3.1 特殊网络概述
特殊网络是指与传统的客户端/服务端(C/S)结构不同的网络,如P2P网络,也指那些使用了特殊技术或工具形成的网络,如匿名网络、僵尸网络等。下面将介绍提到的这三种特殊网络。
3.1.1 P2P网络
P2P(peer-to-peer)又称对等网络,它是一种新型的网络架构,相比于传统C/S结构的一个本质区别是该网络不存在中心服务器,P2P技术依赖网络中所有参与者的处理能力和信息共享,每一个节点可以同时具有信息消费者、信息提供者和信息通讯等三方面的功能。而在计算模式上,网络中的每个节点的地位都是对等的。每个节点既充当服务器,为其他节点提供服务,同时也享用其他节点提供的服务。P2P网络是对分布式概念的成功拓展[12],它将传统方式下的服务器负担分配到网络中的每一节点上,每一节点都将承担有限的存储与计算任务,加入网络中的节点越多,节点贡献的资源也就越多,其服务质量也就高。
目前,P2P技术主要应用在文件资源共享和下载、分布式计算、即时通讯、网络电视和网络游戏。
3.1.2 僵尸网络
僵尸网络(Botnet)[13]是网络安全面临的最严重威胁之一,也是当今计算机和网络安全领域最具挑战性的话题之一。僵尸网络是指攻击者通过传播僵尸程序控制大量主机,通过命令与控制信道与僵尸主机通信并发布命令形成的一个网络。攻击者利用Botnet可发起多种攻击,如分布式拒绝服务攻击(DDoS)、垃圾邮件、信息窃取等。随着Botnet的兴起,DDoS攻击得到了迅速的壮大和普遍的应用,DDoS攻击是利用服务请求来耗尽被攻击网络的系统资源,从而使被攻击网络无法处理合法用户的请求,它可以消耗大量的带宽,却不消耗应用程序资源,Botnet为 DDoS 攻击提供了所需的带宽和计算机以及管理攻击所需的基础架构。通过僵尸工具还可以在被感染的主机上发送垃圾邮件等,包括诈骗邮件,在一个Botnet和成千上万的僵尸工具的帮助下,攻击者可以发送大量的垃圾邮件。同时僵尸工具也可用數据包监听器来观察某一台已被攻陷主机上的明文数据[14]。监听器大部分被用于提取敏感信息,例如用户名和密码。如果一台主机不止一次被攻陷并属于多个僵尸网络,数据包监听还允许收集另一个僵尸网络的关键信息,因此偷窃另外一个僵尸网络得信息也是可能的。