基于系统溯源图搜索匹配攻击模式的攻击检测方法及装置

专利2023-08-28  102



1.本发明涉及威胁检测技术领域,具体而言,涉及一种基于系统溯源图搜索匹配攻击模式的攻击检测方法及装置。


背景技术:

2.随着网络在生产生活中的地位日渐上升,对网络攻击的检测和防范也越来越重要。尽管网络威胁情报(cyberthreatintelligence,cti)情报种类繁多,记录了大量攻击者的行为模式,在网络安全防御过程中这些攻击模式却并没有得到充分利用。大多数安全系统都只能利用感染指标(indicatorofcompromise,ioc)如可疑域名、病毒特征码等情报进行检测,但是依靠这些指标并不足以建立可靠的防护基础。安全专家在进行防御时,更加依赖对攻击者行为模式的分析,而这类情报却由于其描述的复杂性,恰恰难以被利用,缺乏有效处理的方式。
3.因此技术人员提出了众多威胁检测的方案。例如:1、基于图嵌入的威胁检测;通过将图转化为向量,利用向量相似度衡量图的相似程度,进一步进行威胁检测是一种常见思路。一般来讲,这些工作会包含溯源图建立、图嵌入和异常检测三个阶段,其中,图嵌入阶段是大部分工作的核心。基于图嵌入技术进行威胁检测是一种得到了广泛接受的技术路线,但是现有的工作都是基于正常工作的系统状态建立模型进行检测,没有充分利用已有的威胁情报。虽然可以将攻击图转化为向量,但这项工作着眼于对网络攻击的分析,且这些工作的可解释性相对较弱,而安全领域对结果的可解释性通常有较高要求,因为安全人员需要对结果进行进一步分缺乏可解释性会导致安全人员无从下手,可解释性提供了分析的入口。2、基于异常分数的威胁检测;异常分数是对一大类方法的概括,这些工作的共同点是会通过一些启发式算法对溯源图中的节点或路径计算其异常分数,进而根据阈值判断是否告警。通过启发式方法计算异常分数进行告警通常是一种比较快速的方法,但其弊病在于给出的结果可解释性不高,而可解释性问题是安全领域的一大痛点。3、基于标签传播的威胁检测;这一类方法的主要动机是一个异常对象它所派生和影响的对象应当也是异常对象,因此只要从已知的异常对象出发,通过图遍历对异常分数进行传播,就可以确定未知对象是否异常。标签传播类方法一般分为两个阶段:标签初始化阶段和标签传播阶段。标签初始化阶段,需要给每个节点赋予标签,而在标签传播阶段,则需要根据设定好的规则陆续更新各个节点的标签。基于标签传播的威胁检测机制通常有较快的检测速度,甚至可以实时检测,其结果通常也具备较高的可解释性,但是需要安全专家设定好十分充分完备的规则和策略,在检测过程中需要安全人员的深度参与。
4.目前许多工作都致力于威胁情报的充分利用,但是在网络安全实践中,多数时间依然只能通过安全专家花费大量时间和人力对于系统日志分析印证是否出现了某种特定攻击,耗时耗力。


技术实现要素:

5.本发明提供一种基于系统溯源图搜索匹配攻击模式的攻击检测方法及装置,用以克服现有技术中存在的至少一个技术问题。
6.第一方面,本发明提供的一种基于系统溯源图搜索匹配攻击模式的攻击检测方法包括:
7.接收根据系统日志建立的系统溯源图以及多个攻击图;
8.将每个攻击图不重叠的划分为不定数量的攻击子图;
9.利用子图同构算法对每一个攻击子图与所述系统溯源图进行搜索,得到对应的候选子图;
10.针对每个攻击图,按照所述系统溯源图的拓扑关系以及所述攻击图的拓扑关系,对该攻击图的候选子图进行拼接,得到与该攻击图对应的完整候选图;
11.利用图嵌入算法将所述攻击图转化为第一嵌入向量,以及将每个完整候选图转化为第二嵌入向量;
12.针对每个完整候选图,计算第一嵌入向量与第二嵌入向量之间的相似度;
13.根据所述相似度以及完整候选图本身的拓扑信息,计算每个完整候选图的相似度分数;
14.按照每个完整候选图相似度分数的高低,判断是否生成告警信息。
15.第二方面,本发明提供的一种基于系统溯源图搜索匹配攻击模式的攻击检测装置包括:
16.接收装置,被配置为接收根据系统日志建立的系统溯源图以及多个攻击图;
17.划分装置,被配置为将每个攻击图不重叠的划分为不定数量的攻击子图;
18.搜索装置,被配置为利用子图同构算法对每一个攻击子图与所述系统溯源图进行搜索,得到对应的候选子图;
19.拼接装置,被配置为针对每个攻击图,按照所述系统溯源图的拓扑关系以及所述攻击图的拓扑关系,对该攻击图的候选子图进行拼接,得到与该攻击图对应的完整候选图;
20.转化装置,被配置为利用图嵌入算法将所述攻击图转化为第一嵌入向量,以及将每个完整候选图转化为第二嵌入向量;
21.相似度计算装置,被配置为针对每个完整候选图,计算第一嵌入向量与第二嵌入向量之间的相似度;
22.分数计算装置,被配置为根据所述相似度以及完整候选图本身的拓扑信息,计算每个完整候选图的相似度分数;
23.告警生成装置,被配置为按照每个完整候选图相似度分数的高低,判断是否生成告警信息。
24.本发明实施例的创新点包括:
25.1、本发明提供了一种基于系统溯源图搜索匹配攻击模式的攻击检测方法,面向威胁检测领域,解决现有技术复杂的攻击图匹配问题,提供对复杂多变的攻击行为模式的检测能力,相比传统的基于简单字段筛选的检测,可以拓展安全系统的分析能力和分析边界,增加了安全系统的防护能力。
26.2.本发明的攻击检测方法可以将攻击图划分为多个互不重叠、规模更小的攻击子
图,这可以缓解图匹配问题的复杂程度随图节点规模呈现指数级上升的问题,并且提供了对攻击图的模糊匹配能力,从而允许匹配结果中缺失部分节点。
27.3.本发明的攻击检测方法可以从与攻击子图同构的溯源图子图中恢复得到候选图,这是攻击模式匹配算法的关键步骤,为后续步骤提供了分析基础。是本发明实施例的创新点之一。
附图说明
28.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
29.图1为本发明提供的一种基于系统溯源图搜索匹配攻击模式的攻击检测方法的流程示意图;
30.图2为本发明提供的攻击图划分的过程示意图;
31.图3为本发明提供的模拟云服务器环境示意图;
32.图4为本发明提供的候选图与攻击图节选对比图。
具体实施方式
33.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
34.需要说明的是,本发明实施例及附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
35.本发明实施例公开了一种基于系统溯源图搜索匹配攻击模式的攻击检测方法。以下分别进行详细说明。
36.在介绍本发明前,首先给出相关概念的基本定义,并进一步在此基础上给出本发明所解决问题的一个形式化描述,以便于理解。
37.定义3.1(图):一个图g是一个二元组:(v,e),其中,v是节点的集合,g是边的集合。一条边是两个节点的有序对,表示为(u,v),其中u∈v,v∈v。另外,接下来在本发明中,为了方便,也使用v(g)表示图g的节点集合,e(g)表示图g的边的集合。
38.定义3.2(异构图):一个异构图是一个四元组,(v,e,lv,le),其中v是节点的集合,g是边的集合。一条边是两个节点的有序对,表示为(u,v),其中u∈v,v∈v。lv是节点属性的集合,le是边属性的集合。实际上一个节点可能包含不止一种属性,本发明用lv(u)表示节点u∈v对应的属性集合,用lv(u,s)表示节点u∈v对应的属性s的值。
39.异构图的边和节点都有标签,或者称不同的属性,本发明中所提及的系统溯源图就是异构图,攻击图也属于异构图。根据不同的预处理措施,系统溯源图可能没有边属性或
者节点属性,也可能有不止一种节点属性或者不止一种边属性。本发明中要求攻击图和系统溯源图具有相同的边属性和节点属性。
40.定义3.3(邻域):对于节点u∈v(g),其邻域n(u),是所有满足下列性质的节点的集合:
41.定义3.4(节点间距离d):对于节点u∈v(g),和节点v∈v(g),在u和v可达的情况下,u和v之间的距离d(u,v)为其在图g中的最短路的长度。
42.定义3.5(k跳邻域图):对于节点u∈v(g),其对应的k跳邻域图gu为所有满足下列性质的节点的集合:
[0043][0044]
一般来讲,对于节点u∈v(g),其邻域n(u)中一般不包括u自身,有些文献中也会将u算入邻域中,但是不管采用何种定义,当提及节点u∈v(g)对应的k跳邻域图gu时,都包含了节点u自身。
[0045]
定义3.6(图同构):对于图g和图h来说,称这两个图同构,当且仅当双射f∶v(g)

v(h),使得任意两个节点u∈v(g)和v∈v(g),满足(u,v)∈e(g)iff(f(u),f(v))∈e(h)。
[0046]
对于异构图来说,称两个图同构进一步要求映射f保留节点属性的对应和边属性的对应,也就是说对于节点u,要求它与f(u)有同样的属性。对于边(u,v),边(f(u),f(v))应当具有同样的属性。
[0047]
定义3.7(子图):一个图g的子图g

是一个满足下述性质的图:
[0048][0049]
进一步地,如果g

也满足下述性质:
[0050][0051]
则称g

