基于IXP2850的异常流量检测模块的设计与实现

2011-09-07 10:16黄河涛谢胜利
计算机工程与设计 2011年7期
关键词:数据包时延流量

赖 粤, 黄河涛, 谢胜利

(华南理工大学电子与信息学院,广东广州510640)

0 引 言

异常流量检测是网络流量工程的一个重要课题。它通过对网络流量特征的提取和分析,从而发现其中的行为偏离,为系统对已经发生或者即将发生的非法行为做出反应提供依据和预警,可以防止网络设施(如路由器、服务器、交换机和网络带宽)遭受蠕虫病毒、拒绝服务攻击和一些网络滥用行为的袭扰[1]。近几年,融合网络和视频、语音型服务的不断普及,使得互联网的规模不断扩大,复杂性不断增加,随着而来的网络安全问题也愈发的突出与复杂。非法网络行为往往隐藏在越来越庞大的网络流量行为中,其突发性和隐秘性让异常流量检测面临极大的挑战。

网络处理器(network processor,NP)是一种针对若干类通信领域任务而开发设计的可编程器件,比如路由查找、QOS、安全网管等,与其他同类器件相比,其具有更强的针对性和更高的灵活性[2]。目前提供网络处理器的厂商有很多,比较有代表性的是Intel的IXP系列和IBM的PowerNP,而前者在国内得到比较广泛的研究和应用。随着网络处理器的推广,基于这类器件的安全应用也逐渐受到国内外研究人员的关注。

本文提出了一种基于Intel第二代网络处理器IXP2850的异常流量检测模块的设计和实现方案。该模块主要分为两大部分:流量信息的采集和流量信息的分析,利用IXP2850系统结构多层并发的特点,实现在千兆线速的网络环境下对流信息的实时监控。该设计解决了线程交叉复杂而造成的资源冲突问题,并通过实验探讨距离运算结合本地资源监控的异常流量分析方法,对于网络处理器在安全领域的运用推广有积极的促进作用。

1 相关工作

1.1 流量的采集与分析

网络流量异常检测要解决的核心问题之一是获得流量信息的全面性和流量信息描述的准确性[3]。目前使用最为广泛的网络安全检测的采集方法是基于网络探针的采集方法,通过在总线安插探针,监听并接收经过监测点的每一次通信,数据收集范围可从数据链路层到应用层。但是这种方法采集数据量庞大,无论对采集还是分析系统的要求都比较高,并不适和高速设备的实时检测。另外一种较为常用的方法是基于网络流的数据采集方法,通过抓取流经路由的网络数据包的TCP/IP信息,整理成流信息,不涉及网络高层,这样虽然影响了全面检测,但是却极大的降低了对系统的要求而不失对网络流量的直观分析。

数据分析方面,近几年,研究人员对网络异常流量及其分析方法进行了广泛的研究,提出了基于不同方法的检测方案和构架,主要有以下几种[4]:基于统计学的异常检测、基于数据挖掘的异常检测和基于机器学习的异常检测等。其中,文献[5]提出通过改进型的CUSUM算法实现实时监控端口流量,并通过均值的比对检验异常情况;文献[6]提出利用熵对网络流量的数据包报文进行特征分析,能够获得较好的大流量异常检测效果和无监督学习分类;文献[7]提出通过对用户网络流量进行统计,获得用户的行为模式,利用这种模式进行行为识别,为入侵检测提供一种新思路。

1.2 网络处理器IXP2850

IXP2850是Intel公司IXP系列的第二代网络处理器,功能强大设计灵活而受到国内外研发人员的青睐。它具有16个1.4GHz的微引擎(ME),1个700MHz的32位嵌入式处理核心(XScale),并且集成了哈希、加解密、原子操作等硬件功能。每个ME内部可支持8个硬件线程,多个ME之间可并行操作,这可使系统设计者在硬件资源和软件构架之间更灵活的搭配。主要存储资源包括便笺寄存器(Scratchpad)、DRAM、SRAM,如表1所示[8]。

表1 存储资源

