攻击推理-安全知识图谱应用的困境思考
2021-09-17 10:56:38 Author: blog.nsfocus.net(查看原文) 阅读量:44 收藏

阅读: 3

一、摘要

知识图谱(Knowledge Graph)是谷歌在2012年提出的,其旨在实现更智能的搜索引擎,并且于2013年以后开始在学术界和业界普及。目前,随着智能信息服务应用的不断发展,知识图谱已被广泛应用于智能搜索、智能问答、个性化推荐、情报分析、反欺诈等领域。随着知识图谱技术不断发展,现在已不仅仅局限于语义搜索相关应用,还成为了解决抽象知识与底层数据之间语义鸿沟问题的主要方法。

安全知识图谱(Cyber Security Knowledge Graph)是知识图谱在安全领域中的应用。安全知识图谱主要包括安全知识图谱构建和安全知识图谱应用两部分。关于安全知识图谱的构建的技术已经有大量的研究与落地工作。安全知识图谱的应用现在还处于起步阶段,其主要的应用威胁情报,在企业安全运营中的应用较少。本文针对安全知识图谱的相关工作进行了详细分析。首先,介绍了安全知识图谱已有的工作;然后,介绍安全知识图谱在企业安全运营中的难点;最后,对一些可行的方法进行探讨。

二、安全知识图谱的现状

安全知识图谱是知识图谱在网络安全领域的实际应用,包括基于本体论构建的安全知识本体架构,以及通过威胁建模等方式对多源异构的网络安全领域信息进行加工、处理、整合,转化成为的结构化的智慧安全领域知识库。本节主要介绍已有的安全知识图谱的相关工作。

2.1 STUCCO本体

STUCCO本体[1,2]是一种经典的安全领域本体。通过采集安全系统中的数据,提取领域概念和关系,并将这些信息集成到网络安全知识图中以加速决策制定。其目的是把数据组织成知识图谱,安全分析师将能够快速搜索领域概念,加快对决策所需信息的访问,使分析师能够更快地识别可以作为误报丢弃的事件,并根据相关上下文执行更彻底的分析以做出决策。

图1给出了STUCCO本体模型示例。图中每个节点代表本体模型的一类实体,节点间的连接代表实体间关系。例如,归属于某组织的攻击者利用攻击工具或恶意程序,发起对某个IP主机的攻击事件,该攻击工具或恶意程序利用了某款软件存在的安全漏洞。

图1 STUCCO本体的实体与关系

STUCCO更偏于对威胁情报的相关知识进行表示,更多的就应用于对事后溯源调查事件的解释与说明,与当前的检测设备无法有效的关联,很难直接应用到威胁狩猎与威胁检测应用中。

2.2 UCO本体

UCO[3]是一种新的网络安全本体,是一种表示网络安全领域知识的通用表示形式。UCO是一种以stix2.0为基础,集成了CVE,CCE,CVSS,CAPEC,CYBOX,KillChain和STUCCO的更全的本体。如文献[4]是基于UCO本体进行的相关的安全知识图谱构建工作。

图2 UCO本体与其他知识的映射关系

UCO的开发目标是易于扩展,针对不同的场景可以有效的集成其他领域本体。

2.3 恶意样本知识图谱

MALOnt[5]是一种比较经典的恶意样本的本体。MALOnt的构建是通过对数百个恶意样本报告的分析。MALOnth 的上层类与属性包括:malware实体、恶意样本家族、攻击者、攻击组织、攻击目标、行为和地理位置。与stix2.0中的恶意样本类相比更丰富,hasCharacteristics关系描述了样本实体到攻击行为的映射关系,实现了知识图谱到底层日志之间的映射。

三、安全运营中知识图谱应用的现状

通过前一节的对安全知识图谱相关知识梳理,可以看到安全知识图谱与传统知识图谱具有一定的差异。安全知识图谱与传统知识图谱的差异也导致传统知识的一些方法很难应用到安全知识图谱中。安全知识图谱与传统知识图谱的差异主要有两个方法:1 安全知识图谱与底层日志之间存在巨大的语义鸿沟。传统领域知识图谱是针对固定领域构建,数据与知识有天然的耦合性。安全知识图谱大多是对攻击相关的信息构建的描述的是攻击事件相关的知识,而日志数据是系统与网络侧的日志包含正常的用户行为与攻击行为,这就导致安全知识图谱与底层数据描述的不是同一领域,实现安全知识图谱与底层数据直接关联是不现实的。2 攻击数据较少,且攻击模式多样与传统的知识图谱推理的假设冲突。传统的知识图谱推理技术也是挖掘大多数数据的规律来补全缺失的关系,在安全知识图谱中攻击相关的数据相对正常系统行为只占少数,利用传统知识图谱方法进行推理预测得到的只能是正常用户的行为,与威胁检测与威胁狩猎的目标相左。安全知识图谱与传统知识图谱这两点差异成为了制约安全知识图谱应用的关键。下面分别对这两个问题进行详细说明。

