基于标签和图对齐的流式溯源图实时攻击检测方法及系统转让专利

申请号 : CN202410036874.6

文献号 : CN117560228B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李振源曾慧然

申请人 : 西安电子科技大学杭州研究院西安电子科技大学

摘要 :

本发明提供一种基于标签和图对齐的流式溯源图实时攻击检测方法及系统,对事件同查询图进行图对齐并在事件对应的溯源图节点上设置标签,其中标签内设置标签ID、对应的查询图及查询结构、最后对齐的查询图节点、图对齐状态的字段及缓存路径,图对齐状态的字段内设置图对齐分数、节点对齐信息以及边对齐信息,通过流式图对齐标签键值索引结构记录溯源图节点→标签→图对齐状态的二级索引结构以记录计算过程和计算结果,不需要缓存溯源图即可通过流式图对齐标签键值索引结构实现溯源分析,进而解决将溯源分析技术应用于攻击检测时存在的系统实时产生海量日志和系统有限的处理能力之间的矛盾。

权利要求 :

1.一种基于标签和图对齐的流式溯源图实时攻击检测方法,其特征在于,包括以下步骤:

预设至少一个对应于网络攻击或部分攻击行为的查询图,其中每一个查询图由多个查询图节点按照攻击路径依次序连接得到,且为每一查询图选择至少一查询图节点设置种子节点或种子事件;

实时采集事件,判断事件是否匹配种子节点或种子事件,若事件匹配种子节点或种子事件,在事件对应的溯源图节点上初始化设置标签并建立流式图对齐标签键值索引结构,其中流式图对齐标签键值索引结构缓存以溯源图节点为键、以标签ID为值的键值对,其中标签内设置标签ID、对应的查询图及查询结构、最后对齐的查询图节点、图对齐状态及缓存路径,图对齐状态的字段内设置图对齐分数、节点对齐信息以及边对齐信息;

若事件未匹配种子节点或种子事件但流式图对齐标签键值索引结构中已存在标签,对事件和查询图进行图对齐以获取事件对齐的待定查询图节点,若待定查询图节点未匹配已有标签对应的查询结构中新的查询图节点,则仅更新已有标签的缓存路径并将更新的标签缓存在流式图对齐标签键值索引结构中,若待定查询图节点匹配已有标签对应的查询结构中新的查询图节点,则以新的查询图节点更新已有标签的最后对齐的查询图节点、图对齐状态及缓存路径并将更新的标签缓存在流式图对齐标签键值索引结构中。

2.根据权利要求1所述的基于标签和图对齐的流式溯源图实时攻击检测方法,其特征在于,流式图对齐标签键值索引结构内设置二级索引结构,其中二级索引结构表示为:溯源图节点→标签→图对齐状态。

3.根据权利要求2所述的基于标签和图对齐的流式溯源图实时攻击检测方法,其特征在于,标签内图对齐状态缓存的是指向状态的索引,溯源图节点→标签以键值映射的形式缓存计算结果,标签→图对齐状态以指针的形式缓存同查询图的匹配结果。

4.根据权利要求1所述的基于标签和图对齐的流式溯源图实时攻击检测方法,其特征在于,最后对齐的查询图节点标记当前标签在查询图中对齐的最后一个查询图节点,边对齐信息指的是上一个查询图节点和最后对齐的查询图节点之间的路径,缓存路径为首尾相连的事件三元组的集合。

5.根据权利要求1所述的基于标签和图对齐的流式溯源图实时攻击检测方法,其特征在于,在“为每一查询图选择至少一查询图节点设置种子节点或种子事件”步骤中,设置种子节点/事件值索引结构,以种子节点或者种子事件为键,以对应的查询图为值构建键值对并缓存在种子节点/事件值索引结构。

6.根据权利要求1所述的基于标签和图对齐的流式溯源图实时攻击检测方法,其特征在于,在“若事件匹配种子节点或种子事件,在事件对应的溯源图节点上初始化设置标签”步骤中,设置标签ID,获取种子节点或种子事件对应的查询图并设置查询图的查询结构,将事件同查询图进行图对齐获取最后对齐的查询图节点以及图对齐状态,获取事件三元组的路径作为缓存路径,将标签ID、对应的查询图及查询结构、最后对齐的查询图节点、图对齐状态和缓存路径缓存在标签内完成标签的初始化。

7.根据权利要求1所述的基于标签和图对齐的流式溯源图实时攻击检测方法,其特征在于,当标签的图对齐分数达到设定阈值时触发告警,和/或,当标签满足标签移除条件时移除标签。

8.一种基于标签和图对齐的流式溯源图实时攻击检测系统,其特征在于,包括:

数据采集系统,用于实时采集事件;

查询图数据库,用于预设至少一对应于网络攻击或部分攻击行为的查询图,其中每一查询图由多个查询图节点按照攻击路径依次序连接得到,且为每一查询图选择至少一查询图节点设置种子节点或种子事件;

实时分析系统,用于判断事件是否匹配种子节点或种子事件,若事件匹配种子节点或种子事件,在事件对应的溯源图节点上初始化设置标签并建立流式图对齐标签键值索引结构,其中流式图对齐标签键值索引结构缓存以溯源图节点为键、以标签ID为值的键值对,其中标签内设置标签ID、对应的查询图及查询结构、最后对齐的查询图节点、图对齐状态及缓存路径,图对齐状态的字段内设置图对齐分数、节点对齐信息以及边对齐信息,若事件未匹配种子节点或种子事件但流式图对齐标签键值索引结构中已存在标签,对事件和查询图进行图对齐以获取事件对齐的待定查询图节点,若待定查询图节点未匹配已有标签对应的查询结构中新的查询图节点,则仅更新已有标签的缓存路径并将更新的标签缓存在流式图对齐标签键值索引结构中,若待定查询图节点匹配已有标签对应的查询结构中新的查询图节点,则以新的查询图节点更新已有标签的最后对齐的查询图节点、图对齐状态及缓存路径并将更新的标签缓存在流式图对齐标签键值索引结构中。

9.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1到7任一所述的基于标签和图对齐的流式溯源图实时攻击检测方法。

10.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括根据权利要求1到7任一所述的基于标签和图对齐的流式溯源图实时攻击检测方法。

说明书 :

基于标签和图对齐的流式溯源图实时攻击检测方法及系统

技术领域

[0001] 本申请涉及数据攻击检测领域,特别是涉及一种基于标签和图对齐的流式溯源图实时攻击检测方法及系统。

背景技术

[0002] 数字化,尤其是云计算技术的持续推进为社会和经济的发展持续注入新动力,但也引入了新的风险。基于溯源(Provenance)概念的主机威胁分析技术在国内外学术界得到了多年的关注,溯源分析指的是在单个计算机系统或网络中追踪数据、文件、进程和操作的来源和历史的过程,这种分析对于理解安全事件(如恶意软件攻击或数据泄露)的背景和影响至关重要。基于粗粒度信息流,也被称为因果关系(Causality)的因果分析/溯源分析可以有效的表征系统中实体间的操作,并广泛关联系统中发生的事件,构建全局的系统行为模型,表现出了对上述复杂攻击良好检测分析效果,其中因果分析是一个复杂的过程,可用于识别和理解安全事件(如网络攻击或系统异常)之间的因果关系,这包括分析事件的根本原因、它们是如何触发其他事件的,以及这些事件和行为如何相互作用和影响整个系统的安全和稳定性。
[0003] 当前,绿盟、华为、深信服等公司都将部分溯源分析技术用于EDR与SIEM等安全产品,这些安全产品在国内有望支撑起百亿级别的市场,比如绿盟申请的CN115001753A公开了一种关联告警的分析方法、装置、电子设备及存储介质,其是通过获取溯源分析报告中的危机告警事件,并根据各个危机告警事件建立事理图谱,遍历所述事理图谱中的各个危机告警节点,生成各个危机告警序列进而再进行关联事件告警;再如深信服申请的CN113055396A公开了一种跨终端溯源分析的方法、装置、系统和存储介质,将获取的溯源信息与各终端的安全数据进行匹配,以得到匹配终端和匹配的数据信息,对数据进行分析后实现了跨终端的自动溯源。但是这些技术仅是将部分溯源分析技术用于分析数据,若是想要将更完整的溯源技术在业界推广应用则仍然面临规模化挑战,即系统实时产生的海量日志和有限的处理能力的矛盾所带来的挑战,该矛盾已经成为阻止基于溯源的威胁检测和分析在实际安全系统中被大规模推广的主要挑战。当然也有研究人员提出了多种数据过滤和高效分析方法来缓解处理的压力,但是这些方法并没有很好的考虑流式的数据处理问题,其对实时检测中不断产生的新数据依旧是缺乏高效处理能力。
[0004] 综上所述,对于实时产生海量日志的流式数据处理场景,由于数据量过大但是系统的处理能力有限,导致现有技术的溯源分析技术无法很好地用于此类场景。

发明内容

