掌桥专利:专业的专利平台
掌桥专利
首页

面向入侵行为的溯源数据层次聚类方法及入侵检测方法

文献发布时间:2024-04-18 19:59:31


面向入侵行为的溯源数据层次聚类方法及入侵检测方法

技术领域

本发明属于入侵检测领域,更具体地,涉及面向入侵行为的溯源数据层次聚类方法及入侵检测方法。

背景技术

入侵检测技术作为网络安全的核心技术之一,通过从计算机系统或者计算机网络中的若干关键点来收集信息并对这些节点进行分析,从而发现系统或网络中是否存在遭遇袭击的现象或违反安全策略的行为。目前的基于主机的入侵检测方法主要基于记录和分析Unix shell命令数据或入侵行为的系统调用信息(系统调用的序列及发生的概率等)来实现检测,然而,这些方法并未揭露详细的内在入侵事件信息(例如系统漏洞和入侵来源),它们的检测精确性并不高。

尽管可以通过日志这种非结构化数据来分析系统被入侵的过程,但是从大量包含有用户正常行为以及入侵者的非法行为中获取有用日志信息仍然是一个非常繁琐的过程。实际上,攻击者的攻击行为步骤是具有因果关联的。攻击溯源就是基于这种因果关联把与攻击相关的信息关联到一起构建溯源图(provenance graph),并从中找到攻击者及攻击路径。以面向事件的溯源图为线索,从系统化角度,设计面向入侵事件的溯源聚类方法,可以将同一事件的溯源信息进行聚类存储,得到与事件相对应的一系列子图,从而将入侵检测转化为子图分析任务,由此能够实现不同用户行为的区分,为快速精准分析提供高效支撑。

溯源图以溯源信息中的进程、文件、网络连接和管道等实体作为节点,现有的溯源聚类方法则直接针对整个溯源图进行聚类,在聚类过程中不作具体的类型区分,研究表明,在溯源图中,文件节点在所有节点中占比往往在60%以上,采用现有的聚类方法所得到的聚类结果往往会呈现出以文件为中心的聚类,这忽略了进程之间的相互联系,而实际上,入侵行为大多是通过进程调用的关系入侵的,因此,现有的聚类方法无法很好的捕捉入侵行为的实际特征,入侵检测的准确度也会因此而受到影响。

发明内容

针对现有技术的缺陷和改进需求,本发明提供了面向入侵行为的溯源数据层次聚类方法及入侵检测方法,其目的在于,实现以进程节点为中心的溯源聚类,以有效提高入侵检测的准确性。

为实现上述目的,按照本发明的一个方面,提供了一种面向入侵行为的溯源数据层次聚类方法,包括:

(S1)收集溯源数据并建立溯源图;溯源图为有向无环图,其中的节点表示溯源数据中的实体,有向边表示实体间的依赖关系,且指向被依赖实体所对应的节点;

(S2)按照进程节点、文件节点、网络节点对溯源图进行层次划分,使得每一层中仅包含一种类型的节点,由此得到分层溯源图;

(S3)对分层溯源图中的进程节点进行聚类,得到层内节点聚类,并确定各进程节点与各文件节点、各进程节点与各网络节点的依赖性;

(S4)对于每一个层内节点聚类,将与其中的进程节点关联性大于预设第一阈值的文件节点和网络节点合并到该层内节点聚类中,得到多个子图,完成溯源数据的聚类。

进一步地,步骤(S3)中,确定各进程节点与各文件节点、各进程节点与各网络节点的依赖性,包括:

(S31)以进程节点为种子节点,在层次溯源图中进行随机游走,得到多条随机游走路径;

(S32)根据所得到的随机游走路径计算各进程节点与各文件节点、各进程节点与各网络节点的依赖性;

对于任意一个进程节点N

计算包含从进程节点N

进一步地,步骤(S31)包括:

选取多个进程节点作为种子节点,从各种子节点开始进行随机游走;

每次从当前节点游走到下一个节点时,以概率p游走到当前节点的邻居节点,以概率(1-p)游走到与当前节点具有相同属性的节点;

其中,p为预设概率,且0

进一步地,步骤(S4)中,在得到多个子图之后,还包括:过滤掉其中出现频率低于预设第二阈值的路径,将过滤后得到的子图作为最终聚类所得子图。

进一步地,步骤(S1)包括:

(S11)收集溯源数据后,删除其中的临时文件及环境变量,得到关键溯源数据;