是图g的导出子图。
[0052]
接下来在此基础上对子图同构进行定义。
[0053]
定义3.8(子图同构问题):对于图g=(v,e),和图h=(v

,e

),称图g和图h之间存在子图同构关系,当图g的一个子图g0=(v0,e0),其中使得g0与h同构。
[0054]
这里需要说明的是,本发明所要研究的问题不能被简单地概括为一个子图同构问题,进而通过现有的子图同构算法解决。这是因为考虑到系统溯源图不能保证记录了系统的全部细节,攻击细节也不一定会反映在系统调用或者系统日志上,本发明尝试实现图g和图h的模糊匹配,要求在图g和图h不满足子图同构的情况下,给出最相似的匹配。
[0055]
定义3.9(攻击模式匹配):给定系统溯源图g=(v,e,lv,le),和攻击图h=(v

,e

,lv

,le

),找到系统溯源图的所有满足条件的导出子图g0=(v0,e0,lv0,le0),使得对于度量函数有f(g0,h)≤s0。其中,s0是给定的阈值。换言之,本发明主要研究给定两个异构图,分别是系统溯源图和攻击图,如何找到所有符合条件的系统溯源图的导出子图,使得该子图与攻击图具有最高的相似程度。
[0056]
本节中给出威胁模型的相关假设,以此说明本发明方法需求的前提假设以及由此带来的相关限制。这里的威胁模型指所有可能影响到应用或系统安全程度的相关信息,包括潜在攻击类型、系统信息的可靠程度。
[0057]
本发明对于需要进行威胁检测的攻击作以下假设。
[0058]
攻击者处于系统或应用的外部,并不具备系统内部人员的身份,攻击者需要从系统的外部开始,利用系统设计的漏洞、系统软件的安全缺陷(如cve漏洞),渗透进入系统内部对系统进行攻击或者窃取系统内部的敏感信息。本发明同时假设攻击者在发起攻击时并不能直接利用系统内部人员身份,登录系统内部具有相关权限的账号,执行敏感操作。本发明假定攻击者的攻击流程如果涉及了敏感操作,那么这一敏感操作要么不属于系统内部人员的正常活动,要么攻击者在攻击时需要事先窃取相关权限,并且这一操作会反映在系统日志当中。
[0059]
攻击者发起的攻击不属于旁路攻击或者攻击者未利用旁路攻击窃取信息。旁路攻击指利用了基于计算机系统实现获得的信息进行的攻击,这类攻击并不利用算法或系统本身存在的缺陷,如身份验证系统的漏洞或者加密算法的缺陷,而是利用算法的运行时间、电力消耗、电磁场甚至声波所提供的额外信息。典型的旁路攻击例如meltdown漏洞,这一漏洞利用了现代中央处理器在虚拟内存、权限检查和指令执行上的设计。攻击者利用meltdown漏洞可以获取其感兴趣的地址存储的敏感数据,这些敏感数据可能包括密码、加密数据等。
[0060]
apt攻击是本发明主要和重点考虑的攻击类型。对于apt攻击而言,其主要攻击目标主要为大型组织或政府机构,攻击任务主要为破坏某些关键设备或系统、窃取敏感重要的情报,因此攻击手段相对隐秘,攻击会经过多个阶段分别完成,历时较长,中间可能包括长时间的潜伏期。一个apt攻击的生命周期会包含以下部分:
[0061]
·
准备阶段:获取攻击目标的相关信息,准备攻击所需要的技术或者资源。
[0062]
·
建立立足点:入侵目标系统获取立足点,通常可能是目标系统的外围设备,例如通过钓鱼邮件入侵到潜伏在员工设备中。
[0063]
·
提升权限:获取入侵设备的管理权限以执行敏感操作。
[0064]
·
横向移动:对目标系统的内部网络路由状况、服务器资源进行侦察,确定任务的最终目标并入侵。
[0065]
·
维持存在:通过远程控制服务器等技术手段维持存在,并保证不被安全系统发现。
[0066]
完成任务:将需要窃取的信息上传到指定服务器并清除入侵痕迹。
[0067]
可以发现,一次apt攻击常常涉及系统内的多个部分,可以被明显地划分为多个阶段,而且apt攻击危害巨大,可能造成严重后果,是威胁检测领域的重要研究对象。
[0068]
本发明需要对于系统的安全程度作以下假设:
[0069]
硬件安全机制。系统软件不一定总是安全的,也可能遭到入侵,系统可以通过硬件机制来得到安全保证,如可信平台模块(trustedplatformmodule,下称tpm)技术。tpm技术旨在提供基于硬件的安全相关功能。它可以用于密钥的生成和存储、设备认证以及平台完整性验证。在系统引导期间,固件代码和操作系统组件等引导代码可以被tpm衡量和储存从而保证使用了正确和完整的代码加载系统。tpm技术常用于证书的安装和验证、操作系统引导过程的验证等场景,可以大大增强系统的安全性。系统内核和内核审计模块未被攻击。本发明假设操作系统内核的关键模块在攻击发起时处于正常工作状态,也就是说,操作系统内核本身的完整性经过验证,关键固件代码和系统引导代码得到保护,不受攻击影响,攻击者发起的攻击不能绕过系统审计模块,从而系统可以正确地对攻击活动进行记录和存储,
并将日志用于后续的威胁检测。系统内核和内核审计模块的安全性可以通过底层安全模块进行保证,例如上面提及的tpm技术。
[0070]
日志系统未被攻击。本发明假设系统日志的收集和存储系统不会遭到攻击,在攻击发起时处于正常工作状态。系统日志是系统溯源图的来源,本发明假定在系统溯源图本身未遭到攻击,其记录的内容真实可信的情况下进行检测,不考虑系统溯源图遭到篡改的情况。系统日志可以使用独立于应用服务器的日志服务器进行专门存储,从而通过将日志数据设为只读、设置数据备份、定期校验等操作保证系统日志的安全性。
[0071]
本发明的算法首先会将攻击图不重叠地划分为若干个不定数量的攻击子图,对每一个攻击子图与系统溯源图利用子图同构算法获取对应的候选子图,之后再按照攻击图之间的拓扑关系和系统溯源图的拓扑关系恢复得到与完整攻击图对应的候选图。在得到完整候选图以后,利用图嵌入算法将攻击图与完整候选图转化为嵌入向量,并根据向量相似度以及完整候选图本身的拓扑信息得到最终的相似度分数,并按照设定的阈值判断是否生成告警信息。
[0072]
如图1所示,本发明提供的一种基于系统溯源图搜索匹配攻击模式的攻击检测方法,包括:
[0073]
s11,接收根据系统日志建立的系统溯源图以及多个攻击图;
[0074]
s12,将每个攻击图不重叠的划分为不定数量的攻击子图;
[0075]
本步骤可以利用社区发现算法给每个攻击图的节点赋予类别标签;按照不同类别标签下不存在相同的节点原则,将攻击图中的节点进行不重叠的划分,获得不同类别标签下的节点集合;将同一类别标签下的节点集合中的节点连同,形成攻击子图。
[0076]
值得说明的事:对于大规模的攻击图与超大规模的系统溯源图直接匹配的效率极低,因为一般而言,判断图匹配需要对系统溯源图的所有可能的子图与攻击图进行一一比较,即便存在加速比较过程和减小搜索空间的方法,这种方法的运行速度依然不令人满意。这是由于随着图节点规模的上升,其可能的拓扑结构呈现指数级上升,因此简单地剪枝很难有良好效果。但是反过来,如果能减小攻击图的规模,那么就可以有效地加速这一匹配过程。将攻击图分解为更基本的单元进行匹配,然后再将这些基本单元拼接起来是图匹配领域的常见做法。
[0077]
由于上述原因,本发明的攻击模式匹配算法要求首先根据攻击图筛选得到相匹配的系统溯源图子图,在生成候选图时,会首先对候选图进行划分,参考下表1中算法3.1所示:
[0078]
表1划分算法代码表
[0079][0080]
本发明要求算法允许攻击图与系统溯源图的子图不完全一致,也就是给出的候选图可以有缺失或者多余的边和节点,只要其拓扑结构和属性信息与攻击图接近即可。如果不对溯源图进行拆分,当结果中出现多余节点或缺失节点时,就需要考虑这种多余节点或者缺失节点对于相似度的影响,毫无疑问,要计算这种影响是十分复杂的。但是当攻击图被拆分成为若干个基本部分,那么衡量这种影响就简单得多。
[0081]
由于攻击图本身可能包含了多个步骤,例如说包含了上传木马、执行代码、建立连接、提权、窃取信息等过程,因此将其拆分多个部分是一种比较自然的想法。本发明尝试借助社区发现技术将攻击图划分为多个不同模块。社区发现技术常用于各种网络当中,旨在将网络划分为多个不同的子结构以揭示它们之间的潜在联系。
[0082]
攻击图划分算法会利用社区发现算法给每个攻击图的节点赋予类别标签,社区发现算法需要对节点进行不重叠的分类,不能将同一个节点划分到不同类别当中,同时同一个类别中的节点应当组成一个连通图。后续需要将同一个类别的节点生成的子图作为攻击子图,具体参考下表2。
[0083]
表2攻击子图生成算法代码表
[0084][0085]
s13,利用子图同构算法对每一个攻击子图与所述系统溯源图进行搜索,得到对应的候选子图;
[0086]
本发明可以对每个攻击子图,通过子图同构算法搜索符合条件的系统溯源图子图,生成得到与该攻击子图同构的候选子图;记录确定候选子图与攻击子图的匹配关系。
[0087]
攻击模式匹配算法要求搜索得到与攻击图相似的系统溯源图子图,具体算法如表3中算法3.3所示。其中,cartesianproductoflists表示不同列表的笛卡尔积,接受列表的列表作为输入,例如说对于{{1,2,3},{1,2}},其输出结果为{{1,1},{1,2},{2,1},{2,2},{3,1},{3,2}}。这一函数用于生成候选子图的所有可能组合。首先通过攻击图划分生成不同攻击子图,然后记录下连接不同攻击子图的边border_edges用于后续连接匹配子图。对每个攻击子图,通过子图同构算法搜索符合条件的系统溯源图子图,生成得到与该攻击子图同构的候选子图列表,同时记录候选子图与攻击子图的匹配关系。
[0088]
s14,针对每个攻击图,按照所述系统溯源图的拓扑关系以及所述攻击图的拓扑关系,对该攻击图的候选子图进行拼接,得到与该攻击图对应的完整候选图;
[0089]
本发明可以针对每个攻击图,按照攻击子图的类型遍历所有候选子图的可能组合,得到多条路径节点集合;根据系统溯源图的节点可达性连接节点集合中的节点,得到完整的连通候选图作为完整候选图。
[0090]
而针对每个攻击图,按照攻击子图的类型遍历所有候选子图,得到连接不同攻击子图的边在系统溯源图中的对应目标节点;将每个路径上的目标节点组成形成一个路径节点集合。将最短路径的路径节点集合找那个的节点与候选子图合并,得到完整的连通候选图作为完整候选图。
[0091]
参考表3,为了得到完整候选图,需要将这些候选子图拼接起来。拼接的原则主要是按照攻击子图类型遍历所有候选子图的可能组合。但是即便不同候选子图对应的攻击子图之间是可达的,简单的拼接候选子图不一定能得到连通图,因此需要按照记录下的border_edges根据系统溯源图的连接关系连接不同候选子图,得到完整的连通的候选图。
[0092]
表3完整候选图拼接代码表
[0093][0094]
s15,利用图嵌入算法将所述攻击图转化为第一嵌入向量,以及将每个完整候选图转化为第二嵌入向量;
[0095]
本发明针对每个攻击图,利用图嵌入方法计算得到该攻击图对应的第一图嵌入表示向量以及该攻击图对应的完整候选图对应的第二图嵌入表示向量。
[0096]
s16,针对每个完整候选图,计算第一嵌入向量与第二嵌入向量之间的相似度;
[0097]
s17,根据所述相似度以及完整候选图本身的拓扑信息,计算每个完整候选图的相似度分数;
[0098]
s18,按照每个完整候选图相似度分数的高低,判断是否生成告警信息。
[0099]
本发明在得到候选图以后,本发明通过图嵌入技术将候选图与攻击图分别嵌入到低维空间中,然后将图相似度转化为向量的相似度比较,进而计算异常分数。图嵌入能捕获高层的语义信息和抽象的行为信息,将复杂的拓扑关系匹配转化为低维向量的相似度比较,加快图匹配速度。如表4中的算法3.4描述了相似度排序的整体流程。算法接受候选图列表和攻击图作为输入,输出按照相似度排序后的候选图列表。算法首先根据图嵌入方法计算得到攻击图对应的表示,然后分别计算得到每一个候选图的对应表示,并计算其与攻击图嵌入表示的相似度分数,以此作为该候选图的异常分数。最后按照候选图的异常分数对候选图排序并输出。
[0100]
表4完整候选图的相似度分数计算代码表
[0101][0102]
本发明提供的一种基于系统溯源图搜索匹配攻击模式的攻击检测装置,包括:
[0103]
接收装置,被配置为接收根据系统日志建立的系统溯源图以及多个攻击图;
[0104]
划分装置,被配置为将每个攻击图不重叠的划分为不定数量的攻击子图;
[0105]
搜索装置,被配置为利用子图同构算法对每一个攻击子图与所述系统溯源图进行搜索,得到对应的候选子图;
[0106]
拼接装置,被配置为针对每个攻击图,按照所述系统溯源图的拓扑关系以及所述攻击图的拓扑关系,对该攻击图的候选子图进行拼接,得到与该攻击图对应的完整候选图;
[0107]
转化装置,被配置为利用图嵌入算法将所述攻击图转化为第一嵌入向量,以及将每个完整候选图转化为第二嵌入向量;
[0108]
相似度计算装置,被配置为针对每个完整候选图,计算第一嵌入向量与第二嵌入向量之间的相似度;
[0109]
分数计算装置,被配置为根据所述相似度以及完整候选图本身的拓扑信息,计算每个完整候选图的相似度分数;
[0110]
告警生成装置,被配置为按照每个完整候选图相似度分数的高低,判断是否生成告警信息。
[0111]
可选的,所述划分装置进一步被配置为:
[0112]
利用社区发现算法给每个攻击图的节点赋予类别标签;
[0113]
按照不同类别标签下不存在相同的节点原则,将攻击图中的节点进行不重叠的划分,获得不同类别标签下的节点集合;
[0114]
将同一类别标签下的节点集合中的节点连同,形成攻击子图。
[0115]
可选的,所述搜索装置进一步被配置为:
[0116]
对每个攻击子图,通过子图同构算法搜索符合条件的系统溯源图子图,生成得到与该攻击子图同构的候选子图;
[0117]
记录确定候选子图与攻击子图的匹配关系。
[0118]
本发明提供的一种基于系统溯源图搜索匹配攻击模式的攻击检测方法及装置,通过接收根据系统日志建立的系统溯源图以及多个攻击图;将每个攻击图不重叠的划分为不
定数量的攻击子图;利用子图同构算法对每一个攻击子图与所述系统溯源图进行搜索,得到对应的候选子图;针对每个攻击图,按照所述系统溯源图的拓扑关系以及所述攻击图的拓扑关系,对该攻击图的候选子图进行拼接,得到与该攻击图对应的完整候选图;利用图嵌入算法将所述攻击图转化为第一嵌入向量,以及将每个完整候选图转化为第二嵌入向量;针对每个完整候选图,计算第一嵌入向量与第二嵌入向量之间的相似度;根据所述相似度以及完整候选图本身的拓扑信息,计算每个完整候选图的相似度分数;按照每个完整候选图相似度分数的高低,判断是否生成告警信息。本发明通过寻找符合已知攻击模式的行为的算法,可以帮助安全人员对apt攻击进行防护,使他们在分析系统数据时不需要再通过繁琐的简单条件过滤,而是通过对抽象行为模式的查询来确定可疑行为。同时,这一算法使得安全人员可以利用过去已经累积的对外部攻击的了解,不再需要花费时间和精力手工进行核验,而是可以自动化地定期核验系统是否遭遇了过去发生过的攻击。
[0119]
接下来通过实验对本发明提出的方法进行验证,主要考虑对以下方面进行考虑:
[0120]
·
攻击模式匹配流程的有效性。本发明提出的攻击模式匹配流程是否能有效地在大规模的系统溯源图中找到给定攻击模式的匹配是实验部分的核心,其中,结果的正确性和匹配速度均需要纳入考虑。
[0121]
·
攻击模式匹配算法受哪些因素的影响。特别的,考虑到随着图规模的上升,图匹配问题的复杂程度也随之上升,因此有必要确定攻击图和溯源图规模对检测效果的影响。
[0122]
1、实验环境
[0123]
如表5所示,本发明实验在以下环境下执行:
[0124]
表5实验环境表
[0125][0126]
2、数据集与评估指标
[0127]
(1)合成数据集
[0128]
真实的系统溯源图通常会包含上千万甚至上亿个节点,因此对真实系统溯源图的节点进行标注是件十分困难的操作。另一方面,没有可靠的办法能够确定真实的系统溯源图中到底包含了多少次真实攻击,因此如果希望对检测的效果进行完整的评估,特别是评估检测的召回率,有必要在合成数据集上进行测试。合成数据集可以按照一定的规则生成,因此可以控制其所含真实攻击的数量,更好地对算法性能进行评估。
[0129]
(11)攻击图生成
[0130]
一个攻击图中其实可能包含了多个攻击步骤,例如,攻击者在入侵时需要完成木马上传、代码执行、与远程控制服务器建立连接并通信、执行远端指令等操作,而这些操作的目的都只是服务于一次攻击,因此为了模拟生成一个攻击图,本发明首先生成多个不同
的连通图,之后再随机从不同的图中选择节点将这些图连接起来作为攻击图。为了便于后续计算攻击图划分的效果,在生成连通图的阶段,本发明给不同连通图赋予不同的标签属性。
[0131]
(12)溯源图生成
[0132]
溯源图生成的关键点在于本发明希望通过按照一定的规则生成指定的溯源图,从而在获得准确可靠的攻击活动标注对攻击模式匹配算法的效果进行评价。因而本发明采用下述步骤进行系统溯源图的生成,得到合成数据集,对攻击模式匹配算法的效果进行评价:
[0133]
1.使用随机图生成算法不断生成随机图g,并将其与已经生成的部分连接起来,得到系统溯源图gp,直到节点规模达到目标要求。
[0134]
2.采用前述攻击图生成算法生成攻击图gq,生成gq的若干个副本,并将这些副本随机与gp连接起来得到最终的溯源图。
[0135]
上述算法可以很好的保证生成的溯源图中除了生成的攻击图副本以外,不会包含攻击图的同构子图,因而不会对召回率的计算造成干扰。而且这同真实数据集的构成也是比较相似的,在真实数据集中,攻击节点通常不会太多,带来排查难度的主要原因在于系统溯源图中包含的大多数节点都是正常节点,而仅从节点角度出发进行检索的话,攻击节点又很难和正常节点有效区分开来,只能通过节点之间包含的结构信息进行威胁检测。
[0136]
(13)评估指标及其计算方式
[0137]
本发明使用精度(precision)和召回率(recall)作为主要评价指标。精度用于衡量算法给出的结果是否准确,也就是说攻击模式匹配算法给出的候选图是否真的是一次与攻击图类似的攻击,其计算方式为:
[0138][0139]
召回率用于衡量算法给出的结果是否有所遗漏,也就是攻击模式匹配算法给出的候选图是否包含所有与攻击图类似的攻击,其计算方式为:
[0140][0141]
上面的公式中,tp指真阳性的数量,具体计算时,如果一个候选图中有超过90%的节点属于真实的攻击节点,那么就将其算作预测正确,属于真阳性结果,否则属于假阳性fp。之所以采取这种计算方式,是因为对于图的模糊匹配而言,没有明确的界限说明两个图是否接近。但是对于真实世界的攻击而言,当给出的候选图中有超过80%的节点,没有理由不认为这代表了一次攻击行为,因此这一标准是相对合理的。
[0142]
对于召回率的计算而言,不能简单地套用上面的公式进行计算。因为不能将所有系统溯源图子图中攻击节点超过90%的子图作为需要检测的目标,这也不是一个合理的标准。事实上,只需要考虑算法的检测结果中是否包含了所有发生了的攻击即可对召回率进行评价。因此召回率在实际计算时,主要考虑合成数据集中包含了攻击图的几个副本,例如一共有4个副本,那么公式的分母就使用4计算。在计算召回率时,对于真阳性的计算,采用与精度不同的方式,如果某个候选图中来自某一个副本的攻击节点占据多数,那么就认为检测到了这一次攻击。
[0143]
在攻击模式匹配过程中,由于攻击图会进行划分,进而通过组合所有与攻击子图
的候选子图得到候选图进行检测,因此会生成数量庞大的候选图,因此有必要对这些候选图进行排序,否则就不能达到帮助安全人员节省时间和精力的目的,因此需要进一步对排序的质量进行评价,而不仅仅是候选图匹配的效果。这就需要对最前面的若干个节点进行统计,本发明在接下来的实验中对于top100和top10结果中的精度和召回率也进行统计,其计算方式和上面说明的相同。
[0144]
(2)真实数据集
[0145]
本发明使用了实验室环境下进行攻防演习产生的真实网络对抗数据进行了测试,以检测本发明提出的攻击模式匹配算法是否能有效地在真实数据上发挥作用,为安全人员的分析提供帮助。攻防演习的双方均为对网络安全领域有相当程度了解的安全专家,并且双方反复进行了多次攻防演练,具备丰富的攻防经验,本发明使用的数据来自其中的第三次攻防演习。攻防演习的环境为在实验室环境下搭建的模拟真实云环境的靶场,并且模拟了正常的业务流量,系统内的主要流量并非为攻击带来的流量。在演习开始前,守方在服务器上部署了日志收集工具进行监控。接下来就靶场环境、系统溯源图和攻击图的构造分别进行说明。
[0146]
(21)攻防演习说明
[0147]
图3是演习环境示意图。某个企业的云服务器上运行着opencart服务和provdb-frontend服务,这两项服务均对外开放了端口。其中,opencart是一个开源的在线商店管理服务,它可以方便地向客户提供网上购物的能力,opencart所在服务器会定时向内网的provdb发送服务器日志。provdb是一个实验室内部开发的溯源图管理和构建服务,它接收并存储opencart服务所在服务器的日志数据,但用户数据存储在mysql数据库中。provdb-frontend服务是provdb服务的前端接口,用于溯源图的查询,它从provdb所在的服务器接收数据。mysql是数据库服务,用于存储数据,其存储的数据包括opencart管理的业务数据和provdb的用户数据。
[0148]
靶场环境为了模拟线上真实运行的云环境,基于docker进行搭建。docker可以方便靶场环境的搭建和部署,上面提到的服务均通过docker部署在linux系统镜像中,模拟其在云环境下的运行状况。所有的linux镜像中均部署了auditd服务,攻击者首先利用msfexploit获取provdb-frontend所在的服务器1的shell权限,生成密钥并创建provdb账号,利用provdb的漏洞将密钥写入服务器2,然后对内网ip进行扫描,逐个尝试登录,获取了服务器2的控制权限。服务器2上运行着mysql服务,攻击者通过查看配置文件得到mysql密码。之后攻击者查询mysql数据库,获取opencart相关的管理数据,获得了opencart的管理员账户和密码。最后,攻击者登录opencart的管理员账户,上传木马文件,获取了opencart所在服务器4的控制权,在服务器4上删除了opencart所在目录,造成网站宕机。以上就是数据集涉及的攻击过程,可以看到,这一攻击过程可以划分为4部分,包括入侵服务器1、以服务器1为跳板入侵服务器2、在服务器2上窃取敏感数据、攻击服务器4四个部分。
[0149]
(22)系统溯源图构建
[0150]
系统溯源图构建使用的数据来自两部分:服务本身产生的日志和所在linux镜像上auditd服务收集的系统日志。
[0151]
auditd提供了追踪系统安全信息的方式,根据预先定义的规则,auditd可以尽
[0152]
可能多的生成记录系统内发生事件相关信息的日志,它可以用于记录:
[0153]
·
记录文件或目录的访问、修改、执行或文件属性的变化。
[0154]
·
监控系统调用。
[0155]
·
记录用户运行的操作命令。
[0156]
·
记录安全事件,如用户登录事件。
[0157]
·
监控网络流量活动。
[0158]
本发明使用provdb从日志中构建得到的溯源图作为输入。provdb会将每一条日志解析为键值对,进而不同类型的日志就得到了不同的字段表,字段表中的每条日志代表一个节点。为了得到溯源图,就需要对字段表进行连接,连接的原则是如果两个字段表中日志的字段相同并且其值也相同,那么这两条日志之间就生成一条边。通过这种方式就可以将不同类型的日志连接在一起生成系统溯源图。
[0159]
在攻防演习结束后,防守方对于系统记录和收集的日志进行了仔细地手工分析,尝试通过人工对攻击过程进行复现,最终基于系统溯源日志逐步排查确定了攻击过程中攻击者的所有行动及行动相关的日志证据。在这一分析过程中被防守方所确认的日志可以被认定为攻击日志,对应的溯源图节点就是攻击节点,属于攻击模式匹配的目标节点。然而,仅仅利用人工确认的节点是不足以构造得到查询所需的攻击图的,这是因为在分析过程中得到的攻击日志在溯源图中仅仅是一些零散的点,这些攻击节点之间的联系并没有随之给出。因此本发明进一步基于这些攻击节点从溯源图中恢复得到整体攻击图。具体算法如表6中算法5.1所示。通过算法恢复得到的攻击图有237个节点和236条边。
[0160]
表6攻击图恢复算法代码表
[0161][0162]
图4是本发明算法搜索得到的候选图与攻击图的比较,需要说明,这里只选择了攻击图的一部分进行对比,因为完整的攻击图包含237个节点,不能全部清晰地展示出来,候选图也选择了相应的部分。节选的部分对应5.2.2.1一节描述的攻击过程的第二个阶段,攻击者利用在攻击阶段1写入的密钥登陆了mysql服务所在服务器。图中圆形节点对应auditd日志,其标签名包含了节点的id、可执行程序路径和对应系统调用,方形节点对应日志间的共同字段。可以看到,给出的攻击图部分和候选图部分是十分相似的,敏感的sshd程序的执行、对/etc/passwd这一敏感路径的访问也都包含在内,说明了算法在攻击模式匹配上的有效性。
[0163]
本领域普通技术人员可以理解:附图只是一个实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
[0164]
本领域普通技术人员可以理解:实施例中的系统中的模块可以按照实施例描述分布于实施例的系统中,也可以进行相应变化位于不同于本实施例的一个或多个系统中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
[0165]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围。

