CN115622802B - 攻击溯源方法、装置、设备和存储介质 - Google Patents

攻击溯源方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN115622802B
CN115622802B CN202211533435.3A CN202211533435A CN115622802B CN 115622802 B CN115622802 B CN 115622802B CN 202211533435 A CN202211533435 A CN 202211533435A CN 115622802 B CN115622802 B CN 115622802B
Authority
CN
China
Prior art keywords
node
nodes
attack
tracing
graph
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202211533435.3A
Other languages
English (en)
Other versions
CN115622802A (zh
Inventor
薛野
严朝豪
孙凯
伊永鹏
徐龙光
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Zhixiang Technology Co Ltd
Original Assignee
Beijing Zhixiang Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Zhixiang Technology Co Ltd filed Critical Beijing Zhixiang Technology Co Ltd
Priority to CN202211533435.3A priority Critical patent/CN115622802B/zh
Publication of CN115622802A publication Critical patent/CN115622802A/zh
Application granted granted Critical
Publication of CN115622802B publication Critical patent/CN115622802B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1425Traffic logging, e.g. anomaly detection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/146Tracing the source of attacks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明提供一种攻击溯源方法、装置、设备和存储介质,属于网络安全技术领域,该方法包括:基于日志信息中包括的多个操作事件,建立初始溯源图;初始溯源图包括多个第一节点,第一节点和操作事件中目标对象一一对应;基于多个操作事件中目标对象的行为特征,确定初始溯源图中每个所述第一节点的异常值,并利用每个第一节点的异常值,对所述初始溯源图中的第一节点进行删减,得到更新后的溯源图;异常值用于表示第一节点被攻击的可能性;基于更新后的溯源图以及被攻击的第二节点,确定攻击路径;第二节点为更新后的溯源图中至少一个节点。上述方案攻击溯源的效率和准确性较高。

Description

攻击溯源方法、装置、设备和存储介质
技术领域
本发明涉及网络安全技术领域,尤其涉及一种攻击溯源方法、装置、设备和存储介质。
背景技术
近年来,随着网络空间攻击面的不断扩大,新一代的攻击威胁频繁发生。为应对这些攻击威胁,除了提前预防各类安全事故发生,还包括对各类安全事故进行事后的响应,攻击溯源是各类安全事故中进行事后响应的重要组成部分,在一定程度上能够还原攻击者的攻击路径与攻击手法。通过这种攻击溯源的方法,可以确定攻击源和其攻击的相应路径,以便防御者制定更好地防护和反制方案。
一般攻击溯源需要分析系统日志,基于系统日志,分析攻击者的攻击行为之间的因果关联关系。但是利用繁杂的系统日志进行攻击溯源的效率和准确性较低。
发明内容
本发明提供一种攻击溯源方法、装置、设备和存储介质,用以解决现有技术中攻击溯源的效率和准确性较低的缺陷,实现效率和准确性较高的攻击溯源方法。
本发明提供一种攻击溯源方法,包括:
基于日志信息中包括的多个操作事件,建立初始溯源图;所述初始溯源图包括多个所述第一节点,所述第一节点和所述操作事件中目标对象一一对应;
基于所述多个操作事件中目标对象的行为特征,确定所述初始溯源图中每个所述第一节点的异常值,并利用每个所述第一节点的异常值,对所述初始溯源图中的第一节点进行删减,得到更新后的溯源图;所述异常值用于表示所述第一节点被攻击的可能性;
基于更新后的溯源图以及被攻击的第二节点,确定攻击路径;所述第二节点为所述更新后的溯源图中至少一个节点。
根据本发明提供的一种攻击溯源方法,所述目标对象包括以下至少一项:进程、文件、网络接口;所述基于所述多个操作事件中目标对象的行为特征,确定所述初始溯源图中每个所述第一节点的异常值,包括:
针对每个所述第一节点,基于所述目标对象的行为特征,遍历训练得到的T棵孤立树,确定所述第一节点在所述T棵孤立树中的平均高度;T为大于0的整数;
基于所述第一节点在所述T棵孤立树的平均高度,确定所述第一节点的异常值。
根据本发明提供的一种攻击溯源方法,所述基于所述第一节点在所述T棵孤立树的平均高度,确定所述第一节点的异常值之后,还包括:
基于所述第一节点的异常值以及所述第一节点相关的邻居节点的异常值,对所述第一节点的异常值进行更新。
根据本发明提供的一种攻击溯源方法,所述基于所述第一节点的异常值以及所述第一节点相关的邻居节点的异常值,对所述第一节点的异常值进行更新,包括:
针对所述初始溯源图中任一第一节点,确定所述第一节点的所有邻居节点;每个第一节点具有社区标签;所述社区标签包括正常或异常标签;
获取所有邻居节点的社区标签,并将所有具有相同社区标签的邻居节点的异常值之和作为所述具有相同社区标签的邻居节点更新后的异常值;将所述第一节点的异常值,更新为与所述第一节点具有相同社区标签的异常值最大的邻居节点的异常值。
根据本发明提供的一种攻击溯源方法,所述利用每个所述第一节点的异常值,对所述初始溯源图中的第一节点进行删减,包括:
剔除所述初始溯源图中异常值小于或等于预设阈值的第一节点。
根据本发明提供的一种攻击溯源方法,所述基于更新后的溯源图以及被攻击的第二节点,确定攻击路径,包括:
将所述第二节点作为攻击的起始节点,并确定攻击的终止节点;所述终止节点包括前向终止节点和后向终止节点,所述前向终止节点为入度为0的节点,后向终止节点为出度为0的节点;
基于所述起始节点和终止节点,利用启发式搜索算法确定所述攻击路径。
根据本发明提供的一种攻击溯源方法,所述基于所述起始节点和终止节点,利用启发式搜索算法确定所述攻击路径,包括:
从所述起始节点开始,将所述起始节点作为目标节点,执行如下步骤:
步骤a、确定所述目标节点的每个相邻节点的代价;所述相邻节点的代价为基于所述目标节点到所述相邻节点之间路径中所有第一节点的异常值得到的;
步骤b、将代价最大的相邻节点,作为所述攻击路径中所述目标节点的相邻节点,并将所述相邻节点作为所述目标节点;重复执行步骤a-步骤b,直至遍历至所述终止节点。
根据本发明提供的一种攻击溯源方法,所述方法还包括:
将所述起始节点到所述相邻节点的实际代价以及所述相邻节点到所述终止节点的估计代价之和,作为所述相邻节点的代价;
其中,所述实际代价为所述起始节点到所述相邻节点之间路径中所有第一节点的异常值之和;所述估计代价为基于所述异常值之和以及所述起始节点到所述相邻节点之间路径中所有第一节点的节点数量得到的。
本发明还提供一种攻击溯源装置,包括:
建立模块,用于基于日志信息中包括的多个操作事件,建立初始溯源图;所述初始溯源图包括多个所述第一节点,所述第一节点和所述操作事件中目标对象一一对应;
处理模块,用于基于所述多个操作事件中目标对象的行为特征,确定所述初始溯源图中每个所述第一节点的异常值,并利用每个所述第一节点的异常值,对所述初始溯源图中的第一节点进行删减,得到更新后的溯源图;所述异常值用于表示所述第一节点被攻击的可能性;
所述处理模块,还用于基于更新后的溯源图以及被攻击的第二节点,确定攻击路径;所述第二节点为所述更新后的溯源图中至少一个节点。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述攻击溯源方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述攻击溯源方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述攻击溯源方法。
本发明提供的攻击溯源方法、装置、设备和存储介质,基于日志信息中包括的多个操作事件,建立初始溯源图;初始溯源图包括多个第一节点,第一节点和操作事件中目标对象一一对应;基于多个操作事件中目标对象的行为特征,确定所述初始溯源图中每个所述第一节点的异常值,并利用每个第一节点的异常值,对初始溯源图中的第一节点进行删减,得到更新后的溯源图;异常值用于表示所述第一节点被攻击的可能性;由于对初始溯源图中的第一节点进行了删减,所以最终进行攻击路径的溯源效率较高,而且删减是基于第一节点的异常值实现的,删减的第一节点对攻击溯源的结果影响较小,进而基于更新后的溯源图以及被攻击的第二节点,确定攻击路径,攻击溯源的效率和准确性较高。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的攻击溯源方法的流程示意图之一;
图2是本发明提供的攻击溯源方法的溯源图示意图;
图3是本发明提供的攻击溯源装置的结构示意图;
图4是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
随着网络空间的不断发展,攻击行为也逐渐复杂化、隐蔽化。攻击者可以通过0day漏洞进入系统,并且在主机中所作的权限维持、后渗透、敏感数据泄露等操作,防御者无法察觉,极易造成隐私数据损失。
通常系统日志中包含完整的用户、进程等操作信息,可以通过分析系统日志进行攻击路径的还原。但是系统日志在服务器和客户端主机中通常以较快的速度增长。快速增长的日志造成存储和分析的难度,如何从海量数据中发现细微的攻击场景成为攻击检测的挑战。通常采用的方法是以人工的方式凭借经验逐条查看日志,寻找有可能记录了攻击行为的信息。但是这种方法耗时耗力,往往无法及时发现攻击行为,造成更大的数据和财产损失。同时,对于跨越多个应用且时间跨度很长的攻击行为,分析人员很难将这些片段拼凑起来。因此,分析人员不仅需要检测攻击,而且需要对攻击链产生的因果关系进行总结。进而分析人员才能快速判断系统是否遭受了入侵、了解攻击者是如何发动攻击的以及确定攻击带来的影响。
本发明针对目前使用系统日志进行攻击还原时,生成的攻击溯源图过大导致的攻击发现耗时长、准确度低的问题,提出基于操作事件的行为特征的溯源图分析技术,对溯源图进行剪枝,随后向前和向后遍历,发现精准的攻击路径。
本发明实施例中,基于系统日志,例如包括Linux系统的audit日志模块和Windows系统的事件跟踪日志系统(Event Tracing for Windows,ETW)产生的系统审计日志等,发现攻击场景,还原攻击细节。
下面结合图1-图4具体的实施例对本发明实施例的技术方案进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例不再赘述。
图1是本发明提供的攻击溯源方法的流程示意图之一。如图1所示,本实施例提供的方法,包括:
步骤101、基于日志信息中包括的多个操作事件,建立初始溯源图;初始溯源图包括多个所述第一节点,第一节点和操作事件中目标对象一一对应;
具体的,基于日志信息中包括的多个操作事件,建立初始溯源图,初始溯源图中的第一节点为操作事件中的目标对象。可选地,目标对象包括以下至少一项:进程、文件、网络接口。
初始溯源图,用于表示进程、文件与网络接口(例如套接字socket接口)之间的因果依赖关系,以图的形式为攻击溯源提供上下文信息。依赖关系例如包括进程与进程之间、进程与文件之间、进程与网络接口之间的基于系统调用的关系。进程之间的依赖是指进程创建、通信、调用等进程之间直接的影响关系。进程与文件的因果关系指进程与文件之间存在的操作关系,如进程对文件的读、写、执行,文件的打开、创建、重命名等。进程与网络接口之间的关系是指进程对网络接口的调用,如网络的打开,监听等。图2中所示的是基于日志信息生成的溯源图,例如,日志信息例如包括如下操作事件:
时刻0:进程A创建文件B;
时刻1:进程B写入文件1;
时刻2:进程B写入文件2;
时刻3:进程A读取文件0;
时刻4:进程A创建进程C;
时刻5:进程C读取文件1;
时刻6:进程C写入文件X;
时刻7:进程C读取文件2;
时刻8:进程A创建进程D。
例如,在溯源图中,文件用椭圆表示,进程用矩形表示,网络接口用菱形表示。
步骤102、基于多个操作事件的行为特征,确定初始溯源图中每个第一节点的异常值,并利用每个第一节点的异常值,对初始溯源图中的第一节点进行删减,得到更新后的溯源图;异常值用于表示第一节点被攻击的可能性;
可选地,异常值越大,第一节点被攻击的可能性越大。
具体的,提取多个操作事件中目标对象的行为特征,基于目标对象的行为特征,确定各个第一节点的异常值,用于对初始溯源图进行剪枝,即对初始溯源图中的第一节点进行删减,便于提高攻击溯源的效率和准确性,例如对异常值较小的第一节点进行删减,并删减与第一节点相连的边。
步骤103、基于更新后的溯源图以及被攻击的第二节点,确定攻击路径;第二节点为更新后的溯源图中至少一个节点。
具体的,基于更新后的溯源图以及被攻击的第二节点,确定攻击路径,即还原攻击者的攻击路径,从发现被攻击的第二节点开始对攻击进行溯源,确定出攻击路径,例如第二节点为发生报警的节点。
例如将第二节点作为起始节点,发现异常值最大的攻击路径。例如,攻击时,攻击者往往选择路径节点最少,危害最大的路径。例如,图2中文件0与文件X之间存在多条路径,其中,进程C为确定异常的节点,即异常值满足一定条件的节点,因此攻击路径中需要包含进程C,结合上述节点少,危害大的条件,最终的攻击路径可以为文件0—>进程A—>进程C—>文件X。
本实施例的方法,基于日志信息中包括的多个操作事件,建立初始溯源图;初始溯源图包括多个第一节点,第一节点和操作事件中目标对象一一对应;基于多个操作事件中目标对象的行为特征,确定所述初始溯源图中每个所述第一节点的异常值,并利用每个第一节点的异常值,对初始溯源图中的第一节点进行删减,得到更新后的溯源图;异常值用于表示所述第一节点被攻击的可能性;由于对初始溯源图中的第一节点进行了删减,所以最终进行攻击路径的溯源效率较高,而且删减是基于第一节点的异常值实现的,删减的第一节点对攻击溯源的结果影响较小,进而基于更新后的溯源图以及被攻击的第二节点,确定攻击路径,攻击溯源的效率和准确性较高。
可选地,步骤101可以通过如下方式实现:
针对每个所述第一节点,基于所述目标对象的行为特征,遍历训练得到的T棵孤立树,确定所述第一节点在所述T棵孤立树中的平均高度;T为大于0的整数;
基于所述第一节点在所述T棵孤立树的平均高度,确定所述第一节点的异常值。
具体的,对系统日志进行分析,获取操作事件,并提取操作事件的行为特征,行为特征是指能够代表本主机行为的操作信息,例如包括本机特征和同类主机特征。
本机特征:主机中的操作事件的信息,例如包括以下至少一项:操作频率、操作时间、操作对象(例如通过序列表示)、操作内容。
同类主机特征:同类主机(如其他办公主机)同时段内发生的操作事件的信息。
对主机中的每一个操作事件提取行为特征,例如可以通过特征向量表示行为特征,可选地,可以对特征向量进行归一化。
特征向量也即是把操作事件用统计的方式表达,比如一小时之内有无相同类型操作,相同类型操作的数量,操作对象的数量,类别等。例如,可以使用孤立森林算法(Isolation Forest,IF)进行异常检测,即确定异常值。
一个行为特征的特征向量可以被看作是孤立森林中的一个节点,孤立森林的根节点只具有象征意义,没有具体的含义,样本(即行为特征)均在叶节点,并且异常的样本距离根节点更近。
在孤立森林中,异常被定义为“容易被孤立的离群点(more likely to beseparated)”,可以将其理解为分布稀疏且离密度高的群体较远的点。在特征空间里,分布稀疏的区域表示事件发生在该区域的概率很低,因而可以认为落在这些区域里的数据是异常的。孤立森林是一种无监督异常检测方法,即不需要有标记的样本来训练。在孤立森林中,递归地随机分割数据集,直到所有的样本点都是孤立的。在这种随机分割的策略下,异常点通常具有较短的路径。
孤立森林算法由T个孤立树iTree组成,每个iTree是一个二叉树结构。该算法可以分为两个阶段,第一个阶段训练出T颗孤立树,组成孤立森林。第二阶段将每个第一节点带入森林中的每棵孤立树,计算平均高度,之后再计算每个第一节点的异常值。
获得训练后的T个iTree之后,对于每一个第一节点xi,遍历每一颗孤立树iTree,计算第一节点xi在森林(T个iTree)中的平均高度h(xi),基于第一节点的平均高度确定异常值。
例如,可以通过如下公式计算异常值:
其中,表示第一节点x的异常值。c(ψ)为ψ个样本构建的孤立树的平均路径高度,ψ个样本即训练孤立树的样本。H(i)是调和数,例如可以通过ln(i)+0.5772156649(欧拉常数)来估算。表示第一节点的平均高度,例如将第一节点的特征向量与训练得到的孤立树中的每个叶节点进行匹配,若匹配成功,则将该叶节点到根节点的路径长度作为该第一节点的高度,遍历T个孤立树之后,得到第一节点的平均高度。
例如,c(ψ)可以通过如下公式得到:
为训练孤立树的样本个数。
可选地,在得到所有第一节点的平均高度之后,可以进行归一化处理。
例如办公主机中日常操作均为网站访问、邮件收发等,而某日出现了通过powershell(一种命令行外壳程序和脚本环境)设置定时任务下载文件的操作。在分析时提取该主机的所有操作,为每个操作生成一个特征向量,如9维向量(6.0,148.0,72.0,35.0,0.0,33.6,0.627,50.0),通过上述方式分析后,该特征向量与正常的特征向量差距较大,因此创建树后,该操作在孤立树中的高度较小,也就是说,异常值较高。
可选地,孤立树的训练过程如下:
(1)从训练数据中随机选择Ψ个样本点作为样本子集,放入树的根节点。
(2)随机指定一个维度(特征),在当前Ψ个样本点中随机产生一个切割点p(切割点产生于当前Ψ个样本点中指定维度的最大值和最小值之间)。
(3)以此切割点生成一个超平面,然后将当前Ψ个样本点的空间划分为2个子空间:把指定维度里小于p的数据放在当前节点的左子节点,把大于等于p的数据放在当前节点的右子节点。
(4)在子节点中递归步骤(2)和(3),不断构造新的子节点,直到子节点中只有一个节点数据(无法再继续切割)或子节点已到达限定高度。
(5)循环(1)至(4),直至生成T个孤立树iTree。
可选地,第一节点的异常值跟自身异常程度与节点上下文的异常程度相关,因此在得到异常值之后,还可以:
基于所述第一节点的异常值以及所述第一节点相关的邻居节点的异常值,对所述第一节点的异常值进行更新。
具体的,可以基于第一节点以及与第一节点相关的邻居节点的异常值,对第一节点的异常值进行更新,按照第一节点最终的异常值对初始溯源图进行剪枝,在不影响分析效果的同时,可以缩小需要分析的溯源图的大小,即对初始溯源图中的第一节点进行删减,便于提高攻击溯源的效率和准确性。
可选地,异常值更新具体可以通过如下方式实现:
针对所述初始溯源图中任一第一节点,确定所述第一节点的所有邻居节点;每个第一节点具有社区标签;所述社区标签包括正常或异常标签;
获取所有邻居节点的社区标签,并将所有具有相同社区标签的邻居节点的异常值之和作为所述具有相同社区标签的邻居节点更新后的异常值;将所述第一节点的异常值,更新为与所述第一节点具有相同社区标签的异常值最大的邻居节点的异常值。
具体的,第一节点的异常值跟自身异常程度,以及与节点上下文的异常值相关,因此可以基于标签传播算法(Label Propagation Algorithm,LPA)调整第一节点的异常值,按照第一节点最终的异常值对初始溯源图进行剪枝,在不影响分析效果的同时,缩小需要分析的溯源图的大小。
本发明中,社区包括“正常”和“异常”两类,例如正常代表没有被攻击,异常代表被攻击。
具体实现步骤如下:
(1)每个第一节点初始化自己的社区标签,也就是每个第一节点都属于一个独立的社区,社区标签包括:正常和异常标签。
(2)针对任一第一节点,遍历初始溯源图中所有的第一节点,找到该第一节点的所有邻居节点。
(3)获取所有邻居节点的社区标签,计算所有具有相同社区标签的邻居节点的异常值之和作为具有该社区标签的邻居节点的异常值,找到与第一节点具有相同社区标签的权重最大的邻居节点,将其的异常值更新为当前第一节点的异常值。
例如,第一节点的邻居节点有节点1、节点2、节点3和节点4,具有相同社区标签的节点为节点3和节点4,节点1和节点2社区标签不同,并且与节点3和节点4的社区标签也不同。假设节点3和节点4的异常值之和为0.8(例如异常值为0-1的数),第一节点与节点3和节点具有相同社区标签,则将第一节点的异常值更新为0.8。
可选地,为了进一步提高异常值分析的准确性,还可以进行收敛判定:
遍历初始溯源图中所有的第一节点,找到当前第一节点的所有邻居节点。获取所有邻居节点,并找到异常值最大的邻居节点,判定邻居节点的社区标签是否是与当前第一节点的社区标签相同,如果均判定通过,则算法结束;未收敛则继续执行步骤(2)、(3)。为防止震荡情况出现,可以设置一个最大迭代次数。达到最大迭代次数后结束。
上述实施方式中,由于对异常值进行更新时,考虑了当前节点以及与之相关的邻居节点,因此使得溯源图中的第一节点的异常值更加准确,可以提高攻击溯源的准确性。
可选地,利用每个所述第一节点的异常值,对所述初始溯源图中的第一节点进行删减,得到更新后的溯源图,可以通过如下方式实现:
剔除所述初始溯源图中异常值小于或等于预设阈值的第一节点。
具体的,在计算节点异常值后,为每个第一节点都分配了异常值,剔除异常值小于或等于预设阈值的节点及边 (即剔除“正常”社区的节点),即对初始溯源图进行剪枝,以便后续进行溯源图的遍历。
例如,图2所示的溯源图中,进程C为异常节点,则与其相关的文件1,文件2,文件X的异常值也较高,而相对较远的文件0,进程D等异常值相对较低。
上述实施方式中,通过行为特征异常检测和节点异常值传播对溯源图进行剪枝,能够有效缩减溯源图,提升还原攻击路径的效率。通过这种细粒度的攻击溯源,可以应对逐步演变,复杂多样的攻击行为。
可选地,步骤103可以通过如下方式实现:
将所述第二节点作为攻击的起始节点,并确定攻击的终止节点;所述终止节点包括前向终止节点和后向终止节点,所述前向终止节点为入度为0的节点,后向终止节点为出度为0的节点;
基于所述起始节点和终止节点,利用启发式搜索算法确定所述攻击路径。
可选地,利用启发式搜索算法确定所述攻击路径,具体可以采用如下方式:
从所述起始节点开始,将所述起始节点作为目标节点,执行如下步骤:
步骤a、确定所述目标节点的每个相邻节点的代价;所述相邻节点的代价为基于所述目标节点到所述相邻节点之间路径中所有第一节点的异常值得到的;
步骤b、将代价最大的相邻节点,作为所述攻击路径中所述目标节点的相邻节点,并将所述相邻节点作为所述目标节点;重复执行步骤a-步骤b,直至遍历至所述终止节点。
具体的,在对初始溯源图进行剪枝之后,可以进行攻击路径还原,即基于攻击逻辑、历史攻击路径等指导攻击链的发现。首先确定攻击的起始节点和终止节点,起始节点为发生报警的节点,如端点检测与响应(Endpoint Detection & Response,EDR)设备发现的可疑文件或可疑进程,后向终止节点为出度为0的节点,前向终止节点为入度为0的节点。
终止节点判断方式可以基于图论中的入度和出度。例如,在报警产生之前,攻击者可能已经进行了一些攻击活动(只是尚未被发现),报警产生之后,攻击者仍可以执行攻击行为。因此,包括了前向和后向两个终止节点。前向终止节点是攻击的最初的起点,后向终止节点是攻击的终点。
进一步可以使用启发式搜索算法,例如搜索策略A*算法,发现起始节点和终止节点之间异常值最大的攻击路径。例如,攻击时,攻击者往往选择路径节点最少,危害最大的路径。例如,图2中文件0与文件X之间存在多条路径,其中,进程C为确定异常的节点,因此攻击路径中需要包含进程C,结合上述节点少,危害大的条件,最终的攻击路径可以为文件0—>进程A—>进程C—>文件X。
启发式搜索算法是先对每一条搜索分支进行评估,得到最好的分支,再从这个分支继续搜索从而到达目标,这样可以有效省略大量无谓的搜索路径,大大提高了搜索效率。
即利用从起始节点出发,将起始节点作为目标节点,确定目标节点的每个相邻节点的代价;相邻节点的代价为基于目标节点到相邻节点之间路径中所有第一节点的异常值得到的;将代价最大的相邻节点,作为攻击路径中所述目标节点的相邻节点,异常值较大则代价较大,因此通过上述方式可以确定出可能性较大的被攻击节点,依次类推,直至遍历至终止节点,得出攻击路径。
上述实施方式中,基于所述起始节点和终止节点,利用启发式搜索算法确定所述攻击路径,攻击溯源的效率较高,而且准确性较高。
可选地,相邻节点的代价可以通过如下方式得到:
将所述起始节点到所述相邻节点的实际代价以及所述相邻节点到所述终止节点的估计代价之和,作为所述相邻节点的代价;
其中,所述实际代价为所述起始节点到所述相邻节点之间路径中所有第一节点的异常值之和;所述估计代价为基于所述异常值之和以及所述起始节点到所述相邻节点之间路径中所有第一节点的节点数量得到的。
例如,通过如下公式计算相邻节点的代价:
其中,g(n)表示从起始节点到相邻节点的实际代价,h(n)表示从相邻节点到所述终止节点的估计代价,h函数就是启发函数。
从起始节点开始,检查所有可能的扩展点(即它的相邻点,即邻居节点),对每个相邻点计算g+h得到f,在所有可能的扩展点中,选择f最大的那个点进行扩展,即计算该点的所有可能扩展点的f值,并将这些新的扩展点添加到扩展点列表(open list)。当然,忽略已经在列表中的点或已经考察过的点。不断从open list中选择f值最大的点进行扩展,直到到达终止节点(成功找到最优路径),或者节点用完,路径搜索失败。
其中,g(n)为起始节点到相邻节点之间路径中所有第一节点的异常值之和;可选地,h(n)为起始节点到相邻节点之间路径中所有第一节点的异常值之和/当前路径长度,当前路径长度即为起始节点到相邻节点之间路径中所有第一节点的数量。
上述实施方式中,通过确定攻击路径,可以发现日志中的主机异常行为,确定攻击实体及发生时间,提高了网络安全性。
综上所述,本发明实施例的方法通过系统日志进行攻击溯源,可以发现主机内攻击的详细过程,由于溯源图的生成和处理过程中占用的运行资源较多,因此通过行为特征异常检测和节点异常值传播对初始溯源图进行剪枝,能够有效缩减溯源图,提升还原攻击路径的效率,以及准确性。
下面对本发明提供的攻击溯源装置进行描述,下文描述的攻击溯源装置与上文描述的攻击溯源方法可相互对应参照。
图3本发明提供的攻击溯源装置的结构示意图。如图3所示,本实施例提供的攻击溯源装置,包括:
建立模块210,用于基于日志信息中包括的多个操作事件,建立初始溯源图;所述初始溯源图包括多个所述第一节点,所述第一节点和所述操作事件中目标对象一一对应;
处理模块220,用于基于所述多个操作事件中目标对象的行为特征,确定所述初始溯源图中每个所述第一节点的异常值,并利用每个所述第一节点的异常值,对所述初始溯源图中的第一节点进行删减,得到更新后的溯源图;所述异常值用于表示所述第一节点被攻击的可能性;
所述处理模块220,还用于基于更新后的溯源图以及被攻击的第二节点,确定攻击路径;所述第二节点为所述更新后的溯源图中至少一个节点。
可选地,所述目标对象包括以下至少一项:进程、文件、网络接口;处理模块220具体用于:
针对每个所述第一节点,基于所述目标对象的行为特征,遍历训练得到的T棵孤立树,确定所述第一节点在所述T棵孤立树中的平均高度;T为大于0的整数;
基于所述第一节点在所述T棵孤立树的平均高度,确定所述第一节点的异常值。
可选地,处理模块220还用于:
基于所述第一节点的异常值以及所述第一节点相关的邻居节点的异常值,对所述第一节点的异常值进行更新。
可选地,处理模块220具体用于:
针对所述初始溯源图中任一第一节点,确定所述第一节点的所有邻居节点;每个第一节点具有社区标签;所述社区标签包括正常或异常标签;
获取所有邻居节点的社区标签,并将所有具有相同社区标签的邻居节点的异常值之和作为所述具有相同社区标签的邻居节点更新后的异常值;将所述第一节点的异常值,更新为与所述第一节点具有相同社区标签的异常值最大的邻居节点的异常值。
可选地,处理模块220具体用于:
剔除所述初始溯源图中异常值小于或等于预设阈值的第一节点。
根据本发明提供的一种攻击溯源方法,所述基于更新后的溯源图以及被攻击的第二节点,确定攻击路径,包括:
将所述第二节点作为攻击的起始节点,并确定攻击的终止节点;所述终止节点包括前向终止节点和后向终止节点,所述前向终止节点为入度为0的节点,后向终止节点为出度为0的节点;
基于所述起始节点和终止节点,利用启发式搜索算法确定所述攻击路径。
可选地,处理模块220具体用于:
从所述起始节点开始,将所述起始节点作为目标节点,执行如下步骤:
步骤a、确定所述目标节点的每个相邻节点的代价;所述相邻节点的代价为基于所述目标节点到所述相邻节点之间路径中所有第一节点的异常值得到的;
步骤b、将代价最大的相邻节点,作为所述攻击路径中所述目标节点的相邻节点,并将所述相邻节点作为所述目标节点;重复执行步骤a-步骤b,直至遍历至所述终止节点。
可选地,处理模块220还用于:
将所述起始节点到所述相邻节点的实际代价以及所述相邻节点到所述终止节点的估计代价之和,作为所述相邻节点的代价;
其中,所述实际代价为所述起始节点到所述相邻节点之间路径中所有第一节点的异常值之和;所述估计代价为基于所述异常值之和以及所述起始节点到所述相邻节点之间路径中所有第一节点的节点数量得到的。
本实施例的装置,可以用于执行前述方法实施例中任一实施例的方法,其具体实现过程与技术效果与方法实施例中相同,具体可以参见方法实施例中的详细介绍,此处不再赘述。
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)810、通信接口(Communications Interface)820、存储器(memory)830和通信总线840,其中,处理器810,通信接口820,存储器830通过通信总线840完成相互间的通信。处理器810可以调用存储器830中的逻辑指令,以执行攻击溯源方法,该方法包括:基于日志信息中包括的多个操作事件,建立初始溯源图;所述初始溯源图包括多个所述第一节点,所述第一节点和所述操作事件中目标对象一一对应;
基于所述多个操作事件中目标对象的行为特征,确定所述初始溯源图中每个所述第一节点的异常值,并利用每个所述第一节点的异常值,对所述初始溯源图中的第一节点进行删减,得到更新后的溯源图;所述异常值用于表示所述第一节点被攻击的可能性;
基于更新后的溯源图以及被攻击的第二节点,确定攻击路径;所述第二节点为所述更新后的溯源图中至少一个节点。
此外,上述的存储器830中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的攻击溯源方法,该方法包括:基于日志信息中包括的多个操作事件,建立初始溯源图;所述初始溯源图包括多个所述第一节点,所述第一节点和所述操作事件中目标对象一一对应;
基于所述多个操作事件中目标对象的行为特征,确定所述初始溯源图中每个所述第一节点的异常值,并利用每个所述第一节点的异常值,对所述初始溯源图中的第一节点进行删减,得到更新后的溯源图;所述异常值用于表示所述第一节点被攻击的可能性;
基于更新后的溯源图以及被攻击的第二节点,确定攻击路径;所述第二节点为所述更新后的溯源图中至少一个节点。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的攻击溯源方法,该方法包括:基于日志信息中包括的多个操作事件,建立初始溯源图;所述初始溯源图包括多个所述第一节点,所述第一节点和所述操作事件中目标对象一一对应;
基于所述多个操作事件中目标对象的行为特征,确定所述初始溯源图中每个所述第一节点的异常值,并利用每个所述第一节点的异常值,对所述初始溯源图中的第一节点进行删减,得到更新后的溯源图;所述异常值用于表示所述第一节点被攻击的可能性;
基于更新后的溯源图以及被攻击的第二节点,确定攻击路径;所述第二节点为所述更新后的溯源图中至少一个节点。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (7)