[0005] 本申请实施例提供了一种基于标签和图对齐的流式溯源图实时攻击检测方法,基于图对齐和设计的标签实现海量日志的实时攻击溯源分析,解决将溯源分析技术应用于攻击检测时存在的系统实时产生海量日志和系统有限的处理能力之间的矛盾。
[0006] 第一方面,本申请实施例提供了一基于标签和图对齐的流式溯源图实时攻击检测方法,包括以下步骤:
[0007] 预设至少一个对应于网络攻击或部分攻击行为的查询图,其中每一个查询图由多个查询图节点按照攻击路径依次序连接得到,且为每一查询图选择至少一查询图节点设置种子节点或种子事件;
[0008] 实时采集事件,判断事件是否匹配种子节点或种子事件,若事件匹配种子节点或种子事件,在事件对应的溯源图节点上初始化设置标签并建立流式图对齐标签键值索引结构,其中标签内设置标签ID、对应的查询图及查询结构、最后对齐的查询图节点、图对齐状态及缓存路径,图对齐状态的字段内设置图对齐分数、节点对齐信息以及边对齐信息,其中流式图对齐标签键值索引结构缓存以溯源图节点为键、以标签ID为值的键值对;
[0009] 若事件未匹配种子节点或种子事件但流式图对齐标签键值索引结构中已存在标签,对事件和查询图进行图对齐以获取事件对齐的待定查询图节点,若待定查询图节点未匹配已有标签对应的查询结构中新的查询图节点,则仅更新已有标签的缓存路径并将更新的标签缓存在流式图对齐标签键值索引结构中,若待定查询图节点匹配已有标签对应的查询结构中新的查询图节点,则以新的查询图节点更新已有标签的最后对齐的查询图节点、图对齐状态及缓存路径并将更新的标签缓存在流式图对齐标签键值索引结构中。
[0010] 第二方面,本申请实施例提供了一种基于标签和图对齐的流式溯源图实时攻击检测系统,包括:
[0011] 数据采集系统,用于实时采集事件;
[0012] 查询图数据库,用于预设至少一对应于网络攻击或部分攻击行为的查询图,其中每一查询图由多个查询图节点按照攻击路径依次序连接得到,且为每一查询图选择至少一查询图节点设置种子节点或种子事件;
[0013] 实时分析系统,用于判断事件是否匹配种子节点或种子事件,若事件匹配种子节点或种子事件,在事件对应的溯源图节点上初始化设置标签并建立流式图对齐标签键值索引结构,其中标签内设置标签ID、对应的查询图及查询结构、最后对齐的查询图节点、图对齐状态及缓存路径,图对齐状态的字段内设置图对齐分数、节点对齐信息以及边对齐信息,其中流式图对齐标签键值索引结构缓存以溯源图节点为键、以标签ID为值的键值对,若事件未匹配种子节点或种子事件但流式图对齐标签键值索引结构中已存在标签,对事件和查询图进行图对齐以获取事件对齐的待定查询图节点,若待定查询图节点未匹配已有标签对应的查询结构中新的查询图节点,则仅更新已有标签的缓存路径并将更新的标签缓存在流式图对齐标签键值索引结构中,若待定查询图节点匹配已有标签对应的查询结构中新的查询图节点,则以新的查询图节点更新已有标签的最后对齐的查询图节点、图对齐状态及缓存路径并将更新的标签缓存在流式图对齐标签键值索引结构中。
[0014] 第三方面, 本申请实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述的基于标签和图对齐的流式溯源图实时攻击检测方法。
[0015] 第四方面,本申请实施例提供了一种可读存储介质,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括所述的基于标签和图对齐的流式溯源图实时攻击检测方法。
[0016] 本发明的主要贡献和创新点如下:
[0017] 本申请实施例设计了可传播的标签并设置流式图对齐标签键值索引结构对溯源分析过程和结果进行缓存,在不需要缓存流式溯源图的情况下利用流式图对齐标签键值索引结构实现了高效的溯源分析,解决了有限计算量和海量日志事件处理之间的矛盾。由于本方案设计的标签内设置标签ID、对应的查询图及查询结构、最后对齐的查询图节点、图对齐状态的字段及缓存路径,特别的,图对齐状态的字段内设置图对齐分数、节点对齐信息以及边对齐信息的字段,进而可以通过标签缓存的内容记录标签同查询图之间的关系,再通过记录标签同溯源图节点之间的索引完成流式图对齐标签键值索引结构缓存溯源图节点→标签→图对齐状态二级索引结构的搭建,通过中溯源图节点→标签作为第一级索引缓存计算结果,标签→图对齐状态缓存同查询图的匹配结果,进而可利用标签和图对齐技术实现了海量日志系统的溯源分析处理。另外,为了降低标签的缓存压力,设置种子节点/种子事件来对标签进行初始化设置,仅在已有初始化标签的前提下方才进行标签传播,利用标签的传播进行计算过程和计算结果的缓存,便于后续进行攻击检测的溯源分析。
[0018] 本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。

附图说明

