基于知识图谱的智能告警关联框架

1 引言

随着计算机技术的迅速发展,网络病毒、拒绝服务/分布式拒绝服务以及其他网络攻击也在不断增长。为了应对日益复杂和隐蔽的网络安全威胁,有必要利用网络安全态势感知技术,整合多源安全设备产生的异构信息,以全面掌握网络环境。安全事件关联技术为上述问题提供了解决方案,它整合孤立的底层网络安全事件信息,并通过特定方法探索事件之间的真实联系 [1]。告警关联过程主要包含过滤、聚合和攻击场景重构 [2]。传统网络安全态势感知(CSSA)中的安全事件关联分析考虑了多个维度的信息,如网络基础设施维度、漏洞维度和网络威胁维度 [3]。然而,这类系统存在诸多问题。首先,传统的CSSA系统将不同维度的安全信息存储在独立的关系型数据库中,各维度之间的协同能力较差,难以进行实时准确分析。其次,关系型数据库在多维度信息的联合搜索方面效率不足。第三,传统的基于规则的关联分析需要依赖专家知识来构建攻击场景,缺乏自动推理的能力。

为此,本文提出了KGBIAC,该框架通过构建网络安全知识图谱,将独立的数据融合为更高级别的知识。我们的框架主要包括两部分:知识图谱构建以及利用知识图谱进行关联分析。首先,我们融合来自多种数据源的网络知识,构建一个统一的基于知识图谱的模型,该模型由漏洞知识库、网络基础设施知识库、网络威胁知识库和告警知识库组成,并详细说明了每个维度的数据来源。此外,我们还阐述了如何将这些子知识图谱连接起来,形成一个智能且有用的 kb。最后,我们在DARPA 2000数据集上进行了实验,验证了我们框架的可行性。

本文的其余部分组织如下。在第2节中,我们简要回顾相关工作。接着,在第3节中,我们详细介绍了所提出的框架,并通过一个案例研究展示了基于知识图谱的智能告警关联框架的强大分析能力,随后在第4节中进行性能分析。最后,我们在第5节中得出结论。

2 相关工作

对于关联过程而言,输入数据可以是单一数据源或多个数据源[4]。显然,使用多个数据源以获得更好结果的代价是由于不同输入之间的异构性,导致告警关联系统的复杂性增加。Y Zhang 等人提出了一种简单的数据融合技术,用于预处理大量原始安全数据[5]。这些数据生成了标准化资产数据集、威胁数据集、漏洞数据集和网络结构数据集。他们分析了资产、威胁、漏洞与安全事件之间的关系。Xin Zhuang 等人提出了一种系统——统一安全信息管理平台(USIM)[6]。在该系统中,他们专注于告警融合以减少告警数量,通过应用漏洞信息等上下文信息进行告警验证,并利用静态构建的知识库实现告警关联。然而,该方法缺乏对这些元素进行描述的规范化知识库模型,在一定程度上限制了告警关联及其他网络安全态势感知(CSSA)组件的灵活性和可扩展性。

近年来,一些研究人员提出了一些基于本体模型的网络安全态势感知(CSSA)新方法。GAO J 提出了一种基于本体的攻击模型 [7]。他们将攻击分为五个维度,包括攻击影响、攻击向量、攻击目标、漏洞和防御。随后,他们根据这五个维度构建了一个本体,并利用来自 NDV、CVE 等多种开源信息的数据填充攻击本体。最后,他们提出了一种基于本体的安全评估框架,并描述了本体在安全评估中的应用。Alireza S 等人提出了 ONTIDS,这是一种基于本体的告警关联框架,将四个维度的安全知识——告警信息、当前网络上下文、漏洞信息和攻击信息——存储在本体中[8]。他们描述了所设计本体的结构以及每个子本体的详细属性。ONTIDS 使用 SQWRL 进行告警关联并去除无关告警。Sumit M 等人提出了一种包含三个部分的本体基本类别:手段、后果和目标 [9]。他们应用推理逻辑语言来查找相关信息。然而,这些方法的共同问题是安全要素和指标的定义过于抽象。为了确保本体具有良好的灵活性和通用性,许多研究人员只能对概念和本体框架进行宽泛定义,导致其实用性和可操作性较差。

3 KGBIAC框架

我们的关联框架包含四层:多源告警采集层、告警归一化层、告警关联层和关联结果展示层。告警采集层通过部署NIDS Snort、HIDS OSSEC、防火墙以及漏洞扫描工具NMAP等不同的安全设备来收集多源安全证据。然而,这些告警通常具有异构性,无法直接使用。告警归一化层将其转换为统一格式,通常是IDMEF格式[10]。告警关联层是基于知识图谱的智能告警关联框架的核心组件,包括告警融合、告警验证和攻击链关联分析。关联结果展示层接收分析结果,并利用前端框架D3.js展示最终结果[11]。

我们将从以下四个方面展开。首先,介绍我们系统的知识图谱工具和查询语言。然后,详细说明子知识库的意义及其来源知识。此外,我们将子知识库整合为一个统一的知识图谱。最后,描述如何基于我们的知识图谱进行安全事件的关联。

3.1 知识图谱工具和RDF查询语言

知识图谱是谷歌用于增强其搜索引擎结果的知识库,通过从多种来源收集的语义搜索信息来提升搜索效果。当前的知识图谱已被用来指代各种大规模知识库。三元组是知识图谱的一种通用表示形式。G =(E, R, S) 表示整个知识图谱,其中 E ¼ e1; e1;…;en 是知识图谱中实体的集合,包含 n 种类型的实体;R ¼ r1;r2;…;rm 是知识图谱中关系的集合,包含 Rj j 种类型的关系;SE R E 表示知识图谱中三元组的集合。实体之间通过边相连,每个实体都具有一组属性。常见的开放知识图谱包括 Freebase [12],、Wikidata [13] 和 DBpedia [14]。

我们采用Blazegraph作为我们的知识库工具。Blazegraph是一个高性能图数据库,支持RDF/SPARQL API。它支持在单台服务器上处理大规模的边,并使用SPARQL作为知识查询工具。SPARQL(SPARQL协议和RDF查询语言)是一种RDF查询语言,能够检索和操作以资源描述框架(RDF)格式存储的数据[15]。

3.2 子知识库

网络基础设施知识库 收集并存储当前系统环境的整体配置信息,包括静态信息和动态信息。静态信息主要指不频繁更改的信息,主要包括硬件和软件。官方通用平台枚举(CPE)收集当前已知的软硬件规格,并通过统一资源描述符进行唯一标识,是表示特定操作系统或应用软件的有用工具。此外,动态网络基础设施信息,如当前网络环境中的IP地址和MAC地址,也需要保存在知识图谱中。

漏洞知识库 通过知识图谱的形式组织所有已公布的漏洞。漏洞通常是攻击者发动攻击的重要依据。首先,我们从国家漏洞数据库(NVD)获取所有已知漏洞,其中包含大量CVE条目。此外,我们还将通用漏洞评分系统(CVSS)与CVE条目一同纳入知识图谱。CVSS为所有漏洞提供风险评分,从而确定漏洞的严重性。几乎每个CVE条目都指向一个通用缺陷枚举规范(CWE)条目,该条目标明单一的漏洞类型。

网络威胁知识库 枚举了已知的攻击模式,攻击者通常利用这些攻击模式来 exploiting 网络基础设施中的漏洞。CAPEC(通用攻击模式枚举与分类)是攻击威胁的重要知识来源。每个 CAPEC 条目描述了攻击方式、攻击步骤、攻击威胁等级和攻击应对措施。图1展示了 CAPEC 知识图谱。每个节点代表一种攻击模式,边表示攻击模式之间的父子关系。

告警知识库 。告警传感器根据入侵检测系统(IDS)检测到的异常行为生成告警。常用的 IDS 传感器包括 NIDS 和 HIDS。NIDS 的使用频率高于 HIDS。常见的 NIDS 包括 Snort、Bro、AIDE 等。目前我们仅将 Snort 告警规则添加到知识图谱中。未来我们将融合更多其他 IDS 规则的知识。

3.3 知识图谱融合

我们已经描述了本系统中的所有子知识库,包括网络基础设施知识库、漏洞知识库、网络威胁知识库和告警知识库。接下来,我们将说明如何将这些独立的知识库整合成一个统一的网络安全知识图谱。

每个漏洞都指向一组CPE条目,因此这两个知识库的节点之间存在边。此外,通过漏洞扫描工具可以扫描主机上存在的漏洞。因此,我们也可以将漏洞知识库与动态的网络基础设施知识库连接起来。

每个漏洞都引用了一个CWE,而每个CAPEC都关联着多个CWE条目。因此,我们可以通过CWE建立CAPEC与CVE之间的连接,并且CAPEC与CVE之间存在一对多的关系,因为许多漏洞与同一种类型的攻击相关。

目前,我们仅存储了Snort告警规则,其中部分规则明确引用了特定的CVE条目。因此,我们可以在这两个知识库之间建立间接关系。未来,我们将寻找其他方法来扩展这两个知识库之间的关联。

3.4 基于知识图谱的事件关联

告警归一化是一项重要的任务,用于将告警整理为统一格式并提取所需信息。为了满足这一需求,系统使用正则表达式进行日志归一化和信息抽取,然后调用检测器的信息抽取引擎。利用该引擎提取关键信息,例如告警生成时间、告警源IP、目的IP以及日志描述。

告警融合 。该阶段的主要目的是将来自不同检测器但针对同一事件的告警日志进行合并。合并两条或多条告警的原则是:这些告警在时间窗口内生成,且告警属性一致。这些告警属性包括源IP、目的IP等。

告警验证 。此步骤的目的是过滤由未成功攻击产生的无关告警。此时可以使用SPARQL语句,结合已建立的知识图谱快速查询有用的知识。假设当前主机有一条Snort告警,编号为14607。首先通过SPARQL检索目标主机的所有漏洞,然后检索与该告警相关的漏洞。如果该漏洞存在于主机的漏洞集合中,则该告警为正确告警。否则,该告警将被过滤为误报。

攻击链关联分析 。攻击链关联分析的过程是基于现有告警来预测攻击者真实意图。假设存在一条告警Snort‐14607,我们可以智能地分析与此告警相关的CVE条目以及其他相关Snort告警和CAPEC信息。通过图2我们可以发现 Snort‐14607直接引用了CVE‐2007‐2139,并且与CAPEC‐100和Snort‐29581 存在间接关系。

4 性能评估

我们使用已知的DARPA 2000作为实验数据集,并重放LLDDOS 1.0攻击场景。MITficial提供了他们收集的告警数量。此外,我们使用Snort嗅探该攻击场景。表1列出了这两部分告警的数量。我们在该数据集上测试了本框架的性能,并与属性相似性方法和D‐S证据理论方法进行比较。这两种方法属于经典告警关联方法。表2显示了三种方法分析后剩余的告警数量。图3展示了这些方法的有效性。从图中我们可以清楚地发现,我们的框架表现最佳。此外,在关联过程中,Snort传感器检测到Snort‐1918(表示检测到扫描行为)和Snort‐1957(表示攻击者尝试ping远程过程调用(RPC)sadmind)。通过基于知识图谱的智能告警关联框架(KGBIAC),我们发现这些告警与CVE‐1999‐0977相关。该CVE指出,Solaris sadmind中的缓冲区溢出漏洞允许远程攻击者获取root权限。由此我们可以推断,攻击者的真实目的是利用Solaris sadmind的缓冲区溢出漏洞来获取root权限。

阶段攻击描述 MIT告警 Snort告警 减少比率
1 主机检测 31 38
2 漏洞扫描 32 160
3 系统入侵 35 70
4 木马安装 22 32
5 DDoS发动 1754 3201

表1. MIT告警数量和Snort告警数量

阶段 属性相似性方法 D‐S 证据理论 我们的方法
1 19 12 3
2 32 26 13
3 30 22 8
4 13 11 5
5 650 130 37

表2. 减少后的剩余告警

5 结论

本文中,我们提出了一种基于知识图谱的告警关联框架。我们主要介绍了如何构建网络安全知识图谱,以及如何利用该知识图谱进行告警关联分析。

为了弥补分散的知识库存储的安全信息维度不同而导致各维度之间缺乏协同的问题,我们提出了KGBIAC框架。我们提出的框架具有通用性,易于被其他系统采用,并且可以非常灵活地扩展知识库。但目前我们仅集成了开源的结构化网络安全知识。未来,我们将挖掘更多相关的安全知识以扩展我们的知识图谱,例如从自然语言描述信息中提取攻击场景。此外,我们还将进一步优化告警关联方法,以提高准确率、精确度和召回率。

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