1.一种攻击溯源方法,其特征在于,包括:
基于日志信息中包括的多个操作事件,建立初始溯源图;所述初始溯源图包括多个第一节点,所述第一节点和所述操作事件中目标对象一一对应;
基于所述多个操作事件中目标对象的行为特征,确定所述初始溯源图中每个所述第一节点的异常值;
针对所述初始溯源图中任一第一节点,确定所述第一节点的所有邻居节点;每个第一节点具有社区标签;所述社区标签包括正常或异常标签;
获取所有邻居节点的社区标签,并将所有具有相同社区标签的邻居节点的异常值之和作为所述具有相同社区标签的邻居节点更新后的异常值;
将所述第一节点的异常值,更新为与所述第一节点具有相同社区标签的异常值最大的邻居节点的异常值;
利用每个所述第一节点更新后的异常值,对所述初始溯源图中的第一节点进行删减,得到更新后的溯源图;所述异常值用于表示所述第一节点被攻击的可能性;
将第二节点作为攻击的起始节点,并确定攻击的终止节点;所述第二节点为所述更新后的溯源图中至少一个节点;所述终止节点包括前向终止节点和后向终止节点,所述前向终止节点为入度为0的节点,后向终止节点为出度为0的节点;
基于所述起始节点和终止节点,从所述起始节点开始,将所述起始节点作为目标节点,执行如下步骤:
步骤a、确定所述目标节点的每个相邻节点的代价;所述相邻节点的代价为基于所述目标节点到所述相邻节点之间路径中所有第一节点的异常值得到的;
步骤b、将代价最大的相邻节点,作为攻击路径中所述目标节点的相邻节点,并将所述相邻节点作为所述目标节点;重复执行步骤a-步骤b,直至遍历至所述终止节点。
2.根据权利要求1所述的攻击溯源方法,其特征在于,所述目标对象包括以下至少一项:进程、文件、网络接口;所述基于所述多个操作事件中目标对象的行为特征,确定所述初始溯源图中每个所述第一节点的异常值,包括:
针对每个所述第一节点,基于所述目标对象的行为特征,遍历训练得到的T棵孤立树,确定所述第一节点在所述T棵孤立树中的平均高度;T为大于0的整数;
基于所述第一节点在所述T棵孤立树的平均高度,确定所述第一节点的异常值。
3.根据权利要求1-2任一项所述的攻击溯源方法,其特征在于,所述利用每个所述第一节点更新后的异常值,对所述初始溯源图中的第一节点进行删减,包括:
剔除所述初始溯源图中异常值小于或等于预设阈值的第一节点。
4.根据权利要求1所述的攻击溯源方法,其特征在于,所述方法还包括:
将所述起始节点到所述相邻节点的实际代价以及所述相邻节点到所述终止节点的估计代价之和,作为所述相邻节点的代价;
其中,所述实际代价为所述起始节点到所述相邻节点之间路径中所有第一节点的异常值之和;所述估计代价为基于所述异常值之和以及所述起始节点到所述相邻节点之间路径中所有第一节点的节点数量得到的。
5.一种攻击溯源装置,其特征在于,包括:
建立模块,用于基于日志信息中包括的多个操作事件,建立初始溯源图;所述初始溯源图包括多个第一节点,所述第一节点和所述操作事件中目标对象一一对应;
处理模块,用于针对所述初始溯源图中任一第一节点,确定所述第一节点的所有邻居节点;每个第一节点具有社区标签;所述社区标签包括正常或异常标签;获取所有邻居节点的社区标签,并将所有具有相同社区标签的邻居节点的异常值之和作为所述具有相同社区标签的邻居节点更新后的异常值;将所述第一节点的异常值,更新为与所述第一节点具有相同社区标签的异常值最大的邻居节点的异常值;
利用每个所述第一节点更新后的异常值,对所述初始溯源图中的第一节点进行删减,得到更新后的溯源图;所述异常值用于表示所述第一节点被攻击的可能性;
所述处理模块,还用于将第二节点作为攻击的起始节点,并确定攻击的终止节点;所述第二节点为所述更新后的溯源图中至少一个节点;所述终止节点包括前向终止节点和后向终止节点,所述前向终止节点为入度为0的节点,后向终止节点为出度为0的节点;
基于所述起始节点和终止节点,从所述起始节点开始,将所述起始节点作为目标节点,执行如下步骤:
步骤a、确定所述目标节点的每个相邻节点的代价;所述相邻节点的代价为基于所述目标节点到所述相邻节点之间路径中所有第一节点的异常值得到的;
步骤b、将代价最大的相邻节点,作为攻击路径中所述目标节点的相邻节点,并将所述相邻节点作为所述目标节点;重复执行步骤a-步骤b,直至遍历至所述终止节点。
6.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4任一项所述攻击溯源方法。
7.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至4任一项所述攻击溯源方法。
CN202211533435.3A 2022-12-02 2022-12-02 攻击溯源方法、装置、设备和存储介质 Active CN115622802B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211533435.3A CN115622802B (zh) 2022-12-02 2022-12-02 攻击溯源方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211533435.3A CN115622802B (zh) 2022-12-02 2022-12-02 攻击溯源方法、装置、设备和存储介质

