大规模网络安全态势分析中的报警关联规则挖掘全国网络与信息安全技术研讨会’,8007大规模网络安全态势分析中的报警关联规则挖掘孙艺峻,张宏莉,何慧(哈尔滨工业大学国家计算机信息内容安全重点实验室,黑龙江哈尔滨150001)摘要:针对大规模网络安全态势分析中报警关联的需要,提出了海量报警日志的多维关联规则挖掘算法MFP-growth,制定了一种有利于理解安全事件的关联规则模板,能够在最小支持度较低时,完成大规模报警日志的挖掘任务;并进行了报警的时间序列规则挖掘,发现复杂攻击事件中的攻击模式。实验证明,该文中方法能够有效实现大规模网络报警日志的关联挖掘,并对整体网络安全趋势分析提供可靠依据。关键词:报警关联;多维关联规则;MFP.growth算法;序列规则MiningAlertAssociationRulesinLarge.scaleNetworkSecuritySituationAnalysisSUNYi-jun,ZHANGHong·li,HeHui(NationalComputerIaformationContentSecurityKeyLaboratory,HarbinInstituteofTechnology,Harbin150001.China)Abstract:Ondenmndofalertsassociationinlarge-scalenetworksecuritysituationanalysis.thepaperproposedMFP-growthalgorithmminingmulti—dimensionalassociationrulesinlarge—scalenetworksecurityeventalerts,adoptedallassociationruletemplateinfavorofunderstandingthesecurityevents;asaresult,miningtaskinlarge-scaleeventalertscouldbedoneinafairlylowminilnunlsupport.11砖paperalsoincludedsequentialrulesminingofeventalerts.findingnetworkattackpaRemsincomplicatedsecurityevents.Experimentresultsshowthatmethodsinthispapercanaccomplishassociationmininginlarge-scalenetworksecurityeventalertsefficiently,offeringareliablebasistothewholenetworksecudtysituationanalysis.keywords:alertsassociation;multi-dimensionalassociationrules;MFP·growthalgorithm;sequentialrules1引言大规模网络安全态势分析是掌握宏观网络安全状态的必要手段,其中大规模报警日志的关联分析是网络安全态势分析的重要环节。基于关联规则挖掘的报警关联分析,可以自动的发现大范围网络安全事件报警的特征、发现复杂攻击模式,是一种智能性较强的解决方案。由于报警日志数目庞大,当最小置信度设置较小时,采用传统的关联规则挖掘算法必然导致频繁项集和关联规则数目的急剧膨胀,甚至超出系统瓶颈;而当最小置信度设置较大时,则会漏掉出现频率虽小但较有价值的规则。如何设置最小置信度,完成对大规模海量报警日志的关联挖掘,筛选出较有价值的规则,是一项非常有实际意义的工作。本文根据大规模网络安全态势分析需要,提出了一种有利于理解安全事件的关联规则模板,并将其嵌入到关联规则挖掘过程中,有效地降低生成频繁项集和关联规则的数目,并在最小置信度设置很低时,也能完成对较大规模报警日志的关联挖掘;同时,还进行了序列模式的挖掘来发现大规模分布式网络环境下复杂攻击事件中的攻击模式。本文的结构如下:第2节介绍相关研究工作;第3节描述大规模报警日志的关联规则挖掘;第4节是实验结果和分析;第5节是结论。2相关研究工作国外的一些学者近几年对报警关联做了相应的研究。PengNing等提出了一种基于先决条件的报警关联方法。攻击者的一次入侵通常通过一系列的攻击行为来完成,前面的行为所产生的结果,是后面行为执行的必需条件。如果先发生报警的结果与后发生报警的先决条件一致,则对两个报警进行关联。CuppensF等也提出了类似的方法。这些方法需要事先定义每种攻击类型的先决条件和后续结果,只能对已知攻击的报警信息进行关联,不能发现未知报警的特征和攻击模式。而基于关联规则挖掘的报警关联分析能够自动提取报警记录的特征,但是传统的关联规则挖掘算法如Apriori算法在最小置信度设置较小时不能适应大规模报警日志的挖掘,而当最小置信度设置较大时,容易漏掉重要的规则。关联规则挖掘结果中还有大量和安全态势分析无关的规则有待进一步的筛选。本文,根据大规模网络环境下安全事件传播特点,提出了海量多阶段报警日志关联挖掘算法,有效地解决了传统报警关联方法的不足。3海量报警日志的关联规则挖掘3.1MFP·growth关联规则挖掘算法关联规则挖掘被广泛的应用于交易事务数据库中,在报警关联领域中对应的数据仓库是各种安全组件的报警日志。安全事件报警日志是一个多属性的记录集,至少包括以下几个字段:时间、报警名称、目的IP、目的端口、源IP、源端口等。关联规则的挖掘主要有两个步骤:(1)通过用户给定的最小支持度(Min_Supp),寻找所有的频繁项目集。(2)通过用户给定的最小置信度(Min_Conf),在每个频繁项目集中寻找置信度不小于Min_Conf的关联规则。第一步的是关联规则挖掘的中心问题,是衡量关联规则挖掘算法性能的标准。为了满足大规模报警日志的挖掘任务,必须采用高效的算法。FP-growth算法是挖掘单维关联规则中效率较高的算法,它采用以下分治策略:(1)将提供频繁项集的数据库压缩到一棵频繁模式树fp-tree,仍保留项目集关联信息;(2)然后将这种压缩后的数据库分成一组条件数据库,根据已找到的频繁模式将原始大数据库分割成若干数据子集,并由局部频繁模式组合得到更长的频繁模式。由于使用了压缩的数据表达同时避免了候选项集的生成与检测,FP—growth在性能上比Apriori算法有显著提高。本文海量报警日志的多维关联规则挖掘算法MFP。growth是采用了单维FP—growth算法的基本思想,作了如下改进:(1)在用于表示记录项的FP树节点上增加了一个属性字段,来区分不同属性的节点;(2)在频繁项集增长阶段,检查频繁项集是否符合关联规则模板的要求,只生成符合规则模板要求的频繁项集,这样大大减少了频繁项集的数目。3.2关联规则模板的制定在完成频繁项集的挖掘后,根据频繁项集生成的关联规则中,参杂了大量用户不感兴趣的规则,因此需要对挖掘结果进行筛选。筛选的方法之一就是制定关联规则模板,只生成和安全态势分析有关的关联规则。下面举例说明。例l:频繁项集{IP_dst=206.71.77.2,Port_dst=80,IP_src=172.16.113.169}可产生的规则有:(1)IP_dst,Port_dst→IP_src(2)IP_dst,IP_src→Port_dst(3)IP_src,Port_dst→IP_dst(4)IP—dst→Port_dst,IP_src(5)Port_dst→IP_src,IP_dst(6)IP_src→Port_dst,W_dst规则1表示已知目的IP,目的端口,可推出源IP是什么,但是源IP到目的IP的报警并不知道。这类没有报警名称的规则用户显然是不太关心的。例2:频繁项集{IP_dst=206.71.77.2,Port_dst=80,IP_src=172.16.113.169,alam=_nameWEB_CGIcount.cgiaccess}可产生的规则有:(1)IP_dst,Port_dst,IP_src→alarm_name(2)IP_dst,Port_dst,alarm_name→IP_src(3)IP_dst,alarm_name,IP_src→Poa_dst(4)alarm_name,Port_dst,IP_src→IP_dst规则l表示已知目的IP,目的端口,源IP,可推知报警名称是什么;规则2表示已知目的IP,目的端口,报警名称,可推知报警源D是什么;显然这类包含报警名称的规则是用户更感兴趣的。在本文的MFP.growth算法实现中采用的关联规则模板定义如下:目的IP,源IP,⋯一报警名称[支持度supp,置信度conf,兴趣度interest]。一左边必须包括目的坤,源口;可以包括目的端12,源端口等属性;一右边只有报警名称这个属性。该关联规则的解释是,在出现“目的IP,源D,⋯”的前提下,可以得知安全事件的名称,推导出该规则的支持度,置信度,兴趣度分别是supp,conf,interest。定制的关联规则模板有两个好处:(1)只生成用户感兴趣的关联规则,避免大量无用的、冗余的关联规则干扰用户;(2)可以将定制的关联规则模板嵌入到频繁项集的生成过程,加快挖掘算法的收敛。3.3关联规则的评价评价关联规则最常用的标准是支持度和置信度,但是这两种评价标准有时并不能体现用户对一个关联规则的感兴趣的程度,所以加入兴趣度来评价关联规则的新颖程度。对于关联规则X=Y,支持度定义为:sup(X=y)=P(X∪Y);置信度定义为:conf(x=Y)=P(X∪Y)/P(X):兴趣度定义为interst(X=Y)=P(X∪Y)/P(X)*P(Y)关联规则兴趣度是规则的简洁性、确定性、实用性和新颖性的度量标准。当兴趣度大于1的时候,这条规则就是比较好的;当兴趣度小于1的时候,这条规则就是没有很大意义的。兴趣度越大,规则的实际意义就越好。实现过程中,删除兴趣度小于1的规则,对于减少规则总数是很有帮助的。3.4时间序列规则序列模式是时间相关的事务数据库中存在的一种十分重要模式。复杂攻击序列引发的安全事件报警往往在时间上呈顺序关系,通过挖掘安全事件报警日志中的时间序列规则,再对其进行适当的筛选,是发现复杂攻击模式的一种有效的途径。同时也是上文关联规则挖掘算法的补充。PrefLxSpant是序列规则挖掘算法中效率较高的一种,其基本思想是仅检查前缀子序列,将其相应的后缀子序列投影到数据库中。该算法采用分治策略,不断产生序列数据库的多个更小的投影数据库,然后在各个投影数据库上进行序列模式挖掘。PrefixSpan算法不需要产生候选序列模式,从而大大缩减了检索空间。对时间序列的筛选采用了验证攻击意图的方法。攻击者成功控制目标主机往往通过一系列的攻击步骤,每一步的攻击意图都是为了得到更多更高的权限,至少不比已获得的权限低。对挖掘得到的时间序列验证攻击意图是否满足权限提升的特征,舍弃权限递减的序列。4实验结果与分析通过实验的方法验证了上节提出算法的有效性。对于提出的MFP-growth算法,定制了关联规则模板,基于DARPA2000入侵场景关联评测数据集LLS_DDOS_1.0和自定义的一组大规模报警日志进行了关联规则的挖掘实验。同时基于LLS_DDOS_1.0进行了时间序列模式fl勺PrefixSpan算法挖掘试验,结果亦证明其对于海量日志关联与数据缩减的有效性。其中,测试平台硬件环境如下,CPU.AMDAthlon64Processor3000+,主频1.8GHz:内存3.0G。软件环境如下,操作系统:RedHatEnterpriseLinuxASrelease3(Taroon),内核版本:Linuxversion2.4.21-4.EL,Gcc:gcc(OCC)3.2.3。4.1LLS_DDOS_1.0数据集的关联规则验证首先输入DARPA2000提供的测试样本LLS_DDOS_1.0,