(S12)提取关键溯源数据中的实体,以及实体间的依赖关系,创建与实体相对应的节点,将实体属性赋予对应的节点进行存储,并在有依赖关系的实体节点之间创建指向被依赖实体的有向边,由此得到溯源图。

进一步地,步骤(S11)还包括:在删除溯源数据中临时文件及环境变量的同时,删除进程id。

按照本发明的又一个方面,提供了一种入侵检测方法,包括:

按照本发明提供的面向入侵行为的溯源数据层次聚类方法获得多个子图后,将各子图输入至已训练好的图神经网络,得到子图中各节点的向量表示,并整合得到各子图的向量;

分别计算每个子图的向量与预先建立的正常样本库中的各向量之间的差异,若各子图的向量与正常样本库中各向量之间的差异均小于预设第三阈值,则判定未发生入侵行为;否则,判定发生入侵行为;

其中,正常样本库的建立方式包括:收集正常行为的溯源数据并进行聚类,得到多个子图后输入至图神经网络,得到子图中各节点的向量表示,并整合得到各子图的向量,加入正常样本库。

进一步地,图神经网络包括依次连接的特定于视图的编码器和池化层。

进一步地,图神经网络的训练方式包括:

收集溯源子图;

对于每一个溯源子图,将进程节点之外的节点删除,并在被删除节点所连接的两个节点之间建立一条与原依赖关系一致的有向边,得到对应的扩散图;

交替地以溯源子图和扩散图作为图神经网网络的输入,以对图神经网络进行训练。

按照本发明的又一个方面,提供了一种计算机可读存储介质,包括存储的计算机程序;计算机程序被处理器执行时,控制计算机可读存储介质所在设备执行本发明提供的面向入侵行为的溯源数据层次聚类方法,和/或,本发明提供的入侵检测方法。

总体而言,通过本发明所构思的以上技术方案,能够取得以下有益效果:

(1)本发明所提供的面向入侵行为的溯源数据层次聚类方法,在构建溯源图后,在聚类之前会先依据数据类型对溯源图进行层次划分,使得不同类型的节点位于不同层,并且在聚类时,先对进程节点所在层进行层内聚类,然后再将与各聚类依赖性较高的文件节点和网络节点加入该聚类,实现层间子图合并,并有合并所得子图作为最终聚类所得子图,通过这种聚类方式,实现了以进程节点为中心的聚类,在实现将同一事件的溯源信息进行聚类存储的同时,聚类所得子图能够准确反映入侵行为的实际特征,有效提高后续入侵检测的准确性。

(2)本发明所提供的面向入侵行为的溯源数据层次聚类方法,在其优选方案中,通过在整个溯源图中进行随机游走的方式确定各进程节点与各文件节点、各进程节点与各网络节点的依赖性,在随机游走时,选取进程节点作为种子节点开始进行游走,并根据所得随机游走路径中从进程节点游走到其他类型节点的路径占比完成进程节点与其他类型节点间依赖性的计算,占比越高则依赖性越强,通过这种计算方式能够准确计算出进程节点与其他类型节点间的依赖性。

(3)本发明所提供的面向入侵行为的溯源数据层次聚类方法,在其优选方案中,在整个溯源图中进行随机游走时,同时选取多个进程节点作为种子节点,并且每次随机游走时,以概率p游走到当前节点的邻居节点,以概率(1-p)游走到与当前节点具有相同属性的节点,通过这种随机游走方式,能够综合考虑节点的拓扑信息和属性信息,准确挖掘节点间的依赖关系。

(4)本发明所提供的面向入侵行为的溯源数据层次聚类方法,在其优选方案中,在通过进程节点层内聚类和层间子图合并得到聚类子图后,会进一步过滤掉出现频率较低的路径,这些路径往往对应一些与实际任务无关的操作,过滤掉这些路径,能够在保证信息准确的情况下,使聚类所得子图更为精简。

(5)本发明所提供的面向入侵行为的溯源数据层次聚类方法,在其优选方案中,在构建溯源图之前,会先删除溯源数据中的临时文件及环境变量,从而提取得到关键溯源数据,并进依据关键溯源数据完成溯源图的建立,由于临时文件及环境变量仅在不同实体之间传输信息,并且生命周期短,包含入侵信息的可能性较小,删除这些信息不会影响溯源聚类及后续入侵检测的准确性,但能有效降低建立所得溯源图的复杂度。

(6)本发明所提供的面向入侵行为的溯源数据层次聚类方法,在其优选方案中,在删除原始溯源数据中的临时文件及环境变量的同时,还会删除进程id,由于同一个进程,在不同时间可能有不同的id,删除该信息,便于后续准确查询相关的进程节点信息,同时可以避免利用子图进行向量表示时,同一个进程节点对应不同的向量。