表1中,Scratchpad属于芯片内部资源,容量最小,访问时延短,支持原子操作,适用于各ME之间或者ME与XScale之间的同步协作。SRAM和DRAM属于芯片外部资源。通过网络处理器提供的接口实现资源共享。SRAM访问时延介乎中间,支持原子操作。DRAM访问时延较大,不支持原子操作,但是能够不通过ME直接与MSF进行数据交换,以提高数据的吞吐量。

结合IXP2850批处理能力强的特性,本异常流量检测模块采取基于网络流的数据采集方法,采用行为距离运算和本地资源监控相结合的分析方法,在以IXP2850为核心的路由平台上实现对网络流进行分析检测。如何保证模块的融入既不影响系统的线速,又能提供有效的检测是设计和实现的重点。

2 系统的设计与实现

2.1 系统总体构架设计

利用Intel提供的互联网交换可移植构架(IXAsoftwareportability framework),可以构建以 IXP28XX为核心的适用于OC-3~OC-192多种线速下的路由、安全网关等网络节点系统。异常流量检测模块将建立在上述的路由系统中,整体构架与路由系统相一致,分3层:管理层、控制层和数据层。管理层负责人机交互、策略管理;控制层负责异常检测以及分析、策略管理、数据结构管理;数据层负责数据采集和策略的执行。其中控制层和数据层部署于网络处理器,而管理层部署于远程主机,如图1所示,两者通过socket进行信息交换。

图1 系统构架

本文异常检测模块的核心集中在控制层和数据层,数据层面需要进行大量的读写和查找操作,部署于ME;控制层需要进行灵活控制和深度计算,部署于 XScale,两者通过Scratchpad进行控制命令交换、通过SRAM进行数据交换。其中,控制层主要包括异常检测构件、安全策略管理构件、特征库管理构件和数据库管理构件,统称异常检测内核组件。数据层的主要构件为流量采集整理微模块(Microblock),由2个ME并行执行。模块涉及的主要数据结构有:

(1)流计量数据库:每个存储条目记录一条正在传输的网络流的信息,包括时间戳、IP层源/目的地址、端口号、协议类型、流量、传输状态、数据包数量、网络层开销、传输层开销,应用层协议状态记录。数据库表的头部为每个线程预留空间存放已更新条目的地址和状态,提高XScale读取信息效率。

(2)统计数据库:每个存储条目记录一个终端的一定周期内作为源地址和作为目的的地址的网络流统计,包括计时、总字节数、网络层速率、网络包数、TCP连接数、TCP半连接数、端口数、IP数、危险端口数、TCP协议数、UDP协议数、ICMP协议数以及TOPN统计数,XScale通过对流计量数据库中流信息进行周期性整理,并存储于统计数据库中,以进行运算分析。

(3)特征数据库:每个存储条目记录已知的用户不同时段的行为特征,管理员可以对其进行修改。

这3个数据库都由XScale创建和维护,其中 (1)存放于SRAM,(2)、(3)存放于 DRAM。

可移植框架的实现方式是在微引擎上和XScale上开发的代码模型。基于ME上开发的代码模块为微模块,使用Intel公司提供的Developer Workbench开发环境,使用微代码来进行编程;而XScale上的为核心组件,使用基于ARM平台嵌入式操作系统开发工具,使用C语言进行编程。

当一个数据包抵达网络处理器时,异常检测模块对数据的处理流程如图2所示。接收微模块将抵达的数据包从MSF转入DRAM后,并通过在SRAM生成数据描述符(Metadata)定位和传递数据包。图2中,系统通过设定全局参数使每个ME执行相应的微模块,并以一定的顺序组织起来,而XScale上执行着与微模块相对应的内核组件(图2中并未标示其他内核组件),在接收数据包后经过分类、采集、整理、路由、队列等处理,由发送微模块将数据包封装转发。

图2 异常检测处理流程

2.2 流量采集整理微模块的设计与实现

