中南大学学报(自然科学版)

基于分布式网络入侵检测系统的研究及其实现

 王小玲, 李 凌, 赵 可

(中南大学 信息科学与工程学院, 湖南 长沙, 410083)

摘 要:

络入侵检测系统局限性的基础上,提出一个基于模式匹配误用检测技术的分布式网络入侵检测系统模型。该模型可用于应用层协议分析,提高了检测精度;采用协议流分析技术,减少了检测时间与误报率;采用中断会话和防火墙联动,可实现主动响应;在主体智能协作与负载平衡上考虑了其分布式的特性;在Linux环境下构建基于实时智能协作引擎的原型系统,验证该模型的特性。

关键词: 入侵检测; 网络入侵检测系统; 实时智能协作引擎

中图分类号:TP306+.2; TP309.5 文献标识码:A 文章编号: 1672-7207(2005)06-1074-05

Study & realization of the distributed network based intrusion detection system

WANG Xiao-ling, LI Ling, ZHAO Ke

(School of Information Science and Engineering, Central South University, Changsha 410083, China)

Abstract: After analyzing limitations of existing network-based intrusion detection system, the paper raised a distributed network-based intrusion detection system model, which is based on feature ranking misusing detection technology and can adapt well to existing network status. This model extends to application layer protocol analysis, so that, the precision of detection is improved; Protocol flow analyzer is adapted to shorten the detection interval and misinformation ratio; Session-halt and fire-wall are introduced to implement active-response. In order to validate features of the model, RICE-based raw system is built in Linux environment.

Key words: intrusion detection; network-based intrusion detection system; real-time intelligent cooperation engine

                    

NIDS[1](Network-based Intrusion Detection System, 基于网络的入侵检测系统)作为一种新型的网络安全技术, 通过对计算机网络中的若干关键点收集信息并对其进行分析, 从中发现是否有非法的入侵行为, 并对入侵行为做出报警、 记录、 阻断等反应。

NIDS一般采用基于模式匹配的误用检测技术。 它通过收集入侵行为的特征, 建立相关的入侵特征模式库; 入侵特征模式体现了那些导致安全突破或其他误用事件的特征、 条件、 排列和关系; 在后续的检测过程中, 将收集到的数据与模式库中的特征代码进行比较, 以判断是否为入侵。 采用这种方法进行检测准确率很高, 但是, 该方法对未知的攻击效果很差。

当前网络发展趋势是高速化、 交换化、 复杂化, 这对NIDS提出了新的要求。 RICE(Real-time Intelligent Cooperation Engine, 实时智能协作引擎)是一个具备许多新特征的基于模式匹配误用检测技术的分布式网络入侵检测系统模型。 传统NIDS的局限主要体现在以下几个方面:

a. 网络拓扑的局限。 传统NIDS只能从网络的某一个关键点采集数据。 对于一个较复杂的网络攻击者可以通过构造报文逃避NIDS的检测。 例如: 通过设置IP选项中的源路由项, 指定报文传输路径, 选择一条没有部署NIDS的路径, 直接到达目标主机; 利用NIDS的MTU(Maximum Transmission Unit, 最大传输单元)与受保护主机的MTU之间的差异, 设置报文MTU处于目标主机与受保护主机两者之间, 并不允许分片, 使NIDS采集到的数据报与受保护主机收到的数据报不一样, 从而绕过NIDS的检测, 等等。,

b. IP(Internet Protocol, 网际协议)具有分片重组的局限。 利用IP分片躲避NIDS检测的方法主要有: 分片覆盖、 分片重写、 分片超时等[2]。 例如: 入侵者将TCP(Transmission Control Protocol, 传输控制协议)报文头部分散在多个分片中, 这样, 目的端口号可以包含在第2或者第3个分片中, 如果NIDS缺乏处理IP分片的能力, 就无法进行正常的检测, 这些分片在目标主机上重组之后将形成各种攻击。 此外, 如果NIDS在分片组装时存在漏洞, 那么, 异常的分片会使NIDS崩溃。 例如: 正常的IP分片重组后不会超过65535个字节, 但如果攻击者恶意构造IP分片, 使其重组后大小突破这个限制, 就会导致NIDS在分片重组时崩溃。