(7)本发明所提供的入侵检测方法,利用层次聚类所得子图进行入侵检测,由于这些子图是通过以进程节点为中心的聚类方式得到的,与实际的入侵行为相符,因此,能够有效提高入侵检测的准确性。

(8)本发明所提供的入侵检测方法,在其优选方案中,利用子图和依据子图建立的扩散图交替对用于向量表示的图神经网络进行表示,子图包含了局部拓扑信息,扩散图包含了全局拓扑信息,通过这种训练方式,能够平衡全局信息和局部信息的影响,实现了图增强机制,确保功能类似的节点,最终通过图神经网络所得到的向量表示也相同。

附图说明

图1为本发明实施例提供的面向入侵行为的溯源数据层次聚类方法及入侵检测方法示意图;

图2为本发明实施例提供的溯源日志及相应的溯源图;其中,(a)为溯源日志示意图,(b)为依据(a)所示溯源数据建立的溯源图示意图;

图3为本发明实施例提供的层次溯源图示意图;

图4为本发明实施例提供的随机游走示意图;其中,(a)为溯源图,(b)为邻接矩阵,(c)为属性矩阵;

图5为本发明实施例提供的图神经网络结构示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。

在本发明中,本发明及附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

为了有效提高入侵检测的准确度,本发明提供了面向入侵行为的溯源数据层次聚类方法及入侵检测方法,其整体思路在于:基于入侵行为的特征,即通过进程调用的关系进行入侵,实现一种以进程节点为中心的聚类,使得聚类所得子图能够为入侵检索提供高效支撑。

以下为实施例。

实施例1:

一种面向入侵行为的溯源数据层次聚类方法,如图1所示,包括如下步骤:

(S1)收集溯源数据并建立溯源图;溯源图为有向无环图,其中的节点表示溯源数据中的实体,有向边表示实体间的依赖关系,且指向被依赖实体所对应的节点;

(S2)按照进程节点、文件节点、网络节点对溯源图进行层次划分,使得每一层中仅包含一种类型的节点,由此得到分层溯源图;

(S3)对分层溯源图中的进程节点进行聚类,得到层内节点聚类,并确定各进程节点与各文件节点、各进程节点与各网络节点的依赖性;

(S4)对于每一个层内节点聚类,将与其中的进程节点关联性大于预设第一阈值的文件节点和网络节点合并到该层内节点聚类中,得到多个子图,完成溯源数据的聚类。

具体地,本实施例中,步骤(S1)包括:

(S11)收集溯源数据后,删除其中的临时文件及环境变量,得到关键溯源数据;

作为一种可选的实施方式,本实施例通过SPADE和Camflow等溯源收集系统收集溯源信息,溯源收集系统包括网络溯源拦截层、网络溯源观察层、网络溯源分析层和网络溯源分布层,网络溯源拦截层拦截accept、connect、send和recv系统调用,网络溯源观察层初始socket结构中加入的溯源变量,收集与该socket连接相关联的IP地址、端口号信息、用户ID和连接创建时间;网络溯源分析层处理溯源信息,去掉重复的信息并且保证不会出现环;网络溯源分布层将获得的溯源信息写入溯源文件系统,保存在文件中;

中间文件和环境变量仅在不同实体之间传输信息,并且生命周期短,包含入侵信息的可能性较小,本实施例删除这些信息不会影响溯源聚类及后续入侵检测的准确性,但能有效降低建立所得溯源图的复杂度;

进一步考虑到相同的进程,在不同时间可能有不同的进程id,本实施例的步骤(S11)还包括:在删除溯源数据中临时文件及环境变量的同时,删除进程id用进程名字标识该进程,以便于后续准确查询相关的进程节点信息,同时可以避免利用子图进行向量表示时,同一个进程节点对应不同的向量;

(S12)提取关键溯源数据中的实体,以及实体间的依赖关系,创建与实体相对应的节点,将实体属性赋予对应的节点进行存储,并在有依赖关系的实体节点之间创建指向被依赖实体的有向边,由此得到溯源图。

图2所示为一个溯源图构建的示例,图2中的(a)所示为一个溯源日志示例,其中包括“process A”、“process B”、“process C”、“process D”这些进程实体,以及“file 0”、“file 1”、“files 2”、“file X”这些文件实体,基于日志所记录的操作可以判断实体间的依赖关系,最终所建立的溯源图如图2中的(b)所示。

