欢迎来到学术参考网

一种改进的攻击场景构建模型

发布时间:2015-07-09 11:30
摘 要 攻击场景是指入侵者为达到入侵目的所采取的一系列攻击步骤。目前的攻击场景重构方法只基于入侵检测系统的报警消息,漏报和误报严重影响了攻击场景的准确重构。提出了证据支持度的概念,将日志关联融合到攻击场景重构的过程中,提出了一种新的攻击场景重构模型,有效地提高了攻击场景重构的准确度。
关键词 网络安全;报警关联;攻击场景

0 引言

随着计算机技术,特别是网络技术的不断发展,人们的工作效率得到极大提高。同时,由于网络的开放性和系统的漏洞带来了安全方面的问题:病毒的传播能够造成系统的崩溃、信息的丢失甚至整个计算机网络的瘫痪;黑客对信息系统的攻击会造成机密信息、个人资料的泄漏和丢失,造成难以估计的损失。对于日益严重的安全问题,必须采取相应的措施,才能够保证计算机系统的安全,将可能的损失减到最小。
要能够及时准确地发现入侵企图,必须要知道入侵者的具体入侵步骤,单纯依靠入侵检测系统低级且数量众多的报警信息是不现实的。因此必须基于已有的入侵检测系统和众多的日志系统重构入侵者的入侵步骤,使管理员和响应系统能正确理解入侵目的,做出正确的反应。
本文采用了根据入侵检测报警的前提条件和可能后果进行攻击场景重构的方法[1]。然而,由于该方法在重构过程中只是基于入侵检测报警,入侵检测系统的误报和漏报会严重影响该方法的准确程度。根据特定入侵行为会在不同的日志中留有不同痕迹的事实,以及关联多种日志能提高入侵检测准确率的可能性,我们对该框架和方法进行了扩展,增加了日志事件、证据支持关系和证据支持度的概念,将特定入侵行为与特定的日志事件关联起来,采用证据支持度来评价重构后的攻击场景中攻击步骤的正确性,同时根据异常日志事件来推断可能漏报的入侵行为,合并被漏报分离的攻击场景。

1 总体结构

我们采用多台收集、集中分析的办法,将每台主机的入侵检测系统(网络入侵检测系统和主机入侵检测系统)的报警信息和系统日志(操作系统和应用程序日志)集中发送到取证机进行保存和分析。在取证机上进行单台主机的攻击场景重构和分布式攻击场景重构。为了保证通信的安全,各主机与取证机之间的通信必须基于安全通信协议。
不同的入侵检测系统的报警格式不同,要让它们协同工作,必须制定统一的报警信息格式。网络入侵检测系统和主机入侵检测系统都采用统一的入侵检测消息交换格式(IDMEF)。

2 基本原理

由于入侵检测系统的漏报和误报,单纯依靠入侵检测系统报警信息进行攻击场景重构的准确率不高。而入侵者会在不同的日志文件中留下异常痕迹,我们将报警信息与对应的不同日志关联起来。对于可能的误报,用日志异常证据来评价重构后的攻击场景,验证可能的误报。对于可能的漏报,根据异常日志所对应的可能报警在多个攻击场景之间进行匹配。

3 攻击的前提条件和后果

我们采用[1]中提到的关联报警信息重构攻击场景的方法,使用谓词来表示攻击的前提条件和后果。
例如:攻击者在利用FTP的漏洞进行攻击前,连接到FTP服务器,使用SYST命令获取操作系统信息。这个动作被入侵检测系统发现后报警。那么这个攻击的前提条件可以用谓词ExistService(DestIP,DestPort)来表示,表明在地址为DestIP的主机上的DestPort端口存在服务。后果可以用谓词GainOSInfo(DestIP)来表示,表明攻击者获得了该主机的操作系统信息。
当攻击的前提条件需要同时满足多个条件时,采用多个谓词的合取式来表示这些条件。例如:攻击者利用wu-ftpd的漏洞进行缓冲区溢出攻击,这个攻击的前提条件可以表示为ExistService(DestIP,DestPort)∧VulnerableFTP(DestIP)。表明该主机存在FTP服务,同时存在有FTP缓冲区溢出的漏洞。

4 超报警类型(Hyper-alert Type)

由于同一种报警可能发生多次,我们使用超报警类型表示特定报警和其前提条件以及可能后果的关系类型,而使用超报警类型实例来表示具体的报警信息。
定义1:超报警类型T是一个三元集(f,p,c)
f是一组属性的集合,每个属性有其域值;
p是一组谓词的合取式,其中的自由变元都属于f;
c是一组谓词的集合,其中的自由变元都属于f
超报警类型描述了攻击的类型。其中f是报警时的相关信息(时间、IP地址和端口号等),p是攻击要成功必须成立的条件,c是攻击发生后可能的后果。
定义2:超报警类型对应的超报警实例h是一组元组有限集合。它基于超报警类型的属性集合f,同时h中每一个元组t对应与特定的时间段[_time, _time], _time和_time为时间戳。所有的元组必须保证前提条件p的成立。
定义3:对超报警类型T = (f,p,c)来说,将所有在前提条件集合p中出现的谓词的集合表示为前提条件集P(T),同样的将后果集合c中出现的谓词的集合表示为后果集C(T)。对应于类型T的实例h,将P(T)和C(T)中的自由变量赋以h中元组对应的属性值,分别记为P(h)和C(h)。
定义4:准备关系。对超报警实例h1和h2来说,如果存在p∈P(h2),C⊆C(h1),集合C中的任一元素c满足_time早于_time,并且集合C中的所有谓词的合取式能够满足p,那么我们认为h1为h2作了准备,即prepare for关系。h2是h1的后续攻击步骤。

5 对攻击场景构建框架的扩展

5.1 对超报警类型的扩展

由于入侵者的入侵行为会在不同日志中留下痕迹,因此关联众多日志数据能够提高入侵检测的准确度,降低误报和漏报率。基于此,我们对超报警类型[1]进行扩展,提出了日志事件和证据支持关系的概念,将超报警类型与特定的日志事件关联起来,从而对重构好的攻击场景进行评价和验证,消去误报的入侵步骤,同时猜测漏报以合并攻击场景。
定义5:日志事件类型Audit_Event_Type = (Audit_Name, Audit_Level),其中Audit_Name是日志源类型,Audit_Level是日志事件的级别。不同的日志条目映射到不同的日志事件类型。
其中Audit_Name∈{ AUTH , CRON , DAEMON , FTP , LPR , MAIL , NEWS , SYSLOG , UUCP , WEB , FIREWALL}
Audit_Level∈{ Emerg , Alert , Crit , Err , Warning , Notice , Info , Debug }
日志事件的类型和级别的分类参考了Syslog的设备分类和级别分类。Syslog中的日志条目可以直接映射到日志事件类型。Audit_Event_Type中级别和分类都包含了Syslog的级别和分类。其他的日志则要做转换,如Apache的日志access_log和error­_log则归为WEB类。
定义6:日志事件Audit_Event = ( Audit_Name, Audit_Level, timestamp),timestamp是时间戳,Audit_Name和Audit_Level定义同上。
所有的日志文件在增加一条日志记录时都会附加一个时间戳,因此,任何日志文件中的记录都可以转化为日志事件。
定义7:证据类型E = {Audit_Event_Type1 , Audit_ Event_ Type2, …, Audit_Event_Typen},其中Audit_Event_Typei ( i=1 ... n )是日志事件类型。表示日志事件类型的集合。
定义8:证据支持关系R = (T, E),T为超报警类型,E为证据类型。E为T的证据,当类型为T的超报警实例h发生时,证据E中包含的日志事件类型会同时发生。

5.2 证据支持度

定义9:证据支持度S = f(t),定义为超报警实例h中的元组t的函数。证据支持度反映了在时间段[_ time,_time]内,t的超报警类型所对应的证据类型中日志事件的存在情况。
我们在这里定义两种证据支持度,S1和S2。其中,S1用于攻击场景重建后误报攻击的消去,S2用于多个攻击场景之间猜测漏报的选取。
命题1:入侵事件的发生一定会导致伴随其发生的日志事件的发生。
对于已知的入侵事件,我们可以准确地指定伴随该事件肯定发生的日志事件。假设命题1成立,命题1的逆否命题为,如果伴随该入侵事件的日志事件没有发生,则该入侵事件并未发生。
如果命题1成立,根据入侵检测系统的报警信息所对应的证据类型,我们就能够判断攻击是否真的发生。
定义10:证据支持度S1 = f(t),如果在时间段[_time,_time]内,t的超报警类型T所对应的证据类型E中的所有日志类型事件都存在,则S1=1,否则,S1=0。
对于入侵检测系统漏报的入侵可以分为两种情况:已知攻击的变种和未知的攻击。已知攻击的变种多少与原有攻击有共同点,伴随其发生的日志事件也有共同点。我们可以用证据类型所对应的日志事件发生的比例来评价变种攻击的可能性。
定义11:我们定义N1为发生在时间段[_time, _time]内,且属于t的超报警类型T所对应的证据类型E的日志事件的类型总数,定义N2为t的超报
警类型T所对应的证据类型E中的日志类型总数。
证据支持度

6 攻击场景图的生成

我们采用无环有向图来表示重构后的攻击场景。攻击场景图的生成分为三步。
1) 根据超报警类型的前提集和后果集生成初始攻击场景图的集合。
2) 对于初始攻击场景图中的每一个攻击场景图,计算其中各个节点(攻击步骤)的证据支持度,消去可能的误报。
3) 判断攻击场景图之间可能的漏报,进行猜测。
定义12:攻击场景图G = (Node,Edge)是一个无环有向图。Node是节点集合,Edge是有向边集合。节点n定义为(h,t,S1),h是超报警类型实例,t是h中的元组,S1是证据支持度。当节点n1中的超报警实例为节点n2中的超报警实例作了准备,那么就添加一条从n1到n2的有向边。n1叫做n2的前向节点,n2叫做n1的后向节点。
以美国国防部高级计划研究署(Defense Advanced Research Projects Agency, DARPA)2000年提供的入侵检测场景数据集(LLDOS1.0)为例,可以构造如下的场景图。
图1 攻击场景图(LLDOS1.0)
图1中,Email_Almail_Overflow是误报的报警,我们采用算法1来消去误报结点。入侵者能够采用发送特征串的办法,引诱入侵检测系统发布大量的误报,从而掩盖其真实攻击行为,而误报所对应的攻击并未真实发生。因此,采用证据支持度来消去攻击场景中的误报很有必要。
算法1:攻击场景图G中误报结点的消去
1) 对攻击场景图G中每个节点计算其证据支持度S1,考虑所有S1=0的节点
2) 消去没有前向节点且证据支持度S1=0的节点
3) 消去没有后向节点且证据支持度S1=0的节点
4) 对于剩下的S1=0的节点,分情况讨论:
a) 如图2,若删去该节点导致攻击场景图分裂,则保留该节点。
b) 如图3,若删去该节点攻击场景图仍然连通,则删去该节点。
图2 关键攻击节点
图3 非关键攻击节点

7 漏报的猜测和攻击场景的合并

由于攻击场景的构建是基于入侵检测系统的报警信息,因此关键攻击的漏报会将完整的攻击场景分为多个攻击场景(见图2)。但是目前入侵检测系统的漏报和误报又是无法避免的,因此如何猜测可能的漏报,将多个攻击场景综合成一个场景成为关键点。

Sadmind_Ping

Sadmind_Amslverify
_Overflow

Rsh

Mstream_Zombie

Stream_DoS

Email_Almail_
Overflow


对于入侵检测系统的漏报来说,分为已知攻击的变种和未知攻击。我们不考虑未知攻击的情况,只考虑已知攻击的变种。由于已知攻击的变种攻击与原有攻击存在着共同点,伴随其发生的日志事件也有共同点。在用猜测的攻击将两个攻击场景联系起来后,我们用证据支持度S2来进行评估。

中提到了采用间接准备关系来构造所有超报警类型的关联图,然后在两个攻击场景之间进行漏报猜测的办法。这种方法能够比较完整地猜测出大部分漏报的攻击。但是构造超报警类型关联图的计算量很大,尤其是当超报警类型的数量本身就很庞大时。

图4 漏报攻击的猜测
我们假定攻击场景G1和攻击场景G2在时间上不重叠,G1先于G2发生。从攻击场景G1到攻击场景G2只经历一次攻击步骤的准备,我们不考虑漏报多次攻击步骤的情况。假设一个入侵检测系统的漏报率是20%,那么连续两次漏报的概率就是4%。
算法2:两个攻击场景G1和G2之间漏报的猜测。假设漏报集合为FS,G1中的所有超报警类型的后果集为CS,G2中所有超报警类型的前提集合为PS。G1中结点数为Num(G1),G2中的节点数为Num(G2)。
1) 漏报集合的生成
FS = {超报警类型实例h | h的超报警类型T的前提条件集P(T)⊆CS ∧ h的超报警类型的后果集C(T)⊆PS},h的时间段为
2) 漏报集合的缩减
计算漏报集合FS中的超报警实例的证据支持度S2,删去S2为0的超报警实例。
算法3:攻击场景G1、G2的合并
如图4,以漏报集合FS中的超报警实例为候选漏报连接G1和G2。将集合FS中的超报警实例表示为bi (i = 1 ... |FS|),G1中的超报警类型实例为ai (i = 1 ... Num(G1)),G2中的超报警实例为ci (i = ... Num(G2))。
则合并的过程可以表示
Merge (G1, G2)
{
for (i = 1 to Num(G1)) do
{
for (j = 1 to |FS|) do
if ai prepare for bj
then 增加一条由ai至bj的有向边
}
for (i = 1 to |FS|) do
{
for (j = 1 to Num(G2)) do
if bi prepare for cj
then 增加一条由bi至cj的有向边
}

图5 攻击场景的合并

8 结论

本文提出了基于日志关联的攻击场景重构模型。这个模型是基于[1]的工作,采用攻击步骤的前提和后果来重构攻击场景。受到工作的启发,我们在[1]的基础上加入日志关联的思想,将特定超报警类型与相应的日志事件关联起来,提出了证据类型和证据支持度的概念,在重构攻击场景后,利用计算出来的证据支持度消去攻击场景中可能的误报,随后猜测位于多个攻击场景之间的可能漏报。

参考文献

[1] Peng Ning, Yun Cui, Douglas S. Reeves, Constructing Attack Scenarios through Correlation of Intrusion Alerts, ACM CCS02, 2002
Peng Ning, Building Attack Scenarios through Integration of Complementary Alert Correlation Methods, in Proceedings of the 11th Annual Network and Distributed System Security Symposium (NDSS ‘04), pages 97--111, February, 2004
C. Abad, Log Correlation for Intrusion Detection: A Proof Concept, In Proceedings of the 19th Annual Computer Security Applications Conference (ACSAC2003), 2003

上一篇:存储区域网络SAN架构下管理软件的研制

下一篇:IPv6与IPv4隧道技术的编程模拟