3.1 知识图谱与日志之间的语义鸿沟

当前安全知识图谱的构建大多是基于stix2.0为基础,结合已有的安全知识库CVE,CPE,CAPEC和ATT&CK等进行构建的,这些数据构建的图谱描述的是更抽象的攻击相关的信息,与底层的系统日志和网络告警日志没有直接的关联。对于安全运营人员来说,日志数据是其处理的关键。因此,关联日志与知识图谱是安全知识图谱在安全运营中应用的关键。

但是日志数据与知识图谱中实体之间的关系不是一对一的关系,在不同场景下会有不同的对应关系。依靠人工完成日志到安全知识图谱的标记映射显然是不现实的。如何完成这种语义鸿沟的跨越是当前安全知识图谱应用的挑战。

图3 安全知识图谱与日志数据

3.2 攻击模式的多样性

在真实攻击过程中攻击者的攻击方法是灵活动变的,会根据受害者环境进行动态调整。想要挖掘这些攻击行为之间的因果关系或提取相关知识需要大量的攻击数据。大量攻击数据的获取是不现实的。当前安全知识图谱攻击模式的相关信息主要是通过APT报告和恶意样本报告获取。这些报告的攻击方法复杂多样,不具有普遍性,跟日常安全运营中常见的攻击方法完全不同。使用从这些报告获取的攻击模式来推理预测日常安全运营中的攻击步骤显然是不可行的。

四、安全知识图谱应用的难点与探索

当前关于安全知识图谱已有了大量的研究工作,但是主要工作还是集中在安全知识图谱的构建。文献[6,7]通过事件报告抽取安全知识构建相应的知识图谱。文献[8]通过知识图谱的关系推理技术实现恶意样本知识图谱补全。而关于安全知识图谱的应用则比较少。那么安全知识图谱到底有没有用,如何用?下面围绕这个问题进行探讨。

以企业安全运营为例,安全运营人员每天需要处理成百上千万的告警日志,当前主要是依靠人力。已有一些基于AI的技术用来提高安全运营人员的效率,这些方法主要是利用异常检测的思路从海量的日志中找到异常的行为日志。基于安全运营专家人工进行排查的效率显然是非常低的,而且不同安全运营人员本身的知识水平不同会导致不同的结果。而基于异常检测的方法通常会有较高的误报率。

当前安全知识图谱描述的通常是上层抽象的知识,如图3所示,上层知识图谱描述的攻击相关的抽象表示,而底层日志是网络层告警日志与系统日志。由于表示的异构性上层知识与底层日志缺少直接关联。这种问题也可以描述成上层抽象的知识与底层日志之间的存在语义鸿沟。如何解决这个问题是安全知识图谱的应用落地的关键。下面从三个方面讨论安全知识应用的可能。

4.1 知识的补充

安全知识图谱与日志之间的语义鸿沟问题是制约安全知识图谱应用的关键,导致这个问题的一个主要原因是安全知识图谱是描述安全事件相关的抽象知识,而日志信息记录的是网络流量和系统行为,其不仅包含攻击事件相关的信息也包含了系统正常运行的相关信息。因此,为了解决这种语义鸿沟问题需要加入相关的知识,使知识图谱与底层数据在同一领域。

图4 webshell攻击场景的通用知识扩展

图4描述的是一个webshell攻击场景。攻击者利用系统文件上传漏洞上传了webshell文件chopper.php,然后利用该文件操作终端。从系统日志仅能看到进程httpd.exe写文件和操作命令行,在不考虑httpd.exe进程的所涉及到的知识的情况下,这种行为在系统中比较常见。安全专家人工研判的过程是什么?httpd.exe进程是apache中间件的系统进程,webshell攻击是利用web中间件实现的。通过丰富相关的知识可以实现att&ck webshell攻击技术到httpd.exe进程的关联。有文件的Webshell攻击通常会上传一个可执行文件,通过webshell文件的相关知识可以完成从att&ck webshell技术到chopper.php的关联。

通过对相关知识补充可以实现安全知识图谱与日志的语义关联。然后,基于图分析方法可以实现威胁识别与攻击溯源。但是,这种知识扩展的方法完全依靠人工,而且所涉及到的知识面特别广,几乎涉及到了计算机与网络的各个方面。该方法面临三个主要的挑战:1 扩展的知识的质量无法保证;2 方法无法有效的扩展到其他攻击场景中;3 涉及到知识面过于庞大,需要投入大量的人工,投入与产出不成正比。