考虑到不同类型的实体在溯源入侵中所起的作用不同,本实施例提供步骤(S2)按照节点类型对所建立的溯源图进行层次划分,划分后,不同类型的节点位于不同层,且相同类型的节点位于相同层,不通类型节点间若存在依赖关系,则在不同层次间也有相应的边相连。图3所示为一个层次聚类图的示意图,其中的Layer3表示文件节点所在层,Layer2表示进程节点所在层,Layer1表示网络连接节点所在层。在层次聚类图中,对进程节点所在层进行聚类,得到层内聚类,再将各与层内聚类中进程节点依赖性较强的文件节点和网络连接节点纳入相应的聚类,即可实现以进程节点为中心的聚类。可选地,本实施例中通过随机游走的方式完成进程节点所在层的层内聚类。

为了准确确定各进程节点与各文件节点、各进程节点与各网络节点的依赖性,本实施例的步骤(S2)也采用了随机游走的方式来确定,通常情况下,对于两个N

(S31)以进程节点为种子节点,在层次溯源图中进行随机游走,得到多条随机游走路径。

为了保证随机游走的准确性,作为一种优选的实施方式,本实施例的步骤(S31)采用了一种多种子节点的的随机游走策略,具体包括:

选取多个进程节点作为种子节点,从各种子节点开始进行随机游走;

每次从当前节点游走到下一个节点时,以概率p游走到当前节点的邻居节点,以概率(1-p)游走到与当前节点具有相同属性的节点;其中,p为预设概率,且0

在实际应用中,可通过建立邻接矩阵和属性矩阵的方式,以图4为例,如图4中的(a)所示,溯源图中包括A、B、C、D、E五个节点,各节点可能具有a、b、c、d、e五个属性中的1个或多个,基于拓扑关系可建立图4中的(b)所示的邻接矩阵,基于节点属性可建立图4中的(c)所示的属性矩阵;采用上述多种子节点的随机游走策略,假设从节点A开始游走,从邻接矩阵游走,游走可能的节点是B或C,从属性矩阵游走,游走首先选取节点A的属性b或c,假设选取b,则最终游走的备选可能是同样具有属性b的节点D或E;假设选取属性c,则最终游走的是同样具有属性c的及节点D。

通过这种随机游走策略,能够综合考虑节点的拓扑信息和属性信息,准确挖掘节点间的依赖关系。

(S32)根据所得到的随机游走路径计算各进程节点与各文件节点、各进程节点与各网络节点的依赖性;

对于任意一个进程节点N

计算包含从进程节点N

通过以上计算方式,本实施例能够准确计算出进程节点与其他类型节点间的依赖性。可选地,本实施例中,通过随机游走完成进程节点的层内聚类时,也采用该多种子节点的随机游走策略。

进一步考虑到,在实际应用中,可能会存在大量与任务无关的操作,例如,在UNIX/LINUX系统中,每切换到一个新的路径下,往往会执行“ls”命令已查看该路径下所包含的文件,这些操作对应于随机游走路径中出现频率较低的路径,这些操作由于与任务无关,包含入侵信息的可能性也较小,因此,删除这些信息不会影响后续溯源入侵的准确性,但可以有效降低子图的复杂度,提高后续检测的效率,基于此,本实施例的步骤(S4)中,在得到多个子图之后,还包括:过滤掉其中出现频率低于预设第二阈值的路径,将过滤后得到的子图作为最终聚类所得子图。

进一步考虑到,溯源图数据和一般图数据不同;进程节点能同时与多个功能相似的节点产生依赖关系,而这些依赖关系在功能上是相近甚至相同的,这样的依赖关系重复出现多次容易改变图结构,从而导致图向量嵌入的不准确,甚至有可能被攻击者利用,影响入侵检测结果;因此,作为一种优选的实施方式,本实施例的步骤(S4)中,在得到多个子图之后,还包括:合并子图中同一个进程节点所依赖且节点名称相似的多个节点,在实际应用中,可根据溯源数据的特性设定第三阈值,将节点名称相似性高于第三阈值的节点作为名称相似的节点;此外,本发明进一步发现溯源子图中可能存在大量“相同边”的情况,所谓相同边,即边所连接的节点的通用唯一识别码(uuid)不同,但节点的名称相同;这些相同边的存在,也会影响图结构,不利于后续入侵检测,因此,作为一种优选的实施方式,本实施例的步骤(S4)中,在得到多个子图之后,还包括:合并子图中,类型相同且所连接的节点名称相似的多条边。

基于上述节点和边的合并操作,可以有效降低子图复杂度并提高后续入侵检测的准确度。