[0019] 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
[0020] 图1是根据本申请实施例的流式溯源图的标签传播过程示意图;
[0021] 图2是根据本申请一种实施例的基于标签和图对齐的流式溯源图实时攻击检测方法的整体实现逻辑示意图;
[0022] 图3是根据本申请实施例的基于标签和图对齐的流式溯源图实时攻击检测系统的框架示意图;
[0023] 图4是根据本申请实施例的电子装置的硬件结构示意图。

具体实施方式

[0024] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
[0025] 需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
[0026] 实施例一
[0027] 溯源图是一个带有时间信息的有向图,图中节点表示系统中的主体(如进程、线程)和对象(如文件、注册表、网络套接字),有向图中的边表示顶点之间的控制流和数据流之间的关系,并不一定是主体指向客体的,而是根据因果关系确定的(可以简单理解为信息流的方向)。当系统实时采集三元组或者四元组的事件,事件根据事件之间的关系对应形成流式溯源图,现有技术中的攻击检测方法是先缓冲海量日志信息的流式溯源图再对缓冲的日志信息进行分析以判断是否存在攻击,而由于日志信息的数据量非常大,故现有技术的系统往往需要引入高昂的缓存和查询开销,这意味着系统有限的数据处理能力难以满足海量数据溯源分析的需求。而本方案则是基于图对齐技术和标签设计,在不需要缓存事件集合的流式溯源图的前提条件下实现了在实时产生海量日志的系统中实现实时攻击检测分析的效果。本方案采集系统的行为数据并用四元组(主体、操作、客体以及时间)或者三元组(主体、操作、客体)的方式表示为事件,对每一实时采集的事件进行处理以通过标签的方式实现溯源分析。
[0028] 具体的,本方案提供的基于标签和图对齐的流式溯源图实时攻击检测方法包括以下步骤:
[0029] 预设至少一个对应于网络攻击或部分攻击行为的查询图,其中每一个查询图由多个查询图节点按照攻击路径依次序连接得到,且为每一查询图选择至少一查询图节点设置种子节点或种子事件;
[0030] 实时采集事件,判断事件是否匹配种子节点或种子事件,若事件匹配种子节点或种子事件,在事件对应的溯源图节点上初始化设置标签并建立流式图对齐标签键值索引结构,其中流式图对齐标签键值索引结构缓存以溯源图节点为键、以标签ID为值的键值对,其中标签内设置标签ID、对应的查询图及查询结构、最后对齐的查询图节点、图对齐状态及缓存路径,图对齐状态的字段内设置图对齐分数、节点对齐信息以及边对齐信息;
[0031] 若事件未匹配种子节点或种子事件但流式图对齐标签键值索引结构中已存在标签,对事件和查询图进行图对齐以获取事件对齐的待定查询图节点,若待定查询图节点未匹配已有标签对应的查询结构中新的查询图节点,则仅更新已有标签的缓存路径并将更新的标签缓存在流式图对齐标签键值索引结构中,若待定查询图节点匹配已有标签对应的查询结构中新的查询图节点,则以新的查询图节点更新已有标签的最后对齐的查询图节点、图对齐状态及缓存路径并将更新的标签缓存在流式图对齐标签键值索引结构中。
[0032] 本方案并不对事件所对应的溯源图进行缓存,而是通过流式图对齐标签键值索引结构缓存标签和溯源图节点,并在标签内记录对应的图对齐状态以实现对图对齐的计算过程和计算结果的缓存。换言之,本方案通过标签的设计实现了二级索引结构,流式图对齐标签键值索引结构内设置二级索引结构,其中二级索引结构表示为:溯源图节点→标签→图对齐状态,其中溯源图节点→标签以键值映射的形式缓存计算结果,标签→图对齐状态以指针的形式缓存同查询图的匹配结果,以减少查询图分支而引起的匹配结果汇聚问题。
[0033] 本方案通过将事件同查询图进行图对齐的方式实现实时的攻击检测,故需要在系统内预设描述攻击流程的查询图,以使得事件可与查询图中的节点或者事件进行图对齐判断。对应的,在“预设至少一个对应于网络攻击或部分攻击行为的查询图,其中每一个查询图由多个查询图节点按照攻击路径依次序连接得到”步骤中,查询图利用查询图节点和攻击路径记录网络攻击的攻击方式。在一些实施例中,查询图是用一个汇总相似网络攻击的实现方式并对其网络攻击进行抽象的描述,查询图可根据待检测的网络攻击的类型进行自编辑或者自生成。
[0034] 在“实时采集事件”步骤中,事件为以主体、操作和客体组成的三元组数据或者为以主体、操作、客体和时间组成的四元组数据。 需要说明的是,本方案适用于对实时产生海量日志的系统进行实时的攻击检测分析,系统的日志流可以用主体,操作,客体,时间的四元组的形式表示为四元组数据流,或者用主体,操作和客体的三元组的形式表示为三元组数据流,系统对每一采集的事件进行分析判断。
[0035] 在一些实施例中,采用日志采集器实时采集日志流,日志采集器可以基于eBPF、LTTng、Kernel Module、Event Tracing for Windows等底层数据采集工具构建。
[0036] 在系统的实际运行过程中,日志采集器采集海量的日志流并以极高的速率输出,主流的方式是将流式溯源图或者海量的日志流进行缓存后再分析,这样势必会引入高昂的缓存成本和查询开销,进而阻碍了溯源分析算法的规模化应用,而本方案则是通过设计的标签来缓存计算结果和计算过程避免重复计算带来的处理压力,利用缓存的计算过程和计算过程来提供溯源分析路径以进行攻击溯源分析。
[0037] 需要说明的是,本方案可支持多种事件的实时攻击检测,且可根据实际需求进行扩展,下表一展示可扩展的事件类型:
[0038] 表一 可扩展的事件类型
[0039]
[0040] 关于本方案设计的标签:标签内设置标签ID、对应的查询图及查询结构、最后对齐的查询图节点、图对齐状态及缓存路径,其中图对齐状态的字段内设置图对齐分数、节点对齐信息以及边对齐信息,具体的标签内容如下:
[0041] 标签内标签ID标记当前标签的ID,用标签ID标识标签;
[0042] 标签对应的查询图及查询结构标记当前标签对齐的查询图以及对应该查询图的查询结构,所述查询结构可以是树或者图的形式。具体的,可根据查询的策略设定查询结构,通过查询结构可以协同给定最后对齐的查询图节点的索引,减少查询的范围进而加快查询的速度;
[0043] 最后对齐的查询图节点标记当前标签在查询图中对齐的最后一个查询图节点,用于在查询结构中加速查询;
[0044] 图对齐状态标记当前事件同查询图的对齐情况,图对齐状态字段内的节点对齐信息包括节点的对齐状态和对齐结果,边对齐信息包括边的对齐状态和对齐结果。需要说明的是,边对齐信息指的是上一个查询图节点和最后对齐的查询图节点之间的路径。
[0045] 缓存路径为首尾相连的事件三元组的集合。
[0046] 需要说明的是,由于查询图有多个分支,为了使得各个分支的查询结果可以汇聚,故标签内图对齐状态缓存的是指向状态的索引。也就是说,标签内的图对齐状态是一类自定义的数据结构,缓存指向对齐状态的指针,并不直接存储对齐结果,这样设置的好处在于可以有多个标签同时修改同一个图对齐状态,每个查询图合理存在多个图对齐状态。标签内缓存的图对齐状态对应于上文提到的二级索引结构。
[0047] 示例性的,某个标签的内容为:{标签ID:1;对应的查询图和查询结构:PersistentWithRegistry;最后对齐的查询图节点:(1);图对齐状态:
缓存路径:http://...//kinsing→Firfox}。
[0048] 虽然标签的设置可以缓存计算结果和计算过程,但是标签的缓存和传播也会带来较高的存储和计算开销,故本方案为了减少查询的计算量,本方案设定只有当事件匹配查询图的种子节点或者种子事件时才会在事件对应的溯源图的节点上设置标签并进行标签传播。
[0049] 对应的,在“为每一查询图选择至少一查询图节点设置种子节点或种子事件”步骤中,设置种子节点/事件值索引结构,以种子节点或者种子事件为键,以对应的查询图为值构建键值对并缓存在种子节点/事件值索引结构。对应的,在“判断事件是否匹配种子节点或种子事件”步骤中,查询种子节点/事件值索引结构中的键并同事件进行比对,若匹配种子节点或种子事件,则获取种子节点或种子事件的键所对应的值作为对应的查询图。在一些实施例中,设置全局查询结构来存储种子节点/事件同查询图之间的映射关系得到种子节点/事件值索引结构,进而便于在匹配种子节点/事件时快速找到对应的查询图,以用于标签和图对齐状态的初始化。
[0050] 关于种子节点和种子事件的设置可根据需要进行攻击分析的网络攻击的内容进行人工设置,种子节点和种子事件的设置是为了后续进行攻击分析时用于判断何时进行标签的初始化设置,只有匹配上种子节点或种子事件时才会进行标签的初始化。另外,本方案的种子节点/事件值索引结构的设置是为了在匹配种子节点和/或种子事件时可快速定位对应的查询图。
[0051] 在“若事件匹配种子节点或种子事件,在事件对应的溯源图节点上初始化设置标签”步骤中,设置标签ID,获取种子节点或种子事件对应的查询图并设置查询图的查询结构,将事件同查询图进行图对齐获取最后对齐的查询图节点以及图对齐状态,获取事件三元组的路径作为缓存路径,将标签ID、对应的查询图及查询结构、最后对齐的查询图节点、图对齐状态和缓存路径缓存在标签内完成标签的初始化。
[0052] 另外,由于不缓存流式溯源图,而是利用标签来缓存计算结果和计算过程,故本方案在完成标签初始化后会将标签缓存在流式图对齐标签键值索引结构中,该流式图对齐标签键值索引结构以溯源图节点为键、以标签ID为值的键值对构成一级索引结构,以标签同其缓存的图对齐状态作为的二级索引结构,进而实现对计算结果和计算过程的记录。关于流式图对齐标签键值索引结构的二级索引结构:流式图对齐标签键值索引结构首先以溯源图节点为键、以标签ID为值的键值对构成第一级的索引结构,再将标签ID对应的图对齐状态进行缓存构成第二级的索引结构。
[0053] 当标签完成初始化设置方可根据事件同查询图的图对齐情况进行标签传播,也就是说,在标签传播前需要起点上有标签。故本方案在事件未匹配种子节点或种子事件时但流式图对齐标签键值索引结构中已存在标签的情况下进行标签传播。
[0054] 具体的,对事件和查询图进行图对齐以获取当前事件对齐的待定查询图节点,将待定查询图节点同已有标签对应的查询结构进行比对,若待定查询图节点未匹配已有标签对应的查询结构中新的查询图节点,则仅更新已有标签的缓存路径并将更新的标签缓存在流式图对齐标签键值索引结构中完成一次标签的传播。这里所指的标签传播是是将更新缓存路径后的标签进行复制并缓存在流式图对齐标签键值索引结构中,进而通过流式图对齐标签键值索引结构即可快速索引查询事件同查询图之间的图对齐计算结果和计算过程。而若待定查询图节点匹配已有标签对应的查询结构中新的查询图节点,则以新的查询图节点更新已有标签的最后对齐的查询图节点、图对齐状态中的图对齐分数、节点对齐信息、边对齐信息以及缓存路径并将更新的标签缓存在流式图对齐标签键值索引结构中完成一次标签的传播。
[0055] 也就是说,待定查询图节点同已有标签的查询结构的新查询图节点的匹配关系分为两种:第一种是待定查询图节点未匹配已有标签的查询结构的新查询图节点,相当于最后对齐的查询图节点未做变动,此时只需要更新已有标签的缓存路径即可并将标签传播至新的位置即可,也就是将更新后的标签缓存在流式图对齐标签键值索引结构,第二种情况是待定查询图节点匹配已有标签的查询结构的新查询图节点,相当于最后对齐的查询图节点做了变动,此时依据新查询节点更新已有标签的最后对齐的查询图节点、图对齐状态中的图对齐分数、节点对齐信息、边对齐信息,并重置标签的缓存路径后将标签传播至新的位置即可。
[0056] 在一些实施例中,图对齐分数可通过计算成功匹配的查询图节点的数量和路径占总节点数量和路径的比例。关于图对齐分数的计算方式可根据实际需求进行调整,只需保证能反应图对齐的状态,并能合理设计阈值触发告警即可。也可以不以分数的方式体现,而采用集合匹配等任何反应图对齐状态的方式。
[0057] 在一些实施例中,该基于标签和图对齐的流式溯源图实时攻击检测方法额外包括步骤:当标签的图对齐分数达到设定阈值时触发告警。
[0058] 另外,为了进一步地减少标签造成的缓存压力,该基于标签和图对齐的流式溯源图实时攻击检测方法额外包括步骤:设置标签移除条件,当满足标签移除条件时移除标签。标签移除条件为标签数量上限或者传播次数上限,若标签的数量大于标签数量上限时移除标签,或者若标签的传输次数大于传播次数上限时移除标签。
[0059] 为了更清楚地展示流式溯源图上标签的传播过程,以下将结合图1进行示例性的说明。图1中由箭头连接的有向图为事件对应的流式溯源图,此时Firefox事件对应于种子节点或种子事件,故在该事件对应的当前溯源图节点初始化设置标签,对应的标签内容为:{图对齐分数:略;查询图:PersistentWithRegistry;最后对齐的节点:(1);图对齐状态:
[Pointer_Status],缓存路径:http://...//kinsing→Firfox};随后获取到新的事件为Reg.exe时,此时检测到流式图对齐标签键值索引结构已有标签,对事件同图对齐进行对齐后得到最后对齐的查询图节点为(3),则更新标签内容为:{图对齐分数:略;查询图:
PersistentWithRegistry;最后对齐的节点:(3);图对齐状态:[Pointer_Status],缓存路径:http://...//kinsing→Firfox→Reg.exe};随后获取到新的事件为HKCU\Software\Microsoft\Windows\CurrentVersion\Run C: \teme\evil.dll,对当前事件同图对齐进行对齐后得到最后对齐的查询图节点为(4),则更新标签内容为:{图对齐分数:略;查询图:
PersistentWithRegistry;最后对齐的节点:(4);图对齐状态:[Pointer_Status]  ,缓存路径为Reg.exe→HKCU\...\Run…)},当前溯源图节点触发告警,对应该流式溯源图的标签的传播过程如图1中的表格所示。
[0060] 该基于标签和图对齐的流式溯源图实时攻击检测方法的整体实现逻辑如图2所示。首先针对于查询图初始化设置种子节点/事件值索引结构,获取事件,判断事件及其主体或客体是否为种子节点/事件值索引结构中的种子节点和种子事件,若是的话则对在事件对应的溯源图节点上初始化设置标签并写入流式图对齐标签键值索引结构,若否则查询流式图对齐标签键值索引结构判断是有已存在标签,若有的话则基于流式图对齐标签键值索引结构进行标签的传播。若流式图对齐标签键值索引结构中的标签数量满足标签移除条件则从流式图对齐标签键值索引结构中移除标签。判断流式溯源图是否满足告警条件,若是的话告警若不是的话结束事件处理。
[0061] 实施例二
[0062] 基于相同的构思,参考图3,本申请还提出了一种基于标签和图对齐的流式溯源图实时攻击检测系统,包括:
[0063] 数据采集系统,用于实时采集事件;
[0064] 查询图数据库,用于预设至少一个对应于网络攻击或部分攻击行为的查询图,其中每一查询图由多个查询图节点按照攻击路径依次序连接得到,且为每一查询图选择至少一查询图节点设置种子节点或种子事件;
[0065] 实时分析系统,用于判断事件是否匹配种子节点或种子事件,若事件匹配种子节点或种子事件,在事件对应的溯源图节点上初始化设置标签并建立流式图对齐标签键值索引结构,其中流式图对齐标签键值索引结构缓存以溯源图节点为键、以标签ID为值的键值对,其中标签内设置标签ID、对应的查询图及查询结构、最后对齐的查询图节点、图对齐状态及缓存路径,图对齐状态的字段内设置图对齐分数、节点对齐信息以及边对齐信息,若事件未匹配种子节点或种子事件但流式图对齐标签键值索引结构中已存在标签,对事件和查询图进行图对齐以获取事件对齐的待定查询图节点,若待定查询图节点未匹配已有标签对应的查询结构中新的查询图节点,则仅更新已有标签的缓存路径并将更新的标签缓存在流式图对齐标签键值索引结构中,若待定查询图节点匹配已有标签对应的查询结构中新的查询图节点,则以新的查询图节点更新已有标签的最后对齐的查询图节点、图对齐状态及缓存路径并将更新的标签缓存在流式图对齐标签键值索引结构中。
[0066] 在一些实施例中,数据采集系统为日志采集器采集日志流事件,系统日志采集器可以基于eBPF、LTTng、Kernel Module、Event Tracing for Windows等底层数据采集工具构建。
[0067] 在一些实施例中,实时分析系统可基于Flink等开源流处理框架搭建,也可完全自己实现。实时分析系统可利用实施例一对应的方法对流式溯源图和查询图进行图对齐,图3中定义该方法为基于标签传递的流式图对齐。当然,实时分析系统中可加载其他流式分析算法以实现告警合并和告警判定。
[0068] 另外,基于标签和图对齐的流式溯源图实时攻击检测系统还包括离线系统,离线系统可对实时分析系统的分析结果进行人工分析、可视化处理等操作。
[0069] 关于实施例二同于实施例一的内容在此不累赘说明。
[0070] 实施例三
[0071] 本实施例还提供了一种电子装置,参考图4,包括存储器304和处理器302,该存储器304中存储有计算机程序,该处理器302被设置为运行计算机程序以执行上述任一项基于标签和图对齐的流式溯源图实时攻击检测方法的实施例中的步骤。
[0072] 具体地,上述处理器302可以包括中央处理器(CPU),或者特定集成电路(ApplicationSpecificIntegratedCircuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
[0073] 其中,存储器304可以包括用于数据或指令的大容量存储器304。举例来说而非限制,存储器304可包括硬盘驱动器(HardDiskDrive,简称为HDD)、软盘驱动器、固态驱动器(SolidStateDrive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(UniversalSerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器304可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器304可在数据处理装置的内部或外部。在特定实施例中,存储器304是非易失性(Non‑Volatile)存储器。在特定实施例中,存储器304包括只读存储器(Read‑OnlyMemory,简称为ROM)和随机存取存储器(RandomAccessMemory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(ProgrammableRead‑OnlyMemory,简称为PROM)、可擦除PROM(ErasableProgrammableRead‑OnlyMemory,简称为EPROM)、电可擦除PROM(ElectricallyErasableProgrammableRead‑OnlyMemory,简称为EEPROM)、电可改写ROM(ElectricallyAlterableRead‑OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(StaticRandom‑AccessMemory,简称为SRAM)或动态随机存取存储器(DynamicRandomAccessMemory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器304(FastPageModeDynamicRandomAccessMemory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(ExtendedDateOutDynamicRandomAccessMemory,简称为EDODRAM)、同步动态随机存取内存
(SynchronousDynamicRandom‑AccessMemory,简称SDRAM)等。
[0074] 存储器304可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器302所执行的可能的计算机程序指令。
[0075] 处理器302通过读取并执行存储器304中存储的计算机程序指令,以实现上述实施例中的任意一种基于标签和图对齐的流式溯源图实时攻击检测方法。
[0076] 可选地,上述电子装置还可以包括传输设备306以及输入输出设备308,其中,该传输设备306和上述处理器302连接,该输入输出设备308和上述处理器302连接。
[0077] 传输设备306可以用来经由一个网络接收或者发送数据。上述的网络具体实例可包括电子装置的通信供应商提供的有线或无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备306可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
[0078] 输入输出设备308用于输入或输出信息。在本实施例中,输入的信息可以是日志流等,输出的信息可以是图对齐情况等。
[0079] 可选地,在本实施例中,上述处理器302可以被设置为通过计算机程序执行以下步骤:
[0080] 预设至少一个对应于网络攻击或部分攻击行为的查询图,其中每一个查询图由多个查询图节点按照攻击路径依次序连接得到,且为每一查询图选择至少一查询图节点设置种子节点或种子事件;
[0081] 实时采集事件,判断事件是否匹配种子节点或种子事件,若事件匹配种子节点或种子事件,在事件对应的溯源图节点上初始化设置标签并建立流式图对齐标签键值索引结构,其中流式图对齐标签键值索引结构缓存以溯源图节点为键、以标签ID为值的键值对,其中标签内设置标签ID、对应的查询图及查询结构、最后对齐的查询图节点、图对齐状态及缓存路径,图对齐状态的字段内设置图对齐分数、节点对齐信息以及边对齐信息;
[0082] 若事件未匹配种子节点或种子事件但流式图对齐标签键值索引结构中已存在标签,对事件和查询图进行图对齐以获取事件对齐的待定查询图节点,若待定查询图节点未匹配已有标签对应的查询结构中新的查询图节点,则仅更新已有标签的缓存路径并将更新的标签缓存在流式图对齐标签键值索引结构中,若待定查询图节点匹配已有标签对应的查询结构中新的查询图节点,则以新的查询图节点更新已有标签的最后对齐的查询图节点、图对齐状态及缓存路径并将更新的标签缓存在流式图对齐标签键值索引结构中。
[0083] 需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
[0084] 通常,各种实施例可以以硬件或专用电路、软件、逻辑或其任何组合来实现。本发明的一些方面可以以硬件来实现,而其他方面可以以可以由控制器、微处理器或其他计算设备执行的固件或软件来实现,但是本发明不限于此。尽管本发明的各个方面可以被示出和描述为框图、流程图或使用一些其他图形表示,但是应当理解,作为非限制性示例,本文中描述的这些框、装置、系统、技术或方法可以以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备或其某种组合来实现。
[0085] 本发明的实施例可以由计算机软件来实现,该计算机软件由移动设备的数据处理器诸如在处理器实体中可执行,或者由硬件来实现,或者由软件和硬件的组合来实现。包括软件例程、小程序和/或宏的计算机软件或程序(也称为程序产品)可以存储在任何装置可读数据存储介质中,并且它们包括用于执行特定任务的程序指令。计算机程序产品可以包括当程序运行时被配置为执行实施例的一个或多个计算机可执行组件。一个或多个计算机可执行组件可以是至少一个软件代码或其一部分。另外,在这一点上,应当注意,如图中的逻辑流程的任何框可以表示程序步骤、或者互连的逻辑电路、框和功能、或者程序步骤和逻辑电路、框和功能的组合。软件可以存储在诸如存储器芯片或在处理器内实现的存储块等物理介质、诸如硬盘或软盘等磁性介质、以及诸如例如DVD及其数据变体、CD等光学介质上。物理介质是非瞬态介质。
[0086] 本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0087] 以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。