CN115114484A - 异常事件检测方法、装置、计算机设备和存储介质 - Google Patents

异常事件检测方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN115114484A
CN115114484A CN202210520174.5A CN202210520174A CN115114484A CN 115114484 A CN115114484 A CN 115114484A CN 202210520174 A CN202210520174 A CN 202210520174A CN 115114484 A CN115114484 A CN 115114484A
Authority
CN
China
Prior art keywords
node
target
neighbor
graph
pair
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.)
Pending
Application number
CN202210520174.5A
Other languages
English (en)
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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210520174.5A priority Critical patent/CN115114484A/zh
Publication of CN115114484A publication Critical patent/CN115114484A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及一种基于人工智能的异常事件检测方法,包括:获取待检测事件图和查询图;待检测事件图和查询图均包括多个节点和边,待检测事件图的边表征相应节点间发生的事件,查询图的边表征相应节点间发生的异常事件;将查询图的节点和待检测事件图的节点进行匹配处理,得到多个候选节点对;对各候选节点对中各节点进行特征提取,得到每个节点的节点表示;对于各候选节点对,根据相应候选节点对中各节点的节点表示,从各候选节点对中筛选出满足匹配条件的目标节点对;基于各目标节点对对待检测事件图进行子图匹配,得到与查询图相匹配的目标子图;目标子图用于描述待检测事件图中的异常事件。采用本方法能够提高异常事件检测的准确性。

Description