总的来说,本实施例实现了一种以进程节点为中心的溯源聚类方法,通过这种方式聚类所得子图,其特征与实际的入侵行为更为相符,为后续的入侵检测提供了可靠的支撑,可有效提高后续入侵检测的准确性。

实施例2:

一种入侵检测方法,包括:

按照上述实施例1提供的面向入侵行为的溯源数据层次聚类方法获得多个子图后,将各子图输入至已训练好的图神经网络,得到子图中各节点的向量表示,并整合得到各子图的向量;

分别计算每个子图的向量与预先建立的正常样本库中的各向量之间的差异,若各子图的向量与正常样本库中各向量之间的差异均小于预设第三阈值,则判定未发生入侵行为;否则,判定发生入侵行为;

其中,正常样本库的建立方式包括:收集正常行为的溯源数据并进行聚类,得到多个子图后输入至图神经网络,得到子图中各节点的向量表示,并整合得到各子图的向量,加入正常样本库。本实施例所检测的入侵行为包括密码破解、远程恶意代码、数据注入、有漏洞web服务器等。

本实施例进行入侵检测所依据的子图,是通过以进程节点为中心的聚类方式得到的,与实际的入侵行为相符,因此,能够有效提高入侵检测的准确性。

考虑到全局信息的重要性,在利用图神经网络(GNN)进行节点嵌入以将聚类所得子图中各节点表示为向量时,若一个节点可以从尽可能多的节点中学习编码,则有利于节点向量的准确表示,但是,对于在拓扑上相距很远的节点,学习这些远端节点特征的难度较大,虽然可以通过增加GNN的深度来提取远端特征,但这可能会导致过平滑问题。此外,图神经网络的输入图使用二值来表示边是否存在边,不能表示节点之间的重要程度。基于这些考虑,本实施例对于图神经网络的结构进行了改进,并提出了新的可平衡全局信息和局部信息的训练方式对图神经网络进行训练。

如图5所示,本实施例具体应用了一个独立的两层图卷积网络,具体包括依次连接的特定于视图的编码器和池化层。

其训练方式具体包括:

收集溯源子图;

对于每一个溯源子图,将进程节点之外的节点删除,并在被删除节点所连接的两个节点之间建立一条与原依赖关系一致的有向边,得到对应的扩散图;

交替地以溯源子图和扩散图作为图神经网网络的输入,以对图神经网络进行训练。

可选地,本实施例中,通过随机游走生成溯源子图,并随机进行破坏以获取负样本,完成溯源子图的收集。从拓扑学的角度,在上述训练方式中,溯源子图包含了局部视图,扩散图则包含了全局视图,交织地以两种图数据作为图神经网络的输入,可以实现图增强机制,平衡平衡全局信息和局部信息的影响。同时,图神经网络中特定于视图的编码器对邻居感知的拓扑结构进行编码,并使用池化层对图级信息进行聚合。此外,本实施例通过节点分类能够在图神经网络中实现去噪。最终,本实施例所建立的图神经网络可以准确的实现节点嵌入,准确获得子图中各节点的向量表示。

总的来说,本实施例通过以进程节点为中心的聚类方式得到的子图,并通过特定方式训练特定结构的图神经网络,能够准确获得子图节点的向量表示,进而准确获得完整的子图的向量表示,有效提高了入侵检测的准确度。

实施例3:

一种计算机可读存储介质,包括存储的计算机程序;计算机程序被处理器执行时,控制计算机可读存储介质所在设备执行上述实施例1提供的面向入侵行为的溯源数据层次聚类方法,和/或,上述实施例2提供的入侵检测方法。

以下结合具体的入侵检测数据对本发明所能取得的有益效果做进一步的验证分析。

在开源的darpaE3 CADETS数据集以及theia上实施本发明提出的溯源入侵检测方法,检测结果分别如表1和表2所示。

表1cadets数据集检测结果

表2theia数据集检测结果

需要说明的是,检测结果中,Precision检测指标较差,这是由于数据集中异常子图的数量很少所导致的。根据表1和表2所示检测结果可知,本发明所提供的入侵检测方法在检测异常(Accuracy)和召回率(Recall)上效果很好,这说明本发明所提供的入侵检测方法,实现了精准的入侵检测。

本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种加固型液冷风冷组合式散热系统及控制方法
  • 一种结合微流道的快速传导间接液冷散热结构
  • 一种拓展型液冷主动均热被动散热式机箱
  • 一种“E”型组合式液冷散热结构
  • 一种加固型液冷风冷组合式散热系统及控制方法
技术分类

06120116518157