摘 要 针对传统的IDS检测手段单一、误报率高的不足,研究如何在入侵检测中引入协作。提出了基于信息共享的协同入侵检测模型和算法。该模型独立于具体的系统,从而为通用的协同入侵检测系统提供了一个框架。协同入侵检测算法包括基于时间密度的抗噪声聚类算法和警报关联分析算法。在此基础上,实现了一个原型系统,并结合数据集测试方法对原型系统进行了测试,验证了模型和算法的可行性和有效性。
关键词 入侵检测;计算机支持的协同工作;CSCW1 介绍 随着入侵检测技术的发展和成熟,入侵检测系统已经成为安全防卫体系中一个重要的环节。对于有些IDS来说,对于某类攻击事件的危害结果只能反馈“非常严重”、“严重”、“中等”、“一般”等模糊的等级名字,而没有一个明确的界定和信息,这样就使用户很难了解某一个攻击事件究竟会对系统的哪些地方进行攻击、攻击到什么程度、可能会带来什么样的后果,即使用户知道一个攻击事件是严重的,也无法了解其具体细节,也就发有的放矢地采取具体的技术防范措施。这也是IDS产生大量报警信息,无法发挥其作用的原因所在。 为了增强IDS的有效性,分布式入侵检测得到了广泛的应用,它们通常具有多个检测单元,这些检测单元给出抽象层次比较低的警报,需要进行协同分析和综合,从而生成更高层次的警报。分布式入侵检测系统通常可以分为分布式多数据源采集和分布式多引擎协作式入侵检测,前者采用相同的检测引擎,但是在数据采集上进行多点采集,丰富了检测数据的来源;后者则采用不同的检测引擎,可以弥补单一引擎的缺陷和盲点,但是由于各个检测引擎的警报格式有差异,因此需要有相应的机制保证警报处理时的信息互享。上述两种分布式入侵检测都会带来一个同样的问题,即造成警报和日志的数量的海量增加。就目前的现状来看,IDS还不能做到完全的自动化,对于检测结果的最终确认必须有管理员的参与,而数量庞大的警报和日志往往超出了管理员的处理能力,因此必须找到办法来解决这一问题。2 协同入侵检测模型 “协同”最初是一个社会学的概念,更多地用于描述人与人之间的分工与协作。在实际应用中,通过恰当地划分工作并利用群体优势互补来做到这两点。人与人之间的协作比较容易理解:“尺有所长,寸有所短。”通过恰当地划分待完成的任务,根据各人的特长分配不同的工作,使每一项工作都能最好、最快地完成。这样不但能完成个人无法完成的工作,而且提高了工作效率。 相对而言,计算机系统之间的协作显得有些费解。虽然在理论上通用计算机系统可以通过安装所需的硬件与软件而实现所需的功能,但在设计与制造时出于成本的考虑,单个计算机系统的能力与可扩展性都是有限的。这使不同的计算机具有不同的计算能力,相应地适合不同的任务,也就在某种程度上具备“特长”。网络的出现使单个计算机系统之间可以共享资源,从而更进一步扩展了可利用的资源。基于网络的应用充分利用这一点,使联网的单个计算机系统发挥更大的作用。 具体到入侵检测系统,协作的意义在于多个检测组件通过协作能获得同样数量的相互独立的多个入侵检测系统所不能获知的信息,并在此基础上对信息进行进一步的提炼和取舍,从而达到更好的检测效果。本文提出了入侵检测协作的三个不同层次:通信协议的格式规范,多检测引擎的信息共享和基于知识的协同工作支持。如图1所示。 图1 入侵检测协作的三个层次 本文重点致力于信息共享的协作研究,提出了基于信息共享的协同检测模型。在检测模型中,“个体”是单个检测组件,而“群体”是由这些个体组成的“协同入侵检测系统”。图2给出了协同检测模型,它与传统模型最大的不同在于引入了协作服务:多个检测组件在协作服务的支持下检测入侵,达到比独立工作的多个入侵检测系统更好的检测效果。协同检测模型可以简单地划分成检测组件与协作服务两部分。图2中有两个检测组件,实际系统可以有更多检测组件。检测组件的特点之一在于与协作服务的接口,这使得检测组件是开放的——既可以接受来自协作方的数据,也可以为协作方提供数据,协作服务为检测组件提供协作服务,支持协同检测。 图2 协同入侵检测模型2.1 协作服务的内容
协作服务的内容主要包括: (1)可用数据与规则的检索。数据与规则集中存放在数据库中。这里提供的可用数据与规则检测功能并非面向用户,而是面向检测组件。 (2)计算数据相关性。当检测组件提出数据请求时,根据请求的数据描述,计算可用数据的相关性,将相关性满足需要的数据返回。 (3)转发协作请求。当数据库中没有可用的相关数据时,把数据请求转发给其它检测组件,由它们直接响应数据请求。对规则请求也作同样处理。 (4)维护待订规则表。当数据库中没有可用的相关规则,而且没有检测组件响应规则请求时,就把提求的请求添加到待订规则表,通知用户制订相应的新规则。2.2 信息共享方式
在协同检测模型中,检测组件之间通过协作服务来共享数据,组件间共享数据在改善检测效果的同时也会带来系统通信的额外开销。组件间的共享策略可以分为两种: 策略一:检测组件共享所有数据,如果检测组件IDC1与IDC2之间共享所有数据,这样的好处是数据最全,而问题在于通信开销也最大,同时IDC1与IDC2各自需要处理的数据量也最大,如果检测组件增加的话,处理的数据量呈爆炸性增长。 策略二:检测组件共享相关数据,如果IDC1与IDC2之间仅共享相关数据,则IDC1与IDC2之间通信开销以及各自需要处理的数据量都会明显减少,这样做需要解决的一个问题是如何提取数据的相关性,利用相关数据来提高分析的准确性和提高检测组件的处理效率。 无论是通信开销还是分析效率,第二种共享策略均有更优异的表现,因此本文在协同检测模型中采用第二种共享策略。结合第三章提出的攻击知识库,考虑到实时入侵检测对数据处理性能和迅速响应的要求,本文增加了特征分类一项,并通过谓词规则来表示和提取数据的相关性,从而能迅速定位相关数据。2.3 警报格式
由于各个检测组件使用的原始警报格式可能各不相同,有些检测组件的原始警报输出并不支持IDMEF[1]格式,因此本文定义了通用警报格式,用来表示事件和警报记录。alert ::= | <SID, CID, PRE_SIG, POST_SIG, SIG_CLSID, SIG_PRI, TIMESTAMP, IP_SRC, IP_DST, OS, PROTO, L4_SRCPRT, L4_DSTPRT, EVTINFO> | (1) |
3.1 体系结构
以IDS的一般结构为基础,考虑到协同检测的需要,原型系统采用基于组件的系统构建方法,图5给出了体系结构示意图,系统主要包括下述组件:• 检测组件(Intrusion Detection Component,IDC);• 协作管理器(Cooperative Manager,CM);• 入侵检测管理器(Intrusion Detection Manager,IDM);• 用户接口(User Interface,UI)。 图5 原型系统体系结构
[8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr />
3.2 入侵检测组件
检测组件IDC是协同检测系统最基本的工作单位,它实际上对IDS提供了一种封装,通过封装,提供了与协作管理器的统一接口。以SNORT为例,通过一个Wrapper程序将SNORT封装成一个IDC,这个IDC既可以完成与SNORT一样的检测功能,也可以与协作管理器交互,参与协作。原型系统使用的检测组件主要封装了BRO[3]、SNORT[4]和LERAD[5]三种IDS,以下对各个检测组件稍作介绍。3.2.1 BRO
从检测方法分类来看,BRO是基于网络的误用检测系统。BRO的核心是事件的生成和处理机制。事件的生成和处理机制与MFC比较相似。BRO系统预定义了一系列的基本事件,包括TCP连接的建立、结束等,同时也对这些事件注册了基本的事件处理函数。BRO提供一种类似于C++的编程语言,用户可以利用这种语言定义新的事件和相应的事件处理函数,同时也可以扩充预定义的事件处理函数。BRO本身有一些针对不同协议的事件处理插件,用户可以编写自己的事件处理插件。3.2.2 Snort
Snort是著名的开源NIDS,它是一个轻量级的入侵检测系统,具有执行即时流量分析的功能,可以执行特定协议的分析,检测缓冲区溢出、隐蔽式端口扫描、SMB探测、操作系统指纹测试等攻击行为。从分类来看,它是基于特征匹配的网络IDS,采用基于规则的工作方式,可以检测1000多种不同的入侵行为和探测活动,但是误报率也相当高。Snort同时也被用于本实验分析的基线。3.2.3 LERAD
LERAD也是一个出色的开源IDS,它是基于异常的网络入侵检测系统,需要通过学习不包含攻击的网络流量来生成用于检测的规则集,并以此作为实际检测的依据。3.3 协作管理器
作管理器是协作服务的提供者和协作策略的执行者,其功能在2.2中已经介绍过,这里不再赘述。3.4 入侵检测管理器
入侵检测管理器是协同检测系统的控制部件,负责管理数据、规则、日志和管理IDC,并与用户接口交互。入侵检测管理器可以有多个,相互之间互为备份,以应对入侵检测管理器失效的意外。3.5 用户接口
用户接口用来完成与管理员的交互,其功能是以图形化的方式显示安全状况,报告安全事件,以及响应管理员的操作,如维护规则与日志数据库等。4 实验结果与分析4.1 实验测试方法与攻击设计
实验采用了数据集测试方法,其优点在于可以由测试者自行设计测试环境和攻击方案。将1999年MIT Lincoln Lab一周的干净数据作为背景数据流[6],并作为LERAD的训练数据。考虑到MIT当时的测试数据中的攻击[7, 8]已经比较陈旧,因此重新设计了攻击方案,将两者合成作为新的实验数据集。测试环境如图6所示,分为内网和外网。内网和外网之间通过一台CISCO路由器连接。内网有一台机器用于回放不含有攻击流量样本网络背景流量,将之前生成的一周数据集作为网络背景流量。外网两台服务器作为自动攻击主机,运行攻击调度程序,最多可同时模拟40个攻击者对内网发起攻击。另有一台服务器作为手动攻击主机,模拟复杂的攻击行为。内网和外网各有一台主机运行Tcpdump记录内网外的数据流用于实验结果分析。内网有三台主机分别运行三个不同的IDC,封装了BRO、SNORT和LERAD三种不同的IDS。 图6 为了体现协同检测算法的有效性,实验中采取有区别的攻击实例设计,共设计了50余种攻击,每个攻击的实例也不相同,有些攻击基本是单会话的,有些攻击是多会话的,实验主要关注多会话的攻击。
4.2 实验结果分析
表2给出了不同IDS对不同攻击实例的警报数量,以及采用协同检测算法后的统计结果,限于篇幅,没有给出全部的攻击实例检测结果。 表3给出了实验中各个IDS的检测率和误报数统计,以及采用协同检测算法后的数据对比。通过表2和3,容易看出,采用协同检测算法后大大减少了警报的数量,特别是误报数量。图7绘出了ROC曲线图并标出了各系统的工作状态点,以SNORT系统为基准。图7 ROC曲线图 分布式低频扫描是一个典型的多点攻击。通常攻击者控制多台主机,而且这些主机的地址相关性很小,从这些主机上发起扫描,其目标可能是一个网段内随机选定的几台主机。与普通扫描不同的是,每一主机所扫描的目标主机端口号并不连续,而且两次扫描的较长,这样可以逃过大部分IDS的检查。为了测试协同检测算法对分布式低频扫描攻击是否有效,本文也设计了相应的攻击场景。在攻击过程中,产生的操作是攻击者控制的主机a1 , a2 …, am发起的到目标主机t1 , t2…, tn的连接如表4所示。 上表中任意kij个随机端口均可能不同,而且在时间上间隔可能较大,各攻击主机之间的扫描通常是并行的,因此没有特定的时序关系。但是,对任意目标主机ti,攻击主机a1到am肯定覆盖了攻击者感兴趣的端口,它们通常是那些可能存在漏洞的系统服务所使用的端口。对于任意目标主机ti,协同入侵检测系统记录到的网络数据如下: 这些数据如果独立来看,只能说明存在连接企图。在对历史数据进行相关分析后,就可以发现实际上这些连接是分成多步进行的分布式端口扫描中的一步。进一步将对多个目标主机的连接企图按相关性放在一起,就知道扫描的目标主机范围,图8给出了对于垂直扫描和水平扫描的检测,限于将庞大检测数据作图的困难,这里只给出了一个C网段的检测结果示意图。 图8 分布式低频扫描检测5 结论与进一步的工作 本文针对现有IDS警报数量多而不精的不足,提出了基于信息共享的协同检测模型和协同检测算法并实现了一个原型系统。原型系统采纳多个不同检测引擎作为分布式检测组件,通过协作服务,对不同来源的警报信息进行聚合和关联分析,最终生成抽象层次更高,更具有概括性的警报信息。最后采用数据集测试方法原型系统进行了测试,验证了模型和算法的可行性和有效性,实验测试结果表明,采用协同检测算法的协同检测系统有效地提高了检测率,降低了误报数量,特别是对分布式慢扫描等攻击有较好的检测效果。 在实验中我们也发现了在进一步工作中有待改进的问题。关于攻击,因为实验中大部分攻击都是自动完成的,当攻击者获得目标主机的特权后,自动攻击机会返回成功标志,作为一个真实的攻击者必然会周密的实施进一步的入侵行为,但是自动攻击程序目前无法进行这些工作,尚需要手动完成。 如何精确的标定攻击仍是一个需要解决的问题,如今的方式通过控制时间窗大小来进行,如果可以进一步精确标定攻击,那么结果会更加精确。目前采用的以三元组加时间窗口为主的方法会有一些遗漏。 特征分类虽然不是算法的一部分,但却是非常重要的一环,无论是聚合还是关联分析都会使用到,因此分类的准确性直接影响最后输出警报的准确性。目前扫描类的特征分类已经比较完善,但是其他一些类的特征分类有待进一步改善。参考文献
[8]电大学习网.免费论文网[EB/OL]. /d/file/p/2024/0424/fontbr />
相关文章:
谈电信产业技术政策的选择04-26
光突发交换中的突发业务流模型及其应用04-26
浅析中国电信产业改革04-26
经济全球化与中国电信产业营销创新战略04-26
中国电信产业的规制效率分析04-26
我国电信产业SWOT分析04-26
中国电信产业失信惩戒机制研究04-26
浅谈电信产业的经济特点及其改革重组04-26