Publications (2)

Publication Number Publication Date
CN115622802A CN115622802A (zh) 2023-01-17
CN115622802B true CN115622802B (zh) 2023-04-07

Family

ID=84880729

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211533435.3A Active CN115622802B (zh) 2022-12-02 2022-12-02 攻击溯源方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN115622802B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114357445A (zh) * 2021-12-22 2022-04-15 绿盟科技集团股份有限公司 一种终端侧攻击路径识别的方法、装置及存储介质
CN115277127A (zh) * 2022-07-12 2022-11-01 清华大学 基于系统溯源图搜索匹配攻击模式的攻击检测方法及装置
CN115396138A (zh) * 2022-06-01 2022-11-25 中债金科信息技术有限公司 溯源图的缩减方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112789835A (zh) * 2018-11-30 2021-05-11 北京比特大陆科技有限公司 攻击者信息的获取方法、装置、设备和存储介质
CN112765603B (zh) * 2021-01-28 2022-04-05 电子科技大学 一种结合系统日志与起源图的异常溯源方法
CN113779574B (zh) * 2021-08-09 2024-02-27 浙江工业大学 一种基于上下文行为分析的apt检测方法
CN114637989B (zh) * 2022-03-21 2024-07-12 西安电子科技大学 基于分布式系统的apt攻击追溯方法、系统及存储介质
CN115378733B (zh) * 2022-08-29 2024-06-11 北京航空航天大学 一种基于动态图嵌入的多步攻击场景构建方法及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114357445A (zh) * 2021-12-22 2022-04-15 绿盟科技集团股份有限公司 一种终端侧攻击路径识别的方法、装置及存储介质
CN115396138A (zh) * 2022-06-01 2022-11-25 中债金科信息技术有限公司 溯源图的缩减方法及装置
CN115277127A (zh) * 2022-07-12 2022-11-01 清华大学 基于系统溯源图搜索匹配攻击模式的攻击检测方法及装置

