用于网络攻击图的大数据架构——表示NoSQL图形数据库中的安全关系

来源:Big-Data Architecture for Cyber Attack Graphs——Representing Security Relationships in NoSQL Graph Databases

摘要:网络攻击图的构造在文献中得到了很好的研究。然而,以前的方法通常只针对固定的数据模型应用特定的算法集。我们将介绍一种更灵活的方法,用于基于通用和可扩展体系结构的攻击图建模、分析和可视化。在这个体系结构中,模型模式是隐式的,并且随着可用的数据源而发展,而不是在设计时就预先确定。图形模式匹配查询提供了针对任意图形结构的灵活分析能力。然后,我们以一种通用的方式处理查询结果,以实现可视化。我们的高度可伸缩的实现包括面向文档的NoSQL数据库、用于集群计算的Apache Spark和Neo4j图形数据库。我们使用一种新的攻击图模型来说明我们的方法,该模型通过网络安全数据的标准化语言,将复杂的网络数据混合在一起,包括拓扑、防火墙策略、漏洞、攻击模式和入侵警报。

一、引言

网络关系是复杂的,经常会被对手以意想不到的方式组合在一起。我们需要了解网络攻击者如何利用最初的立足点,通过网络扩展其影响范围。网络不需要依靠周界防御,也不需要被许多信息源所淹没,而是需要一个通过网络的攻击者移动的统一图像。

我们还必须扩展我们对漏洞的概念,超越通常认为的系统缺陷。一旦进入网络,攻击者就可以以合法的方式进行攻击,同时还能达到他们的目标。此外,攻击者的移动并不仅仅依赖于主机漏洞和配置。主机在整个网络拓扑中的位置、防火墙(包括外围和内部)等安全机制以及特定的访问策略规则都可以发挥作用。

建立这样一个全面的网络攻击关系网络提出了重大的挑战。我们必须将来自许多来源的数据(拓扑、漏洞、客户机/服务器配置、策略规则、信任关系、安全事件等)关联到一个公共模型中。用于数据表示和持久性的体系结构必须灵活且易于扩展,并自然地映射到网络攻击关系。为了与其他工具的互操作性,我们应该在适用的地方利用安全数据标准。

这样的模型对各种用例(进攻/防御、主动/被动等)都有潜在的应用,这表明需要特别的查询。在许多情况下,我们的查询和分析结果是复杂的图关系,这就激发了交互式图可视化的需求。

为了解决这些挑战,我们引入了一种通过网络映射多步攻击漏洞和事件相关性的方法。我们建立了一个可能攻击路径的预测模型,并将其与网络事件(入侵警报、传感器日志等)关联起来。我们考虑的漏洞不仅是可利用的系统缺陷,而且是合法的访问,一旦攻击者在网络内建立了立足点,就可以利用这些访问。

将已检测到的攻击事件与潜在的攻击路径相关联,可以提供最佳的响应选项,特别是在保护关键资产方面,并提高态势感知能力,例如,推断错过的攻击步骤和识别误报。我们将生成的攻击图存储在一个名为Neo4j[1]的NoSQL图形数据库中。这对于我们的问题域比关系数据库灵活得多,并为图形分析提供了更好的性能。

二 前期工作

人们提出了各种各样的方法来分析通过网络进行的多步攻击。在这个问题领域中,一个主要的元模型是将攻击关系表示为图或树。这类图的抽象和语义根据考虑的网络实体和支持的分析类型而有所不同。

例如,图可以表示导致攻击目标[2][3]的网络状态转换,攻击者利用前置条件和后置条件[4][5]相关的攻击步骤,入侵警报序列[6][7],攻击目标[8][9]的逻辑依赖关系,或者主机攻击可达性[10][11][12j]。攻击图也通过关系数据库模型[13]实现。我们展示了攻击图工具坩埚[14]的结果,作为比较我们更丰富的模型的基线。

这类方法的一个共同主题是关注图数据模型中有限的实体类型集。这些系统通常都是用固定的数据模型和算法设计的,这使得扩展到新的数据源和分析的成本很高。然而,实际环境中的安全问题非常复杂,并且总是在不断地发展。我们的目标是一个可扩展的、可伸缩的框架,它可以合并关于潜在的和实际的敌对活动的各种数据,支持特殊查询和查询结果的交互式可视化。

我们的数据模型集成了网络安全的标准化语言(由MITRE和其他人开发),统称为“使安全可测量™[15]”。这包括常见漏洞和暴露(CVE)®[16]、常见漏洞评分系统(CVSS)[17]、常见漏洞枚举(CWE)™[18]、常见平台枚举(CPE)™[19]、常见攻击模式枚举和分类(CAPEC)™[20]。

三 方法

图1显示了通过网络映射攻击关系的系统组件。我们从各种来源获取数据,将它们映射到公共环境模型。我们分析潜在攻击路径的环境模型元素,并将它们与网络事件(警报、日志等)关联起来。我们将生成的攻击图存储在Neo4j数据库中。

我们从各种与攻击相关的来源(潜在的和实际的)获取数据。为此,我们主要依赖Splunk平台[21]。摄取过程使用标准化的语言将数据映射到一个不可知的(与供应商无关的)模型。Cauldron 工具从漏洞扫描和防火墙配置中获取数据。我们为更丰富的数据模型提供了额外的来源,包括网络流、IDS/IPS警报、反病毒日志、操作系统日志、主机库存代理和代理服务器日志。对于映射网络攻击关系(例如,在防火墙规则中测试源/目标/协议/端口组合),我们利用Apache Spark[22],它有一个内存计算模型,为Apache Hadoop[23]集群上的迭代计算进行了优化。作为输入,我们构建一个网络环境和事件的模型,存储在MongoDB[24]中。

我们的迭代分析的结果是一个潜在攻击步骤和相关网络事件的图,我们将其存储在Neo4j图数据库中。图数据通过直接指针表示无索引的节点邻接。在遍历图边时,关系模型依赖于昂贵的连接操作(笛卡尔积),复杂度为b(nd),用于在n的图节点中进行深度d的遍历。在Neo4j中,遍历遵循直接链接(仅限边),因此复杂度只取决于查询结果子图的大小,而与整个图无关。

作为一个简单的例子,考虑图2。这说明了Cauldron 工具所采用的攻击图模型。它定义了包含有漏洞的机器的保护域(例如,子网或enclave)。隐式地,一台机器可以触及其域内所有其他机器的漏洞。跨域图边(漏洞)是通过网络(例如,通过防火墙)暴露的漏洞,其他域中的计算机可以访问这些漏洞。

用于网络攻击图的大数据架构——表示NoSQL图形数据库中的安全关系_第1张图片

图3显示了图2中攻击图的Neo4j表示。Neo4j使用属性图模型[25]。属性图包含节点和节点(顶点)以及关系(边)。节点和关系被命名;直接的关系。节点和关系还可以包含属性,这些属性是键值对。一种特殊的属性是标签,它定义节点或关系的组(类型)。


图3有四个节点标签{Exploit, Machine, Vulnerability, Domain}和四个关系标签{IN, ON, launch, AGAINST, VICTIM}。机器域成员是:

用于网络攻击图的大数据架构——表示NoSQL图形数据库中的安全关系_第2张图片

这表示机器m处于保护域d中。两个方向都需要边来支持有方向性的图遍历查询。这允许在两个方向(从机器到域和域到机器)进行遍历,根据需要跟踪特定的攻击流,包括在域内隐式可能的攻击步骤。

这显式地对Cauldron中隐式的域成员进行编码。保护域抽象的一个优点是,域内机器之间的边缘数量与机器数量成线性关系,而不是二次[26]。我们的属性图表示保留了这种优势。然而,在Cauldron中,隐式域成员关系构建到系统中,并且在机器之间完全访问的假设不成立的情况下不能更改。在我们灵活的属性图表示中,我们可以简单地忽略保护域,并通过漏洞显式地连接计算机。

下面是机器m上漏洞v的表示:

然后利用机器m1的漏洞e攻击机器m2上的漏洞v:

用于网络攻击图的大数据架构——表示NoSQL图形数据库中的安全关系_第3张图片

将这个基本的攻击图表示为一个属性图,我们可以执行与Cauldron工具相同的分析。为此,我们利用Cypher查询语言[25]来实现Neo4j。例如,这个Cypher查询遍历图3中的图,找到特定的一对机器之间的所有可利用漏洞路径:

用于网络攻击图的大数据架构——表示NoSQL图形数据库中的安全关系_第4张图片

图4显示了这个查询的结果。

这个查询在机器1.1(域1)上寻找一个子图,在机器3.1(域3)上结束。这将产生机器、域和利用节点的路径。也就是说,它可以根据需要找到从开始机器到结束机器的路径,以及通过和跨域的路径。

四、说明性的例子

在本节中,我们将研究我们的网络攻击建模方法。我们首先将其与现有的攻击图工具(Cauldron)进行比较。然后,我们使用更丰富的内容扩展基线攻击图模型,以便进行更深入的分析。图5显示了这个示例的网络。

内部网络分为三个保护域(DMZ、任务客户端工作站和数据中心)。外部防火墙从外部保护内部网络,内部防火墙保护关键数据中心服务器。入侵检测传感器监视通过防火墙的交通。图6是由Cauldron工具生成的攻击图。


用于网络攻击图的大数据架构——表示NoSQL图形数据库中的安全关系_第5张图片

这表明DNS服务器有一个已知的漏洞,该漏洞(通过外部防火墙)暴露给外部。

客户机工作站有两个漏洞,其中一个暴露在外部。在数据中心,数据库有一个漏洞,尽管它被(内部防火墙)从其他域阻止。虽然没有在这里显示,Cauldron支持钻到详细的漏洞内和跨域。假设这些细节是由漏洞扫描器根据CVE提供的。

我们构建包含域、机器、漏洞和漏洞的模型,如前一节所述。然后,我们将模型扩展为属性图的其他节点和关系。这包括网络拓扑结构(在域之间放置防火墙)、来自CAPEC的攻击模式、来自NVD的漏洞细节和入侵警报。图7是最终的Neo4j属性图。

图7的属性图比较复杂。但是,我们的目的不一定是查看完整的图表。相反,属性图为分析和查询提供了丰富的框架。例如,考虑以下查询:

此查询查找属性图的IN和route关系,这些关系定义了网络拓扑(域、计算机和防火墙设备)。图8是这个查询的结果。这展示了防火墙如何分隔域,例如,识别用于网络加固的适当防火墙。

接下来,假设已经生成了入侵警报(图7中的红色节点)。然后考虑这个查询:

用于网络攻击图的大数据架构——表示NoSQL图形数据库中的安全关系_第6张图片

此查询从警报节点开始,然后遍历警报(ALERT)、针对(AGAINST)、受害者(VICTIM)和ON关系,结果如图9所示。

通过在我们的查询中包含针对(AGAINST)、受害者(VICTIM)和ON关系,遍历会沿着潜在利用(通过利用节点)的路径从警报遍历。包含启动关系是因为它跨越查询结果节点集。该查询显示,“客户端缓冲区溢出”警报(针对任务客户机上的QuickTime漏洞)会导致“web应用程序指纹”警报(针对数据库前端)。由此,我们可以推测警报可能是同一对手的多个攻击步骤。

我们可以通过这个查询扩展漏洞利用的范围:

用于网络攻击图的大数据架构——表示NoSQL图形数据库中的安全关系_第7张图片

此查询添加了启动关系,以显示从警报遍历时启动的所有攻击,而不仅仅是直接的受害者。结果如图10所示。

这表明,事实上,警报附近有一个更大的潜在漏洞链:

•针对任务客户端的客户端缓冲区溢出。

•解除客户端上的数据库登录凭证。

•从客户端登录数据库(通过web前端)。

•通过指纹识别发现后端数据库细节。

•对数据库sql注入攻击。

这种发现临近警报之间的漏洞路径的能力特别重要,因为在许多情况下,关键的攻击者行为没有被发现。

我们可以通过忽略警报来进一步扩展利用路径的搜索:

图11是查询结果。这将找到所有涉及启动(LAUNCHES)、受害者(VICTIM)和准备(PREPARES)关系的路径。准备关系表示在一连串的攻击中,一个攻击为另一个攻击做准备。启动和攻击者然后为每个攻击定义攻击者和攻击者的机器。

该查询结果在链中引入了两个预备攻击:由外部攻击者对DMZ中的DNS服务器进行缓存中毒,然后由恶意web站点进行网址嫁接攻击。这利用了DNS服务器中的一个漏洞,该漏洞允许攻击者将域名解析为受攻击者控制的服务器。由此产生的网址嫁接攻击让恶意网站提供利用客户端漏洞的内容,损害客户端。

该查询结果在链中引入了两个预备攻击:由外部攻击者对DMZ中的DNS服务器进行缓存中毒,然后由恶意web站点进行网址嫁接攻击。这利用了DNS服务器中的一个漏洞,该漏洞允许攻击者将域名解析为受攻击者控制的服务器。由此产生的网址嫁接攻击让恶意网站提供利用客户端漏洞的内容,损害客户端。

我们的网络攻击模型利用了安全可测量框架下定义的各种标准。这包括用于已知漏洞的CVE,用于漏洞评分和分类的CVSS,用于软件弱点的CWE,以及用于脆弱软件版本的CPE。安全数据的标准化语言有助于缩小自动化模型生成的差距。例如,许多漏洞扫描器是CVE兼容的,由NIST维护的国家漏洞数据库(NVD)[27]报告CVSS分数,CWE弱点,和每个CVE漏洞的CPE软件版本。

例如,该查询发现与入侵警报相关的NVD内容:

用于网络攻击图的大数据架构——表示NoSQL图形数据库中的安全关系_第8张图片

图12是查询结果。CVE节点是漏洞子树的根,是CVSS评分、CWE软件弱点和引用(例如,供应商公告)的节点。在本例中,不存在与指纹漏洞相关的CVE漏洞。

我们的模型还整合了CAPEC,一个社区开发的常见网络攻击模式目录。CAPEC目前包含超过450种攻击模式,组织在一个从一般到特殊的分类层次结构中。CAPEC攻击模式捕获针对网络资源的攻击类别的知识。每个攻击模式都包含关于攻击的特定阶段、易受攻击的攻击面、攻击者所需的资源和减轻攻击的方法的详细信息。这为关联攻击的各种相关信息提供了一个参考框架。

该查询发现与特定入侵警报相关的CAPEC攻击模式内容:

用于网络攻击图的大数据架构——表示NoSQL图形数据库中的安全关系_第9张图片

图13是查询结果。


五 总结

我们描述了一个开放的可扩展的建模和分析框架,用于跟踪通过网络的网络攻击脆弱性路径,与观察到的安全事件相关。我们考虑各种关系,如网络拓扑、防火墙、主机漏洞、潜在的攻击模式和入侵警报。我们的模型利用了通过Neo4j(一个NoSQL图形数据库)实现的属性图形式。我们的建模框架采用了标准化的数据表示,采用了安全可度量的语言套件。

我们将演示我们的方法如何支持与现有攻击图工具(Cauldron)相同类型的分析。然后我们扩展基线分析,开发更丰富的网络环境和攻击者活动模型。通过Neo4j Cypher查询语言的应用,我们迭代地探索攻击关系,构建更完整的安全状态图。

我们的工作代表了基于NoSQL图形数据库的攻击图分析的第一次研究。这些数据库架构针对图分析进行了优化,尤其是遍历。这为我们的方法提供了一个灵活的、可伸缩的、高性能的持久层。

我们根据已知的漏洞路径为响应攻击提供了必要的上下文。我们考虑的漏洞不仅是通常意义上的可利用的系统缺陷,而且是合法的访问,一旦攻击者在网络内建立了立足点,可以利用,例如,捕获登录凭证。通过这种方式,我们分析了系统的相互依赖关系,以映射攻击者是如何逐步渗透网络的。这使得我们的结果与高级持续威胁和恶意内部行为特别相关。

我们的分析指导在攻击之前加强网络。然后,将潜在的攻击路径与检测到的攻击事件关联起来。我们解决了错过警报(假阴性)的问题,并推断观察到的攻击者的存在,以跟踪攻击的起源和下一步可能的步骤。此上下文为响应提供了最佳选项,特别是在保护关键资产方面,并提高了态势感知。总的来说,我们将不同的数据源组合成整体安全态势的全局图。

你可能感兴趣的:(用于网络攻击图的大数据架构——表示NoSQL图形数据库中的安全关系)