c. 检测方式的局限。 传统的NIDS在分析网络数据报时, 大多只分析到TCP/UDP(Transmission Control Protocol/User Datagram Protocol, 传输控制协议 / 用户数据报协议)协议层就开始检测入侵, 这样, 不细致的协议分析导致检测引擎需要匹配大量冗余规则。 例如: 假设有一个TCP报文只包含HTTP攻击代码, NIDS只分析到它是TCP报文, 于是, NIDS只能把检测TCP报文所需要的规则全都匹配1遍, 严重降低了NIDS的性能和准确率。 传统的模式匹配检测方法把网络数据报看作是无序的字节流, 它不会对网络数据报的内容进行分析, 对于网络中传输的图像或音频流等没有攻击威胁的数据报同样进行匹配, 极大地增加了检测引擎需要匹配的数据量。 此外, 由于模式匹配具有许多劣势, 系统很难检测一些变体攻击。 例如: 在CGI攻击中利用UNICODE编码, 将‘cmd.exe’变为‘%c0%63md.exe’以躲避检测。

1 RICE分布式网络入侵检测模型

RICE实时智能协作引擎模型是一个遵循CIDF标准[3]的基于模式匹配误用检测技术的分布式网络入侵检测系统模型, 它由数据采集模块(可能有多个)、 入侵检测模块(可能有多个)、 安全知识库、 综合控制模块、 事件响应模块、 信息存储模块组成, 如图1所示。 其中, 模块基本上可以理解为一个程序, 它独立运行并完成相应的功能。 各个模块之间采用CIDF的公共入侵规范语言和通信机制实现协作。

图 1   RICE模型系统结构图

Fig. 1   System structure diagram of RICE Model

数据采集模块属于CIDF中的事件产生器部分, 负责截获网络中的原始数据报, 为系统提供信息来源。 可以在一个大型网络中不同位置配置多个数据采集模块, 为系统提供全面的数据。 同时, 它还要接受综合控制模块的管理与调度, 以便有组织地向上级检测分析模块发送数据, 实现负载平衡。

入侵检测模块属于CIDF中的事件分析器部分, 采用基于误用的模式匹配检测方法对数据采集模块提供的数据进行分析, 从中发现入侵行为, 并产生报警和应急信号分别发送给事件处理模块和信息存储模块。

安全知识库保存了所有已知入侵过程的特征、 条件、 排列以及能够具体描述入侵行为的迹象。 本系统采用Snort的入侵行为描述方法, 它使用规则[4](Rules)来描述网络上带有攻击标识的数据报。

综合控制模块是本分布式系统的调度中心, 它采用CIDF规范的通信标准和公共语言与系统其他各模块建立联系, 合理分配系统资源, 选择发布告警信息, 选择存储系统事件; 同时, 也为用户提供一个友好的实时监控、 功能配置界面。

事件响应模块是CIDF中的响应单元部分, 是对确认的入侵行为采取相应措施的子模块。

信息存储模块是CIDF中的事件数据库部分, 用来存放各种中间数据和最终数据。

在一般情况下, RICE模型中的数据采集模块和入侵检测模块运行在同1台计算机上(称为检测器), 并且多个检测器共同维护一个安全知识库; 综合控制模块作为控制中心单独运行在一台计算机上; 事件响应模块和信息存储模块运行在同一台计算机上。 此外, 可以将多台检测器部署在网络的不同关键节点上, 并由控制中心统一调度管理, 实现分布式入侵检测。

2 RICE模型分析及实现

RICE系统的检测流程如图2所示。

图 2   RICE系统检测流程

Fig. 2   Detection flow of RICE

2.1 高速数据采集及数据预处理

多数NIDS使用通用的报文采集库libpcap来获取网络上的数据报。 这种方法的优点是可移植性强, 稳定、 可靠, 但是, 当将其应用到NIDS系统中时, 其效率过低。 因而, 本系统采用Linux2.4内核中提供的PF_PACKET类型的套接口(Socket)直接从链路层获取数据帧。 此外, 还须将网卡的工作模式设为混杂模式, 以捕获所有流经网卡的数据报。

捕获的数据报在数据预处理部分还要进行IP分片重组, 这是通过调用Linux内核的分片重组功能实现的, 其函数接口为ip_defrag( )。

如果是HTTP协议的数据报, 还将使用字符解码器(来自于Snort2.0中的HTTP Decode预处理器)将其转化为没有歧义的ASCII码字符串, 防止利用字符串变体逃避检测。

2.2 应用层协议分析

在传统NIDS的网络层和传输层协议[5]分析的基础上, 本模型进一步拓展到应用层协议分析, 大幅度地减少了需要匹配的数据量, 使得检测引擎做到有的放矢, 提高了检测精度。 具体实现方法见图3。