流量采集整理微模块由两个相邻ME0:2和ME0:3并行执行,16个线程以循环的方式进行数据操作,并通过Scratchpad2与 XScale完成计时同步。图2中,①当数据包到达时,该微模块通过Metadata中的定位信息,前往DRAM读取网络封装信息。②进行协议分析之后,基于网络地址、端口号、协议类型中的某些元素进行哈希寻址,记录包信息。每个线程记录数据包信息的同时,区分3种情况:(a)通过同步计时确定当前流是否超时;(b)通过记录的状态信息确定当前流是否已经结束;(c)是否覆盖原有的流信息,对3种情况加以标记,最后将更新条目的地址和标记存放于表头中该线程对应的存储空间 (更新空间);当某线程存满自有更新空间时,通过Scratchpad1发送中断通知XScale读取。提高该微模块的效率是提高整个流量检测系统吞吐量的关键所在。以64B的以太包(全文以下均用以太包做实验分析)为例,流量采集整理微模块处理每个包所占的最大工作周期T为

式中:n——并行执行程序的ME数。而实际程序执行过程中,每个线程不可能达到硬件资源的100%利用,所以实际最大工作周期小于。流量采集整理微模块处理一个64B数据包最差情况消耗大约4500时钟周期。

2.3 异常流量内核组件的设计与实现

异常流量内核组件在专有的执行引擎上运行,以软件多线程的形式执行数据库的管理、安全策略的执行、数据的分析检测以及与管理界面的交互。图2中③根据Scratchpad1发送的中断请求到指定地址读取指定线程的更新空间,进而根据更新空间地址读取对应的流计量信息,当固定周期内未收到中断请求时,内核组件顺序读取每个更新空间;通过计时获取每次读取更新空间的时间 m,m是整个系统资源的集中体现。④按照管理指令对特征库的数据进行删除、添加或者修改;通过统计数据库内的信息进行统计分析,生成用户行为特征,或者对原有特征进行修正,同时保持特征数据库与管理界面特征表的同步更新。⑤将流计量信息整理存入统计数据库,获得一段时间内两通信终端基于网络层和传输层的网络行为记录;对存入信息进行横向分析,并与特征数据库进行比对。如果把 ME上运行的微模块看成数据处理的快通道,那么XScale上运行的异常流量内核组件就是数据处理的慢通道,信息数据从收集到分析完毕是整个系统的反应时间。针对信息收集,我们的设计形成了一个从ME到XScale的动态通道:以流计量数据库为信息中转中心,ME与XScale分段统计,利用快慢通道的特性,当流量异常时,更新空间的更新速度加快,通过Scratchpad1进而增加XScale访问更新空间的频率,当流量趋于平缓时,XScale愈趋于平缓,如此非常有利于数据库的维护和减少线程的访问冲突。

内核组件在数据库生成基于用户IP的统计集合,每一个IP所关联的统计集合为I(S,D),其中S={}是该IP为源地址时的统计集,D={}为目的地址时的统计集。S和D有独立的计时空间,则每一次访问该统计集合时可以计算时间周期P',当P'≥P的时候,对该条目进行一次距离运算。以统计集S为例,定义有

式中: ——t时段的用户某类特征参数,于是定义的距离运算为

表2 S统计集

距离d越大,采样时间内用户行为与正常行为差异越大,源地址偏差一般是攻击行为异常,而目的地址偏差一般是承受攻击异常。目前网络充斥的蠕虫、DDOS等攻击在传输层会形成一定的表征,与用户的正常行为有较大的偏差,但是仅依靠一两个统计参数进行判定准确率太低、针对性过强,因此采用类似均方差运算来判别,加入权值函数,一方面通过加入系统资源参数来优化系统检测率,另一方面加大一些特征函数的权重以提高系统对DDOS和蠕虫攻击的检测灵敏度。当异常流量出现时,内核组件对异常用户进行标记,并通过socket向管理层发出警报信息,等待管理层返回的安全策略加以执行。

3 实验结果与分析

通过控制终端,我们分别将未整合和整合了异常流量检测模块的基于IXP2850的路由系统装载于硬件并运行,使用Spirient公司生产的TestCenter依次对系统进行测试,分析系统性能。测试主要集中于系统的吞吐量变化、时延、异常流量检测的反应和精确度。

对系统的吞吐量测试是通过TestCenter模拟一个局域网的结构,在10Gbit/s的理论线速下,从最小以太包开始逐级加大流量和加大包长直到系统丢包为止,得到系统在各种环境下的最大处理数据包能力以及数据包处理时延。测试结果吞吐量如图3所示,时延如表3所示。