技术特征:
1.一种基于系统溯源图搜索匹配攻击模式的攻击检测方法,其特征在于,包括:接收根据系统日志建立的系统溯源图以及多个攻击图;将每个攻击图不重叠的划分为不定数量的攻击子图;利用子图同构算法对每一个攻击子图与所述系统溯源图进行搜索,得到对应的候选子图;针对每个攻击图,按照所述系统溯源图的拓扑关系以及所述攻击图的拓扑关系,对该攻击图的候选子图进行拼接,得到与该攻击图对应的完整候选图;利用图嵌入算法将所述攻击图转化为第一嵌入向量,以及将每个完整候选图转化为第二嵌入向量;针对每个完整候选图,计算第一嵌入向量与第二嵌入向量之间的相似度;根据所述相似度以及完整候选图本身的拓扑信息,计算每个完整候选图的相似度分数;按照每个完整候选图相似度分数的高低,判断是否生成告警信息。2.根据权利要求1所述的一种基于系统溯源图搜索匹配攻击模式的攻击检测方法,其特征在于,所述将所述完整攻击图不重叠的划分为不定数量的攻击子图包括:利用社区发现算法给每个攻击图的节点赋予类别标签;按照不同类别标签下不存在相同的节点原则,将攻击图中的节点进行不重叠的划分,获得不同类别标签下的节点集合;将同一类别标签下的节点集合中的节点连同,形成攻击子图。3.根据权利要求1所述的一种基于系统溯源图搜索匹配攻击模式的攻击检测方法,其特征在于,所述利用子图同构算法对每一个攻击子图与所述系统溯源图进行搜索,得到对应的候选子图包括:对每个攻击子图,通过子图同构算法搜索符合条件的系统溯源图子图,生成得到与该攻击子图同构的候选子图;记录确定候选子图与攻击子图的匹配关系。4.根据权利要求1所述的一种基于系统溯源图搜索匹配攻击模式的攻击检测方法,其特征在于,所述针对每个攻击图,按照所述系统溯源图的拓扑关系以及所述攻击图的拓扑关系,对该攻击图的候选子图进行拼接,得到与该攻击图对应的完整候选图包括:针对每个攻击图,按照攻击子图的类型遍历所有候选子图的可能组合,得到多条路径节点集合;根据系统溯源图的节点可达性连接节点集合中的节点,得到完整的连通候选图作为完整候选图。5.根据权利要求4所述的一种基于系统溯源图搜索匹配攻击模式的攻击检测方法,其特征在于,所述针对每个攻击图,按照攻击子图的类型遍历所有候选子图的可能组合,得到组合候选子图包括:针对每个攻击图,按照攻击子图的类型遍历所有候选子图,得到连接不同攻击子图的边在系统溯源图中的对应目标节点;将每个路径上的目标节点组成形成一个路径节点集合。6.根据权利要求5所述的一种基于系统溯源图搜索匹配攻击模式的攻击检测方法,其
特征在于,所述根据系统溯源图的连接关系连接节点集合,得到完整的连通候选图作为完整候选图包括:将最短路径的路径节点集合找那个的节点与候选子图合并,得到完整的连通候选图作为完整候选图。7.根据权利要求1所述的一种基于系统溯源图搜索匹配攻击模式的攻击检测方法,其特征在于,所述利用图嵌入算法将所述攻击图转化为第一嵌入向量,以及将每个完整候选图转化为第二嵌入向量包括:针对每个攻击图,利用图嵌入方法计算得到该攻击图对应的第一图嵌入表示向量以及该攻击图对应的完整候选图对应的第二图嵌入表示向量。8.一种基于系统溯源图搜索匹配攻击模式的攻击检测装置,其特征在于,包括:接收装置,被配置为接收根据系统日志建立的系统溯源图以及多个攻击图;划分装置,被配置为将每个攻击图不重叠的划分为不定数量的攻击子图;搜索装置,被配置为利用子图同构算法对每一个攻击子图与所述系统溯源图进行搜索,得到对应的候选子图;拼接装置,被配置为针对每个攻击图,按照所述系统溯源图的拓扑关系以及所述攻击图的拓扑关系,对该攻击图的候选子图进行拼接,得到与该攻击图对应的完整候选图;转化装置,被配置为利用图嵌入算法将所述攻击图转化为第一嵌入向量,以及将每个完整候选图转化为第二嵌入向量;相似度计算装置,被配置为针对每个完整候选图,计算第一嵌入向量与第二嵌入向量之间的相似度;分数计算装置,被配置为根据所述相似度以及完整候选图本身的拓扑信息,计算每个完整候选图的相似度分数;告警生成装置,被配置为按照每个完整候选图相似度分数的高低,判断是否生成告警信息。9.根据权利要求8所述的一种基于系统溯源图搜索匹配攻击模式的攻击检测装置,其特征在于,所述划分装置进一步被配置为:利用社区发现算法给每个攻击图的节点赋予类别标签;按照不同类别标签下不存在相同的节点原则,将攻击图中的节点进行不重叠的划分,获得不同类别标签下的节点集合;将同一类别标签下的节点集合中的节点连同,形成攻击子图。10.根据权利要求9所述的一种基于系统溯源图搜索匹配攻击模式的攻击检测方法,其特征在于,所述搜索装置进一步被配置为:对每个攻击子图,通过子图同构算法搜索符合条件的系统溯源图子图,生成得到与该攻击子图同构的候选子图;记录确定候选子图与攻击子图的匹配关系。

技术总结
本发明提供的一种基于系统溯源图搜索匹配攻击模式的攻击检测方法及装置,通过将每个攻击图不重叠的划分为不定数量的攻击子图;利用子图同构算法对每一个攻击子图与所述系统溯源图进行搜索,得到对应的候选子图;对该攻击图的候选子图进行拼接,得到完整候选图,进而根据相似度分数确定是否生成告警信息。本发明通过寻找符合已知攻击模式的行为的算法,可以帮助安全人员对APT攻击进行防护,使他们通过对抽象行为模式的查询来确定可疑行为,使得安全人员可以利用过去已经累积的对外部攻击的了解,不再需要花费时间和精力手工进行核验,而是可以自动化地定期核验系统是否遭遇了过去发生过的攻击。过去发生过的攻击。过去发生过的攻击。


技术研发人员:万海 吕永康 张轩诚 赵曦滨
受保护的技术使用者:清华大学
技术研发日:2022.07.12
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-4783.html

最新回复(0)