a. 在图3中, 由以太网帧格式可知, 该以太网数据报中第13字节处包含2个字节的第3层协议标识。 系统跳过前面12个字节, 读取第13字节处的2个字节协议标识“0800”, 根据以太网协议规范判断这是一个IP报文。

b. IP协议规定, IP报文的第24字节处有1个字节的第4层协议标识。 系统跳到第24个字节读取标识“06”, 表明这是一个TCP报文。

c. TCP协议规定在第35个字节处有1个2字节的应用层协议端口号标识, 于是, 系统跳到第35个字节读取端口号标识“80”, 表明这是一个HTTP协议的报文。

d. HTTP协议规定第55个字节是URL开始字节。 于是, 系统调用安全知识库中关于URL入侵的规则从报文的第55个字节处开始进行匹配。

图 3   以太网帧格式

Fig. 3   Frame format of Ethernet network

2.3 协议流分析

网络数据流中有相当一部分是可信赖的, 本模型采用协议流分析技术[6]剔除这部分信息, 从而节省检测时间, 同时也减少误报率。

目前, 协议流分析主要针对HTTP流。 来自HTTP服务器的响应信息(包含5%的报文头部和95%的数据负载)称为服务流, 来自客户端的请求信息称为客户流。

在HTTP通信中, 服务流占据HTTP总流量的95%, 剩下的5%是客户流。 通常认为来自一个受保护服务器的服务流的数据负载部分是可信赖的, 这样, 系统需要检测的流量不到HTTP总流量的10%(5%的客户流和小于5%的服务流报文头部)。 在一个典型的企业级网络中, HTTP流量占网络总流量的75%, 经过HTTP流检测后, 需要检测的总流量降为32.5%, 可以认为入侵检测系统的性能提高了2倍以上。

具体分析方法是: 检查传输协议是否为TCP协议; 检查源端口是否为Web端口而目的端口是否为非Web端口; 判断数据负载的前4个字节是否为“HTTP”, 如果是, 那么, 这个包就是HTTP响应头部, 应该进行检测; 如果不是, 那么, 这个包就是无需检测的HTTP数据负载, 可以忽略。

虽然采用这种方法可能会导致HTTP响应头部的漏检, 但是, 通常HTTP服务流都是安全的, 而且性能和效率明显提高。

2.4 主动响应

主动响应是指系统在检测到入侵时, 能够主动地切断该连接, 阻止入侵继续进行。 传统NIDS只具备报警形式的被动响应技术, 不能阻止入侵。

本系统的主动响应功能包括中断会话和防火墙联动2种方式。

中断会话主要是针对TCP连接而言的, 当系统发现TCP报文中包含恶意特征时, 就会向通信的两端(攻击者与被攻击者)各发送一个TCP Reset包, 从而实现主动切断连接的目的。 此时, 通信双方的堆栈将会把这个Reset包解释为对方一端的回应, 停止整个通信过程, 释放缓冲区并撤销所有TCP状态信息。 而在此时, 攻击数据报还在被攻击者操作系统的TCP/IP堆栈缓冲区中, 并没有被提交给应用程序, 由于缓冲区被及时清空, 所以攻击不会发生。

防火墙联动是当NIDS发现攻击时, 自动将攻击者的信息发送给防火墙, 防火墙加载动态规则拦截入侵。 这需要入侵检测系统和防火墙系统各提供一个通信接口, 双方通过这对接口进行通信; 同时还需要一套安全可靠的通信协议。

2.5 主体智能协作与负载平衡

RICE作为一个分布式系统, 主要体现在主体协作和负载平衡功能上。

每个主体(即分布在网络上的各个检测器)监控整个网络的某一方面, 它们之间通过专门的协议进行协作通信。 当一个主体发现某报文可能含有攻击特征后, 它就将该报文打上可疑标记, 并广播通知其他检测器注意这个网络报文。 其他检测器分析这个数据报时, 如果也认为该报文可疑, 就提高其可疑标识级别, 并再次发出可疑广播; 如果认为该报文没有可疑, 那么不做任何处理。 这样, 如果该报文确实可疑, 那么它的可疑级别迟早会超过一个阈值, 促使系统发出入侵警告并予以记录; 如果该报文不含可疑信息(但是被某个检测器误检并提升了可疑级别), 那么, 它的可疑级别将随着时间的推移逐渐降低, 最后成为一个正常的报文。

主体智能协作能够克服交换网络环境下单个检测器收集网络信息不全面的弊端, 能够很好地对付分布式网络攻击。

