作 者:王明华
摘要:网络流量异常指网络中流量不规则地显著变化。网络短暂拥塞、分布式拒绝服务攻击、大范围扫描等本地事件或者网络路由异常等全局事件都能够引起网络的异常。网络异常的检测和分析对于网络安全应急响应部门非常重要,但是宏观流量异常检测需要从大量高维的富含噪声的数据中提取和解释异常模式,因此变得很困难。文章提出一种分析网络异常的通用方法,该方法运用主成分分析手段将高维空间划分为对应正常和异常网络行为的子空间,并将流量向量影射在正常子空间中,使用基于距离的度量来检测宏观网络流量异常事件。
关键词:主成分分析;流量分析;异常检测
Abstract:Networktrafficanomaliesand significant changes in the network traffic are unusual. The reason for network anomalies are local security events such as network flashing, Distributed Denial of Service (DDoS) and large-scale network scanning, as well as global security events such as anomalies in routing. It is very important for Computer Security Incident Response Teams (CSIRTs) to detect and analyze network anomalies. Anomalies are detected from large amounts of high-dimensional noise-rich data, which, because of their huge number, make anomaly detection very difficult. This paper proposes a general method based on Principal Component Analysis (PCA) to analyze network anomalies. The method divides the traffic matrix into normal subspace and anomalous subspace, maps the traffic vector into normal subspace, gets the distance from detected vector to average normal vector, and detects anomalies based on that distance.
Keywords:principalcomponentanalysis; traffic analysis; anomaly detection
公共互联网正在社会生活的各个领域发挥着越来越重要的作用,与此同时,由互联网的开放性和应用系统的复杂性所带来的安全风险也随之增多。2006年,国家计算机网络应急技术处理协调中心(CNCERT/CC)共接收26 476件非扫描类网络安全事件报告,与2005年相比增加2倍,超过2003—2005年3年的总和。2006年,CNCERT/CC利用部署的863-917网络安全监测平台,抽样监测发现中国大陆地区约4.5万个IP地址的主机被植入木马,与2005年同期相比增加1倍;约有1千多万个IP地址的主机被植入僵尸程序,被境外约1.6万个主机进行控制。
黑客利用木马、僵尸网络等技术操纵数万甚至上百万台被入侵的计算机,释放恶意代码、发送垃圾邮件,并实施分布式拒绝服务攻击,这对包括骨干网在内的整个互联网网络带来严重的威胁。由数万台机器同时发起的分布式拒绝服务攻击能够在短时间内耗尽城域网甚至骨干网的带宽,从而造成局部的互联网崩溃。由于政府、金融、证券、能源、海关等重要信息系统的诸多业务依赖互联网开展,互联网骨干网络的崩溃不仅会带来巨额的商业损失,还会严重威胁国家安全。据不完全统计,2001年7月19日爆发的红色代码蠕虫病毒造成的损失估计超过20亿美元;2001年9月18日爆发的Nimda蠕虫病毒造成的经济损失超过26亿美元;2003年1月爆发的SQL Slammer蠕虫病毒造成经济损失超过12亿美元。
针对目前互联网宏观网络安全需求,本文研究并提出一种宏观网络流量异常检测方法,能够在骨干网络层面对流量异常进行分析,在大规模安全事件爆发时进行快速有效的监测,从而为网络防御赢得时间。
1 网络流量异常检测研究现状
在骨干网络层面进行宏观网络流量异常检测时,巨大流量的实时处理和未知攻击的检测给传统入侵检测技术带来了很大的挑战。在流量异常检测方面,国内外的学术机构和企业不断探讨并提出了多种检测方法[1]。
经典的流量监测方法是基于阈值基线的检测方法,这种方法通过对历史数据的分析建立正常的参考基线范围,一旦超出此范围就判断为异常,它的特点是简单、计算复杂度小,适用于实时检测,然而它作为一种实用的检测手段时,需要结合网络流量的特点进行修正和改进。另一种常用的方法是基于统计的检测,如一般似然比(GLR)检测方法[2],它考虑两个相邻的时间窗口以及由这两个窗口构成的合并窗口,每个窗口都用自回归模型拟合,并计算各窗口序列残差的联合似然比,然后与某个预先设定的阈值T 进行比较,当超过阈值T 时,则窗口边界被认定为异常点。这种检测方法对于流量的突变检测比较有效,但是由于它的阈值不是自动选取,并且当异常持续长度超过窗口长度时,该方法将出现部分失效。统计学模型在流量异常检测中具有广阔的研究前景,不同的统计学建模方式能够产生不同的检测方法。
最近有许多学者研究了基于变换域进行流量异常检测的方法[3]。基于变换域的方法通常将时域的流量信号变换到频域或者小波域,然后依据变换后的空间特征进行异常监测。P. Barford等人[4]将小波分析理论运用于流量异常检测,并给出了基于其理论的4类异常结果,但该方法的计算过于复杂,不适于在高速骨干网上进行实时检测。
Lakhina等人[5-6]利用主成分分析方法(PCA),将源和目标之间的数据流高维结构空间进行PCA分解,归结到3个主成分上,以3个新的复合变量来重构网络流的特征,并以此发展出一套检测方法。此外还有一些其他的监测方法[7],例如基于Markov模型的网络状态转换概率检测方法,将每种类型的事件定义为系统状态,通过过程转换模型来描述所预测的正常的网络特征,当到来的流量特征与期望特征产生偏差时进行报警。又如LERAD检测[8],它是基于网络安全特征的检测,这种方法通过学习得到流量属性之间的正常的关联规则,然后建立正常的规则集,在实际检测中对流量进行规则匹配,对违反规则的流量进行告警。这种方法能够对发生异常的地址进行定位,并对异常的程度进行量化。但学习需要大量正常模式下的纯净数据,这在实际的网络中并不容易实现。
随着宏观网络异常流量检测成为网络安全的技术热点,一些厂商纷纷推出了电信级的异常流量检测产品,如Arbor公司的Peakflow、GenieNRM公司的GenieNTG 2100、NetScout公司的nGenius等。国外一些研究机构在政府资助下,开始部署宏观网络异常监测的项目,并取得了较好的成绩,如美国研究机构CERT建立了SiLK和AirCERT项目,澳大利亚启动了NMAC流量监测系统等项目。
针对宏观网络异常流量监测的需要,CNCERT/CC部署运行863-917网络安全监测平台,采用分布式的架构,能够通过多点对骨干网络实现流量监测,通过分析协议、地址、端口、包长、流量、时序等信息,达到对中国互联网宏观运行状态的监测。本文基于863-917网络安全监测平台获取流量信息,构成监测矩阵,矩阵的行向量由源地址数量、目的地址数量、传输控制协议(TCP)字节数、TCP报文数、数据报协议(UDP)字节数、UDP报文数、其他流量字节数、其他流量报文书、WEB流量字节数、WEB流量报文数、TOP10个源IP占总字节比例、TOP10个源IP占总报文数比例、TOP10个目的IP占总字节数比例、TOP10个目的IP占总报文数比例14个部分组成,系统每5分钟产生一个行向量,观测窗口为6小时,从而形成了一个72×14的数量矩阵。由于在这14个观测向量之间存在着一定的相关性,这使得利用较少的变量反映原来变量的信息成为可能。本项目采用了主成份分析法对观测数据进行数据降维和特征提取,下面对该算法的工作原理进行介绍。