图3中灰色方柱表示理论速率,黑色方柱表示实际测速率。在系统整合异常检测模块之前,吞吐量性能的主要瓶颈有数据包的接收、路由查找、数据包发送3处,小数据包增加路由查找的消耗,大数据包则增加接收和发送的消耗,所以整合前系统最高速率大约在8.4Gbit/s(约4M个256B数据包)。整合之后,增加的瓶颈在于数据包封装的解析和信息收集,数据包越多对系统影响越大,所以当数据包大小集中在64B的时,检测模块对系统有影响,最高速率约6Gbit/s(约9.6M个64B数据包),而随着数据包的增大,异常检测模块对系统吞吐量影响消失。

图3 吞吐量测试

表3 最小时延测试

如表3所示,随着流量的增大,最小时延和最大时延微量递增,而平均时延在最大流量是有明显增大,主要原因存在于查表冲突的增加和队列开销增大。时延大小是网络系统的重要指标,直接影响着接入网络的性能,另一方面也影响着系统存储资源的规划。

图4 模拟蠕虫攻击

图4为TestCenter模拟蠕虫攻击的实时统计,其中图中上部分曲线为包含各类应用层协议的流量统计,下部分曲线为参与蠕虫攻击的用户统计。将系统接入模拟攻击网络中,对攻击行为进行检测,通过比对IP的方法,在其余参数值不变的情况下,考察时间粒度P的变化规律,结果如图5所示。

图5 关于时间粒度P的实验结果

时间粒度P是系统对攻击反应时间的主要影响因素,突发性的流量攻击是本系统的主要检测对象,此时要求时间P越小越好,但是另一方面P值越小,系统的计算压力就越大,反而会影响系统的性能,所以可以通过调整参数,在检测精确度允许的情况下,获得尽可能小的P。

4 结束语

本文结合网络处理器IXP2850设计实现了一种基于用户行为距离运算和本地资源监控相结合的异常流量检测模块。采用多线程并行的方式提高系统采集流量信息的效率,设计了一种分级统计的方法,解决因多线程引起的资源冲突和实现复杂的问题,在系统吞吐量、最小时延、反应速率上比一般的采集-分析双系统的结构方式有较大的优势。嵌入到路由系统后,对蠕虫、泛洪攻击的检测反应快,准确度高,提高了整个路由系统的安全性。优化分析算法,进行多分类的研究和实现是笔者下一阶段的工作方向。

[1]顾荣杰,晏蒲柳,邹涛.基于统计方法的骨干网异常流量建模与预警方法研究[J].计算机科学,2006,33(2):92-96.

[2]张宏科,苏伟,武勇.网络处理器原理和技术[M].北京:北京邮电大学出版社,2004:22-30.

[3]周颖杰,胡光岷,贺伟淞.基于时间序列图挖掘的网络流量异常检测[J].计算机科学,2009,36(1):46-50.

[4]Patcha A,Park J M.An overview of anomaly detection techniques:existing solutions and latest technological trends[C].Elsevier Computer Networks,2007,51(12):3448-3470.

[5]孙知信,唐益慰,程媛.基于改进CUSUM算法的路由器异常流量检测[J].软件学报,2005,16(12):2117-2123.

[6]Lakhina A,Crovella M,Diot C.Mining anomalies using traffic feature distributions[C].Philadelphia,Pennsylvania,USA:Proc of ACM SIGCOMM,2005:9-20.

[7]缪红保,李卫.基于数据挖掘的用户安全行为分析[J].计算机应用研究,2005,22(2):105-107.

[8]Intel Crop.Intel IXP2850 Network Processor Hardware Reference Manual[Z].2004:1-3.

猜你喜欢
数据包时延流量
冰墩墩背后的流量密码
二维隐蔽时间信道构建的研究*
张晓明:流量决定胜负!三大流量高地裂变无限可能!
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
寻找书业新流量
5G承载网部署满足uRLLC业务时延要求的研究
基于GCC-nearest时延估计的室内声源定位
C#串口高效可靠的接收方案设计
简化的基于时延线性拟合的宽带测向算法
五位一体流量平稳控制系统