异常事件检测方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机技术领域,特别是涉及一种异常事件检测方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
图结构作为一种表示信息的数据结构,往往用于描述具有内在关联性且联系紧密的数据。在许多应用领域中信息挖掘的问题都可以通过图的相关理论和相应技术来解决,而子图匹配技术作为实现图数据上的能够高效查询的基本操作,也被广泛的应用于社会网络分析领域、生物信息学领域等各个领域。例如可对数据中存在的可疑数据或可疑行为进行检测。
然而,目前对数据中存在的可疑数据或可疑行为进行检测的方式,容易将正常数据识别为异常数据,存在准确性较差的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高准确性的异常事件检测方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。
一方面,本申请提供了一种异常事件检测方法。所述方法包括:
获取待检测事件图和查询图;所述待检测事件图和所述查询图均包括多个节点和边,所述待检测事件图的边表征相应节点间发生的事件,所述查询图的边表征相应节点间发生的异常事件;
将所述查询图的节点和所述待检测事件图的节点进行匹配处理,得到多个候选节点对;
对多个所述候选节点对中的每个节点分别进行特征提取,得到每个所述节点对应的节点表示;
对于各所述候选节点对,根据相应候选节点对中各节点的节点表示,从各所述候选节点对中筛选出满足匹配条件的目标节点对;
基于各所述目标节点对,对所述待检测事件图进行子图匹配,得到所述待检测事件图中与所述查询图相匹配的目标子图;所述目标子图用于描述所述待检测事件图中存在的异常事件。
另一方面,本申请还提供了一种异常事件检测装置。所述装置包括:
获取模块,用于获取待检测事件图和查询图;所述待检测事件图和所述查询图均包括多个节点和边,所述待检测事件图的边表征相应节点间发生的事件,所述查询图的边表征相应节点间发生的异常事件;
节点匹配模块,用于将所述查询图的节点和所述待检测事件图的节点进行匹配处理,得到多个候选节点对;
提取模块,用于对多个所述候选节点对中的每个节点分别进行特征提取,得到每个所述节点对应的节点表示;
筛选模块,用于对于各所述候选节点对,根据相应候选节点对中各节点的节点表示,从各所述候选节点对中筛选出满足匹配条件的目标节点对;
子图匹配模块,用于基于各所述目标节点对,对所述待检测事件图进行子图匹配,得到所述待检测事件图中与所述查询图相匹配的目标子图;所述目标子图用于描述所述待检测事件图中存在的异常事件。
在一个实施例中,所述查询图的多个节点包括多个第一进程节点,所述待检测事件图的多个节点包括多个第二进程节点,所述候选节点对包括将所述第一进程节点和所述第二进程节点进行匹配处理所得到的候选进程节点对。
在一个实施例中,所述查询图的多个节点包括每个所述第一进程节点的第一邻居节点,所述待检测事件图的多个节点包括每个所述第二进程节点的第二邻居节点,所述目标节点对包括目标进程节点对和目标邻居节点对;所述筛选模块,还用于对于各所述目标进程节点对,将相应目标进程节点对中第一进程节点的第一邻居节点与第二进程节点的第二邻居节点进行匹配处理,得到每个所述第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对;所述子图匹配模块,还用于基于各所述目标进程节点对和各所述目标邻居节点对,对所述待检测事件图进行子图匹配,得到所述待检测事件图中与所述查询图相匹配的目标子图。
在一个实施例中,所述筛选模块,还用于对于各所述候选进程节点对,确定相应候选进程节点对中第一进程节点的节点表示和第二进程节点的节点表示之间的相似度,得到每个所述候选进程节点对分别对应的相似度;对于每个所述第一进程节点,基于相应第一进程节点所属的各个候选进程节点对分别对应的相似度,从相应第一进程节点所属的各个候选进程节点对中,筛选出满足匹配条件的目标进程节点对。
在一个实施例中,所述筛选模块,还用于对于各所述目标进程节点对,确定相应目标进程节点对中第一进程节点的每个第一邻居节点分别与第二进程节点的每个第二邻居节点之间的相似度;对于每个所述第一邻居节点,根据相应第一邻居节点分别与每个所述第二邻居节点之间的相似度,确定与相应第一邻居节点相匹配的第二邻居节点,以分别得到每个所述第一邻居节点与相匹配的第二邻居节点形成的目标邻居节点对。
在一个实施例中,所述筛选模块,还用于对于各所述目标进程节点对,确定相应目标进程节点对中第一进程节点在每种节点距离下分别对应的第一邻居节点,以及第二进程节点在每种节点距离下分别对应的第二邻居节点;确定在每种节点距离下的每个第一邻居节点分别与相应节点距离下的每个第二邻居节点之间的相似度;对于每种节点距离,根据相应节点距离下的各所述第一邻居节点分别与每个第二邻居节点之间的相似度,确定与每个所述第一邻居节点相匹配的第二邻居节点,以分别得到在每种节点距离下,每个所述第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对。
在一个实施例中,所述子图匹配模块,还用于对于各所述目标进程节点对,按照相应目标进程节点对中第二进程节点与相匹配的各第二邻居节点之间的节点距离,确定所述第二进程节点在每种节点距离下分别对应的目标邻居节点对;对于每种节点距离下的各目标邻居节点对,从相应节点距离所对应的各所述目标邻居节点对中选取满足关联条件的目标邻居节点对中的第二邻居节点;基于在每种节点距离下所选取的第二邻居节点和相匹配的第二进程节点在所述待检测事件图中的关联关系,生成每个所述第二进程节点分别对应的目标子图。
在一个实施例中,所述子图匹配模块,还用于从各所述目标进程节点对中选取相似度最大的目标进程节点对;按照所选取的目标进程节点对中第二进程节点与相匹配的第二邻居节点之间的节点距离,确定所选取的目标进程节点对中第二进程节点在每种节点距离下分别对应的目标邻居节点对;基于所选取的第二进程节点和在每种节点距离下所选取的第二邻居节点在所述待检测事件图中的关联关系,生成所选取的目标进程节点对中的第二进程节点对应的子图;从未被选取的各个所述目标进程节点对中选取相似度最大的目标进程节点对,并返回所述按照所选取的目标进程节点对中第二进程节点与相匹配的第二邻居节点之间的节点距离,确定所选取的目标进程节点对中第二进程节点在每种节点距离下分别对应的目标邻居节点对的步骤并继续执行,直至生成每个目标进程节点对中第二进程节点对应的子图时停止,以得到所述待检测事件图中与所述查询图相匹配的目标子图。
在一个实施例中,所述筛选模块,还用于对于各所述候选节点对,确定相应候选节点对中各节点的节点表示之间的相似度,得到每个所述候选节点对分别对应的相似度;基于各个相似度从各所述候选节点对中,筛选出满足匹配条件的目标节点对。
在一个实施例中,所述装置还包括预处理模块;所述预处理模块,用于从所述待检测事件图和所述查询图中采集多个节点和边构建多个三元组,所述三元组包括初始化节点表示的节点、待求解节点表示的节点,以及初始化特征表示的边;根据多个所述三元组所对应的初始化节点表示、待求解节点表示和初始化特征表示,构建目标损失函数;基于所述目标损失函数进行迭代求解,直至迭代停止时得到每个所述节点分别对应的节点表示。
在一个实施例中,所述预处理模块,还用于根据多个所述三元组所对应的初始化节点表示、待求解节点表示和初始化特征表示,构建第一损失函数;确定所述待检测事件图和所述查询图中每个进程节点分别对应的初始化上下文表示;基于每个所述进程节点对应的待求解节点表示和对应的初始化上下文表示,构建第二损失函数;根据所述第一损失函数和所述第二损失函数构建目标损失函数。
另一方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
获取待检测事件图和查询图;所述待检测事件图和所述查询图均包括多个节点和边,所述待检测事件图的边表征相应节点间发生的事件,所述查询图的边表征相应节点间发生的异常事件;
将所述查询图的节点和所述待检测事件图的节点进行匹配处理,得到多个候选节点对;
对多个所述候选节点对中的每个节点分别进行特征提取,得到每个所述节点对应的节点表示;
对于各所述候选节点对,根据相应候选节点对中各节点的节点表示,从各所述候选节点对中筛选出满足匹配条件的目标节点对;
基于各所述目标节点对,对所述待检测事件图进行子图匹配,得到所述待检测事件图中与所述查询图相匹配的目标子图;所述目标子图用于描述所述待检测事件图中存在的异常事件。
另一方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
获取待检测事件图和查询图;所述待检测事件图和所述查询图均包括多个节点和边,所述待检测事件图的边表征相应节点间发生的事件,所述查询图的边表征相应节点间发生的异常事件;
将所述查询图的节点和所述待检测事件图的节点进行匹配处理,得到多个候选节点对;
对多个所述候选节点对中的每个节点分别进行特征提取,得到每个所述节点对应的节点表示;
对于各所述候选节点对,根据相应候选节点对中各节点的节点表示,从各所述候选节点对中筛选出满足匹配条件的目标节点对;
基于各所述目标节点对,对所述待检测事件图进行子图匹配,得到所述待检测事件图中与所述查询图相匹配的目标子图;所述目标子图用于描述所述待检测事件图中存在的异常事件。
另一方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
获取待检测事件图和查询图;所述待检测事件图和所述查询图均包括多个节点和边,所述待检测事件图的边表征相应节点间发生的事件,所述查询图的边表征相应节点间发生的异常事件;
将所述查询图的节点和所述待检测事件图的节点进行匹配处理,得到多个候选节点对;
对多个所述候选节点对中的每个节点分别进行特征提取,得到每个所述节点对应的节点表示;
对于各所述候选节点对,根据相应候选节点对中各节点的节点表示,从各所述候选节点对中筛选出满足匹配条件的目标节点对;
基于各所述目标节点对,对所述待检测事件图进行子图匹配,得到所述待检测事件图中与所述查询图相匹配的目标子图;所述目标子图用于描述所述待检测事件图中存在的异常事件。
上述异常事件检测方法、装置、计算机设备、存储介质和计算机程序产品,查询图包括多个节点和边,该查询图的边表征相应节点间发生的异常事件,则查询图可以用于描述节点间发生的异常事件。待检测事件图包括多个节点和边,待检测事件图的边表征相应节点间发生的事件,则将查询图和待检测事件图进行匹配,通过检测待检测事件图中是否存在与查询图相匹配的子图,可以准确判断出待检测事件图中是否存在异常事件。
查询图和待检测事件图的匹配可细化为节点匹配,将查询图的节点和待检测事件图的节点进行匹配处理,以对这两个图中的节点进行初步匹配,能够粗略确定匹配的候选节点对。对多个候选节点对中的每个节点分别进行特征提取,得到每个节点对应的节点表示,节点表示包含了节点的关键信息以及节点在图中的相关拓扑结构信息。对于各候选节点对,根据相应候选节点对中各节点的节点表示从各候选节点对中筛选出满足匹配条件的目标节点对,使得将节点表示作为筛选目标节点对的条件,能够充分的利用图中蕴含的信息对节点进一步进行精细匹配,以提升筛选的准确度。基于各目标节点对对待检测事件图进行子图匹配,以确定待检测事件图中与查询图相匹配的目标子图,从而能够通过目标子图准确描述待检测事件图中存在的异常事件,以及存在异常事件的节点。
附图说明
图1为一个实施例中异常事件检测方法的应用环境图;
图2为一个实施例中异常事件检测方法的流程示意图;
图3为一个实施例中确定每个第一邻居节点与相匹配的第二邻居节点形成的目标邻居节点对的流程示意图;
图4为一个实施例中基于各目标进程节点对和各目标邻居节点对,对待检测事件图进行子图匹配,得到待检测事件图中与查询图相匹配的目标子图的步骤的流程示意图;
图5为一个实施例中生成每个第二进程节点分别对应的目标子图的流程示意图;
图6为一个实施例中查询图和待检测事件图的示意图;
图7为一个实施例中节点距离为1的邻居节点匹配得到的中间图的示意图;
图8为一个实施例中从待检测事件图中匹配得到的目标子图的示意图;
图9为一个实施例中根据多个三元组所对应的初始化节点表示、待求解节点表示和初始化特征表示,构建目标损失函数的流程示意图;
图10为一个实施例中异常事件检测方法的流程示意图;
图11为一个实施例中异常事件检测装置的结构框图;
图12为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请实施例可应用于各种场景,包括但不限于云技术、人工智能、智慧交通、辅助驾驶、数据挖掘等。例如,应用于人工智能(Artificial Intelligence,AI)技术领域,其中,人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。本申请实施例提供的方案涉及人工智能的异常事件检测方法,具体通过如下各实施例进行说明。
本申请实施例提供的异常事件检测方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。终端102和服务器104均可单独执行本申请实施例中提供的异常事件检测方法。终端102和服务器104也可协同用于执行本申请实施例中提供的异常事件检测方法。当终端102和服务器104协同用于执行本申请实施例中提供的异常事件检测方法时,终端102获取待检测事件图,该待检测事件图包括多个节点和边,待检测事件图的边表征相应节点间发生的事件,终端102将待检测事件图发送至服务器104。服务器104获取对应的查询图,该查询图均包括多个节点和边,查询图的边表征相应节点间发生的异常事件。服务器104将查询图的节点和待检测事件图的节点进行匹配处理,得到多个候选节点对。服务器104对多个候选节点对中的每个节点分别进行特征提取,得到每个节点对应的节点表示。对于各候选节点对,服务器104根据相应候选节点对中各节点的节点表示,从各候选节点对中筛选出满足匹配条件的目标节点对。服务器104基于各目标节点对,对待检测事件图进行子图匹配,得到待检测事件图中与查询图相匹配的目标子图;该目标子图用于描述待检测事件图中存在的异常事件。服务器104将该目标子图返回至终端102,终端102通过目标子图即可发现待检测事件图中存在的异常事件,并对异常事件进行相应处理。
其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、智能语音交互设备、智能家电、车载终端、飞行器、便携式可穿戴设备等。服务器104可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。终端102以及服务器104可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
需要说明的是,本申请各实施例中提及的“多个”等的数量均指代“至少两个”的数量。
在一个实施例中,如图2所示,提供了一种异常事件检测方法,以该方法应用于计算机设备(计算机设备可以是图1中的终端或服务器)为例进行说明,包括以下步骤:
步骤S202,获取待检测事件图和查询图;待检测事件图和查询图均包括多个节点和边,待检测事件图的边表征相应节点间发生的事件,查询图的边表征相应节点间发生的异常事件。
其中,图结构是多个节点通过边相互连接而形成的数据结构。数学抽象后的实体被称为节点,例如角色、进程、资源,节点之间的关系构成边。一张图中的边可以是有向或无向的。有向边所构成的图称为有向图,无向边所构成的图称为无向图。同时,图中的节点和边也可以有多个类型。当图中只有一类节点和一类边时,该图被称为单一图;反之被称为异构图。
待检测事件图和查询图中的多个节点包括进程节点和每个进程节点的邻居节点;邻居节点是与进程节点相关的资源节点,例如,文件、网络地址、管程等。
待检测事件图是一种有向异构图,通过图结构表示节点之间发生的事件,节点表示实体,例如角色、进程、资源,边表示实体之间发生的事件,例如创建、访问、建立连接等。待处理事件图可以包括系统事件图、风控事件图和对象操作事件图中的至少一种。系统事件图中的节点表示系统中的实体,例如进程、文件、网络地址、管程等,但不限于此;系统事件图中的边表示系统中的实体之间的事件,例如创建、访问、建立连接等,但不限于此。
进程是指一个程序在一个数据集合上的一次运行过程。一个程序在不同数据集合上运行,或者一个程序在同样数据集合上的多次运行都是不同的进程。管程定义了一个数据结构和在该数据结构上能为并发进程所执行的一组操作,这组操作能同步进程和改变管程中的数据。
查询图包括涉及系统异常事件的图结构、涉及风险事件的图结构和涉及对象异常行为的图结构中的至少一种。
可以理解的是,系统事件图、风控事件图和对象操作事件图具有各自对应的查询图。例如,系统事件图对应的查询图,是指用于描述涉及威胁系统的异常事件的时序和彼此关系的有向异构图。风控事件图对应的查询图,是指用于描述存在风险的事件的时序和彼此关系的有向异构图。对象操作事件图对应的查询图,是指用于描述对象的异常行为的时序和彼此关系的有向异构图。
异常事件可以指任何存在异常的事件,包括存在威胁的事件、存在风险的事件、异常的操作事件等,但不限于此。
具体地,计算机设备可从日志中确定各个实体、以及各个实体之间的发生的事件,将各个实体作为节点,并将实体之间发生的事件作为连接节点的边,使得从日志中抽象出待检测事件图。
计算机设备可获取待检测事件图对应的查询图,查询图可以是预先构建好的用于描述异常事件的时序和关系的图结构。计算机设备可预先从异常事件报告中确定各个对象、以及各个对象之间的发生的异常事件,将各个对象作为节点,并将对象之间发生的异常事件作为连接节点的边,以生成查询图。
在一个实施例中,计算机设备可确定待检测事件图中各节点分别对应的类型标签,类型标签表征节点的类型,类型标签例如可以是文件、进程、管程等。计算机设备可按照类型标签将待检测事件图中的节点进行分类,得到各分类下的节点。计算机设备还可以确定待检测事件图中每个节点分别对应的邻居节点,可将每个节点的邻居节点划分到各自对应的邻居节点集合中。
类似地,计算机设备可确定查询图中各节点分别对应的类型标签,类型标签表征节点的类型,类型标签例如可以是文件类型、进程类型、管程类型等。
计算机设备可按照类型标签将查询图中的各个节点进行分类,得到各分类下的节点。计算机设备还可以确定查询图中每个节点分别对应的邻居节点,可将每个节点的邻居节点划分到各自对应的邻居节点集合中。待检测事件图和查询图对应相同的类型标签。
可以理解的是,属于进程类型的节点即为进程节点,属于管程类型的节点即为管程节点。
在一个实施例中,计算机设备可在查询图构建后,预先将查询图中的各节点按照类型标签进行分类。还可以预先确定查询图中的每个节点分别对应的邻居节点,将各个邻居节点划分到相应节点对应的邻居节点集合中,以提高后续节点匹配的效率。
在一个实施例中,计算机设备可从多个类型标签中选择目标类型标签,并从待检测事件图中筛选出属于目标类型标签的各节点,从查询图中筛选出属于目标类型标签的各节点。例如,目标类型标签为进程类型,则计算机设备可从待检测事件图中筛选出属于进程类型的各节点,从查询图中筛选出属于进程类型的各节点。即筛选出待检测事件图中的进程节点和查询图中的进程节点。
本实施例中,计算机设备可确定每个进程节点分别对应的邻居节点,将邻居节点划分到相应进程节点对应的邻居节点集合中。邻居节点作为进程节点直接操作或间接操作的资源节点,例如,邻居节点可以是进程节点所操作的文件、网络地址和管程中的至少一种。
进程节点对应的邻居节点,可以是进程节点对应的直接邻居节点和间接邻居节点中的至少一种。直接邻居节点是指与进程节点直接连接的邻居节点,间接邻居节点是指与进程节点间接连接的邻居节点,间接邻居节点与进程节点之间至少间隔了一个邻居节点,通过另一邻居节点间接连接。例如,进程节点A与邻居节点B通过边直接连接,邻居节点B与邻居节点C通过边直接连接,进程节点A与邻居节点C不连接,则邻居节点B作为进程节点A的直接邻居节点,邻居节点C作为进程节点A的间接邻居节点。
进程节点与直接邻居节点、间接连接节点之间的节点距离不同,例如进程节点与直接邻居节点之间的节点距离为1,进程节点与间接连接节点之间的节点距离可为2、3、4等,但不限于此。计算机设备可确定进程节点与各邻居节点之间的节点距离,以确定进程节点在每种节点距离下分别对应的邻居节点,例如节点距离为1时所对应的邻居节点,节点距离为2时所对应的邻居节点,节点距离为3时所对应的邻居节点。还可以按照节点距离,将进程节点的各个邻居节点划分到相应节点距离所对应的邻居节点集合中。
步骤S204,将查询图的节点和待检测事件图的节点进行匹配处理,得到多个候选节点对。
其中,候选节点对是指查询图的节点和待检测事件图的节点匹配所形成的节点对。
具体地,计算机设备可将查询图中的每个节点分别与待检测事件图中的节点进行匹配处理,得到查询图中的节点和待检测事件图中的节点形成候选节点对。
本实施例中,计算机设备可确定查询图和待检测事件图对应相同类型标签的节点,将查询图中和待检测事件图中对应相同类型标签的节点进行匹配处理,得到在相应类型标签下对应的多个候选节点对。进一步地,对于查询图中和待检测事件图中对应相同类型标签的节点,计算机设备可将查询图中的一个节点分别和待检测事件图中的每个节点匹配,使得查询图中的一个节点和待检测事件图中的每个节点均形成一个候选节点对,即查询图中的一个节点对应多个候选节点对。按照相同的处理方式,可得到查询图中的每个节点和待检测事件图中的每个节点所形成候选节点对。
例如,计算机设备可将查询图中属于进程类型的各节点和待检测事件图中属于进程类型的各节点进行匹配处理,得到在进程类型下的多个候选节点对。
步骤S206,对多个候选节点对中的每个节点分别进行特征提取,得到每个节点对应的节点表示。
其中,节点表示表征节点的关键信息以及节点在图中的相关拓扑结构信息的融合。
具体地,对于多个候选节点对,计算机设备可对每个候选节点对中的每个节点分别进行特征提取,得到每个节点分别对应的节点表示。
在一个实施例中,计算机设备可对查询图和待检测事件图进行预处理,得到查询图中每个节点分别对应的节点表示,并得到待检测事件图中每个节点分别对应的节点表示。
本实施例中,计算机设备可对查询图进行预处理,在预处理中对查询图中部分节点或所有节点分别定义初始化节点表示、对各节点的边分别定义初始化特征表示,并通过对各初始化节点表示和各初始化特征表示进行迭代求解,从而在迭代停止时得到查询图中每个节点分别对应的节点表示。
进一步地,在预处理中还可以对查询图中进程节点的上下文定义初始化上下文表示,进程节点的上下文由与该进程节点相邻的上一邻居节点和下一邻居节点、该进程节点与上一邻居节点的边、以及该进程节点与下一邻居节点的边构成。计算机设备通过对各初始化节点表示、各初始化特征表示和初始化上下文表示进行迭代求解,从而在迭代停止时得到查询图中每个节点分别对应的节点表示。
待检测事件图的预处理过程与查询图的预处理过程相同,通过预处理则可得到待检测事件图中每个节点分别对应的节点表示。
在一个实施例中,计算机设备可将查询图和待检测事件图输入生成模型,通过生成模型对查询图的每个节点进行特征提取,得到查询图的每个节点分别对应的节点表示。以及,通过生成模型对待检测事件图的每个节点进行特征提取,得到待检测事件图的每个节点分别对应的节点表示。
步骤S208,对于各候选节点对,根据相应候选节点对中各节点的节点表示,从各候选节点对中筛选出满足匹配条件的目标节点对。
其中,匹配条件是指用于筛选目标节点对的预设条件。匹配条件具体可以是相似度大于相似度阈值,还可以是按照相似度选择预设数量的候选节点对。
当查询图中的一个节点分别与待检测事件图中的各个节点形成候选节点对,或者待检测事件图中的一个节点分别与查询图中的各个节点形成候选节点对时,匹配条件还可以是选择同一节点所属的各个候选节点对中相似度最高的候选节点对。
具体地,计算机设备根据候选节点对中每个节点对应的节点表示,计算出该候选节点对中的各节点之间的相似度,将所计算出的相似度作为该候选节点对所对应的相似度。按照相同的处理,可得到每个候选节点对分别对应的相似度。
计算机设备可获取匹配条件,将各候选节点对对应的相似度与匹配条件进行匹配,以确定各候选节点对是否满足匹配条件。计算机设备从各候选节点对中,筛选出满足匹配条件的候选节点对作为目标节点对。
在本实施例中,查询图中的一个节点分别与待检测事件图中的每个节点形成候选节点对,则对于查询图中的同一节点,确定该同一节点所属的各个候选节点对。根据该同一节点所属的各个候选节点对分别对应的相似度,从该同一节点所属的各个候选节点对中筛选出满足匹配条件的目标节点对。按照相同的处理,可对查询图中每个节点分别所属的各个候选节点对进行筛选,得到查询图中每个节点分别对应的目标节点对。
在本实施例中,待检测事件图中的一个节点分别与查询图中的每个节点形成候选节点对,则对于待检测事件图中的同一节点,确定该同一节点所属的各个候选节点对。根据该同一节点所属的各个候选节点对分别对应的相似度,从该同一节点所属的各个候选节点对中筛选出满足匹配条件的目标节点对。按照相同的处理,可对待检测事件图中每个节点分别所属的各个候选节点对进行筛选,得到待检测事件图中每个节点分别对应的目标节点对。
进一步地,匹配条件可以是选择同一节点所属的各个候选节点对中相似度最高的候选节点对。计算机设备可根据该同一节点所属的各个候选节点对分别对应的相似度,从该同一节点所属的各个候选节点对中筛选出相似度最高的候选节点对作为目标节点对。
步骤S210,基于各目标节点对,对待检测事件图进行子图匹配,得到待检测事件图中与查询图相匹配的目标子图;该目标子图用于描述待检测事件图中存在的异常事件。
其中,目标子图包括多个节点和边,目标子图为待检测事件图中与查询图相匹配的子图。目标子图的边表征相应节点间发生的异常事件。该目标子图作为待检测事件图的子图,也是查询图的子图。
两个图G和H,当H的节点集合是G的节点集合的子集且H的边集合是G的边集合的子集时,则称H是G的子图。
具体地,计算机设备基于筛选出的各个目标节点对,对待检测事件图进行子图匹配,以从待检测事件图中匹配出与查询图相匹配的子图。进一步地,计算机设备基于筛选出的各个目标节点对,对待检测事件图进行子图匹配,以从待检测事件图中匹配出与查询图相似的子图。
在一个实施例中,基于各目标节点对,对待检测事件图进行子图匹配,得到待检测事件图中与查询图相匹配的目标子图,包括:按照各目标节点对的相似度依次选取目标节点对,根据所选取的目标节点对中属于待检测事件图中的节点,以及所选取的节点在待检测事件图中的关联关系,生成对应的目标子图。
上述异常事件检测方法中,查询图包括多个节点和边,该查询图的边表征相应节点间发生的异常事件,则查询图可以用于描述节点间发生的异常事件。待检测事件图包括多个节点和边,待检测事件图的边表征相应节点间发生的事件,则将查询图和待检测事件图进行匹配,通过检测待检测事件图中是否存在与查询图相匹配的子图,可以准确判断出待检测事件图中是否存在异常事件。
查询图和待检测事件图的匹配可细化为节点匹配,将查询图的节点和待检测事件图的节点进行匹配处理,以对这两个图中的节点进行初步匹配,能够粗略确定匹配的候选节点对。对多个候选节点对中的每个节点分别进行特征提取,得到每个节点对应的节点表示,节点表示包含了节点的关键信息以及节点在图中的相关拓扑结构信息。对于各候选节点对,根据相应候选节点对中各节点的节点表示从各候选节点对中筛选出满足匹配条件的目标节点对,使得将节点表示作为筛选目标节点对的条件,能够充分的利用图中蕴含的信息对节点进一步进行精细匹配,以提升筛选的准确度。基于各目标节点对对待检测事件图进行子图匹配,以确定待检测事件图中与查询图相匹配的目标子图,从而能够通过目标子图准确描述待检测事件图中存在的异常事件,以及存在异常事件的节点。
在一个实施例中,该查询图的多个节点包括多个第一进程节点,待检测事件图的多个节点包括多个第二进程节点,候选节点对包括将第一进程节点和第二进程节点进行匹配处理所得到的候选进程节点对。
具体地,查询图和待检测事件图中属于进程类型的节点称为进程节点。查询图中的进程节点称为第一进程节点,待检测事件图中的进程节点称为第二进程节点。候选节点对包括候选进程节点对。
计算机设备可将每个第一进程节点分别和每个第二进程节点匹配,使得一个第一进程节点对应多个第二进程节点,每个第一进程节点分别与每个第二进程节点形成对应的候选进程节点对。
计算机设备对多个候选进程节点对中的每个进程节点分别进行特征提取,得到每个进程节点对应的节点表示。对于各候选节点对,计算机设备根据相应候选进程节点对中各进程节点的节点表示,从各候选进程节点对中筛选出满足匹配条件的目标进程节点对。基于各目标进程节点对,对待检测事件图进行子图匹配,得到待检测事件图中与查询图相匹配的目标子图。
在一个实施例中,该查询图的多个节点包括多个第一进程节点,待检测事件图的多个节点包括多个第二进程节点,候选节点对包括候选进程节点对;将查询图的第一进程节点和待检测事件图的第二进程节点进行匹配处理,得到多个候选进程节点对,包括:
从查询图中抽取出各第一进程节点,并从待检测事件图中抽取出各个第二进程节点;将每个第一进程节点分别与各第二进程节点进行匹配,得到每个第一进程节点分别与每个第二进程节点形成的候选进程节点对。
具体地,计算机设备可从查询图中抽取出各第一进程节点,并从待检测事件图中抽取出各个第二进程节点,将所抽取的各第一进程节点和抽取的各个第二进程节点分别匹配,得到每个第一进程节点分别与每个第二进程节点形成的候选进程节点对。
在一个实施例中,候选节点对还可以包括候选邻居节点对。查询图和待检测事件图中的进程节点分别对应各自的邻居节点。查询图中的邻居节点称为第一邻居节点,待检测事件图中的邻居节点称为第二邻居节点。计算机设备将候选进程节点对中第一进程节点的各个第一邻居节点,分别与该候选进程节点对中的第二进程节点的各个第二邻居节点进行匹配,得到每个第一邻居节点分别与每个第二邻居节点匹配形成的候选邻居节点对。
本实施例中,进程节点作为事件的主体,将查询图中的第一进程节点和待检测事件图中的第二进程节点进行匹配,能够通过初步匹配确定待检测事件图中可能存在与第一进程节点相匹配的进程节点粗略位置,便于后续进一步进行进程节点的精细匹配。对于各候进程选节点对,根据相应候选进程节点对中各进程节点的节点表示从各候选进程节点对中筛选出满足匹配条件的目标进程节点对,使得将节点表示作为筛选目标进程节点对的条件,能够充分的利用图中蕴含的信息对进程节点进一步进行精细匹配,以提升筛选的准确度。基于各目标进程节点对对待检测事件图进行子图匹配,以确定待检测事件图中与查询图相匹配的目标子图,从而能够通过目标子图准确描述待检测事件图中存在的异常事件,以及存在异常事件的节点。
在一个实施例中,该查询图的多个节点包括每个第一进程节点的第一邻居节点,待检测事件图的多个节点包括每个第二进程节点的第二邻居节点,目标节点对包括目标进程节点对和目标邻居节点对;基于各目标节点对,对待检测事件图进行子图匹配,得到待检测事件图中与查询图相匹配的目标子图,包括:
对于各目标进程节点对,将相应目标进程节点对中第一进程节点的第一邻居节点与第二进程节点的第二邻居节点进行匹配处理,得到每个第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对;基于各目标进程节点对和各目标邻居节点对,对待检测事件图进行子图匹配,得到待检测事件图中与查询图相匹配的目标子图。
具体地,该查询图的多个节点包括每个第一进程节点分别对应的第一邻居节点,待检测事件图的多个节点包括每个第二进程节点分别对应的第二邻居节点。
计算机设备可将每个第一进程节点分别和每个第二进程节点匹配,使得一个第一进程节点对应多个第二进程节点,每个第一进程节点分别与每个第二进程节点形成对应的候选进程节点对。计算机设备对多个候选进程节点对中的每个进程节点分别进行特征提取,得到每个进程节点对应的节点表示。对于各候选进程节点对,计算机设备根据相应候选进程节点对中各进程节点的节点表示,从各候选进程节点对中筛选出满足匹配条件的目标进程节点对。
计算机设备可确定目标进程节点对中的第一进程节点对应的每个第一邻居节点,并确定相应进程节点对中的第二进程节点对应的每个第二邻居节点。将该每个第一邻居节点分别和第二邻居节点进行匹配处理,得到每个第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对。
本实施例中,对于各目标进程节点对,将相应目标进程节点对中第一进程节点的第一邻居节点与第二进程节点的第二邻居节点进行匹配处理,得到每个第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对,包括:
对于各目标进程节点对,将相应目标进程节点对中第一进程节点对应的每个第一邻居节点分别与第二进程节点的每个第二邻居节点进行匹配,得到每个第一邻居节点与每个第二邻居节点分别形成的候选邻居节点对;从各个候选邻居节点对中筛选出满足匹配条件的目标邻居节点对。
从候选邻居节点对中筛选出满足匹配条件的目标邻居节点对,包括:对于各个候选邻居节点对,确定相应候选邻居节点对中第一邻居节点的节点表示和第二邻居节点的节点表示之间的相似度;基于相似度从各候选邻居节点对中筛选出满足匹配条件的目标邻居节点对。
可以理解的是,筛选目标进程节点对的匹配条件可以称为第一匹配条件,筛选目标邻居节点对的匹配条件可以称为第二匹配条件,第二匹配条件与第一匹配条件可以相同也可以不同。
本实施例中,对于各目标进程节点对,将相应目标进程节点对中第一进程节点的第一邻居节点与第二进程节点的第二邻居节点进行匹配处理,得到每个第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对,包括:
对于各目标进程节点对,确定相应目标进程节点对中第一进程节点的每个第一邻居节点分别与第二进程节点的每个第二邻居节点之间的相似度;对于每个第一邻居节点,根据相应第一邻居节点分别与每个第二邻居节点之间的相似度,确定与相应第一邻居节点相匹配的第二邻居节点,以分别得到每个第一邻居节点与相匹配的第二邻居节点形成的目标邻居节点对。
计算机设备基于各目标进程节点对对应的相似度,从各目标进程节点对中选取目标进程节点对,并确定所选取的目标进程节点对所对应的各目标邻居节点对。基于所选取目标进程节点对对应的各目标邻居节点对的相似度,从各目标邻居节点对中选取目标邻居节点对。根据所选取的目标进程节点对中的第二进程节点和所选取的目标邻居节点对中的第二邻居节点在待检测事件图中的关联关系,生成对应的目标子图。
本实施例中,该查询图的多个节点包括第一进程节点和每个第一进程节点的第一邻居节点,待检测事件图的多个节点包括第二进程节点和每个第二进程节点的第二邻居节点。对于各目标进程节点对,将相应目标进程节点对中第一进程节点的第一邻居节点与第二进程节点的第二邻居节点进行匹配处理,得到每个第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对;基于各目标进程节点对和各目标邻居节点对,对待检测事件图进行子图匹配,得到待检测事件图中与查询图相匹配的目标子图。先对查询图的进程节点和待检测事件图的进程节点进行初步匹配,并基于候选进程节点对中各进程节点的节点表示,对初步匹配所生成的多个各候选进程节点对进行精细匹配,以筛选出满足匹配条件的目标进程节点对。
对目标进程节点对中第一进程节点的第一邻居节点与第二进程节点的第二邻居节点进行匹配处理,以得到每个第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对,使得在完成对目标进程节点对的筛选后再进行邻居节点的匹配,可以减少匹配的数据量,提高处理效率。目标进程节点对由匹配程度较高的第一进程节点和第二进程节点构成,目标邻居节点对由匹配程度较高的第一邻居节点和第二邻居节点构成,则基于匹配程度较高各目标进程节点对和各目标邻居节点对,对待检测事件图进行子图匹配,能够更准确地从待检测事件图中确定与查询图相匹配的目标子图。
在一个实施例中,查询图的多个节点包括多个第一进程节点和每个第一进程节点的第一邻居节点,待检测事件图的多个节点包括多个第二进程节点和每个第二进程节点的第二邻居节点,候选节点对包括候选进程节点对和候选邻居节点对;将查询图的节点和待检测事件图的节点进行匹配处理,得到多个候选节点对,包括:将查询图的第一进程节点和待检测事件图的第二进程节点进行匹配处理,得到多个候选进程节点对;第一进程节点对应的第一邻居节点与相应第二进程节点所对应的第二邻居节点进程匹配处理,得到多个候选邻居节点对;
该匹配条件包括第一匹配条件和第二匹配条件,目标节点对包括目标进程节点对和目标邻居节点对;对于各候选节点对,根据相应候选节点对中各节点的节点表示,从各候选节点对中筛选出满足匹配条件的目标节点对,包括:对于各候选进程节点对,根据相应候选进程节点对中第一进程节点的节点表示和第二进程节点的节点表示,从各候选进程节点对中筛选出满足第一匹配条件的目标进程节点对;对于各候选邻居节点对,根据相应候选邻居节点对中第一邻居节点的节点表示和第二邻居节点的节点表示,从各候选邻居节点对中筛选出满足第二匹配条件的目标邻居节点对。第一匹配条件与第一匹配条件可以相同,也可以不同。
在一个实施例中,对于各候选节点对,根据相应候选节点对中各节点的节点表示,从各候选节点对中筛选出满足匹配条件的目标节点对,包括:
对于各候选进程节点对,确定相应候选进程节点对中第一进程节点的节点表示和第二进程节点的节点表示之间的相似度,得到每个候选进程节点对分别对应的相似度;对于每个第一进程节点,基于相应第一进程节点所属的各个候选进程节点对分别对应的相似度,从相应第一进程节点所属的各个候选进程节点对中,筛选出满足匹配条件的目标进程节点对。
具体地,候选进程节点对中包括第一进程节点和第二进程节点,计算机设备根据候选进程节点对中第一进程节点对应的节点表示和第二进程节点对应的节点表示,计算出该第一进程节点和第二进程节点之间的相似度,将所计算出的相似度作为该候选进程节点对所对应的相似度。按照相同的处理,可得到每个候选进程节点对分别对应的相似度。
同一第一进程节点可与不同的第二进程节点形成不同的候选进程节点对,则计算机设备可确定同一第一进程节点所属的各个候选进程节点对,并确定同一第一进程节点所属的各个候选进程节点对分别对应的相似度,即可得到同一第一进程节点对应的多个相似度。计算机设备基于同一第一进程节点对应的多个相似度,从第一进程节点所属的各个候选进程节点对中,筛选出满足匹配条件的目标进程节点对,得到该第一进程节点对应的目标进程节点对。按照相同的处理,计算机设备可筛选出每个第一进程节点分别对应的目标进程节点对。
在本实施例中,同一第二进程节点可与不同的第一进程节点形成不同的候选进程节点对,则计算机设备可确定同一第二进程节点所属的各个候选进程节点对,并确定同一第二进程节点所属的各个候选进程节点对分别对应的相似度,即可得到同一第二进程节点对应的多个相似度。计算机设备基于同一第二进程节点对应的多个相似度,从该第二进程节点所属的各个候选进程节点对中,筛选出满足匹配条件的目标进程节点对,得到该第二进程节点对应的目标进程节点对。按照相同的处理,计算机设备可筛选出每个第二进程节点分别对应的目标进程节点对。
本实施例中,满足匹配条件具体可以是候选进程节点对的相似度大于相似度阈值,还可以是按照相似度选择预设数量的候选进程节点对,还可以是选择同一进程节点所属的各个候选进程节点对中相似度最高的候选进程节点对。
例如,当匹配条件是选择同一进程节点所属的各个候选进程节点对中相似度最高的候选进程节点对时,计算机设备可根据该同一进程节点所属的各个候选进程节点对分别对应的相似度,从该同一进程节点所属的各个候选进程节点对中筛选出相似度最高的候选进程节点对作为目标进程节点对。该进程节点可以是第一进程节点或第二进行节点。
本实施例中,相似度具体可以正弦相似度、余弦相似度等,但不限于此,相似度阈值则对应为正弦相似度阈值、余弦相似度阈值。
本实施例中,对于各候选进程节点对,确定相应候选进程节点对中第一进程节点的节点表示和第二进程节点的节点表示之间的相似度,得到每个候选进程节点对分别对应的相似度,从而能够将节点的节点表示之间的相似度作为筛选条件,以对候选进程节点对进行进一步筛选。对于每个第一进程节点,基于相应第一进程节点所属的各个候选进程节点对分别对应的相似度,从相应第一进程节点所属的各个候选进程节点对中,准确地筛选出满足匹配条件的目标进程节点对。
在一个实施例中,对于各目标进程节点对,将相应目标进程节点对中第一进程节点的第一邻居节点与第二进程节点的第二邻居节点进行匹配处理,得到每个第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对,包括:
对于各目标进程节点对,确定相应目标进程节点对中第一进程节点的每个第一邻居节点分别与第二进程节点的每个第二邻居节点之间的相似度;对于每个第一邻居节点,根据相应第一邻居节点分别与每个第二邻居节点之间的相似度,确定与相应第一邻居节点相匹配的第二邻居节点,以分别得到每个第一邻居节点与相匹配的第二邻居节点形成的目标邻居节点对。
具体地,计算机设备可确定目标进程节点对中的第一进程节点对应的每个第一邻居节点,并确定相应进程节点对中的第二进程节点对应的每个第二邻居节点。接着,计算机设备可计算同一第一邻居节点分别和每个第二邻居节点之间的相似度,得到该同一第一邻居节点对应的多个相似度。根据同一第一邻居节点对应的多个相似度,从各相似度对应的第二邻居节点中筛选出与该第一邻居节点相匹配的第二邻居节点。将第一邻居节点和相匹配的第二邻居节点作为目标邻居节点对。
进一步地,计算机设备可确定每个第一邻居节点的节点表示和每个第二邻居节点的节点表示,计算同一第一邻居节点的节点表示分别和每个第二邻居节点的节点表示之间的相似度,得到同一第一邻居节点分别和每个第二邻居节点之间的相似度。
例如,从各相似度对应的第二邻居节点中,筛选出相似度大于相似度阈值的第二邻居节点,作为与该第一邻居节点相匹配的第二邻居节点。或者,从各相似度对应的第二邻居节点中,筛选出相似度最高第二邻居节点,作为与该第一邻居节点相匹配的第二邻居节点。
按照相同的处理,计算机设备可确定出与每个第一邻居节点相匹配的第二邻居节点,从而得到多个目标邻居节点对。
本实施例中,计算机设备可确定目标进程节点对中的第一进程节点对应的每个第一邻居节点,并确定相应进程节点对中的第二进程节点对应的每个第二邻居节点。接着,计算机设备可计算同一第二邻居节点分别和每个第一邻居节点之间的相似度,得到该同一第二邻居节点对应的多个相似度。根据同一第二邻居节点对应的多个相似度,从各相似度对应的第一邻居节点中筛选出与该第二邻居节点相匹配的第一邻居节点。将第二邻居节点和相匹配的第一邻居节点形成目标邻居节点对。按照相同的处理,可确定出与每个第二邻居节点相匹配的第一邻居节点,从而得到多个目标邻居节点对。
本实施例中,对于各目标进程节点对,确定相应目标进程节点对中第一进程节点的每个第一邻居节点分别与第二进程节点的每个第二邻居节点之间的相似度,能够基于相似度为每个第一邻居节筛选出最匹配的第二邻居节点。对于每个第一邻居节点,根据相应第一邻居节点分别与每个第二邻居节点之间的相似度,确定与相应第一邻居节点相匹配的第二邻居节点,以分别得到每个第一邻居节点与相匹配的第二邻居节点形成的目标邻居节点对,使得所生成的目标邻居节点对中的邻居节点之间的匹配度高,即用于进行子图匹配的邻居节点对的匹配度高,能够有效提高后续子图匹配的准确性。
在一个实施例中,对于各目标进程节点对,确定相应目标进程节点对中第一进程节点的每个第一邻居节点分别与第二进程节点的每个第二邻居节点之间的相似度,包括:对于各目标进程节点对,将相应目标进程节点对中第一进程节点的每个第一邻居节点与第二进程节点的每个第二邻居节点进行匹配,得到每个第一邻居节点分别与每个第二邻居节点所形成的候选邻居节点对;对于各候选邻居节点对,确定相应候选邻居节点对中第一邻居节点的节点表示和第二邻居节点的节点表示之间的相似度,得到每个候选邻居节点对分别对应的相似度;
对于每个第一邻居节点,根据相应第一邻居节点分别与每个第二邻居节点之间的相似度,确定与相应第一邻居节点相匹配的第二邻居节点,以分别得到每个第一邻居节点与相匹配的第二邻居节点形成的目标邻居节点对,包括:对于每个第一邻居节点,基于相应第一邻居节点所属的各个候选邻居节点对分别对应的相似度,从相应第一邻居节点所属的各个候选邻居节点对中,筛选出满足匹配条件的目标邻居节点对。
在一个实施例中,该方法还包括:对于各目标进程节点对,确定相应目标进程节点对中第二进程节点与相匹配的各第二邻居节点之间的节点距离;对于各目标邻居节点对,按照相应目标邻居节点对中的第二邻居节点与相应第二进程节点之间的节点距离划分,得到每个第二进程节点在每种节点距离下分别对应的目标邻居节点对。
在一个实施例中,如图3所示,对于各目标进程节点对,确定相应目标进程节点对中第一进程节点的每个第一邻居节点分别与第二进程节点的每个第二邻居节点之间的相似度,包括步骤S302-步骤S304:
步骤S302,对于各目标进程节点对,确定相应目标进程节点对中第一进程节点在每种节点距离下分别对应的第一邻居节点,以及第二进程节点在每种节点距离下分别对应的第二邻居节点。
具体地,查询图中的第一进程节点和多个第一邻居节点之间的节点距离可不相同,例如,查询图中的某个第一进程节点具有3个节点距离为1的第一邻居节点,具有2个节点距离为2的第一邻居节点。
计算机设备筛选出各目标进程节点对后,可确定目标进程节点对中的第一进程节点在每种节点距离下分别对应的第一邻居节点,并确定该目标进程节点中第二进程节点在每种节点距离下分别对应的第二邻居节点。
按照相同的处理方式,可到每个目标进程节点中的第一进程节点在每种节点距离下分别对应的第一邻居节点,以及每个目标进程节点中的第二进程节点在每种节点距离下分别对应的第二邻居节点。
步骤S304,确定在每种节点距离下的每个第一邻居节点分别与相应节点距离下的每个第二邻居节点之间的相似度。
具体地,对于单个目标进程节点对中的第一进程节点和第二进程节点,计算在同一节点距离下对应的每个第一邻居节点和每个第二邻居节点之间的相似度,得到在该同一节点距离下的每个第一邻居节点分别与每个第二邻居节点之间的相似度。对于每种节点距离下的第一邻居节点和第二邻居节点均进行相同的处理,可得到在每种节点距离下的每个第一邻居节点分别与每个第二邻居节点之间的相似度。由此完成单个目标进程节点对对应不同节点距离的第一邻居节点和第二邻居节点之间的相似度计算。
对于每个目标进程节点对均进行相同处理,可到每个目标进程节点对中的两个进程节点在同一节点距离下的邻居节点之间的相似度。
对于每个第一邻居节点,根据相应第一邻居节点分别与每个第二邻居节点之间的相似度,确定与相应第一邻居节点相匹配的第二邻居节点,以分别得到每个第一邻居节点与相匹配的第二邻居节点形成的目标邻居节点对,包括步骤S306:
步骤S306,对于每种节点距离,根据相应节点距离下的各第一邻居节点分别与每个第二邻居节点之间的相似度,确定与每个第一邻居节点相匹配的第二邻居节点,以分别得到在每种节点距离下,每个第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对。
具体地,计算机设备根据同一节点距离下的第一邻居节点分别与每个第二邻居节点之间的相似度,确定出与该第一邻居节点相匹配的第二邻居节点。将该第一邻居节点与相匹配的第二邻居节点形成在该同一节点距离下的目标邻居节点对。对于每个第一邻居节点对进行相同的处理,可得到每个第一邻居节点与相匹配的第二邻居节点所形成在该同一节点距离下的目标邻居节点对。
对于每种节点距离下的第一邻居节点进行相同的处理,可得到在每种节点距离下,每个第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对。
例如,目标进程节点对A中的第一进程节点在节点距离为1时有2个第一邻居节点a1、a2,在节点距离为2时有2个第一邻居节点a3、a4,目标进程节点对A中的第二进程节点在节点距离为1时有3个第二邻居节点b1、b2、b3,在节点距离为2时有2个第二邻居节点b4、b5。计算机设备计算在节点距离为1时,第一邻居节点a1、a2分别和第二邻居节点b1、b2、b3之间的相似度,即a1和b1的相似度、a1和b2的相似度、a1和b3的相似度、a2和b1的相似度、a2和b2的相似度、a2和b3的相似度。对于a1对应的3个相似度,选择相似度最高的第二邻居节点作为与a1相匹配的第二邻居节点。如相似度最高的第二邻居节点为b2,则b2作为与a1相匹配的第二邻居节点,得到a1与b2形成的目标邻居节点对<a1,b2>。该目标邻居节点对<a1,b2>对应的节点距离为1。对于a2对应的3个相似度也是如此,则可以确定b1、b2、b3中与a2相匹配的第二邻居节点,以形成a2在节点距离为1时所对应的目标邻居节点对。节点距离为1时的2个第一邻居节点a1、a2均形成各自的目标邻居节点对后,即可得到该第一进程节点在节点距离为1的情况下所对应的各个目标邻居节点对,也是该第二进程节点在节点距离为1的情况下所对应的各个目标邻居节点对。
计算机设备计算在节点距离为2时,第一邻居节点a3、a4分别和第二邻居节点b4、b5之间的相似度,即a3和b4、a3和b5、a4和b4、a4和b5的相似度,处理方式与节点距离为1时的处理方式相同,则可得到该第一进程节点在节点距离为2的情况下所对应的各个目标邻居节点对。
本实施例中,对于各目标进程节点对,确定相应目标进程节点对中第一进程节点在每种节点距离下分别对应的第一邻居节点,以及第二进程节点在每种节点距离下分别对应的第二邻居节点,从而能够将进程节点的邻居节点按照不同的节点距离进行划分。确定在每种节点距离下的每个第一邻居节点分别与相应节点距离下的每个第二邻居节点之间的相似度,以将邻居节点之间的相似度同样按照节点距离进行划分,对于每种节点距离,根据相应节点距离下的各第一邻居节点分别与每个第二邻居节点之间的相似度,确定与每个第一邻居节点相匹配的第二邻居节点,以分别得到在每种节点距离下,每个第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对,使得能够筛选出在相同节点距离下的相匹配的第一邻居节点和第二邻居节点,所形成的目标邻居节点对的匹配度更高,有助于提高后续子图匹配的准确性。
在一个实施例中,基于各目标进程节点对和各目标邻居节点对,对待检测事件图进行子图匹配,得到待检测事件图中与查询图相匹配的目标子图,包括:
对于各目标进程节点对,按照相应目标进程节点对中第二进程节点与相匹配的各第二邻居节点之间的节点距离,确定第二进程节点在每种节点距离下分别对应的目标邻居节点对;对于每种节点距离下的各目标邻居节点对,从相应节点距离所对应的各目标邻居节点对中选取第二邻居节点;基于在每种节点距离下所选取的第二邻居节点和相匹配的第二进程节点在待检测事件图中的关联关系,生成每个第二进程节点分别对应的目标子图。
在一个实施例中,对于每种节点距离下的各目标邻居节点对,从相应节点距离所对应的各目标邻居节点对中选取第二邻居节点,包括:对于每种节点距离下的各目标邻居节点对,从相应节点距离所对应的每个目标邻居节点对中选取第二邻居节点。
在一个实施例中,对于每种节点距离下的各目标邻居节点对,从相应节点距离所对应的各目标邻居节点对中选取第二邻居节点,包括:对于每种节点距离下的各目标邻居节点对,从相应节点距离所对应的各目标邻居节点对中选取满足关联条件的目标邻居节点对中的第二邻居节点。
在一个实施例中,如图4所示,基于各目标进程节点对和各目标邻居节点对,对待检测事件图进行子图匹配,得到待检测事件图中与查询图相匹配的目标子图,包括:
步骤S402,对于各目标进程节点对,按照相应目标进程节点对中第二进程节点与相匹配的各第二邻居节点之间的节点距离,确定第二进程节点在每种节点距离下分别对应的目标邻居节点对。
具体地,对于各目标进程节点对,确定相应目标进程节点对中第一进程节点在每种节点距离下分别对应的第一邻居节点,以及第二进程节点在每种节点距离下分别对应的第二邻居节点;确定在每种节点距离下的每个第一邻居节点分别与相应节点距离下的每个第二邻居节点之间的相似度;对于每种节点距离,根据相应节点距离下的各第一邻居节点分别与每个第二邻居节点之间的相似度,确定与每个第一邻居节点相匹配的第二邻居节点,以分别得到在每种节点距离下,每个第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对,即可得到目标进程节点对中的第一进程节点在每种节点距离下分别对应的目标邻居节点对,也是该目标进程节点对中的第二进程节点在每种节点距离下分别对应的目标邻居节点对。由此,可得到每个目标进程节点对中第二进程节点在每种节点距离下分别对应的目标邻居节点对。
步骤S404,对于每种节点距离下的各目标邻居节点对,从相应节点距离所对应的各目标邻居节点对中选取满足关联条件的目标邻居节点对中的第二邻居节点。
其中,关联条件是指选取目标邻居节点对中的第二邻居节点的预设条件,具体可以是目标邻居节点对的相似度最大,目标邻居节点对的相似度大于相似度阈值。
具体地,计算机设备可确定各个目标邻居节点对分别对应的相似度。对于同一目标进程节点对所对应的每种节点距离下的各目标邻居节点对,计算机设备从同一节点距离下的各目标邻居节点对中,选取相似度满足关联条件的目标邻居节点对,并从满足关联条件的目标邻居节点对中选取第二邻居节点。按照相同的处理,对于同一目标进程节点,可在每种节点距离下的各目标邻居节点对中选取出相似度满足关联条件的目标邻居节点对,从而选取出第二邻居节点。
对于每个目标进程节点按照相同的处理,可选取出每个目标进程节点在每种节点距离下对应的第二邻居节点。
在一个实施例中,计算机设备可按照节点距离从低到高的顺序,从每种节点距离分别对应的各目标邻居节点对中,选取至少一个目标邻居节点对。
步骤S406,基于在每种节点距离下所选取的第二邻居节点和相匹配的第二进程节点在待检测事件图中的关联关系,生成每个第二进程节点分别对应的目标子图。
具体地,计算机设备选取出同一目标进程节点在每种节点距离下分别对应的第二邻居节点后,可根据该同一目标进程节点中的第二进程节点以及所选取的各个第二邻居节点在该待检测事件图中的关联关系,生成对应的目标子图。该目标子图与该同一目标进程节点中的第二进程节点相对应。
该关联关系可以根据第二进程节点和各个第二邻居节点在该待检测事件图中的边表征,按照待检测事件图中连接该第二进程节点和各个第二邻居节点的边、以及连接各个第二邻居节点的边,将该第二进程节点以及所选取的各个第二邻居节点连接生成目标子图。
对于每个目标进程节点均进行相同的处理,即生成每个目标进程节点中的第二进程节点分别对应的目标子图。
在本实施例中,该目标子图的多个节点包括至少一个进程节点,以及与至少一个进程节点对应的至少一个邻居节点,该子图的边用于描述相应节点之间发生的异常事件。
本实施例中,对于各目标进程节点对,按照相应目标进程节点对中第二进程节点与相匹配的各第二邻居节点之间的节点距离,确定第二进程节点在每种节点距离下分别对应的目标邻居节点对,对于每种节点距离下的各目标邻居节点对,从相应节点距离所对应的各目标邻居节点对中选取满足关联条件的目标邻居节点对中的第二邻居节点,能够在每种节点距离下均选取出与第二进程节点关联最紧密的邻居节点,从而基于在每种节点距离下所选取的第二邻居节点和相匹配的第二进程节点在待检测事件图中的关联关系,可以准确构建出每个第二进程节点分别对应的目标子图。
在一个实施例中,如图5所示,对于各目标进程节点对,按照相应目标进程节点对中第二进程节点与相匹配的各第二邻居节点之间的节点距离,确定第二进程节点在每种节点距离下分别对应的目标邻居节点对,包括步骤S502-步骤S504:
步骤S502,从各目标进程节点对中选取相似度最大的目标进程节点对。
具体地,计算机设备从各目标进程节点对中,选取相似度最大的目标进程节点对,以为选取的目标进程节点对中的第二进程节点生成对应的子图。
在一个实施例中,从各目标进程节点对中选取卡方值最大的目标进程节点对,目标进程节点对的卡方值基于目标进程节点对的相似度确定。
步骤S504,按照所选取的目标进程节点对中第二进程节点与相匹配的第二邻居节点之间的节点距离,确定所选取的目标进程节点对中第二进程节点在每种节点距离下分别对应的目标邻居节点对。
具体地,计算机设备确定所选取的目标进程节点对中的第二进程节点,并确定第二进程节点与相匹配的第二邻居节点之间的节点距离,以确定第二进程节点在每种节点距离下分别对应的第二邻居节点,得到第二进程节点与每个节点距离下的第二邻居节点所形成的目标邻居节点对,即得到第二进程节点在每种节点距离下分别对应的目标邻居节点对。
对于第二进程节点在每种节点距离下的各目标邻居节点对,从相应节点距离所对应的各目标邻居节点对中选取第二邻居节点。
在一个实施例中,对于第二进程节点在每种节点距离下的各目标邻居节点对,从相应节点距离所对应的各目标邻居节点对中,选取相似度最大的目标邻居节点对中的第二邻居节点。
在一个实施例中,对于第二进程节点在每种节点距离下的各目标邻居节点对,从相应节点距离所对应的各目标邻居节点对中,选取卡方值最大的目标邻居节点对中的第二邻居节点。
基于在每种节点距离下所选取的第二邻居节点和相匹配的第二进程节点在待检测事件图中的关联关系,生成每个第二进程节点分别对应的目标子图,包括步骤S506-步骤S508:
步骤S506,基于所选取的第二进程节点和在每种节点距离下所选取的第二邻居节点在待检测事件图中的关联关系,生成所选取的目标进程节点对中的第二进程节点对应的子图。
具体地,选取得到第二进程节点,以及在每种节点距离下所选取的第二邻居节点后,可根据第二进程节点以及所选取的各个第二邻居节点在该待检测事件图中的关联关系,生成第二进程节点所对应的子图。该目标子图与该同一目标进程节点中的第二进程节点相对应。该关联关系可以通过第二进程节点和各个第二邻居节点在该待检测事件图中的边表征,即通过第二进程节点和各个第二邻居节点在该待检测事件图中的边连接,得到一个子图,该子图即为所选取的第二进程节点对应的子图。
在本实施例中,该子图的多个节点包括一个进程节点和至少一个邻居节点,该子图的边用于描述相应节点之间发生的异常事件。
步骤S508,是否存在未被选取的目标进程节点,是则执行步骤S510,否则结束。
步骤S510,从未被选取的各个目标进程节点对中选取相似度最大的目标进程节点对,并返回步骤S504继续执行,直至生成每个目标进程节点对中第二进程节点对应的子图时停止,以得到待检测事件图中与查询图相匹配的目标子图。
具体地,计算机设备从未被选取的各个目标进程节点对中选取相似度最大的目标进程节点对,并返回按照所选取的目标进程节点对中第二进程节点与相匹配的第二邻居节点之间的节点距离,确定所选取的目标进程节点对中第二进程节点在每种节点距离下分别对应的目标邻居节点对的步骤并继续执行,以生成本次选取的第二进程节点所对应的子图,按照相同的处理,直至生成每个目标进程节点对中第二进程节点对应的子图时停止。该子图中的节点集合是待检测事件图的节点集合的子集,该子图中的边集合是待检测事件图的边集合的子集。该子图中的节点集合是查询图的节点集合的子集,该子图中的边集合是查询图的边集合的子集。
计算机设备可将每个子图作为目标子图,也可以从各个子图中筛选出目标子图。例如,从各个子图中筛选出指定数量的子图作为目标子图。
如图6所示,为一个实施例中查询图和待检测事件图的示意图。该查询图包括第一进程节点M1,以及与第一进程节点M1的节点距离为1的第一邻居节点m1、m2和m3,以及与第一进程节点M1的节点距离为2的第一邻居节点m4。
该待检测事件图包括第二进程节点N1、N2,以及与第二进程节点N1的节点距离为1的第二邻居节点n1、n2和n3,以及与第二进程节点N1的节点距离为2的第二邻居节点n4、n5,以及与第二进程节点N1的节点距离为3的第二邻居节点n6。
第一进程节点M1与第二进程节点N1构成目标进程节点对<M1,N1>。
<m1,n1>、<m2,n2>和<m3,n3>作为节点距离为1时的目标邻居节点对。
<m4,n4>作为节点距离为2时的目标邻居节点对。
对于第二进程节点N1,从节点距离为1时的目标邻居节点对<m1,n1>、<m2,n2>和<m3,n3>中选取相似度最大的目标邻居节点对,将所选取的目标邻居节点对中的第二邻居节点与第二进程节点N1通过两者在待检测事件图中的边连接。接着,从节点距离为1下对应的剩余2对目标邻居节点对中选取相似度最大的目标邻居节点对,将所选取的目标邻居节点对中的第二邻居节点与第二进程节点N1通过两者在待检测事件图中的边连接。接着,从节点距离为1下对应的剩余1对目标邻居节点对中选取相似度最大的目标邻居节点对,将所选取的目标邻居节点对中的第二邻居节点与第二进程节点N1通过两者在待检测事件图中的边连接,从而完成节点距离为1的邻居节点的匹配,得到如图7中虚线标注所示的中间图。
或者,选取相似度大于相似度阈值的目标邻居节点对,将选取的目标邻居节点对中的第二邻居节点与第二进程节点N1通过在待检测事件图中的边连接,得到如图7中虚线标注所示的中间图。
与第二进程节点N1的节点距离为2时的目标邻居节点对只有<m4,n4>,则从<m4,n4>中选取第二邻居节点n4,将第二邻居节点n4添加到中间图中,得到新的中间图,如图8虚线标注所示。由于与第二进程节点N1的节点距离为3时没有目标邻居节点对,则图8所示的中间图即为第二进程节点N1对应的目标子图。
本实施例中,从各目标进程节点对中选取相似度最大的目标进程节点对,以将所选取的目标进程节点对中的第二进程节点作为首节点,从而依次为该首节点匹配不同节点距离下的各个邻居节点。按照所选取的目标进程节点对中第二进程节点与相匹配的第二邻居节点之间的节点距离,确定所选取的目标进程节点对中第二进程节点在每种节点距离下分别对应的目标邻居节点对,对于每种节点距离下的各目标邻居节点对,从相应节点距离所对应的各目标邻居节点对中选取满足关联条件的目标邻居节点对中的第二邻居节点,基于所选取的第二进程节点和在每种节点距离下所选取的第二邻居节点在待检测事件图中的关联关系,可以准确地为第二进程节点匹配不同节点距离下的各个邻居节点,从而准确地生成相应的子图。该子图包括多个节点和边,子图的边表示相应节点之间发生的异常事件,从而能够通过子图描述所选取的第二进程节点和相应的邻居节点之间发生的异常事件,有效实现对待检测事件图中的异常事件的检测。
从未被选取的各个目标进程节点对中选取相似度最大的目标进程节点对,并返回按照所选取的目标进程节点对中第二进程节点与相匹配的第二邻居节点之间的节点距离,确定所选取的目标进程节点对中第二进程节点在每种节点距离下分别对应的目标邻居节点对的步骤并继续执行,直至生成每个目标进程节点对中第二进程节点对应的子图时停止,以得到待检测事件图中与查询图相匹配的目标子图,从而能够以第二进程节点为基础,更精细地检测出每个第二进程节点和相应的邻居节点之间发生的异常事件,使得异常事件检测更细化、检测的精度更高,从而有效降低检测的错误率。
在一个实施例中,对于各候选节点对,根据相应候选节点对中各节点的节点表示,从各候选节点对中筛选出满足匹配条件的目标节点对,包括:
对于各候选节点对,确定相应候选节点对中各节点的节点表示之间的相似度,得到每个候选节点对分别对应的相似度;基于各个相似度从各候选节点对中,筛选出满足匹配条件的目标节点对。
具体地,计算机设备根据候选节点对中每个节点对应的节点表示,计算出该各节点的节点表示之间的相似度,将所计算出的相似度作为该候选节点对所对应的相似度。按照相同的处理,可得到每个候选节点对分别对应的相似度。
计算机设备可获取匹配条件,将各候选节点对对应的相似度与匹配条件进行匹配,以从各候选节点对中,筛选出满足匹配条件的候选节点对作为目标节点对。
本实施例中,满足匹配条件具体可以是候选节点对的相似度大于相似度阈值,则计算机设备可将每个候选节点对对应的相似度分别与相似度阈值进行对比,将相似度大于相似度阈值的候选节点对作为目标节点对。
本实施例中,满足匹配条件具体可以是按照相似度选择预设数量的候选节点对。计算机设备可从各个候选节点对中,筛选出预设数量个高相似度的候选节点对作为目标节点对。例如,按照相似度对各个候选节点对进行排序,按照相似度从高到低的顺序选择预设数量个候选节点对作为目标节点对。
本实施例中,相似度具体可以正弦相似度、余弦相似度等,但不限于此,相似度阈值则对应为正弦相似度阈值、余弦相似度阈值。例如,计算机设备可计算出候选节点对<v,q>中各节点的节点表示之间的正弦相似度。
本实施例中,对于各候选节点对,确定相应候选节点对中各节点的节点表示之间的相似度,得到每个候选节点对分别对应的相似度,从而能够将节点的节点表示之间的相似度作为筛选条件,以基于各个相似度从各候选节点对中,准确地筛选出满足匹配条件的目标节点对。
在一个实施例中,基于各目标节点对,对待检测事件图进行子图匹配,得到待检测事件图中与查询图相匹配的目标子图,包括:基于各目标节点对的相似度依次选取目标节点对,根据所选取的目标节点对中属于待检测事件图中的节点,以及所选取的节点在待检测事件图中的关联关系,生成对应的目标子图。
在一个实施例中,该节点表示通过预处理步骤获得,该预处理步骤包括:
从待检测事件图和查询图中采集多个节点和边构建多个三元组,该三元组包括初始化节点表示的节点、待求解节点表示的节点,以及初始化特征表示的边;根据多个三元组所对应的初始化节点表示、待求解节点表示和初始化特征表示,构建目标损失函数;基于目标损失函数进行迭代求解,直至迭代停止时得到每个节点分别对应的节点表示。
具体地,计算机设备可为待检测事件图中的每个节点分别定义初始化节点表示,为每条边分别定义初始化特征表示。计算机设备可为查询图中的每个节点分别定义初始化节点表示,为每条边分别定义初始化特征表示。计算机设备可从待检测事件图和查询图中采集多个节点和边构建多个三元组,三元组由两个节点,以及两个节点之间的关联关系构成,该两个节点之间通过关联关系连接,可通过两个节点之间的边表示关联关系。
在构建三元组时,为所采集的两个节点中任意一个节点定义对应的初始化节点表示,将另一个节点的节点表示设置为待求解,即待求解节点表示,并为两个节点的关联关系定义初始化特征表示,使得三元组由初始化节点表示的节点、待求解节点表示的节点,以及初始化特征表示的边构成。
在一个实施例中,计算机设备可将待检测事件图和查询图进行连接,生成样本图,从样本图中采集多个节点和边构成多个三元组。所构建的多个三元组可分为正样本和负样本,作为正样本的三元组中的两个节点相邻,作为负样本的三元组中的两个节点不相邻。即计算机设备可从样本图中采集相邻的两个节点,获取相邻的两个节点中任意一个节点的初始化节点表示,将另一节点的节点表示设置为待求解,从而将相邻的两个节点和两个节点之间的关联关系构成正样本的三元组。计算机设备可从样本图中采集不相邻的两个节点,获取不相邻的两个节点任意一个节点的初始化节点表示,将另一节点的节点表示设置为待求解,将不相邻的两个节点和两个节点之间的关联关系构成负样本的三元组。
在一个实施例中,计算机设备为待检测事件图和查询图连接生成的样本图中的每个节点分别定义了初始化节点表示,并为样本图中的边分别定义了初始化特征表示。
计算机设备可根据每个三元组所对应的初始化节点表示、待求解节点表示和初始化特征表示,构建目标损失函数。计算机设备基于目标损失函数对各节点的节点表示和边的特征表示进行迭代求解,直至迭代停止时得到每个节点分别对应的节点表示。进一步地,计算机设备基于目标损失函数对各节点的节点表示和边的特征表示进行迭代求解,并在每次迭代求解后更新每个节点对应的节点表示和每个特征表示,在更新节点表示和特征表示后进行下一次迭代,直至迭代停止时得到每个节点分别对应的节点表示,以及每条边分别对应的特征表示。
在一个实施例中,计算机设备可对目标损失函数进行求导,得到待求解节点表示的节点对应的梯度,并通过梯度下降的方式对当前的节点表示和当前的特征表示进行更新。在更新后,继续通过目标损失函数进行下一次迭代求解,直至满足迭代停止条件时停止,得到待求解节点表示的节点所对应的节点表示,以及其余各个节点分别对应的节点表示和特征表示。
在微积分中,对多元函数的参数求偏导数,把求解得到的各个参数的偏导数以向量的形式写出来,就是梯度向量,可简称梯度。
梯度就是目标损失函数变化最快的地方。沿着梯度向量的方向,可以求解出目标损失函数的最大值。反之,沿着梯度向量相反的方向,梯度减少最快,可以求解出目标损失函数的最小值,则通过梯度下降的方式,可以使得目标损失函数的损失值最小化。
在本实施例中,梯度下降的方式可以是批量梯度下降法(Batch GradientDescent,简称BGD)、随机梯度下降随机梯度下降法(Stochastic Gradient Descent,简称SGD)和小批量梯度下降法(Mini-batch Gradient Descent,简称MBGD)中的任一种。
批量梯度下降法,是指使用所有的样本来进行梯度求解和更新,即每次迭代均使用所有的正样本和所有的负样本参与。使用批量梯度下降法进行每次的迭代求解,能够通过大批量的样本决定梯度的方向,使得目标损失函数能够较快地收敛到局部最优解,求解得到的结果更准确可靠,即由大批量的样本迭代求解所确定的节点表示和特征表示更准确。
随机梯度下降法和批量梯度下降法原理类似,但随机梯度下降法在求解梯度时仅选取一个样本参与,即每次迭代仅选择任意一个样本参与。随机梯度下降法由于每次仅采用一个样本进行迭代求解,使得每次迭代的计算量小,则迭代速度很快,能够更快地确定出每个节点分别对应的节点表示和每条边对应的特征表示。
小批量梯度下降法是批量梯度下降法和随机梯度下降法的折衷,是从所有样本中选择预设数量的样本参与每次的迭代。每次选择部分样本参与迭代求解,能够在保证结果准确性的同时提高处理效率。
本实施例中,迭代停止条件可以是最小化目标损失函数,即求解目标损失函数的最小值。迭代停止条件还可以是迭代次数达到预设次数。通过梯度下降方式求解目标损失函数的最小值,从而能够确定在损失值最小时所对应的各个节点的节点表示和各条边的特征表示,有效消除对各节点的节点表示的定义不恰当对子图匹配所造成的影响。并且,能够将待检测事件图和查询图中节点、拓扑结构转化为可计算、可复用的表示,并通过节点表示充分的利用异构图中蕴含的信息,从而有效提升子图匹配的准确度。
可以理解的是,在多次迭代求解过程中,每次迭代会更新节点表示和特征表示,则下一迭代中所使用的初始化节点表示即为上一次迭代更新所得到的节点表示,下一迭代中所使用的初始化特征表示即为上一次迭代更新所得到的特征表示。
本实施例中,从待检测事件图和查询图中采集多个节点和边构建多个三元组,该三元组包括初始化节点表示的节点、待求解节点表示的节点,以及初始化特征表示的边。通过三元组的构建能够对一个节点和对应的直接相邻节点之间的关联关系进行建,以通过三元组中某一节点和关联关系来预测另一节点的节点表示。根据多个三元组所对应的初始化节点表示、待求解节点表示和初始化特征表示,构建目标损失函数,从而能够将待求解节点表示作为待求解的参数,使得基于目标损失函数对该待求解的参数一步步进行迭代求解,并基于每次迭代求解的结果更新每个节点的节点表示和特征表示,直至迭代停止时准确得到每个节点最终的节点表示。
并且,本实施例中通过三元组中某一节点的节点表示和关联关系对应的特征表示,来预测另一节点的节点表示,是通过无监督图预训练技术对节点的节点表示进行预测,在预测过程中结合了图结构的更加丰富的拓扑结构信息,使得迭代更准确。同时,可以有效为所有不具备标签的图结构的节点预测节点表示,适用于所有图结构的节点表示的预测。
在一个实施例中,预处理步骤可通过生成模型执行,计算机设备将从待检测事件图和查询图输入待训练的生成模型,待训练的生成模型从待检测事件图和查询图中采集多个节点和边构建多个三元组,该三元组包括初始化节点表示的节点、待求解节点表示的节点,以及初始化特征表示的边;根据多个三元组所对应的初始化节点表示、待求解节点表示和初始化特征表示,构建目标损失函数;基于目标损失函数对待训练的生成模型进行训练,并在训练过程中调整生成模型的参数,直至满足迭代停止条件时停止,得到训练完成的生成模型,并得到训练完成的生成模型输出的各节点分别对应的节点表示。
本实施例中,迭代停止条件可以是最小化目标损失函数,可以通过梯度下降法一步步进行迭代求解,得到在目标损失函数最小化时生成模型所对应的模型参数,从而得到生成模型输出的查询图中各节点分别对应的节点表示,以及待检测事件图中各节点分别对应的节点表示。并且,本实施例中通过三元组中某一节点的节点表示和关联关系对应的特征表示,来预测另一节点的节点表示,能够使用无监督图表示学习(UnsupervisedRepresentation Learning)的方式对节点的节点表示进行预测,避免了标签不准确所导致的训练误差较大的问题。并且,还可以有效为所有不具备标签的图结构的节点预测节点表示,适用于所有图结构的节点表示的预测。无监督图表示学习是指将原始数据通过无监督学习方法(Unsupervised Learning),转换成为能够被机器学习直接使用的形式的过程。无监督学习是机器学习的一类,是根据没有事先标定标签的训练样本进行模型参数的更新。
在一个实施例中,如图9所示,根据多个三元组所对应的初始化节点表示、待求解节点表示和初始化特征表示,构建目标损失函数,包括:
步骤S902,根据多个三元组所对应的初始化节点表示、待求解节点表示和初始化特征表示,构建第一损失函数。
具体地,计算机设备可确定单个三元组对应的初始化节点表示、待求解节点表示和初始化特征表示的乘积。按照相同的处理,计算机设备可确定每个三元组分别对应的乘积,根据各三元组分别对应的乘积构建第一损失函数。
进一步地,计算机设备可确定单个三元组对应的乘积与预设参数的第一比值,并确定该第一比值的指数,按照相同的处理,可得到每个三元组分别对应的第一比值的指数。计算机设备将各个三元组对应的第一比值的指数求和,得到指数之和,根据第一比值的指数和指数之和构建第一损失函数。进一步地,计算机设备确定第一比值的指数与指数之和之间的比值,得到第二比值,将计算第二比值的对数的相反数的函数,作为第一损失函数。
例如,计算机设备所构建的第一损失函数
Figure BDA0003643004980000381
如下所示:
Figure BDA0003643004980000382
其中,u和v为同一个三元组中的节点,R为节点u和节点v之间的关联关系。
Figure BDA0003643004980000383
为节点u对应的节点表示,节点表示即节点对应的表示向量;WR表示三元组中两个节点之间的关联关系R的特征表示,该特征表示可通过表示矩阵表征;hv为节点v对应的节点表示,hi为第i个节点v对应的节点表示;τ表示参数,i表示节点v的数量。
在一个实施例中,在第一损失函数的构建过程中,第一损失函数的分子对应的三元组中一个节点的节点表示被设置为待求解节点表示,分母中除了分子对应的三元组以外,分母中其余的三元组中每个节点的节点表示均使用初始化节点表示。
步骤S904,确定待检测事件图和查询图中每个进程节点分别对应的初始化上下文表示。
具体地,计算机设备可确定待检测事件图中的每个进程节点,并确定每个进程节点在待检测事件图中对应的上下文。计算机设备可预先定义每个进程节点的上下文所对应的初始化上下文表示。
进程节点的上下文由与该进程节点相邻的上一邻居节点和下一邻居节点、该进程节点与上一邻居节点的边、以及该进程节点与下一邻居节点的边构成。计算机设备可根据上一邻居节点和下一邻居节点分别对应的初始化节点表示、该进程节点与上一邻居节点的边对应的初始化特征表示、以及该进程节点与下一邻居节点的边对应的初始化特征表示,定义该进程节点的上下文对应的初始化上下文表示。
进一步地,计算机设备还可以预先定义每个进程节点分别对应的初始化节点表示。
步骤S906,基于每个进程节点对应的待求解节点表示和对应的初始化上下文表示,构建第二损失函数。
具体地,计算机设备可根据每个进程节点对应的待求解节点表示和每个进程节点的上下文对应的初始化上下文表示,构建第二目标损失函数。上下文(context)用于描述进程节点的各种性质信息。进一步地,计算机设备还可以预先定义每个进程节点分别对应的初始化节点表示,可根据每次迭代的需求将部分进程节点所对应的节点表示设置为待求解,以作为迭代中的待求解参数。计算机设备根据部分待求解节点表示、部分初始化节点表示和各初始化上下文表示,构建第二目标损失函数。
可以理解的是,在构建第一损失函数的过程中所使用的样本可称为第一样本,在构建第二损失函数的过程中所使用的样本可称为第二样本。
计算机设备可将进程节点和该进程节点对应的上下文作为一个第二样本。基于每个进程节点和对应的上下文,可构建得到多个第二样本。对于每个第二样本,第二样本中的进程节点所对应的节点表示可以是初始化节点表示,也可以在不同的迭代中调整为待求解节点表示,以作为迭代中的待求解参数。例如,计算机设备在一次迭代求解时只使用一个第二样本,则被使用的第二样本中的进程节点所对应的节点表示可设置为待求解节点表示,其余的第二样本对应的节点表示使用初始化节点表示。计算机设备在一次迭代求解时使用多个第二样本,则被使用的多个第二样本中的进程节点所对应的节点表示设置为待求解节点表示,其余的第二样本对应的节点表示使用初始化节点表示。
在一个实施例,计算机设备确定单个第二样本中进程节点的待求解节点表示和该进程节点对应的初始化上下文表示的乘积,按照相同的处理,可计算每个第二样本分别对应的乘积。基于每个第二样本分别对应的乘积构建第二损失函数。
进一步地,计算机设备可确定单个第二样本对应的乘积与预设参数的第三比值,并确定该第三比值的指数。按照相同的处理,可得到每个第二样本分别对应的第三比值的指数。计算机设备将各个第二样本对应的第三比值的指数求和,得到指数之和,根据第三比值的指数和指数之和构建第二损失函数。进一步地,计算机设备确定第三比值的指数与指数之和之间的比值,得到第四比值,将表征第四比值的对数的相反数的函数,作为第二损失函数。
例如,一个进程节点u为例进行描述,在待检测事件图中,一个进程节点的直接邻居节点为该进程节点直接操纵的资源。计算机设备可确定该进程节点的直接邻居节点v,将进程节点u的直接邻居节点集合记为:
PCu={vi|(u,vi)∈A}
计算机设备所构建的第二损失函数
Figure BDA0003643004980000401
如下所示:
Figure BDA0003643004980000402
Figure BDA0003643004980000403
Figure BDA0003643004980000404
其中,u为进程节点,cu为进程节点对应的上下文表示,vi表示进程节点u的相邻的邻居节点,即直接邻居节点;
Figure BDA0003643004980000405
为第i个与进程节点u相邻的邻居节点v对应的节点表示。ci为第i个进程节点对应的上下文表示。通过
Figure BDA0003643004980000406
对上下文中涉及的邻居节点进行高层特征提取,再通过
Figure BDA0003643004980000407
高层特征进行聚合,得到对应的上下文表示cu
在一个实施例中,在第二损失函数的构建过程中,第二损失函数的分子对应的第二样本中进程节点的节点表示被设置为待求解节点表示,分母中除了分子对应的第二样本以外,分母中其余的第二样本的节点表示使用初始化节点表示。
可以理解的是,在多次迭代求解过程中,每次迭代会更新节点表示和上下文表示,则下一迭代中所使用的初始化节点表示即为上一次迭代更新所得到的节点表示,下一迭代中所使用的初始化上下文节点表示即为上一次迭代更新所得到的上下文表示。
步骤S908,根据第一损失函数和第二损失函数构建目标损失函数。
具体地,计算机设备可将第一损失函数和第二损失函数求和,得到目标损失函数。
在一个实施例中,计算机设备可获取第一损失函数和第二损失函数分别对应的权重,将第一损失函数、第二损失函数分别与各自的权重求乘积之后进行求和,得到目标损失函数。
计算机设备基于目标损失函数对各节点的节点表示、边的特征表示、进程节点的节点表示和进程节点的上下文表示进行迭代求解,直至迭代停止时得到每个节点分别对应的节点表示。进一步地,计算机设备基于目标损失函数对各节点的节点表示、边的特征表示、进程节点的节点表示和进程节点的上下文表示进行迭代求解,并在每次迭代求解后更新每个节点对应的节点表示、每个特征表示、每个进程节点的节点表示和每个上下文表示,在更新后进行下一次迭代,直至迭代停止时得到每个节点分别对应的节点表示、每条边分别对应的特征表示,每个进程节点的节点表示和每个进程节点对应的上下文表示。
可以理解的是,节点包括进程节点,当一个节点为进程节点时,该节点的节点表示即为进程节点的节点表示。
本实施例中,三元组由两个节点和这两个节点间的关联关系构成,通过三元组构建第一损失函数,能够实现节点层面自监督任务,即实现单个节点的节点表示的预测。图结构中的进程节点作为事件主体,很大程度上可以用来推测与之相关的邻居节点的性质,则通过进程节点和进程节点的上下文表示构建第二损失函数,使用了更丰富的拓扑结构信息,能够实现区域层面自监督任务,即实现邻域匹配预测。通过节点层面自监督任务和邻域匹配预测任务来进行预训练,能够从节点层面和节点的邻域层面对节点的表示进行迭代求解,使得迭代求解的结果不仅考虑到节点本身的特性,还考虑到节点的邻域的特性,使得所确定的节点表示更准确。并且,节点层面自监督任务和区域层面自监督任务都属于无监督学习任务,能够在不使用标签的情况下进行节点表示的预测,适用范围更广,处理效率更高。
在一个实施例中,提供了一种异常事件检测方法,应用于计算机设备,包括:
获取待检测事件图和查询图;待检测事件图和查询图均包括多个节点和边,查询图的多个节点包括多个第一进程节点和每个第一进程节点的第一邻居节点,待检测事件图的边表征相应节点间发生的事件;待检测事件图的多个节点包括多个第二进程节点和每个第二进程节点的第二邻居节点,查询图的边表征相应节点间发生的异常事件。
从待检测事件图和查询图中采集多个节点和边构建多个三元组,三元组包括初始化节点表示的节点、待求解节点表示的节点,以及初始化特征表示的边;根据多个三元组所对应的初始化节点表示、待求解节点表示和初始化特征表示,构建第一损失函数。
确定待检测事件图和查询图中每个进程节点分别对应的初始化上下文表示;基于每个进程节点对应的待求解节点表示和对应的初始化上下文表示,构建第二损失函数。
根据第一损失函数和第二损失函数构建目标损失函数;基于目标损失函数进行迭代求解,直至迭代停止时得到待检测事件图中每个节点分别对应的节点表示,以及查询图中每个节点分别对应的节点表示。
从查询图中抽取中各第一进程节点,并从待检测事件图中抽取出各个第二进程节点;将每个第一进程节点分别与各第二进程节点进行匹配,得到每个第一进程节点分别与每个第二进程节点形成的候选进程节点对。
对于各候选进程节点对,确定相应候选进程节点对中第一进程节点的节点表示和第二进程节点的节点表示之间的相似度,得到每个候选进程节点对分别对应的相似度。
对于每个第一进程节点,基于相应第一进程节点所属的各个候选进程节点对分别对应的相似度,从相应第一进程节点所属的各个候选进程节点对中,筛选出满足匹配条件的目标进程节点对。
对于各目标进程节点对,确定相应目标进程节点对中第一进程节点在每种节点距离下分别对应的第一邻居节点,以及第二进程节点在每种节点距离下分别对应的第二邻居节点;
确定在每种节点距离下的每个第一邻居节点分别与相应节点距离下的每个第二邻居节点之间的相似度;
对于每种节点距离,根据相应节点距离下的各第一邻居节点分别与每个第二邻居节点之间的相似度,确定与每个第一邻居节点相匹配的第二邻居节点,以分别得到在每种节点距离下,每个第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对。
从各目标进程节点对中选取相似度最大的目标进程节点对,并确定所选取的目标进程节点对在每种节点距离下分别对应的目标邻居节点对;
对于每种节点距离下的各目标邻居节点对,从相应节点距离所对应的各目标邻居节点对中选取第二邻居节点;基于所选取的第二进程节点和在每种节点距离下所选取的第二邻居节点在待检测事件图中的关联关系,生成所选取的目标进程节点对中的第二进程节点对应的子图。
从未被选取的各个目标进程节点对中选取相似度最大的目标进程节点对,并返回确定所选取的目标进程节点对在每种节点距离下分别对应的目标邻居节点对的步骤并继续执行,直至生成每个目标进程节点对中第二进程节点对应的子图时停止,以得到待检测事件图中与查询图相匹配的目标子图。
本实施例中,本实施例中,三元组由两个节点和这两个节点间的关联关系构成,通过三元组构建第一损失函数,能够实现节点层面自监督任务,即实现单个节点的节点表示的预测。图结构中的进程节点作为事件主体,很大程度上可以用来推测与之相关的邻居节点的性质,则通过进程节点和进程节点的上下文表示构建第二损失函数,使用了更丰富的拓扑结构信息,能够实现区域层面自监督任务,即实现邻域匹配预测。通过节点层面自监督任务和邻域匹配预测任务来进行预训练,能够从节点层面和节点的邻域层面对节点的表示进行迭代求解,使得迭代求解的结果不仅考虑到节点本身的特性,还考虑到节点的邻域的特性,使得所确定的节点表示更准确。并且,节点层面自监督任务和区域层面自监督任务都属于无监督学习任务,能够在不使用标签的情况下进行节点表示的预测,适用范围更广,处理效率更高。
将查询图中的第一进程节点和待检测事件图中的第二进程节点进行匹配,能够通过初步匹配确定待检测事件图中可能存在与第一进程节点相匹配的进程节点粗略位置。先对查询图的进程节点和待检测事件图的进程节点进行初步匹配,并基于候选进程节点对中各进程节点的节点表示之间的相似度,对初步匹配所生成的多个各候选进程节点对进行精细匹配,以筛选出满足匹配条件的目标进程节点对。
对目标进程节点对中第一进程节点的第一邻居节点与第二进程节点的第二邻居节点进行匹配处理,以得到每个第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对,使得在完成对目标进程节点对的筛选后再进行邻居节点的匹配,可以减少匹配的数据量,提高处理效率。目标进程节点对由匹配程度较高的第一进程节点和第二进程节点构成,目标邻居节点对由匹配程度较高的第一邻居节点和第二邻居节点构成。
从各目标进程节点对中选取相似度最大的目标进程节点对,以将所选取的目标进程节点对中的第二进程节点作为首节点,以为该首节点依次匹配不同节点距离下的各个邻居节点。
对于每种节点距离下的各目标邻居节点对,从相应节点距离所对应的各目标邻居节点对中选取满足关联条件的目标邻居节点对中的第二邻居节点,能够在每种节点距离下均选取出与第二进程节点关联最紧密的邻居节点,从而基于在每种节点距离下所选取的第二邻居节点和相匹配的第二进程节点在待检测事件图中的关联关系,可以准确地为第二进程节点匹配不同节点距离下的各个邻居节点,从而准确地生成相应的子图。该子图包括多个节点和边,子图的边表示相应节点之间发生的异常事件,从而能够通过子图描述所选取的第二进程节点和相应的邻居节点之间发生的异常事件,有效实现对待检测事件图中的异常事件的检测。
从未被选取的各个目标进程节点对中选取相似度最大的目标进程节点对,并返回确定所选取的目标进程节点对在每种节点距离下分别对应的目标邻居节点对的步骤并继续执行,直至生成每个目标进程节点对中第二进程节点对应的子图时停止,以得到待检测事件图中与查询图相匹配的目标子图,从而能够以第二进程节点为基础,更精细地检测出每个第二进程节点和相应的邻居节点之间发生的异常事件,使得异常事件检测更细化、检测的精度更高,从而有效降低检测的错误率。
如图10所示,为一个实施例中异常事件检测方法的应用场景,该应用场景具体为通过异常事件检测方法检测系统中存在的高级持续性威胁(APT)。高级持续性威胁是指隐匿而持久的电脑入侵过程,通常是精心策划,针对特定的目标,并在长时间内保持高隐蔽性,是复杂程度较高的入侵。
一、系统事件图的相关信息的缓存和索引
计算机设备从系统日志中抽象出用于描述系统事件的时序和系统事件之间关系的有向异构图,即系统事件图。从数字威胁报告中抽象出用于描述涉及APT的系统事件的时序和彼此关系的有向异构图,即查询图。
对于查询图和系统事件图,可分别抽取并暂存如下数据,以提高匹配的效率:
抽取查询图和系统事件图中的节点,以及节点对应的实体标签列表;实体标签列表是指节点的类型标签,包括文件类型、进程类型、管程类型等。
对于查询图中的进程节点q,将与每个进程节点的节点距离为1的各个邻居节点聚合到邻居集合
Figure BDA0003643004980000451
中,将与每个进程节点的节点距离为2的邻居节点聚合到邻居集合N2(q)中,以得到与每个进程节点的节点距离为m的邻居集合
Figure BDA0003643004980000452
查询图中的进程节点称为第一进程节点,邻居集合可以是邻居列表。
对于系统事件图中的进程节点v,将与每个进程节点的节点距离为1的邻居节点聚合到邻居集合
Figure BDA0003643004980000453
中,将与每个进程节点的节点距离为2的邻居节点聚合到邻居集合
Figure BDA0003643004980000454
中,以得到与每个进程节点的节点距离为m的邻居集合
Figure BDA0003643004980000455
查询图中的进程节点称为第二进程节点。
确定每个邻居节点的标签列表,邻居节点的标签列表包括文件类型、网络地址类型、管程类型等。
二、实体特征预训练
本实施例中的异构图自监督预训练基于对比学习(contrastive learning)思想,目的是借助大规模的系统事件图,无监督的学习得到生成模型,该生成模型可以是一个图神经网络GNN模型。该生成模型可直接用于产生系统事件图和查询图中各节点对应的节点表示,或者用于对后续生成的多个子图进行排序调整。
本实施例中的定义了用于预训练的无监督任务,包括节点层面自监督任务和区域(region)层面自监督任务。并且,使用对比学习的方式,将正样本和负样本在特征空间进行对比,以进行表示学习。
(1)节点层面自监督任务——节点表示预测:可将系统事件图和查询图连接形成异构图G,该异构图G作为样本图。
在异构图G中,一个被观测到的<u,R,v>三元组表达了节点u∈V和v∈V,通过一个特定的关联关系R被连接起来。异构图G对应的节点邻接矩阵被表示为A,节点层面自监督任务就是根据三元组中某一节点u(或v)和关联关系R来预测另一节点的节点表示,即:<u,R,?>或<?,R,v>。<u,R,?>表示节点u的节点表示已知、关联关系R对应的特征表示已知,以及节点v的节点表示待求解,即?是指待求解节点表示。<?,R,v>表示关联关系R对应的特征表示已知、节点v的节点表示已知,以及节点u的节点表示待求解,即?是指待求解节点表示。
可将异构图G中实际观测到的三元组作为正样本,负样本则从如下集合中进行采样:
Figure BDA0003643004980000461
其中,v-为一个在异构图G中与节点u不临接的节点,
Figure BDA0003643004980000465
表示v与v-的类型标签相同。sim(v,v-)<δ限定了v与v-的节点距离,以保证负样本与正样本间的区分难度。
为节点层面自监督任务构建如下的第一损失函数
Figure BDA0003643004980000463
Figure BDA0003643004980000464
该预训练任务仅对一个节点和其直接相邻节点的关联关系进行了建模。
(2)区域层面自监督任务——进程节点的邻域匹配预测:相对一般的异构图,系统事件图的显著的特性是进程节点作为事件主体,很大程度上可以用来推测与之相关的资源节点(文件、网络地址、管程等)的性质。因而可通过邻域匹配预测任务来进行预训练。
这里以一个进程节点u为例进行描述,在系统事件图中,一个进程节点的直接邻居节点就是该进程节点直接操纵的资源,则将程节点u的直接邻居节点集合记为:
PCu={vi|(u,vi)∈A}
这样,
Figure BDA0003643004980000471
及其相关的拓扑结构和标签就构成了进程节点u的上下文(context)。上下文描述了进程节点u的各种性质信息。该区域层面自监督任务就是根据上下文来预测上下文对应的进程节点的节点表示。与节点层面自监督任务类似,也需要构造正样本、负样本来进行对比学习。从异构图G中实际观测到的进程节点和进程节点对应的上下文作为正样本,负样本为:
Figure BDA0003643004980000472
这里u-为一个在异构图G中与u类型标签相同的任意进程节点,
Figure BDA0003643004980000479
表示xu
Figure BDA00036430049800004710
的类型标签相同。对于区域层面自监督任务,构建如下的第二损失函数
Figure BDA0003643004980000473
Figure BDA0003643004980000474
其中cu是进程节点u的上下文表示。cu的计算为:
Figure BDA0003643004980000475
对上下文中涉及节点进行高层特征提取;
Figure BDA0003643004980000476
对高层特征进行聚合。
将第一损失函数、第二损失函数与各自的权重进行加权求和,得到目标损失函数。基于目标损失函数进行多次迭代求解,在迭代求解停止时得到训练好的生成模型,并在迭代求解停止时得到系统事件图中每个节点分别对应的节点表示,以及查询图中每个节点分别对应的节点表示。
三、初步匹配:在计算机系统场景中,进程通常是系统事件的主体。而实体的类型标签(例如文件、进程、管程等)是描述一个实体最重要的信息之一。因而可将查询图中的各进程节点按照类型标签在系统事件图中进行初步匹配,以获取查询图中进程节点在系统事件图中的匹配候选集合VP:
Figure BDA0003643004980000477
这里vi,qi分别表示系统事件图和查询图中的进程节点。
Figure BDA0003643004980000478
表示vi,qi的类型标签相同。
在初步匹配过程中,基于查询图中的进程节点可查找到系统事件图中可能存在匹配的粗略位置。接着,需要对匹配候选集合VP中的初步匹配结果进行进一步的排序,以确定最可能匹配的节点对。传统的子图匹配方法一般根据节点的邻居节点对应的标签信息进行相似度比较,忽略了更加丰富的拓扑结构信息,且中间结果难以复用。本实施例中通过生成模型获得每个节点的对应的节点表示,通过节点表示计算节点间的相似度,即进入精细匹配部分。
四、进程节点精细匹配(敏感性分析)
通过生成模型,可以对系统事件图和查询图中的节点进行特征提取,得到每个进程节点的节点表示,以及每个进程节点的邻居节点的节点表示。
进程节点之间的相似度评分:对于匹配候选集合VP中的候选进程节点对<v∈G,q∈Q>,可计算候选进程节点对中的进程节点所对应的节点表示之间的相似度评分sim(v,q),以筛选出相似度评分高的多个进程节点对,得到高质量的节点匹配子集VP*,节点匹配子集
Figure BDA00036430049800004819
接着,可以将VP*中匹配到的系统事件图中的进程节点拓展到进程节点的邻域,即拓展到进程节点的邻居节点,以完成查询图与系统事件图中的子图匹配。
五、邻域匹配
进程节点v、q的邻居节点之间的相似度评分,即计算邻居集合
Figure BDA0003643004980000481
和邻居集合
Figure BDA0003643004980000482
内各邻居节点对的相似度评分sim(v'i,q'i)。进程节点v和进程节点q所构成的进程节点对属于节点匹配子集VP*中,
Figure BDA0003643004980000483
表示与进程节点v距离为1的邻居节点的集合,
Figure BDA0003643004980000484
表示与进程节点q距离为1的邻居节点的集合。
Figure BDA0003643004980000485
当与进程节点v(或q)的节点距离为1的邻居节点之间相似度完成比较后,将
Figure BDA0003643004980000486
中与
Figure BDA0003643004980000487
中匹配程度最好的节点成对记录在
Figure BDA0003643004980000488
中,并将已涉及的邻居节点标为已匹配。例如,计算邻居节点
Figure BDA0003643004980000489
和邻居节点
Figure BDA00036430049800004810
之间的相似度、邻居节点
Figure BDA00036430049800004811
和邻居节点
Figure BDA00036430049800004812
之间的相似度、邻居节点
Figure BDA00036430049800004813
和邻居节点
Figure BDA00036430049800004814
之间的相似度,以从邻居节点
Figure BDA00036430049800004815
中筛选出与邻居节点
Figure BDA00036430049800004816
匹配程度最好的邻居节点,并将筛选出的邻居节点和邻居节点
Figure BDA00036430049800004817
作为目标邻居节点对写入
Figure BDA00036430049800004818
接着,将相似度计算扩展到与进程节点v(或q)的节点距离为2、3....的邻居节点,直到查询图中所有节点都被标注为已匹配为止,即将
Figure BDA0003643004980000491
中与
Figure BDA0003643004980000492
中匹配程度最好的节点成对记录在
Figure BDA0003643004980000493
中....直至得到
Figure BDA0003643004980000494
六、生成精细匹配,即子图匹配
将VP中所有的候选进程节点对及其χ2(即相似度),以<v,q,χ2<v,q>>)的形式存入大根堆max-heap-1。将
Figure BDA0003643004980000495
中涉及的所有节点对及其χ2值放入大根堆max-heap-(m+1)。随后,重复以下过程,直到完成了K个子图匹配:
先从VP中选择相似度最大的进程节点对<v,q>,然后选择该似度最大的进程节点对<v,q>中进程节点v对应的多个邻居节点列表
Figure BDA0003643004980000496
从节点距离为1的邻居集合开始,从
Figure BDA0003643004980000497
中选择相似度最大的邻居节点与进程节点v连接,然后从
Figure BDA0003643004980000498
中选择相似度最大的邻居节点进行连接....从
Figure BDA0003643004980000499
中选择选择相似度最大的邻居节点连接,直至max-heap-(m+1)为空,得到该进程节点v对应的子图。该进程节点对应子图的生成完成,则进入下一个子图的生成,即选择此时VP中选择相似度最大的<v,q>....按照上述处理继续执行,直至查询图中所有节点均在子图中时停止,即直至生成每个进程节点分别对应的子图后停止,得到每个进程节点分别对应的子图。
本实施例中,在无监督的条件下,利用图预训练方法,将系统行为图中节点的标签、拓扑结构转化为可计算、可复用的表示,从而避免在匹配过程中,重复使用高复杂度的图算法,提升匹配方法的实时性。同时预训练方法可以充分的利用异构图中蕴含的信息,以提升匹配准确度。对于查询到的子图,还通过无监督的节点匹配方法建立了子图节点与查询图节点之间的对应关系。
本实施例中提供的异常事件检测方法,具有较好的实时性、准确性、并可方便的融合额外信息和领域知识。该方法亦可广泛应用于金融风控、用户滥用(spamming)行为检测等领域,具有通用性和灵活性。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的异常事件检测方法的异常事件检测装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个异常事件检测装置实施例中的具体限定可以参见上文中对于异常事件检测方法的限定,在此不再赘述。
在一个实施例中,如图11所示,提供了一种异常事件检测装置1100,包括:获取模块1102、节点匹配模块1104、提取模块1106、筛选模块1108和子图匹配模块1110,其中:
获取模块1102,用于获取待检测事件图和查询图;待检测事件图和查询图均包括多个节点和边,待检测事件图的边表征相应节点间发生的事件,查询图的边表征相应节点间发生的异常事件。
节点匹配模块1104,用于将查询图的节点和待检测事件图的节点进行匹配处理,得到多个候选节点对。
提取模块1106,用于对多个候选节点对中的每个节点分别进行特征提取,得到每个节点对应的节点表示。
筛选模块1108,用于对于各候选节点对,根据相应候选节点对中各节点的节点表示,从各候选节点对中筛选出满足匹配条件的目标节点对。
子图匹配模块1110,用于基于各目标节点对,对待检测事件图进行子图匹配,得到待检测事件图中与查询图相匹配的目标子图;该目标子图用于描述待检测事件图中存在的异常事件。
本实施例中,查询图包括多个节点和边,该查询图的边表征相应节点间发生的异常事件,则查询图可以用于描述节点间发生的异常事件。待检测事件图包括多个节点和边,待检测事件图的边表征相应节点间发生的事件,则将查询图和待检测事件图进行匹配,通过检测待检测事件图中是否存在与查询图相匹配的子图,可以准确判断出待检测事件图中是否存在异常事件。
查询图和待检测事件图的匹配可细化为节点匹配,将查询图的节点和待检测事件图的节点进行匹配处理,以对这两个图中的节点进行初步匹配,能够粗略确定匹配的候选节点对。对多个候选节点对中的每个节点分别进行特征提取,得到每个节点对应的节点表示,节点表示包含了节点的关键信息以及节点在图中的相关拓扑结构信息。对于各候选节点对,根据相应候选节点对中各节点的节点表示从各候选节点对中筛选出满足匹配条件的目标节点对,使得将节点表示作为筛选目标节点对的条件,能够充分的利用图中蕴含的信息对节点进一步进行精细匹配,以提升筛选的准确度。基于各目标节点对对待检测事件图进行子图匹配,以确定待检测事件图中与查询图相匹配的目标子图,从而能够通过目标子图准确描述待检测事件图中存在的异常事件,以及存在异常事件的节点。
在一个实施例中,查询图的多个节点包括多个第一进程节点,待检测事件图的多个节点包括多个第二进程节点,候选节点对包括将第一进程节点和第二进程节点进行匹配处理所得到的候选进程节点对。
本实施例中,进程节点作为事件的主体,将查询图中的第一进程节点和待检测事件图中的第二进程节点进行匹配,能够通过初步匹配确定待检测事件图中可能存在与第一进程节点相匹配的进程节点粗略位置,便于后续进一步进行进程节点的精细匹配。对于各候进程选节点对,根据相应候选进程节点对中各进程节点的节点表示从各候选进程节点对中筛选出满足匹配条件的目标进程节点对,使得将节点表示作为筛选目标进程节点对的条件,能够充分的利用图中蕴含的信息对进程节点进一步进行精细匹配,以提升筛选的准确度。基于各目标进程节点对对待检测事件图进行子图匹配,以确定待检测事件图中与查询图相匹配的目标子图,从而能够通过目标子图准确描述待检测事件图中存在的异常事件,以及存在异常事件的节点。
在一个实施例中,查询图的多个节点包括每个第一进程节点的第一邻居节点,待检测事件图的多个节点包括每个第二进程节点的第二邻居节点,目标节点对包括目标进程节点对和目标邻居节点对;筛选模块1108,还用于对于各目标进程节点对,将相应目标进程节点对中第一进程节点的第一邻居节点与第二进程节点的第二邻居节点进行匹配处理,得到每个第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对;子图匹配模块,还用于基于各目标进程节点对和各目标邻居节点对,对待检测事件图进行子图匹配,得到待检测事件图中与查询图相匹配的目标子图。
本实施例中,该查询图的多个节点包括第一进程节点和每个第一进程节点的第一邻居节点,待检测事件图的多个节点包括第二进程节点和每个第二进程节点的第二邻居节点。对于各目标进程节点对,将相应目标进程节点对中第一进程节点的第一邻居节点与第二进程节点的第二邻居节点进行匹配处理,得到每个第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对;基于各目标进程节点对和各目标邻居节点对,对待检测事件图进行子图匹配,得到待检测事件图中与查询图相匹配的目标子图。先对查询图的进程节点和待检测事件图的进程节点进行初步匹配,并基于候选进程节点对中各进程节点的节点表示,对初步匹配所生成的多个各候选进程节点对进行精细匹配,以筛选出满足匹配条件的目标进程节点对。
对目标进程节点对中第一进程节点的第一邻居节点与第二进程节点的第二邻居节点进行匹配处理,以得到每个第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对,使得在完成对目标进程节点对的筛选后再进行邻居节点的匹配,可以减少匹配的数据量,提高处理效率。目标进程节点对由匹配程度较高的第一进程节点和第二进程节点构成,目标邻居节点对由匹配程度较高的第一邻居节点和第二邻居节点构成,则基于匹配程度较高各目标进程节点对和各目标邻居节点对,对待检测事件图进行子图匹配,能够更准确地从待检测事件图中确定与查询图相匹配的目标子图。
在一个实施例中,筛选模块1108,还用于对于各候选进程节点对,确定相应候选进程节点对中第一进程节点的节点表示和第二进程节点的节点表示之间的相似度,得到每个候选进程节点对分别对应的相似度;对于每个第一进程节点,基于相应第一进程节点所属的各个候选进程节点对分别对应的相似度,从相应第一进程节点所属的各个候选进程节点对中,筛选出满足匹配条件的目标进程节点对。
本实施例中,对于各候选进程节点对,确定相应候选进程节点对中第一进程节点的节点表示和第二进程节点的节点表示之间的相似度,得到每个候选进程节点对分别对应的相似度,从而能够将节点的节点表示之间的相似度作为筛选条件,以对候选进程节点对进行进一步筛选。对于每个第一进程节点,基于相应第一进程节点所属的各个候选进程节点对分别对应的相似度,从相应第一进程节点所属的各个候选进程节点对中,准确地筛选出满足匹配条件的目标进程节点对。
在一个实施例中,筛选模块1108,还用于对于各目标进程节点对,确定相应目标进程节点对中第一进程节点的每个第一邻居节点分别与第二进程节点的每个第二邻居节点之间的相似度;对于每个第一邻居节点,根据相应第一邻居节点分别与每个第二邻居节点之间的相似度,确定与相应第一邻居节点相匹配的第二邻居节点,以分别得到每个第一邻居节点与相匹配的第二邻居节点形成的目标邻居节点对。
本实施例中,对于各目标进程节点对,确定相应目标进程节点对中第一进程节点的每个第一邻居节点分别与第二进程节点的每个第二邻居节点之间的相似度,能够基于相似度为每个第一邻居节筛选出最匹配的第二邻居节点。对于每个第一邻居节点,根据相应第一邻居节点分别与每个第二邻居节点之间的相似度,确定与相应第一邻居节点相匹配的第二邻居节点,以分别得到每个第一邻居节点与相匹配的第二邻居节点形成的目标邻居节点对,使得所生成的目标邻居节点对中的邻居节点之间的匹配度高,即用于进行子图匹配的邻居节点对的匹配度高,能够有效提高后续子图匹配的准确性。
在一个实施例中,筛选模块1108,还用于对于各目标进程节点对,确定相应目标进程节点对中第一进程节点在每种节点距离下分别对应的第一邻居节点,以及第二进程节点在每种节点距离下分别对应的第二邻居节点;确定在每种节点距离下的每个第一邻居节点分别与相应节点距离下的每个第二邻居节点之间的相似度;对于每种节点距离,根据相应节点距离下的各第一邻居节点分别与每个第二邻居节点之间的相似度,确定与每个第一邻居节点相匹配的第二邻居节点,以分别得到在每种节点距离下,每个第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对。
本实施例中,对于各目标进程节点对,确定相应目标进程节点对中第一进程节点在每种节点距离下分别对应的第一邻居节点,以及第二进程节点在每种节点距离下分别对应的第二邻居节点,从而能够将进程节点的邻居节点按照不同的节点距离进行划分。确定在每种节点距离下的每个第一邻居节点分别与相应节点距离下的每个第二邻居节点之间的相似度,以将邻居节点之间的相似度同样按照节点距离进行划分,对于每种节点距离,根据相应节点距离下的各第一邻居节点分别与每个第二邻居节点之间的相似度,确定与每个第一邻居节点相匹配的第二邻居节点,以分别得到在每种节点距离下,每个第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对,使得能够筛选出在相同节点距离下的相匹配的第一邻居节点和第二邻居节点,所形成的目标邻居节点对的匹配度更高,有助于提高后续子图匹配的准确性。
在一个实施例中,子图匹配模块1110,还用于对于各目标进程节点对,按照相应目标进程节点对中第二进程节点与相匹配的各第二邻居节点之间的节点距离,确定第二进程节点在每种节点距离下分别对应的目标邻居节点对;对于每种节点距离下的各目标邻居节点对,从相应节点距离所对应的各目标邻居节点对中选取满足关联条件的目标邻居节点对中的第二邻居节点;基于在每种节点距离下所选取的第二邻居节点和相匹配的第二进程节点在待检测事件图中的关联关系,生成每个第二进程节点分别对应的目标子图。
本实施例中,对于各目标进程节点对,按照相应目标进程节点对中第二进程节点与相匹配的各第二邻居节点之间的节点距离,确定第二进程节点在每种节点距离下分别对应的目标邻居节点对,对于每种节点距离下的各目标邻居节点对,从相应节点距离所对应的各目标邻居节点对中选取满足关联条件的目标邻居节点对中的第二邻居节点,能够在每种节点距离下均选取出与第二进程节点关联最紧密的邻居节点,从而基于在每种节点距离下所选取的第二邻居节点和相匹配的第二进程节点在待检测事件图中的关联关系,可以准确构建出每个第二进程节点分别对应的目标子图。
在一个实施例中,子图匹配模块1110,还用于从各目标进程节点对中选取相似度最大的目标进程节点对;按照所选取的目标进程节点对中第二进程节点与相匹配的第二邻居节点之间的节点距离,确定所选取的目标进程节点对中第二进程节点在每种节点距离下分别对应的目标邻居节点对;基于所选取的第二进程节点和在每种节点距离下所选取的第二邻居节点在待检测事件图中的关联关系,生成所选取的目标进程节点对中的第二进程节点对应的子图;从未被选取的各个目标进程节点对中选取相似度最大的目标进程节点对,并返回按照所选取的目标进程节点对中第二进程节点与相匹配的第二邻居节点之间的节点距离,确定所选取的目标进程节点对中第二进程节点在每种节点距离下分别对应的目标邻居节点对的步骤并继续执行,直至生成每个目标进程节点对中第二进程节点对应的子图时停止,以得到待检测事件图中与查询图相匹配的目标子图。
本实施例中,从各目标进程节点对中选取相似度最大的目标进程节点对,以将所选取的目标进程节点对中的第二进程节点作为首节点,从而依次为该首节点匹配不同节点距离下的各个邻居节点。按照所选取的目标进程节点对中第二进程节点与相匹配的第二邻居节点之间的节点距离,确定所选取的目标进程节点对中第二进程节点在每种节点距离下分别对应的目标邻居节点对,对于每种节点距离下的各目标邻居节点对,从相应节点距离所对应的各目标邻居节点对中选取满足关联条件的目标邻居节点对中的第二邻居节点,基于所选取的第二进程节点和在每种节点距离下所选取的第二邻居节点在待检测事件图中的关联关系,可以准确地为第二进程节点匹配不同节点距离下的各个邻居节点,从而准确地生成相应的子图。该子图包括多个节点和边,子图的边表示相应节点之间发生的异常事件,从而能够通过子图描述所选取的第二进程节点和相应的邻居节点之间发生的异常事件,有效实现对待检测事件图中的异常事件的检测。
从未被选取的各个目标进程节点对中选取相似度最大的目标进程节点对,并返回按照所选取的目标进程节点对中第二进程节点与相匹配的第二邻居节点之间的节点距离,确定所选取的目标进程节点对中第二进程节点在每种节点距离下分别对应的目标邻居节点对的步骤并继续执行,直至生成每个目标进程节点对中第二进程节点对应的子图时停止,以得到待检测事件图中与查询图相匹配的目标子图,从而能够以第二进程节点为基础,更精细地检测出每个第二进程节点和相应的邻居节点之间发生的异常事件,使得异常事件检测更细化、检测的精度更高,从而有效降低检测的错误率。
在一个实施例中,筛选模块1108,还用于对于各候选节点对,确定相应候选节点对中各节点的节点表示之间的相似度,得到每个候选节点对分别对应的相似度;基于各个相似度从各候选节点对中,筛选出满足匹配条件的目标节点对。
本实施例中,对于各候选节点对,确定相应候选节点对中各节点的节点表示之间的相似度,得到每个候选节点对分别对应的相似度,从而能够将节点的节点表示之间的相似度作为筛选条件,以基于各个相似度从各候选节点对中,准确地筛选出满足匹配条件的目标节点对。
在一个实施例中,该装置还包括预处理模块;预处理模块,用于从待检测事件图和查询图中采集多个节点和边构建多个三元组,三元组包括初始化节点表示的节点、待求解节点表示的节点,以及初始化特征表示的边;根据多个三元组所对应的初始化节点表示、待求解节点表示和初始化特征表示,构建目标损失函数;基于目标损失函数进行迭代求解,直至迭代停止时得到每个节点分别对应的节点表示。
本实施例中,从待检测事件图和查询图中采集多个节点和边构建多个三元组,该三元组包括初始化节点表示的节点、待求解节点表示的节点,以及初始化特征表示的边。通过三元组的构建能够对一个节点和对应的直接相邻节点之间的关联关系进行建,以通过三元组中某一节点和关联关系来预测另一节点的节点表示。根据多个三元组所对应的初始化节点表示、待求解节点表示和初始化特征表示,构建目标损失函数,从而能够将待求解节点表示作为待求解的参数,使得基于目标损失函数对该待求解的参数一步步进行迭代求解,并基于每次迭代求解的结果更新每个节点的节点表示和特征表示,直至迭代停止时准确得到每个节点最终的节点表示。
并且,本实施例中通过三元组中某一节点的节点表示和关联关系对应的特征表示,来预测另一节点的节点表示,是通过无监督图预训练技术对节点的节点表示进行预测,在预测过程中结合了图结构的更加丰富的拓扑结构信息,使得迭代更准确。同时,可以有效为所有不具备标签的图结构的节点预测节点表示,适用于所有图结构的节点表示的预测。
在一个实施例中,该预处理模块,还用于根据多个三元组所对应的初始化节点表示、待求解节点表示和初始化特征表示,构建第一损失函数;确定待检测事件图和查询图中每个进程节点分别对应的初始化上下文表示;基于每个进程节点对应的待求解节点表示和对应的初始化上下文表示,构建第二损失函数;根据第一损失函数和第二损失函数构建目标损失函数。
本实施例中,三元组由两个节点和这两个节点间的关联关系构成,通过三元组构建第一损失函数,能够实现节点层面自监督任务,即实现单个节点的节点表示的预测。图结构中的进程节点作为事件主体,很大程度上可以用来推测与之相关的邻居节点的性质,则通过进程节点和进程节点的上下文表示构建第二损失函数,使用了更丰富的拓扑结构信息,能够实现区域层面自监督任务,即实现邻域匹配预测。通过节点层面自监督任务和邻域匹配预测任务来进行预训练,能够从节点层面和节点的邻域层面对节点的表示进行迭代求解,使得迭代求解的结果不仅考虑到节点本身的特性,还考虑到节点的邻域的特性,使得所确定的节点表示更准确。并且,节点层面自监督任务和区域层面自监督任务都属于无监督学习任务,能够在不使用标签的情况下进行节点表示的预测,适用范围更广,处理效率更高。
上述异常事件检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端或服务器。以计算机设备是服务器为例,其内部结构图可以如图12所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储异常事件的相关检测数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种异常事件检测方法。
本领域技术人员可以理解,图12中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive RandomAccess Memory,MRAM)、铁电存储器(Ferroelectric RandomAccess Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(RandomAccess Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static RandomAccess Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccessMemory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (15)

1.一种异常事件检测方法,其特征在于,所述方法包括:
获取待检测事件图和查询图;所述待检测事件图和所述查询图均包括多个节点和边,所述待检测事件图的边表征相应节点间发生的事件,所述查询图的边表征相应节点间发生的异常事件;
将所述查询图的节点和所述待检测事件图的节点进行匹配处理,得到多个候选节点对;
对多个所述候选节点对中的每个节点分别进行特征提取,得到每个所述节点对应的节点表示;
对于各所述候选节点对,根据相应候选节点对中各节点的节点表示,从各所述候选节点对中筛选出满足匹配条件的目标节点对;
基于各所述目标节点对,对所述待检测事件图进行子图匹配,得到所述待检测事件图中与所述查询图相匹配的目标子图;所述目标子图用于描述所述待检测事件图中存在的异常事件。
2.根据权利要求1所述的方法,其特征在于,所述查询图的多个节点包括多个第一进程节点,所述待检测事件图的多个节点包括多个第二进程节点,所述候选节点对包括将所述第一进程节点和所述第二进程节点进行匹配处理所得到的候选进程节点对。
3.根据权利要求2所述的方法,其特征在于,所述查询图的多个节点包括每个所述第一进程节点的第一邻居节点,所述待检测事件图的多个节点包括每个所述第二进程节点的第二邻居节点,所述目标节点对包括目标进程节点对和目标邻居节点对;所述基于各所述目标节点对,对所述待检测事件图进行子图匹配,得到所述待检测事件图中与所述查询图相匹配的目标子图,包括:
对于各所述目标进程节点对,将相应目标进程节点对中第一进程节点的第一邻居节点与第二进程节点的第二邻居节点进行匹配处理,得到每个所述第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对;
基于各所述目标进程节点对和各所述目标邻居节点对,对所述待检测事件图进行子图匹配,得到所述待检测事件图中与所述查询图相匹配的目标子图。
4.根据权利要求2所述的方法,其特征在于,所述对于各所述候选节点对,根据相应候选节点对中各节点的节点表示,从各所述候选节点对中筛选出满足匹配条件的目标节点对,包括:
对于各所述候选进程节点对,确定相应候选进程节点对中第一进程节点的节点表示和第二进程节点的节点表示之间的相似度,得到每个所述候选进程节点对分别对应的相似度;
对于每个所述第一进程节点,基于相应第一进程节点所属的各个候选进程节点对分别对应的相似度,从相应第一进程节点所属的各个候选进程节点对中,筛选出满足匹配条件的目标进程节点对。
5.根据权利要求3所述的方法,其特征在于,所述对于各所述目标进程节点对,将相应目标进程节点对中第一进程节点的第一邻居节点与第二进程节点的第二邻居节点进行匹配处理,得到每个所述第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对,包括:
对于各所述目标进程节点对,确定相应目标进程节点对中第一进程节点的每个第一邻居节点分别与第二进程节点的每个第二邻居节点之间的相似度;
对于每个所述第一邻居节点,根据相应第一邻居节点分别与每个所述第二邻居节点之间的相似度,确定与相应第一邻居节点相匹配的第二邻居节点,以分别得到每个所述第一邻居节点与相匹配的第二邻居节点形成的目标邻居节点对。
6.根据权利要求5所述的方法,其特征在于,所述对于各所述目标进程节点对,确定相应目标进程节点对中第一进程节点的每个第一邻居节点分别与第二进程节点的每个第二邻居节点之间的相似度,包括:
对于各所述目标进程节点对,确定相应目标进程节点对中第一进程节点在每种节点距离下分别对应的第一邻居节点,以及第二进程节点在每种节点距离下分别对应的第二邻居节点;
确定在每种节点距离下的每个第一邻居节点分别与相应节点距离下的每个第二邻居节点之间的相似度;
所述对于每个所述第一邻居节点,根据相应第一邻居节点分别与每个所述第二邻居节点之间的相似度,确定与相应第一邻居节点相匹配的第二邻居节点,以分别得到每个所述第一邻居节点与相匹配的第二邻居节点形成的目标邻居节点对,包括:
对于每种节点距离,根据相应节点距离下的各所述第一邻居节点分别与每个第二邻居节点之间的相似度,确定与每个所述第一邻居节点相匹配的第二邻居节点,以分别得到在每种节点距离下,每个所述第一邻居节点与相匹配的第二邻居节点所形成的目标邻居节点对。
7.根据权利要求3所述的方法,其特征在于,所述基于各所述目标进程节点对和各所述目标邻居节点对,对所述待检测事件图进行子图匹配,得到所述待检测事件图中与所述查询图相匹配的目标子图,包括:
对于各所述目标进程节点对,按照相应目标进程节点对中第二进程节点与相匹配的各第二邻居节点之间的节点距离,确定所述第二进程节点在每种节点距离下分别对应的目标邻居节点对;
对于每种节点距离下的各目标邻居节点对,从相应节点距离所对应的各所述目标邻居节点对中选取满足关联条件的目标邻居节点对中的第二邻居节点;
基于在每种节点距离下所选取的第二邻居节点和相匹配的第二进程节点在所述待检测事件图中的关联关系,生成每个所述第二进程节点分别对应的目标子图。
8.根据权利要求7所述的方法,其特征在于,所述对于各所述目标进程节点对,按照相应目标进程节点对中第二进程节点与相匹配的各第二邻居节点之间的节点距离,确定所述第二进程节点在每种节点距离下分别对应的目标邻居节点对,包括:
从各所述目标进程节点对中选取相似度最大的目标进程节点对;
按照所选取的目标进程节点对中第二进程节点与相匹配的第二邻居节点之间的节点距离,确定所选取的目标进程节点对中第二进程节点在每种节点距离下分别对应的目标邻居节点对;
所述基于在每种节点距离下所选取的第二邻居节点和相匹配的第二进程节点在所述待检测事件图中的关联关系,生成每个所述第二进程节点分别对应的目标子图,包括:
基于所选取的第二进程节点和在每种节点距离下所选取的第二邻居节点在所述待检测事件图中的关联关系,生成所选取的目标进程节点对中的第二进程节点对应的子图;
从未被选取的各个所述目标进程节点对中选取相似度最大的目标进程节点对,并返回所述按照所选取的目标进程节点对中第二进程节点与相匹配的第二邻居节点之间的节点距离,确定所选取的目标进程节点对中第二进程节点在每种节点距离下分别对应的目标邻居节点对的步骤并继续执行,直至生成每个目标进程节点对中第二进程节点对应的子图时停止,以得到所述待检测事件图中与所述查询图相匹配的目标子图。
9.根据权利要求1所述的方法,其特征在于,所述对于各所述候选节点对,根据相应候选节点对中各节点的节点表示,从各所述候选节点对中筛选出满足匹配条件的目标节点对,包括:
对于各所述候选节点对,确定相应候选节点对中各节点的节点表示之间的相似度,得到每个所述候选节点对分别对应的相似度;
基于各个相似度从各所述候选节点对中,筛选出满足匹配条件的目标节点对。
10.根据权利要求1至9任意一项所述的方法,其特征在于,所述节点表示通过预处理步骤获得,所述预处理步骤包括:
从所述待检测事件图和所述查询图中采集多个节点和边构建多个三元组,所述三元组包括初始化节点表示的节点、待求解节点表示的节点,以及初始化特征表示的边;
根据多个所述三元组所对应的初始化节点表示、待求解节点表示和初始化特征表示,构建目标损失函数;
基于所述目标损失函数进行迭代求解,直至迭代停止时得到每个所述节点分别对应的节点表示。
11.根据权利要求10所述的方法,其特征在于,所述根据多个所述三元组所对应的初始化节点表示、待求解节点表示和初始化特征表示,构建目标损失函数,包括:
根据多个所述三元组所对应的初始化节点表示、待求解节点表示和初始化特征表示,构建第一损失函数;
确定所述待检测事件图和所述查询图中每个进程节点分别对应的初始化上下文表示;
基于每个所述进程节点对应的待求解节点表示和对应的初始化上下文表示,构建第二损失函数;
根据所述第一损失函数和所述第二损失函数构建目标损失函数。
12.一种异常事件检测装置,其特征在于,所述装置包括:
获取模块,用于获取待检测事件图和查询图;所述待检测事件图和所述查询图均包括多个节点和边,所述待检测事件图的边表征相应节点间发生的事件,所述查询图的边表征相应节点间发生的异常事件;
节点匹配模块,用于将所述查询图的节点和所述待检测事件图的节点进行匹配处理,得到多个候选节点对;
提取模块,用于对多个所述候选节点对中的每个节点分别进行特征提取,得到每个所述节点对应的节点表示;
筛选模块,用于对于各所述候选节点对,根据相应候选节点对中各节点的节点表示,从各所述候选节点对中筛选出满足匹配条件的目标节点对;
子图匹配模块,用于基于各所述目标节点对,对所述待检测事件图进行子图匹配,得到所述待检测事件图中与所述查询图相匹配的目标子图;所述目标子图用于描述所述待检测事件图中存在的异常事件。
13.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至11中任一项所述的方法的步骤。
14.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
15.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至11中任一项所述的方法的步骤。
CN202210520174.5A 2022-05-13 2022-05-13 异常事件检测方法、装置、计算机设备和存储介质 Pending CN115114484A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210520174.5A CN115114484A (zh) 2022-05-13 2022-05-13 异常事件检测方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210520174.5A CN115114484A (zh) 2022-05-13 2022-05-13 异常事件检测方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN115114484A true CN115114484A (zh) 2022-09-27

Family

ID=83327342

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210520174.5A Pending CN115114484A (zh) 2022-05-13 2022-05-13 异常事件检测方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN115114484A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024114618A1 (zh) * 2022-12-02 2024-06-06 华为技术有限公司 异常事件检测方法、异常事件检测模型构建方法以及装置
WO2024114827A1 (zh) * 2022-12-01 2024-06-06 南京南瑞信息通信科技有限公司 基于连续时间动态异质图神经网络的apt检测方法及系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024114827A1 (zh) * 2022-12-01 2024-06-06 南京南瑞信息通信科技有限公司 基于连续时间动态异质图神经网络的apt检测方法及系统
WO2024114618A1 (zh) * 2022-12-02 2024-06-06 华为技术有限公司 异常事件检测方法、异常事件检测模型构建方法以及装置

Similar Documents

Publication Publication Date Title
Hu et al. A distributed framework for large-scale protein-protein interaction data analysis and prediction using mapreduce
Yu et al. A tree-based incremental overlapping clustering method using the three-way decision theory
Sharma et al. Classification through machine learning technique: C4. 5 algorithm based on various entropies
CN107391512B (zh) 知识图谱预测的方法和装置
Rodriguez et al. Patent clustering and outlier ranking methodologies for attributed patent citation networks for technology opportunity discovery
CN112365171B (zh) 基于知识图谱的风险预测方法、装置、设备及存储介质
Shi et al. Effective decoding in graph auto-encoder using triadic closure
CN111931505A (zh) 一种基于子图嵌入的跨语言实体对齐方法
CN113326377A (zh) 一种基于企业关联关系的人名消歧方法及系统
CN115114484A (zh) 异常事件检测方法、装置、计算机设备和存储介质
CN112800115B (zh) 数据处理方法及数据处理装置
CN112765415A (zh) 基于关系内容联合嵌入卷积神经网络的链路预测方法
Rani et al. Design of an intrusion detection model for IoT-enabled smart home
Zhang et al. Hierarchical community detection based on partial matrix convergence using random walks
CN115293919A (zh) 面向社交网络分布外泛化的图神经网络预测方法及系统
Souravlas et al. Probabilistic community detection in social networks
CN117036060A (zh) 车险欺诈识别方法、装置和存储介质
CN114897085A (zh) 一种基于封闭子图链路预测的聚类方法及计算机设备
Kumar et al. Graph Convolutional Neural Networks for Link Prediction in Social Networks
Kumar et al. Community-enhanced Link Prediction in Dynamic Networks
CN113515519A (zh) 图结构估计模型的训练方法、装置、设备及存储介质
Hu et al. Evaluation of big data analytics and cognitive computing in smart health systems
Cheng et al. Community Detection Based on Density Peak Clustering Model and Multiple Attribute Decision‐Making Strategy TOPSIS
CN115033802A (zh) 社团挖掘方法、社团挖掘模型的训练方法及装置
CN114519605A (zh) 广告点击欺诈检测方法、系统、服务器和存储介质

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