1.一种融合序列学习和因果分析的APT攻击溯源方法,其特征在于:所述融合序列学习和因果分析的APT攻击溯源方法包括如下步骤:(1)获取系统内核日志和POI事件,所述系统内核日志包括遭受攻击的系统内核日志和未遭受攻击的系统内核日志;
(2)构建POI强依赖影响模块,所述POI强依赖影响模块执行如下操作:
(2‑1)根据第一数据库进行POI事件反向依赖图构建并压缩,所述第一数据库包括遭受攻击的系统内核日志和POI事件;
(2‑2)从压缩后的POI事件反向依赖图中提取事件的特征,根据提取的特征计算依赖影响并传播,筛选出依赖影响排名靠前的预设比例的节点作为高依赖影响节点,然后根据高依赖影响节点构建POI强依赖影响图;
(3)采用关键序列识别模型训练模块获取训练好的关键序列识别模型,所述关键序列识别模型训练模块执行如下操作:(3‑1)根据第二数据库进行正向依赖图构建并压缩,所述第二数据库包括未遭受攻击的系统内核日志;
(3‑2)在压缩后的正向依赖图中提取以进程为中心的按时序递增的事件序列,并基于事件序列构建序列预先分词语句;
(3‑3)利用序列预先分词语句对BERT预训练模型进行嵌入训练,得到嵌入向量;
(3‑4)将嵌入向量输入OC‑SVM模型进行训练,获得训练好的关键序列识别模型;
(4)通过关键组件识别模块进行APT攻击溯源,所述关键组件识别模块执行如下操作:将基于POI强依赖影响图获取的嵌入向量输入训练好的关键序列识别模型进行识别,视识别出的进程和事件对应为关键进程和关键事件,组合关键进程和关键事件为关键组件图,根据关键组件图实现APT攻击溯源;
所述POI事件反向依赖图构建并压缩、或正向依赖图构建并压缩,具体如下:
依赖图构建:提取对应数据库中的文件、网络、进程三种类型的内核对象和内核对象相关的事件,并将提取的各类型内核对象和内核对象相关的事件分别表示为多元组以构建对应依赖图,内核对象作为对应依赖图中的节点,事件作为对应依赖图中的边;
依赖图压缩:保留对应依赖图中具有可疑语义的节点和具有可疑语义的事件,所述具有可疑语义的节点指不在白名单内的网络节点和已知的可疑进程节点或恶意文件节点以及从具有可疑语义的节点进行前向分析可以到达的节点,所述具有可疑语义的事件是指主体或客体包含具有可疑语义的节点的事件;删除对应依赖图中预设时间范围内相同操作且相同主体和客体的事件;删除对应依赖图中临时文件和孤立节点,所述孤立节点表示没有出边和入边的节点;
所述从压缩后的POI事件反向依赖图中提取事件的特征,根据提取的特征计算依赖影响并传播,筛选出依赖影响排名靠前的预设比例的节点作为高依赖影响节点,然后根据高依赖影响节点构建POI强依赖影响图,具体如下:(2‑2‑1)特征提取:从压缩后的POI事件反向依赖图中提取每个事件的特征,所述事件的特征为与POI事件的数据流量的相似度、与POI事件的时间的相似度、目的节点的稀有性和目的节点的出入度形成的四维特征矩阵;
(2‑2‑2)边权重计算:根据每个事件的四维特征矩阵,采用K‑medoids聚类算法将事件分成两类,之后,通过Fisher分类器最大化两类的差别获得四维投影向量,将每个事件的四维特征矩阵点乘四维投影向量以计算对应事件的依赖权重,最后将POI事件反向依赖图中节点的出边的依赖权重进行归一化,得到归一化边依赖权重;
(2‑2‑3)依赖影响计算并传播:根据归一化边依赖权重,将POI事件对应节点的依赖影响设置为1,其他节点的依赖影响初始化为0,反向传播并计算其他节点的依赖影响,直到每个节点的依赖影响不变或达到预设最大传播次数,所述其他节点的依赖影响计算公式为,其中, 表示对应节点的第j条出边的归一化边依赖权重, 表示对应节点的第j条出边的目的节点的依赖影响,且 、 均为小于1的正数,j=1 n,n表示对应节点的出边~数量;
(2‑2‑4)高依赖影响节点筛选:获取节点的依赖影响并按不同类型分别进行排名,对于每个类型选择排名靠前的预设比例的节点视为高依赖影响节点,并将高依赖影响节点作为入口节点;
(2‑2‑5)POI强依赖影响图构建:先将高依赖影响节点的出边添加到空白依赖影响图中;之后,将从高依赖影响节点的出边出发进行前向分析可以达到的事件的边也添加到空白依赖影响图中,直到没有可以添加的边,则将添加后的空白依赖影响图作为POI强依赖影响图;
所述在压缩后的正向依赖图中提取以进程为中心的按时序递增的事件序列,并基于事件序列构建序列预先分词语句,具体如下:(3‑2‑1)序列提取:首先,获取压缩后的正向依赖图中所有的进程节点;然后,获取每个进程节点对应的入边和出边,并按照时间增加的顺序对每个进程节点对应的出边和入边整体进行排序形成第一序列;之后,按照预设的相邻事件的时间间隔将每个进程节点对应的第一序列分割成若干个子序列;最后,将子序列中的事件按时序递增的顺序构建为第二序列,每个进程节点的所有子序列对应的第二序列即为提取的以进程为中心的按时序递增的事件序列;
(3‑2‑2)序列词化:首先,在压缩后的正向依赖图中,获取所有节点的唯一标识符和事件类型的集合,然后,根据节点的类型进行分词,得到节点的唯一标识符或事件类型对应的分词字典、以及由所有节点的唯一标识符和事件类型的分词结果组成的词汇表;之后,对于各事件序列,使用分词字典构建序列预先分词语句;
所述利用序列预先分词语句对BERT预训练模型进行嵌入训练,得到嵌入向量,具体如下:首先,将词汇表添加到BERT预训练模型的词汇表中形成新的词汇表,并且调整BERT预训练模型的嵌入层以适应新的词汇表大小;然后,对各序列预先分词语句通过空格进行分词,将得到的词根据词汇表转换成ID,获得对应转换的ID列表;最后,将各序列预先分词语句的ID列表输入BERT预训练模型得到嵌入向量。
2.如权利要求1所述的融合序列学习和因果分析的APT攻击溯源方法,其特征在于:所述将提取的各类型内核对象和内核对象相关的事件分别表示为多元组,具体如下:将各类型的内核对象表示成二元组<唯一标识符,类型>,其中文件的唯一标识符表示为文件绝对路径,类型为file;进程的唯一标识符表示为进程PID_进程名,类型为process;
网络的唯一标识符表示为源IP地址:源端口号_目的IP地址:目的端口号,类型为network;
将事件表示成四元组<主体, 操作, 客体, 时间戳>,其中操作表示事件类型,主体和客体均为内核对象,且使用内核对象的唯一标识符表示。
3.如权利要求1所述的融合序列学习和因果分析的APT攻击溯源方法,其特征在于:所述四维特征矩阵计算如下:
1)与POI事件的数据流量的相似度
;
式中, 表示事件e(u,v)的数据流量与POI事件的数据流量的相似度,事件e(u,v)为压缩后的POI事件反向依赖图中的事件,u表示事件e(u,v)的源节点,即事件e(u,v)中的主体,v表示事件e(u,v)的目的节点,即事件e(u,v)中的客体, 表示POI事件的数据流量,表示事件e(u,v)的数据流量, 表示小于等于0.0001的正数;
2)与POI事件的时间的相似度
;
式中, 表示事件e(u,v)的时间与POI事件的时间的相似度, 表示POI事件的时间, 表示事件e(u,v)的时间, 表示小于等于0.0001的正数;
3)目的节点的稀有性
;
式中, 表示事件e(u,v)的目的节点的稀有性, 表示总的时间窗口数,为大于1的正整数, 表示事件e(u,v)的目的节点v在时间窗口中出现的次数,为大于等于0的正整数;
4)目的节点的出入度比
;
式中, 表示事件e(u,v)的目的节点的出入度比,InDegree(u)表示事件e(u,v)的目的节点v的入度,OutDegree(u)表示事件e(u,v)的目的节点v的出度。
4.如权利要求1所述的融合序列学习和因果分析的APT攻击溯源方法,其特征在于:所述根据节点的类型进行分词,具体如下:对于文件类型,按照文件的每层目录、文件基本名和文件扩展名进行分词;对于网络类型,按照IP地址点分十进制表示的每个字节的数字和端口号进行分词;对于进程节点,按照进程的执行文件的每层目录、执行文件基本名、执行文件扩展名和进程PID进行分词;对于事件类型,则直接使用;分词时去除每个分词内的空格。
5.如权利要求1所述的融合序列学习和因果分析的APT攻击溯源方法,其特征在于:所述对于各事件序列,使用分词字典构建序列预先分词语句,具体如下:对于事件序列中第二序列的每个元素的事件,按照主体、客体和事件类型在分词字典中对应的分词结果构建事件分词语句,然后,按事件的时间增加顺序组合为对应元素的事件序列分词语句,并将事件序列中所有事件序列分词语句进行去重;最后,在去重后的每个事件序列分词语句的开头添加‘[CLS]’,末尾添加‘[SEP]’,得到对应的序列预先分词语句。
6.如权利要求5所述的融合序列学习和因果分析的APT攻击溯源方法,其特征在于:所述按事件的时间增加顺序组合为对应元素的事件序列分词语句时,若在组合任一事件的分词语句后,事件序列分词语句的词数量超过预设数量,则将该事件及该事件之后的事件分词语句组合成新的事件序列分词语句,如果新的事件序列分词语句的词数量仍超过预设数量,则继续组合新的事件序列分词语句,以此类推。