Also Published As

Publication number Publication date
CN115622802A (zh) 2023-01-17

Similar Documents

Publication Publication Date Title
US11689549B2 (en) Continuous learning for intrusion detection
US9715588B2 (en) Method of detecting a malware based on a white list
CN112134897B (zh) 网络攻击数据的处理方法和装置
CN112333195B (zh) 基于多源日志关联分析的apt攻击场景还原检测方法及系统
CN104871171B (zh) 分布式模式发现
CN113259176B (zh) 一种告警事件分析方法和装置
CN115001753B (zh) 一种关联告警的分析方法、装置、电子设备及存储介质
CN112269316A (zh) 一种基于图神经网络的高鲁棒性威胁狩猎系统与方法
US10437986B2 (en) Distance and method of indexing sandbox logs for mapping program behavior
CN113572719B (zh) 一种域名检测方法、装置、设备及可读存储介质
US11068594B2 (en) Threat detection system
CN111680291A (zh) 一种对抗样本生成方法、装置、电子设备及存储介质
CN112751863B (zh) 一种攻击行为分析方法及装置
CN115622802B (zh) 攻击溯源方法、装置、设备和存储介质
CN112070161A (zh) 一种网络攻击事件分类方法、装置、终端及存储介质
US20230275908A1 (en) Thumbprinting security incidents via graph embeddings
CN115664931A (zh) 一种告警数据的关联方法、装置、存储介质及设备
CN114707145A (zh) 一种基于Fanotify机制的勒索软件检测方法
CN113032774B (zh) 异常检测模型的训练方法、装置、设备及计算机存储介质
Flores et al. Network anomaly detection by continuous hidden markov models: An evolutionary programming approach
CN114257565A (zh) 挖掘潜在威胁域名的方法、系统和服务器
CN111314327A (zh) 一种基于knn离群点检测算法的网络入侵检测方法及系统
CN117521068B (zh) Linux主机恶意软件检测方法、系统、设备及介质
CN114915544B (zh) 网络多跳攻击链的识别方法、装置、设备及存储介质
Elavarasi et al. Intrusion Detection and Prevention Approach in Wlan Using Cyber Security

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant