Approved for Public Release; Distribution Unlimited. Case Number 14-3549
Steven Noel, Eric Harley, Kam Him Tam, and Greg Gyor
Cyber Security Division
The MITRE Corporation
McLean, Virginia, USA
[snoel, eharley, ktam, ggyor]@mitre.org
我们介绍了一种新的建模框架,用于通过网络映射漏洞路径,并将其与观察到的攻击者活动相关联。我们融合了复杂的网络关系和事件,如拓扑、防火墙策略、主机配置、漏洞、攻击模式、入侵警报和日志。我们的持久层包括Neo4j,这是一个为图形优化的非唯一SQL(NoSQL)数据库。我们探讨了Neo4j属性图数据模型如何支持问题域内的分析和查询。为了与其他工具的互操作性,我们采用了标准化的网络安全数据交换语言。通过应用Neo4j Cypher查询语言,我们证明了我们的方法支持与现有攻击图工具相同的图分析。然后,我们通过更丰富的网络环境和攻击者/防御者活动模型扩展这些分析。我们的工作代表了基于图数据库的网络攻击图分析的首次研究,图数据库是NoSQL数据库的一个重要类别。
关键词攻击图;拓扑脆弱性分析;网络攻击建模;网络安全标准;集群计算;NoSQL数据库
01
—
引言
作为防御者,从对手的角度理解我们的网络至关重要。网络关系是复杂的,经常以意想不到的方式组合在一起。我们需要了解攻击者如何利用最初的立足点,通过网络扩大其影响力。与依赖外围防御和被许多点源淹没不同,需要一个攻击者在网络中移动的统一图像。
我们还必须扩展脆弱性的概念,超越通常对系统缺陷的假设。一旦进入网络,攻击者可以以其他被视为合法的方式行事,同时仍能实现其目标。此外,攻击者的移动不仅仅取决于主机漏洞和配置。主机在整个网络拓扑中的位置、安全机制(如防火墙(外围和内部)以及特定的访问策略规则都可以发挥作用。
建立这样一个全面的网络攻击关系网带来了重大挑战。我们必须关联来自多种来源的数据(拓扑、漏洞、客户端/服务器配置、策略规则、信任关系、安全事件等)集成到通用模型中。数据表示和持久性架构必须灵活且易于扩展,并自然映射到网络攻击关系。对于与其他工具的互操作性,我们应该在适用的情况下利用安全数据标准。
这种模型可能应用于各种用例(攻击性/防御性、主动性/反应性等),表明需要特别查询。在许多情况下,我们的查询和分析结果是复杂的图形关系,因此需要交互式图形可视化。
发现网络攻击关系代表了一个与简单分析静态数据截然不同的计算挑战。根据防火墙策略规则测试源和目标机器的组合是高度迭代的。基于MapReduce编程模型的流行大数据分析架构是面向批处理和基于文件的,对于迭代计算性能较差。
为了应对这些挑战,我们引入了一种通过网络映射多步骤攻击漏洞和事件依赖性的方法。我们建立了一个可能攻击路径的预测模型,该模型与网络事件(入侵警报、传感器日志等)相关。我们考虑的漏洞不仅是可利用的系统缺陷,还包括一旦攻击者在网络内站稳脚跟就可以利用的合法访问。
将检测到的攻击事件与潜在的攻击路径相关联,提供了最佳的响应选项,尤其是在保护关键资产方面,并提高了态势感知,例如推断错过的攻击步骤和识别误报。我们将生成的攻击图存储在Neo4j[1]中,这是一个NoSQL图形数据库。对于我们的问题域,这比关系数据库灵活得多,并且为图形分析提供了显著更好的性能。
02
—
以前的工作
人们提出了各种方法来分析通过网络的多步骤攻击。该问题域中的一个主要元模型是将攻击关系表示为图或树。这类图的抽象和语义因网络而异考虑中的实体和分析类型支持。
例如,图可以表示网络状态转换导致攻击目标[2][3],攻击者攻击步骤相关根据先决条件和后条件[4][5],入侵警报序列[6][7],攻击目标的逻辑相关性[8][9],或主机攻击可达性[10][11][12]。攻击图具有也使用关系模型[13]实现。我们将攻击图工具Cauldron[14]的结果显示为我们更丰富的模型的比较基准。这类方法的一个共同主题是关注图模型中有限的一组实体类型。
然而,真实环境中的安全问题非常严重更复杂。我们的目标是引入一个可扩展的的建模框架,可以包含丰富的关于网络环境和它们与潜在和实际对手活动的关系。
我们的数据模型包含标准化语言和MITRE等人开发的网络安全流程,统称为使安全性可衡量™ [15].这包括常见的漏洞和暴露(CVE)®[16],通用漏洞评分系统(CVSS)[17],共同弱点枚举(CWE)™ [18],公共平台枚举(CPE)™ [19] ,常见攻击模式枚举和分类(CAPEC)™ [20] ,网络可观察表达式(CybOX)™语言[21]和其他。
03
—
方法
图1显示了我们的系统组件通过网络映射攻击关系。我们摄入来自各种来源的数据,将其映射到公共环境模型。我们分析环境要素为潜在攻击路径建模,并将其与网络事件(警报、日志等)。我们存储结果Neo4j数据库中的攻击图。
图1.网络攻击映射组件。
我们从与攻击相关的各种来源(潜在和实际)获取数据。为此,主要依赖Splunk平台[22]。摄取过程使用标准化语言将数据映射到不可知(供应商中立)模型。Cauldron工具从漏洞扫描和防火墙配置中获取数据。我们为更丰富的数据模型提供了其他来源,包括网络流、IDS/IPS警报、防病毒日志、操作系统日志、主机清单代理和代理服务器日志。为了映射网络攻击关系,我们利用Apache Spark[23],它有一个内存计算模型,为Apache Hadoop[24]集群上的迭代计算进行了优化。作为输入,我们构建了网络环境和事件的模型,存储在MongoDB[25]中。
我们迭代分析的结果是潜在攻击步骤和相关网络事件的图,我们将其存储在Neo4j图形数据库中。图形数据库通过直接指针表示没有索引的节点邻接。当遍历图边时,关系模型依赖于昂贵的连接操作(笛卡尔乘积),对于n个图节点上深度d的遍历,其复杂性为O(nd)。在Neo4j中,遍历遵循直接链接(仅限边),因此复杂性仅取决于查询结果子图的大小,与整个图无关。
作为一个简单的示例,考虑图2。这说明了Cauldron工具所采用的攻击图模型。它定义了保护域(例如子网或飞地),其中包含有漏洞的机器。隐含地,一台机器可以触及其域中所有其他机器的漏洞。跨域图形边缘(漏洞攻击)是指通过网络(例如,通过防火墙)暴露的漏洞,可由其他域中的机器访问。
图2.保护域、机器、漏洞和漏洞利用
图3显示了图2中攻击图的Neo4j表示。Neo4j采用了属性图模型[26]。属性图包含节点和节点(顶点)以及关系(边)。命名节点和关系;关系是直接的。节点和关系还可以包含属性,这些属性是键值对。一种特定的特性是标签,用于定义节点或关系的组(类型)。
图3有四个节点标签{漏洞利用,机器,漏洞,域}和四个关系标签{IN,ON,LAUNCHES,AGAINST,VICTIM }。计算机域成员身份为:
这表示机器m位于保护域d中在两个方向上都需要边来支持图遍历查询,这是定向的。这允许在两者中进行遍历方向(从机器到域和域到机器),根据需要遵循特定的攻击流,包括攻击域内隐式可能的步骤。
图3.以属性图表示的攻击图。
这显式地编码了Cauldron中隐含的域成员身份。保护域抽象的一个优点是,域中机器之间的边数在机器数上是线性的,而不是二次的[27]。我们的属性图表示保留了这一优势。然而,在Cauldron中,隐式域成员身份被构建到系统中,并且在机器之间完全访问的假设不成立的情况下不能更改。在我们灵活的属性图表示中,我们可以简单地省略保护域,并通过利用漏洞显式连接机器。以下是机器m上漏洞v的表示:
然后从机器m1攻击机器m2上的漏洞v
将这种基本的攻击图表示作为属性图,我们可以执行与Cauldron工具相同的分析。为此,我们将Cypher查询语言[26]用于Neo4j。例如,此Cypher查询遍历图3的图形,查找特定机器对之间可利用漏洞的所有路径:
MATCH path =
(start:Machine {name:'Machine 1.1'})
-[r:LAUNCHES|VICTIM|IN*]->
(end:Machine {name:'Machine 3.1'})
RETURN path
图4显示了该查询的结果。此查询查找一个子图,该子图从机器1.1(域1)开始,到机器3.1(在域3)结束。它将匹配子图约束为类型为Launchs、Victor或IN的关系。这会产生机器、域和漏洞节点的路径。也就是说,它可以根据需要通过域和跨域查找从开始机器到结束机器的路径。
图4.两台选定机器之间路径的查询结果
04
—
说明性示例
在本节中,我们将研究我们的网络攻击建模方法。我们首先将其与现有的攻击图工具(Cauldron)进行比较。然后,我们扩展了具有更丰富内容的基线攻击图模型,以进行更深入的分析。图5显示了该示例的网络。
图5.网络作为示例
内部网络分为三个保护域(DMZ、任务客户端工作站和数据中心)。外部防火墙从外部保护内部网络,内部防火墙保护关键数据中心服务器。入侵检测传感器监控穿越防火墙的流量。图6是由Cauldron工具生成的攻击图:
图6.5的Cauldron攻击图
这表明DNS服务器存在已知漏洞,该漏洞(通过外部防火墙)暴露给外部。客户端工作站有两个漏洞,其中一个暴露于外部。在数据中心,数据库存在漏洞,尽管它被其他域(内部防火墙)阻止。虽然此处未显示,但Cauldron支持深入了解域内和域间漏洞的详细信息。假设这些详细信息是由漏洞扫描程序根据CVE提供的。
我们构建了包含域、机器、漏洞和漏洞的模型,如前一节所述。然后,我们将该模型扩展为属性图的附加节点和关系。这包括网络拓扑(在域之间放置防火墙)、CAPEC的攻击模式、NVD的漏洞详细信息和入侵警报。图7是结果Neo4j特性图。
图7.图5的Neo4j特性图模型
图7的属性图相对复杂。然而,目的并不一定是查看完整的图形。相反,属性图为分析和查询提供了丰富的框架。例如,考虑以下查询:
MATCH path = (start)-[r:IN|ROUTES*]->(end)
RETURN path
此查询查找属性图的IN和ROUTES关系,属性图定义网络拓扑(域、机器和防火墙设备)。图8是这个查询的结果。这显示了防火墙如何分离域,例如,识别用于网络加固的适当防火墙。
图8.显示网络拓扑的查询结果
接下来,假设生成了入侵警报(图7中的红色节点)。虽然Cauldron不支持此类实时事件,但这是对我们模型的一个向前扩展。然后考虑这个查询:
MATCH path = (start:Alert)
-[r:ALERT|AGAINST|VICTIM|ON*]->(end)
RETURN path
该查询从警报节点开始,然后遍历ALERT, AGAINST, VICTIM,和ON 关系,如图9所示。
图9.入侵警报之间的脆弱路径
通过在查询中包含AGAINST, VICTIM, and ON关系,遍历可以沿着潜在攻击路径(通过攻击节点)避开警报。之所以包括启动关系,是因为它跨越了查询结果节点集。该查询显示,“客户端缓冲区溢出”警报(针对任务客户端上的QuickTime漏洞)沿着可利用的路径指向“web应用程序指纹”警报(对数据库前端)。由此,我们可以推测警报可能是同一对手的多个攻击步骤。
MATCH path = (start:Alert)
-[r:ALERT|AGAINST|VICTIM|ON|LAUNCHES*]->
(end)
RETURN path
此查询添加了启动关系,以显示在远离警报时启动的所有攻击,而不仅仅是直接受害者。结果如图10所示。
图10.警报附近的脆弱路径
这表明,事实上,警报附近存在更大的潜在漏洞链:
针对任务客户端的客户端缓冲区溢出。
提升客户端上的数据库登录凭据。
从客户端登录数据库(通过web前端)。
指纹识别以发现后端数据库详细信息。
针对数据库的SQL注入攻击。
这种发现近警报之间漏洞路径的能力尤其重要,因为在许多情况下,关键的攻击者行为无法被检测到。
通过忽略警报,我们可以进一步扩展对攻击路径的搜索:
MATCH path = (start)
-[r:LAUNCHES|VICTIM|PREPARES*]->(end)
RETURN path
图11是查询结果。这将查找所有涉及AUNCHES, VICTIM, and PREPARES关系的路径。PREPARES关系表示在攻击链中,一个漏洞为另一个漏洞做好准备。然后,启动和受害者为每次攻击定义攻击者和受害者机器。
图11.攻击者和受害者的潜在利用链
此查询结果在链中引入了两种预备攻击:外部攻击者对DMZ中的DNS服务器进行缓存中毒,然后恶意网站进行欺骗攻击。这利用了DNS服务器中的漏洞,允许攻击者将域名解析到攻击者控制下的服务器。由此产生的欺骗攻击使恶意网站能够提供利用客户端漏洞的内容,从而危害客户端。
我们的网络攻击模型利用了在“使安全可衡量”框架下定义的各种标准。这包括针对已知漏洞的CVE、针对漏洞评分和分类的CVS、针对软件弱点的CWE以及针对易受攻击软件版本的CPE。安全数据的标准化语言有助于缩小自动模型生成的差距。例如,许多漏洞扫描器符合CVE,NIST维护的国家漏洞数据库(NVD)[28]报告了每个CVE漏洞的CVSS分数、CWE弱点和CPE软件版本。
例如,此查询查找与入侵警报相关的NVD内容:
MATCH path =(start:Alert)
-[r:ALERT|AGAINST|CVE|CVSS|SEVERITY|
METRICS|CWE|CPE|REFERENCES|
REFERENCE|CONTAINS*]->(end)
RETURN path
图12是查询结果。CVE节点是漏洞子树的根,是CVSS分数、CWE软件弱点和参考(如供应商公告)的节点。在本例中,不存在与指纹攻击相关的CVE漏洞。
图12.将NVD内容合并到属性图中
我们的模型还结合了CAPEC,这是社区开发的常见网络攻击模式目录。CAPEC目前包含450多种攻击模式,按从一般到特定的分类层次进行组织。CAPEC攻击模式获取有关针对网络资源的攻击类别的知识。每个攻击模式都包括有关攻击的特定阶段、易受攻击的表面、攻击者所需的资源以及减轻攻击的方法的详细信息。这为关联攻击的各种相关信息提供了参考框架。
此查询查找与特定入侵警报相关的CAPEC攻击模式内容:
MATCH path =(start:Alert
{name:'Client-Side BOF Alert'})
-[r: ALERT|AGAINST|CAPEC|PATTERN|
CHALLENGE|PHASE|CONTEXT|
MECHANISM|CONSEQUENCE|
MITIGATION|IMPACT*]->(end)
RETURN path
图13是查询结果
图13.与入侵警报相关的CAPEC攻击模式
05
—
摘要
我们描述了一个建模和分析框架,用于跟踪与观察到的安全事件相关的网络攻击漏洞路径。我们考虑各种关系,例如网络拓扑、防火墙、主机漏洞、潜在攻击模式和入侵警报。我们的模型利用了属性图形式主义,通过NoSQL图形数据库Neo4j实现。我们研究了属性图如何通过特殊查询支持网络攻击分析。在适当的情况下,我们的建模框架在使安全性可测量的语言套件下使用标准化的数据表示。
我们演示了我们的方法如何支持与现有攻击图工具(Cauldron)相同类型的分析。然后,我们扩展了基线分析,开发了更丰富的网络环境和攻击者活动模型。通过应用Neo4j Cypher查询语言,我们迭代探索攻击关系,构建更完整的安全状态图。
我们的工作代表了首次基于NoSQL图形数据库的网络攻击图分析研究。这些数据库架构针对图形分析进行了优化,尤其是遍历。这为我们的方法提供了一个灵活、可扩展、高性能的持久层。
我们根据已知的漏洞路径,为响应攻击提供了必要的环境。我们考虑的漏洞不仅是通常意义上的可利用系统缺陷,还包括一旦攻击者在网络内建立了立足点,就可以利用的合法访问,例如捕获登录凭据。通过这种方式,我们分析系统的相互依存关系,以映射攻击者如何以增量方式渗透网络。这使得我们的结果与高级持续威胁和恶意内部行为特别相关。
我们的分析指导了网络在攻击之前的加固。然后将潜在的攻击路径与检测到的攻击事件相关联。我们解决了丢失警报(误报)的问题,并推断观察到的攻击者存在,以跟踪攻击来源和下一步可能的步骤。这种环境为响应提供了最佳选择,尤其是保护关键资产,并提高了态势感知。总的来说,我们将不同的数据源组合成整体安全态势的全局图。
致谢
这项工作得到了MITRE创新计划(项目编号EPF-14-00341)的支持,Vipin Swarup担任信息领域负责人。
06
—
参考文献
[1] J. Partner, A. Vukotic, N. Watt, Neo4j in Action, Manning, 2014.
[2] R. Ritchey and P. Ammann, “Using model checking to analyze network vulnerabilities,” IEEE Symposium on Security and Privacy, 2000.
[3] O. Sheyner, J. Haines, S. Jha, R. Lippmann, and J. Wing, “Automated generation and analysis of attack graphs,” IEEE Symposium on Security and Privacy, 2002.
[4] P. Ammann, D. Wijesekera, and S. Kaushik, “Scalable, graph-based network vulnerability analysis,” ACM Conference on Computer and Communications Security (CCS), 2002.
[5] S. Jajodia, S. Noel, B. O’Berry, “Topological analysis of network attack vulnerability,” Managing Cyber Threats: Issues, Approaches and Challenges, Springer, 2005.
[6] P. Ning, Y. Cui, and D. Reeves, “Constructing attack scenarios through correlation of intrusion alerts,” ACM Conference on Computer and Communications Security (CCS), 2002.
[7] S. Noel, E. Robertson, and S. Jajodia, “Correlating intrusion events and building attack scenarios through attack graph distances,” Annual Computer Security Applications Conference (ACSAC), 2004.
[8] S. Mauw, M. Oostdijk, “Foundations of attack trees,” Lecture Notes in Computer Science Volume 3935, 2006.
[9] S. Noel, S. Jajodia, L. Wang, A. Singhal, “Measuring security risk of networks using attack graphs,” International Journal of Next-Generation Computing, 1(1), 2010.
[10] K. Ingols, C. Scott, K. Piwowarski, K. Kratkiewicz, M. Artz, R. Cunningham, “Validating and restoring defense in depth using attack graphs,” Military Communications Conference (MILCOM), 2006.
[11] S. Jajodia, S. Noel, “Topological vulnerability analysis,” Cyber Situational Awareness, Springer, 2010.
[12] J. Hong and D. Kim, “Scalable security models for assessing effectiveness of moving target defenses,” IEEE/IFIP International Conference on Dependable Systems and Networks (DSN), 2014.
[13] L. Wang, C. Yao, A. Singhal, S. Jajodia, “Implementing interactive analysis of attack graphs using relational databases,” IFIP WG 11.3 Working Conference on Data and Applications Security, 2008.
[14] S. Jajodia, S. Noel, P. Kalapa, M. Albanese, J. Williams, “Cauldron: mission-centric cyber situational awareness with defense in depth,” Military Communications Conference (MILCOM), 2011.
[15] R. Martin, “Making security measurable and manageable,” CrossTalk: The Journal of Defense Software Engineering, September/October 2009.
[16] The MITRE Corporation, Common Vulnerabilities and Exposures: The Standard for Information Security Vulnerability Names, https://cve.mitre.org/.
[17] FIRST, Common Vulnerability Scoring System (CVSS-SIG), http://www.first.org/cvss.
[18] The MITRE Corporation, Common Weakness Enumeration: A Community-Developed Dictionary of Software Weakness Types, http://cwe.mitre.org/.
[19] National Institute of Standards and Technology, Official Common Platform Enumeration (CPE) Dictionary, http://nvd.nist.gov/cpe.cfm.
[20] The MITRE Corporation, Common Attack Pattern Enumeration and Classification: A Community Resource for Identifying and Understanding Attacks, https://capec.mitre.org/.
[21] The MITRE Corporation, Cyber Observable eXpression: A Structured Language for Cyber Observables, https://cybox.mitre.org/.
[22] D. Carasso, Exploring Splunk, CITO Research, 2012.
[23] M. Zaharia, M. Chowdhury, T. Das, A. Dave, J. Ma, M. McCauley, M. Franklin, S. Shenker, and I. Stoica, “Fast and interactive analytics over Hadoop data with Spark,” ;login: Magazine, 37(4), 2012.
[24] M. Bhandarkar, “MapReduce programming with apache Hadoop,” IEEE International Symposium on Parallel & Distributed Processing, 2010.
[25] K. Chodorow, MongoDB: The Definitive Guide, O’Reilly Media, 2013.
[26] I. Robinson, J. Webber, and E. Eifrem, Graph Databases, O’Reilly, 2013.
[27] S. Noel, S. Jajodia, “Managing attack graph complexity through visual hierarchical aggregation,” ACM CCS Workshop on Visualization and Data Mining for Computer Security (VizSec), 2004.
[28] National Institute of Standards and Technology, National Vulnerability Database: Automating Vulnerability Management, Security Measurement, and Compliance Checking, http://nvd.nist.gov/.
源文件下载地址:
https://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=D2586AFC2F18BA115457615161630A48?doi=10.1.1.703.2499&rep=rep1&type=pdf
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...