欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种利用蜜罐告警日志挖掘多步攻击场景的方法独创技术8512字

一种利用蜜罐告警日志挖掘多步攻击场景的方法

2021-03-03 20:20:15

一种利用蜜罐告警日志挖掘多步攻击场景的方法

  技术领域

  本发明涉及大数据分析和网络安全领域,特别涉及一种利用蜜罐告警日志挖掘多步攻击场景的方法。

  背景技术

  随着互联网的迅猛发展以及网络全球化的日益紧密,网络安全问题也日益凸显。近年来出现的各种网络攻击无不呈现出更强的持续性和隐蔽性,以及多步攻击也更具有复杂性。因此如何应对层出不穷的网络安全问题并且及时采取应对措施是当下必须关注的问题。

  目前的告警日志数据都是通过部署在网络环境中的IDS得到的,由于其本身的局限性,带来了很多不可避免的缺点。IDS普遍具有报警冗余、价值密度低、报警孤立的问题。因为 IDS部署在整个网络中,所以会收集整个网络的告警信息,使得真实告警密度低,无法高效的挖掘出隐藏其中的真实攻击。大量的报警冗余使得安全管理员无法快速的聚焦到关键的报警,延误防御时机,同时IDS并不能宏观完整的展示多步攻击的全貌。所以需要对告警日志进行关联分析,挖掘出有价值完整的多步攻击场景。通过重构攻击场景,可以使安全管理员迅速的识别攻击全貌,并更好的应对网络攻击。

  现有的基于报警关联的方法主要有以下四类:(1)基于报警相似度的关联方法(2)基于预定义的攻击场景的关联方法 (3)基于因果关系的报警关联方法 (4)基于数据挖掘的攻击场景关联方法。

  基于报警相似度的关联方法虽然不需要先验知识,但不能够总结报警类型间的因果关系,存在未能版主理解攻击的意图以及关系的缺点。基于预定义攻击场景的方法是最为准确的一种方法,但这种方法首先依赖于攻击模板知识库的构建。这种方法的优点是能够准确地检测到知识库中已有的攻击类型,但是对于新的模式,并不能够很好地检测。基于因果知识的方法不必像基于预定义攻击场景的方法如此僵化,并不是必须完全匹配攻击模板才算成功,但是也需要知识库的支持。另外在知识库的建立方面也需要较大的投入成本。对于基于数据挖掘的关联方法,其优点在于不需要大量的知识库和先验知识的支持,但是在挖掘过程中的计算量比较大,并且挖掘的准确率并不如直接模式匹配那样高。

  发明内容

  本发明正是基于上述问题,提出了一种利用蜜罐告警日志进行多步攻击场景挖掘的方法。通过蜜罐吸引攻击,产生告警日志,并利用攻击图特征进行攻击挖掘生成攻击图,再利用基于密度的局部离散群因子算法对攻击图进行优先级判定,体现多步攻击的威胁程度。

  本发明包括如下步骤:

  A.告警日志产生和预处理:利用搭建的蜜罐将针对网络的大部分攻击吸引过来,产生真实攻击密度高的告警日志,并提取需要的属性进行格式归一化,然后对报警日志去除冗余;

  B.攻击场景挖掘:通过属性相似度进行聚类,将聚类的攻击利用攻击图表示,生成候选攻击图;

  C.攻击优先级评估:利用局部离群因子算法对生成的攻击图进行优先级判定,给出图的优先级排序列表。

  与现有技术相比,本发明的有益效果是:利用蜜罐吸引攻击,可以得到真实攻击密度更高的报警日志,利用攻击图可以更好体现每步攻击之间的联系,定义的特征属性更好的将同一类攻击聚为一类,通过计算攻击图的异常值可以判定攻击图的威胁程度。

  A1.本专利使用的多蜜罐协同模式,通过在网络中搭建多个蜜罐,协同工作,迷惑并能够收集到更多攻击者的信息;协同方式是以诸多真实环境的功能主机为基本单元,通过服务、蜜罐等任务的动态伪随机切换而形成的动态陷阱系统,从而迷惑和干扰敌手。通过协同方式,为攻击者提供一系列攻击流程,能够收集到更多攻击者和攻击过程的信息,并以告警日志的形式呈现;同时不易被攻击者发现蜜罐系统的存在。

  A2.报警日志格式归一化,虽然蜜罐系统的IDS产生的告警具有标准格式,但不同的标准产生的格式会有差别,而且有些属性也不会用到,为了将数据格式统一并有利于分析和处理,将报警日志的格式定义为11元组

  Alert=<Id,time,srcIp,srcPort,dstIp,dstPort,type,priority,gId,groupId,fatherId>

  其中,前8个属性是alert的原始属性,后3个是为了在关联过程中便于攻击图的关联定义的。每个属性对应含义,图1是报警属性表;接下来对报警去除冗余,将一段较短时间阈值内除了time属性不同,其他属性均相同的报警合为一条。

  B1.定义属性相似度函数,(1)时间维度(2)IP维度(3)端口维度最终的相似读是三个维度的加权平均

  B2.攻击图生成,将告警日志集合ASet={a1,a2,...an}作为输入,并初始化AGS=φ;将a1作为图g1的第一个顶点得到初始的攻击图集合AGS={g1};依次取出Aset中未分析的报警ai,计算ai与AGS={g1,g2,...gn}中每一个图的隶属度,隶属度的计算方法为,依次计算 ai与图gk中n个报警顶点的相似度C(ai,aj),其中aj∈gk,记录下相似度最大值作为ai隶属于图gk的隶属度;依次扫描AGS中每一个图,计算ai与每一个图的隶属度,记录与ai隶属度最大的图gk,如果其隶属度大于等于预设的阈值θ,将ai加入到图gk中,即增加ai为图gk新的顶点,并且增加一条产生该隶属度的顶点aj到ai的边:E(aj,ai)。如果所有的隶属度都小于阈值,那么新增一个攻击图,且该攻击图只有一个顶点,该顶点为ai。

  分析完Aset中的每一条报警后,最终生成包含多个候选攻击图的集合 AGS={g1,g2,...gn},具体实现过程如图1所示。

  B3.定义攻击图内部特征,利用图gk中每个顶点ai代表的alert中的优先级进行平均异常优先级的计算定义报警间隔率为一个攻击图中先后发生的有关联的两条报警顶点之间的平均时间间隔,定义时间跨度间隔的公式GTimeDuration(gi)=|a1.time-an.time|;定义出入率表示一个攻击场景在通信交互时特点,其公式为

  B4.通过上步定义并计算的每个攻击图的四个特征,并将攻击图集合 AGS={g1,g2,...gn}作为输入;初始化Cluster={set1},set1中包含一个图g1;依次从AGS 中取出未分类的攻击图gi,计算gi与Cluster={set1,set2,set3...setm}中每一个集合的隶属度,具体计算方法为:依次计算gi与seti中n个攻击图的4个特征距离dk(gi,gj),如果都满足距离小于阈值δ1、δ2、δ3、δ4,那么就将gi加入到seti集合中。

  依次对AGS中每一个攻击图进行上述聚类操作,直到分析完成所有攻击图,最终生成聚类后的攻击图集合Cluster={set1,set2,set3...setm}。

  B5.攻击场景挖掘,对于聚类后的攻击图集合set={g1,g2,g3...gn}进行挖掘,将集合中的所有的节点和节点间的关系合成为一个图作为攻击场景。

  C1.定义表示点o和点p之间的距离,k-distance为第k距离,Nk(p)≥k为p的第k邻域点的个数;p点的第k可达公式为reach-distancek(p,o)=max{d(p,o),k-distance(o)};利用上述定义公式可得p的局部可达密度为最后得到p 的局部利群因子表示为其中LOF的值越高,表明利群程度越高,越有可能是异常点。

  C2.度量LOF的攻击图优先级,首先利用图的四个特征值进行距离计算

  

  利用C1中的第k可达距离公式计算攻击图gj到gi的第k可达距离,接着利用上述公式以依次计算图gj的局部可达密度和攻击图的局部离群因子。

  其中,LOF的值可能为0到无穷大,所以采用将LOF值映射到0到1之间的方法来确定攻击图的优先级,公式为

  

  认为计算出的值越高,该攻击图越异常,越应该给予更多的关注。

  附图说明:图1是报警属性表。

《一种利用蜜罐告警日志挖掘多步攻击场景的方法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)