一种基于上下文行为分析的APT检测方法

文档序号:27918049发布日期:2021-12-11 10:49阅读:176来源:国知局
一种基于上下文行为分析的APT检测方法
一种基于上下文行为分析的apt检测方法
技术领域
1.本技术属于apt攻击检测领域,具体涉及一种基于上下文行为分析的apt检测方法。


背景技术:

2.apt(advanced persistent threat)攻击,即高级持续性威胁攻击,通常是指对政府、核心基础设施(如能源、运输、通讯)和重要行业(如军工、金融、医疗)所发动的攻击。apt攻击与传统的攻击模式相比,具有持续时间久、攻击链长、隐蔽性高、手段多样、危害性强等特征,可利用社会工程学、0

day漏洞、受感染的存储介质等多种方式进行攻击。故利用现有的检测方法很难直接检测出一条完整的apt攻击链,分析人员通常在某个时间点检测出攻击的某一个步骤后,通过取证分析来快速定位入口点并判断攻击的范围,进而执行后续的补救措施。其中取证分析通常利用系统日志记录实体(如进程、文件等)以及实体间的信息流(如读、写、创建等),以有向图的形式直观展现实体间的依赖关系。其中图的顶点是实体,边是信息流。
3.根据调研显示,现在大多数的apt检测来自于传统的网络攻击检测,主要分为以下四类:网络流量分析、软件静态特征分析、钩子追踪分析和动态沙箱分析。其中基于网络流量分析的检测方法依赖程序产生的流量,不能直接观察恶意程序的活动;基于软件静态特征分析的检测方法容易被代码的多态变化和混淆所回避;基于钩子追踪分析的检测方法会修改底层实现代码逻辑,使得程序/系统变得不稳定,并可能暴露新的漏洞;基于动态沙箱分析的检测方法需要模拟真实的环境,运行的开销大。在以上传统的网格攻击检测方法之外,现在还提出了一种端点检测与响应的检测方法,但该方法也存在威胁警报疲劳、分析日志需要技术知识成本和日志存储效率低的缺陷。


技术实现要素:

4.本技术的目的在于提供一种基于上下文行为分析的apt检测方法,具有良好的适配性,且检测成功率高。
5.为实现上述目的,本技术所采取的技术方案为:
6.一种基于上下文行为分析的apt检测方法,所述基于上下文行为分析的apt检测方法,包括:
7.步骤s1、实时采集日志数据,所述日志数据涉及的对象包括进程、文件和事件;
8.步骤s2、对采集到的日志数据进行预处理,包括:
9.步骤s21、将所有进程连接至同一个预定义的虚拟的祖父进程;
10.步骤s22、将进程和文件作为节点、将事件作为边构建数据依赖图;
11.步骤s23、采用数据压缩算法滤除冗余的事件,简化数据依赖图;
12.步骤s3、根据简化后的数据依赖图基于上下文行为分析进行入侵检测,包括:
13.步骤s31、根据att&ck框架制定相应的标签规则,对数据依赖图中满足标签规则的
进程或文件打上相应的标签;
14.步骤s32、根据att&ck框架制定相应的标签传递规则,对数据依赖图中满足标签传递规则的进程或文件打上相应的标签;
15.步骤s33、根据att&ck框架制定相应的威胁检测规则,对数据依赖图中包含特定的标签的进程进行威胁警报,并标记导致威胁警报的标签为威胁标签;
16.步骤s34、对进程中不包含威胁标签和子进程的退出进程进行剪枝处理,得到新的数据依赖图;
17.步骤s4、取最新的数据依赖图,根据其中所包含的携带威胁标签的进程进行溯源,得到完整的apt攻击链。
18.以下还提供了若干可选方式,但并不作为对上述总体方案的额外限定,仅仅是进一步的增补或优选,在没有技术或逻辑矛盾的前提下,各可选方式可单独针对上述总体方案进行组合,还可以是多个可选方式之间进行组合。
19.作为优选,所述数据压缩算法,包括:
20.所述数据压缩算法的输入为:按时间顺序排列的事件,每个事件对应一个源实体和目标实体;
21.所述数据压缩算法的输出为:压缩后的事件;
22.所述数据压缩算法的压缩流程为:
23.初始化一个空集作为实体集;
24.对于一个事件,如果该事件的源实体不存在于实体集中,则将该事件的源实体添加进实体集中,并且将该事件的源实体的语义信息清空;如果该事件的目标实体存在于源实体的语义信息中,则删除该事件;最后,将该事件的目标实体的语义信息清空,并将该事件的目标实体添加进源实体的语义信息里。
25.作为优选,所述标签规则包含进程标签规则和文件标签规则,其中进程标签规则包括标签pt1、pt2、pt3、pt4、pt5、pt6、pt7、ps1、ps2、ps3、ps4、ps5、ps6、ps7、ps8,标签pt1的描述为进程有网络连接,标签pt2的描述为进程访问高价值数据流节点中的数据,标签pt3的描述为进程获取了网络数据,标签pt4的描述为进程加载或读取了被上传的文件,标签pt5的描述为进程与不存在的文件交互,标签pt6的描述为进程读取了passwd文件,标签pt7的描述为进程读取了~/.bash_history文件,标签ps1的描述为进程执行了网络中的文件,标签ps2的描述为进程执行了敏感文件,标签ps3的描述为进程执行了敏感命令,标签ps4的描述为进程执行了命令,标签ps5的描述为进程执行了shell命令,标签ps6的描述为进程修改了crontab文件,标签ps7的描述为进程修改了sudoers文件,标签ps8的描述为进程读取了敏感信息;
26.所述文件标签规则包括标签ft1、ft2、ft3、ft4、fs1、fs2、fs3、fs4、fs5、fs6、fs7、fv1、fv2、fv3、fv4,标签ft1的描述为文件在默认情况下是敏感文件,标签ft2的描述为文件来源于便携式设备,标签ft3的描述为文件最近被修改或创建,标签ft4的描述为文件是被上传的,标签fs1的描述为文件包含来源于网络的数据,标签fs2的描述为文件由执行了危险代码的进程所写,标签fs3的描述为该文件是敏感的,标签fs4的描述为文件不存在,标签fs5的描述为文件被webshell进程写过,标签fs6的描述为文件被rat进程写过,标签fs7的描述为文件被livingoffland进程写过,标签fv1的描述为/etc/crontab文件,标签fv2的描
述为/etc/sudoers文件,标签fv3的描述为/etc/passwd文件,标签fv4的描述为~/.bash_history文件。
27.作为优选,所述对数据依赖图中包含特定的标签的进程进行威胁警报,其中包含特定的标签的进程为:具有标签ps1的进程,或者具有标签pt4&ps4的进程,或者具有标签pt6&ps5的进程,或者具有标签ps1&ps5的进程,或者具有标签ps6/ps7/pt7/pt8的进程,或者具有标签ps8的进程,或者具有第一类pt4&ps4或具有第二类ps8标签的进程,或者具有第一类pt6&ps5或具有第二类ps8标签的进程,或者具有第一类ps1&ps5或具有第二类ps8标签的进程。
28.作为优选,所述取最新的数据依赖图,根据其中所包含的携带威胁标签的进程进行溯源,得到完整的apt攻击链,包括:
29.步骤s41、对进行威胁警报的进程进行分析,提取该进程中的威胁标签;
30.步骤s42、根据威胁检测规则,通过威胁标签确定该标签对应的标签传递规则和该标签对应的源节点;
31.步骤s43、对步骤s42中确定的源节点重复执行步骤s41和步骤s42,直至找到最初产生威胁的节点;
32.步骤s44、取步骤s41至步骤s43中所找到的所有节点以及事件生成溯源图,得到完整的apt攻击链,所述节点为进程或文件。
33.本技术提供的基于上下文行为分析的apt检测方法,基于att&ck框架进行上下文行为分析并结合了压缩的思维和非存活节点剪枝的策略。其中,apt&ck框架用于制定规则与检测策略,根据att&ck各阶段的攻击技术和战术,能够制定绝大多数的攻击策略。压缩的思维体现在利用数据压缩算法对冗余的事件进行跳过处理,提高检测效率。非存活节点剪枝的策略体现在对于退出进程进行有选择性的保留和删除,可以减少内存开销。该检测方法具有良好的适配性,对于新型的攻击手段只要制定好检测策略就能够成功检测,且误报率低可以减轻管理人员阅读日志的开销。
附图说明
34.图1为本技术的基于上下文行为分析的apt检测方法的流程图;
35.图2为本技术对依赖图进行压缩删减前后的一种实施例示意图;
36.图3为本技术进行剪枝处理的一种实施例示意图;
37.图4为本技术生成溯源图的一种实施例示意图。
具体实施方式
38.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
39.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是在于限制本技术。
40.其中一个实施例中,为了克服已有检测策略存在的缺陷,提供了一种具有高适配性、高覆盖性,能够实现实时检测的基于上下文行为分析的apt检测方法。
41.如图1所示,本实施例的基于上下文行为分析的apt检测方法,具体包括以下步骤:
42.步骤s1、实时采集日志数据,日志数据涉及的对象包括进程、文件和事件。
43.linux audit作为当下linux操作系统的原生日志系统,是近年来相当多研究工作所依赖的数据源。原因如下:1)能以相对较低的负载来完整记录源于系统内核的事件,具有相当强的可信度。2)系统日志不用针对不同软件做适配,3)其还不像网络流量受加密影响,在语义还原上存在效率低的缺陷。
44.因此本实施例针对linux audit提供一种日志数据的采集方法,包括:
45.s11、在本地的linux主机上安装spade作为采集日志数据的工具。安装成功后,运行spade即可采集到来自linux内核的audit日志数据。
46.s12、采集到的audit日志数据经过avro序列化后实时传入本地的检测框架中,并准备做数据预处理。
47.需要说明的是,以上所提供的日志数据采集方法速度快、完整性高。在其他实施例中还可以针对其他系统采用其他方式进行日志数据采集,例如通过filebeat、logstash、rsyslog等方式进行采集。
48.步骤s2、对采集到的日志数据进行预处理,包括:
49.步骤s21、创建进程树,将所有进程连接至同一个预定义的虚拟的祖父进程,使所有进程都拥有相同的祖父进程,方便进程之间的管理。容易理解的是,与步骤s12中对应的是,在执行步骤s21之前需要先对数据进程avro反序列化。
50.步骤s22、将进程和文件作为节点、将事件作为边构建数据依赖图;
51.步骤s23、采用数据压缩算法滤除冗余的事件,简化数据依赖图。采用压缩的思维跳过部分冗余语义数据。在大多数情况,系统会对同一个文件产生大量的读写操作,而冗余的读操作或写操作对于检测框架是没有必要的,是不会影响最终的检测结果的。因此采用数据压缩的思维,存储最近的一次或多次语义,对相同语义的数据进行跳过处理,提高检测速率。
52.本实施例中提供的数据压缩算法是一种保持全局语义的数据压缩策略。由于系统事件中通常包含参与实体(源实体和目标实体)、操作类型、发生时间等信息,拟采用源实体的语义特性来删除到同一目标实体的等价信息流,大量减少系统事件的存储。这里所指的参与实体可以是进程、文件等。而事件则是描述了实体之间如何相互作用,并可以转化为信息流。信息流又可分为数据流和控制流。数据流是指数据内容的依赖关系,它反映了数据的流动路径(例如,一个进程读取一个文件)。控制流主要指流程创建关系(如父流程创建子流程)。信息流对取证分析的重要性取决于连接的实体(例如,对于读取事件,读取从互联网下载的文件比读取本地已存在的文件更容易引入恶意信息)。
53.本实施例中提供的数据压缩算法的核心思想是:在源节点(对于数据依赖图而言,节点为进程或文件,同理源节点理解为源进程或源文件,目标节点理解为目标进程或目标文件)语义不变的前提下,信息流对同一目标的影响是等价的,等价事件可以作为冗余删除。需要保留的是对目标节点有影响的第一个事件。对于依赖图,当一个节点没有引入边时,可以认为它的语义不变,也可以认为它的出边语义不变。
54.如图2所示,在时间点3,进程a语义变化后,时间点4进程a写文件2的事件保留。同时在压缩后数据依赖图上也能反馈语义变化后的实体是否仍对此前作用目标造成影响。如果没有时间点4的事件,在删减后数据上可通过观测得知,进程a读取文件1改变语义后,进程a没有再写文件2,文件2中不会存在来自文件1的数据。
55.本实施例中提供的数据压缩算法不局限于单节点的特性,删减不影响局部依赖关系的事件,使得压缩后的数据依旧维持了系统中全实体间的依赖关系且无损语义。具体的本实施例的数据压缩算法的输入、输出和压缩流程如下:
56.数据压缩算法的输入为:按时间顺序排列的事件,每个事件对应一个源实体和目标实体。
57.数据压缩算法的输出为:压缩后的事件。
58.数据压缩算法的压缩流程为:初始化一个空集作为实体集w;对于一个事件ei,如果该事件ei的源实体sei不存在于实体集w中,则将该事件ei的源实体sei添加进实体集w中,并且将该事件ei的源实体sei的语义信息sem(sei)清空;如果该事件ei的目标实体dei存在于源实体sei的语义信息sem(sei)中,则删除该事件ei;最后,将该事件ei的目标实体dei的语义信息sem(dei)清空,并将该事件ei的目标实体dei添加进源实体sei的语义信息sem(sei)里。
59.也就是在处理实时事件时,该算法将确定是否存在从源实体sei到目的实体dei的具有相同语义的信息流。如果存在,将删除等效事件。否则,sem(dei)将被清空,dei将被添加到sem(sei)中。其程序执行流程如下:
[0060][0061]
步骤s3、根据简化后的数据依赖图基于上下文行为分析进行入侵检测。
[0062]
att&ck(adversarial tactics,techniques,and common knowledge)是一个反映各个攻击生命周期的攻击行为的模型和知识库。起源于一个项目,用于枚举和分类针对microsoft windows
tm
系统的攻陷后的战术,技术和过程(ttp),以改进对恶意活动的检测。
[0063]
att&ck框架能够实现全面的恶意活动检测,因此本实施例基于att&ck框架进程入
侵检测,其具体步骤如下:
[0064]
步骤s31、根据att&ck框架制定相应的标签规则,对数据依赖图中满足标签规则的进程或文件打上相应的标签;如对拥有网络连接的进程打上“进程有网络连接”的标签,对敏感文件打上“该文件是敏感的”的标签等。
[0065]
步骤s32、根据att&ck框架制定相应的标签传递规则,对数据依赖图中满足标签传递规则的进程或文件打上相应的标签;如对执行过敏感文件的进程打上“进程执行了敏感文件”的标签等。
[0066]
步骤s33、根据att&ck框架制定相应的威胁检测规则,对数据依赖图中包含特定的标签的进程进行威胁警报,并标记导致威胁警报的标签为威胁标签;本实施例中进行威胁警报理解为检测出存在apt攻击。如对包含“对不可信文件进行执行操作标签”的进程报出不可信执行(untrusted execution)的威胁,对同时包含“该进程包含敏感信息标签”和“该进程与外部主机有交互”报出数据泄露(data exfiltration)的威胁。
[0067]
本实施例中提供的标签规则包含进程标签规则和文件标签规则,则所制定的具体的标签规则、标签传递规则和威胁检测规则如下:
[0068]
表1进程标签规则
[0069][0070]
表2文件标签规则
[0071][0072][0073]
表3标签传递规则
[0074]
[0075]
[0076]
[0077][0078]
表3中的标签1对应于进程的标签,标签2对应于文件的标签。并且表3中的传递方向指数据的传递方向,“正”表示进程对文件进行写操作,即数据由进程传递给文件,“反”表示进程对文件进程读操作,即数据由文件传递给进程。
[0079]
表4威胁检测规则
[0080]
[0081][0082]
注,表4中的标签即为导致威胁警报的威胁标签。
[0083]
表1~4中的描述理解为对每一条的定义。并且需要说明的是,通常敏感命令为用户自定义的敏感命令,例如whoami,id等操作,正常情况下敏感命令不会被执行。通常上述表格中涉及的文件目录为linux系统的基本架构,本实施例针对其他系统可进行自定义的高价值文件划分,或者基于本实施例在linux系统下的划分方法对应划分。
[0084]
本实施例设置进程标签和文件标签进行单点分析,并通过标签之间的传递规则将单点分析结果通过控制流和数据流进行连接,从而进行完整的链路分析。
[0085]
步骤s34、对进程中不包含威胁标签和子进程的退出进程进行剪枝处理,得到新的数据依赖图。
[0086]
进程根据其执行操作的不同可分为多种类型,例如读进程、写进程、退出进程等,本实施例中为简化数据依赖图,提高apt攻击溯源速度,对进程中的退出进程进行剪枝处理,对不包含任何威胁标签和子进程的退出进程在进程树上对其进行剪枝,释放内存,减少内存开销。对包含威胁标签或子进程的退出进程不做剪枝处理,为了后续的溯源分析。本实施例中剪枝处理的算法如下:
[0087]
开始:
[0088]
对于exit(退出)进程e(u,v);
[0089]
判断进程节点u是否存在威胁标签(phf);
[0090]
如果不存在,则:
[0091]
判断进程节点u是否存在子进程;
[0092]
如果不存在,则:
[0093]
删除该进程;
[0094]
结束。
[0095]
如图3所示,图中左边虚线框内为处理前的数据依赖图(graph),其中所包含的加粗箭头(标注r)为冗余事件,虚线箭头和圆(标注p)为不包含任何威胁标签和子进程的退出进程,经过剪枝处理(prune)和删除冗余(redundancy deletion)后得到右边虚线框内简化后的数据依赖图。由图中可以看出简化后的数据依赖图相较于处理前的数据依赖图简化很多。
[0096]
步骤s4、取最新的数据依赖图,根据其中所包含的携带威胁标签的进程进行溯源,得到完整的apt攻击链,包括:
[0097]
步骤s41、对进行威胁警报的进程进行分析,提取该进程中的威胁标签;
[0098]
步骤s42、根据威胁检测规则,通过威胁标签确定该标签对应的标签传递规则和该标签对应的源节点;
[0099]
步骤s43、对步骤s42中确定的源节点重复执行步骤s41和步骤s42,直至找到最初产生威胁的节点;对步骤s42中确定的源节点重复执行步骤s41和步骤s42,理解为以步骤s42中确定的源节点进行分析。
[0100]
步骤s44、取步骤s41至步骤s43中所找到的所有节点以及事件生成溯源图,得到完整的apt攻击链。
[0101]
如图4所示,图中左边虚线框中的黑色填充的圆为通过威胁检测规则识别出来的具有威胁标签的节点,基于该节点的标签传递规则和该标签对应的源节点进行分析(analysis)进行溯源,得到右边虚线框中的溯源图(source),溯源图中的黑色填充的圆以及之间的箭头为完整的apt攻击链。
[0102]
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0103]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来
说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1