负载平衡技术是通过控制中心将网络流量尽量平均地分配到各个检测器上, 从而使总体性能得到大幅度提高。 要实现负载平衡, 必须在同一网段部署多台检测器, 控制中心即时了解各个检测器的工作状况, 当某个检测器负担过重时, 通过专门的通信协议及时将数据转送到其他负载较小的检测器上。

3 实验结果与分析

这里将对RICE模型的原型系统性能进行测试。 测试环境说明如表1所示。 其中, 网络环境为100M交换。

表 1   测试环境说明

Table 1   Introduction of detection environment

表2所示为对RICE原型系统做的性能测试结果。 测试主要集中在以下3个方面: 零填充数据帧在不同帧长和网络负载情况下的检测性能, 在不同网络负载情况下的丢包率, TCP数据帧在不同帧长和网络负载情况下的性能。

表 2   对RICE原型系统性能测试结果

Table 2   Tested results on performance of ante type system of RICE

从测试结果可以看到, 具备高速数据采集及数据预处理、 应用层协议分析、 协议流分析等技术特征的RICE模型基本上实现了分布式入侵检测。

4 结 语

a. NIDS的性能瓶颈主要体现在报文采集性能和检测分析性能上。 RICE通过直接链路层访问大大提高了系统抓包性能; 通过应用层协议分析减少了不必要的规则匹配, 使模式匹配有的放矢; 通过协议流分析减少了需要分析的数据量, 从而提高了系统的整体性能。

b. RICE充分体现了分布式结构的优点: 通过遍布在网络各处的检测器可以全面地收集网络信息; 当系统性能不再满足网络环境需要时, 可以通过增加检测器的方法来解决; 通过检测器之间的智能协作, 可以有效地对付多元化的分布式攻击。

然而, RICE也秉承了分布式结构的缺点: 增加了管理复杂度, 需要额外的控制中心协调各个模块的工作; 需要妥善考虑各个模块间的通信安全。

c. RICE在一定程度上代表了NIDS的发展方向。

参考文献:

[1]蒋建春, 冯登国.网络入侵检测原理与技术[M].北京: 国防工业出版社, 2001.29-61.

JIANG Jian-chun, FENG Deng-guo. Principle and Technology of Network Intrusion Detection System[M]. Beijing: Press of National Defence Industry, 2001.

[2]Ptacek T H. Insertion, evasion and denial of service: eluding network intrusion detection[R]. Alberta: Secure Netuaorks Inc, 1998.

[3]韩东海, 王超. 入侵检测系统示例剖析[M]. 北京: 清华大学出版社, 2002. 31-36.

HAN Dong-hai, WANG Chao. Anatomy of Intrusion Detection System[M]. Beijing: Tsinghua University Press, 2002. 31-36.

[4]Snort. Snort Users Manual[EB/OL]. http://www.snort.org, 2004-03.

[5]Stevens W R. TCP/IP Illustrated. Volume1: The Protocols[M]. Beijing: China Machine Press, 2000. 24-38.

[6]SourceFire inc. Protocol Flow Analyzer[EB/OL]. http://www.sourcefire.com, 2003.

[7] IETF. IDWG[EB/OL]. http://www.ietf.org, 2004-03.

[8]SourceFire Inc. Intelligent Threat Mitigation & Response[EB/OL]. http://www.sourcefire.com, 2003-02.

[9]SourceFire Inc. Protocol Flow Analyzer[EB/OL]. http://www.sourcefire.com, 2003-02.

[10]Laing B. How to guide-implementing a network based intrusion detection system[EB/OL]. http://www.iss.com, 2002-12.

[11]Ilgun K. USTAT: A real-time intrusion detection system for UNIX[D]: Santa Barbara: University of California Santa Barbara, 1992.

[12]Ilgun K. State transition analysis: a rule-based intrusion detection approach[J]. IEEE Transaction on Software Engineering, 1995, 21(3): 181-191.

                    

收稿日期:2004-12-26

作者简介:王小玲(1957-), 女, 湖南长沙人, 教授, 从事数据库及网络安全研究

论文联系人: 王小玲, 女, 教授; 电话: 13618463671(手机); E-mail: jszx2@mail.csu.edu.cn

摘要: 在分析现有网络入侵检测系统局限性的基础上,提出一个基于模式匹配误用检测技术的分布式网络入侵检测系统模型。该模型可用于应用层协议分析,提高了检测精度;采用协议流分析技术,减少了检测时间与误报率;采用中断会话和防火墙联动,可实现主动响应;在主体智能协作与负载平衡上考虑了其分布式的特性;在Linux环境下构建基于实时智能协作引擎的原型系统,验证该模型的特性。