4.2 间接关系挖掘

间接关系挖掘是指通过技术方法挖掘安全知识图谱中实体与底层日志之间的关系。当前已有很多方法可以借鉴。一类是基于规则的方法,比如熟知的IPS/IDS、waf设备等都是基于规则从海量日志中提取具有攻击语义的告警信息。但是这些方法误报太多,同时无法关联到当前的安全知识图谱中。另一类方法通过数据挖掘的方法挖掘安全知识图谱实体与底层日志之间的关系,如恶意样本识别与家族分类。

如图4所示。通过分析文件chopper.php的内容,实现chopper.php到样本家族china chopper的关联[9]。同时chopper.php的样本分析可以关联于att&ck的相关技术上。通过这些方法实现了安全知识图谱到日志数据的间接关联。但是这种方法也存在局限。

4.3 数据驱动的知识挖掘

前两种方法主要依靠专家知识根据固定攻击场景添加相关知识或是规则。这在安全运营过程中很难有效的落地。

图5 njRAT样本行为子图提取

文献[8]提出了一种有效的方法来从攻击事件报告中提取有效的攻击行为子图。为了解决安全知识图谱与日志之间的语义鸿沟问题,因此需要一种自动化的方法提取有效的攻击相关的知识。

攻击事件报告通常是描述通常描述了攻击事件的详细信息。如图中左侧所示为njRAT样本的行为子图。该子图可以作为安全知识图谱中njRAT样本的一个实例,通过该子图可以实现安全知识图谱与系统日志的直接关联。基于此安全知识图谱可利用一些图分析方法实现攻击溯源与威胁检测。

五、总结

当前安全知识图谱的相关工作已经进入到应用阶段,而安全运营作为安全的主要环节对安全知识图谱有较大的需求。为了降低安全运营人员的门槛,减少安全运营人员的工作量,引入安全知识图谱实现攻击调查的半自动化就成了安全运营的关键。但是安全知识图谱与日志之间的语义鸿沟以及攻击数据的多样性导致安全知识图谱应用变的困难。而完全依靠人工来实现从知识到日志的跨越,这种投入与产出不成正比。如何来有效的实现安全知识图谱在安全运营的应用还有待于进一步探索。

参考文献

[1] Michael Iannacone, Shawn Bohn, Grant Nakamura, et al. Developing an Ontology for Cyber Security Knowledge Graphs[J]. Proceedings of the 10th Annual Cyber and Information Security Research Conference on – CISR ’15. 2015.

[2] https://github.com/stucco/ontology.

[3] Syed Z ,  Padia A ,  Finin T , et al. UCO: A Unified Cybersecurity Ontology[C]// AAAI Workshop on Artificial Intelligence for Cyber Security. 2016..

[4] Pingle A ,  Piplai A ,  Mittal S , et al. RelExt: Relation Extraction using Deep Learning approaches for Cybersecurity Knowledge Graph Improvement[C]// 2019 IEEE/ACM International Conference on Advances in Social Networks Analysis and Mining (ASONAM). IEEE, 2020.

[5] Rastogi N ,  Dutta S ,  Zaki M J , et al. MALOnt: An Ontology for Malware Threat Intelligence[J].  2020.

[6] Satvat K ,  Gjomemo R ,  Venkatakrishnan V N . EXTRACTOR: Extracting Attack Behavior from Threat Reports[J].  2021.

[7] Piplai A ,  Mittal S ,  Joshi A , et al. Creating Cybersecurity Knowledge Graphs From Malware After Action Reports[J]. IEEE Access, 2020, 8:211691-211703.

[8] N  Rastogi,  Dutta S ,  R  Christian, et al. Information Prediction using Knowledge Graphs for Contextual Malware Threat Intelligence[J].  2021.

[9] https://www.4hou.com/posts/51ZX

版权声明

本站“技术博客”所有内容的版权持有者为绿盟科技集团股份有限公司(“绿盟科技”)。作为分享技术资讯的平台,绿盟科技期待与广大用户互动交流,并欢迎在标明出处(绿盟科技-技术博客)及网址的情形下,全文转发。
上述情形之外的任何使用形式,均需提前向绿盟科技(010-68438880-5462)申请版权授权。如擅自使用,绿盟科技保留追责权利。同时,如因擅自使用博客内容引发法律纠纷,由使用者自行承担全部法律责任,与绿盟科技无关。


文章来源: http://blog.nsfocus.net/stucco-cyber/
如有侵权请联系:admin#unsafe.sh