开源开放 | 开源立体化漏洞情报知识图谱(四维创智)

OpenKG地址:http://openkg.cn/dataset/vuln-sprocket

开放许可协议:CC BY-SA 4.0 (署名相似共享)

贡献者:四维创智(李德斌,孙基栩,鲍晨阳)


1. 前言

随着时间的推移,攻防技术的不断提升,组件的漏洞与日俱增,随之出现的各类漏洞情报也如雨后春笋一般疯狂涌现,使技术人员在想快速、全面地搜集漏洞情报时,会应接不暇,无法把握情报中心。

虽然,市面上已经出现许多漏洞情报平台来帮助大家去搜集情报,管理情报。但不同厂家的漏洞情报平台的内容侧重点也都有倾侧。

注重漏洞全面,而忽视了漏洞情报的垂直性,往往只有漏洞的基本信息,类似CVE、CNVD等官方漏洞情报平台。

具备一定的垂直漏洞情报搜集能力,能采集到漏洞的中文简介、漏洞POC等信息,但由于该类信息往往由平台运营人员手动采集或编写,在漏洞覆盖面上就会出现纰漏,存在一定的漏报和误报,比如seebug、exploit-db等厂商。

某个工具或框架自主研发或编写的漏洞POC、EXP及自主构建的漏洞情报信息,类似MSF、Nessus、xray等,这类EXP、POC情报价值非常高,是研究人员所重点关注的,但往往这类情报与其他漏洞的情报关联度不高,容易出现孤岛节点。(与CVE/CPE/CWE等标准脱节)

基于上述调研结果,我们不难发现,漏洞情报平台目前主要问题便是:

1. 站在不同角度的厂商对漏洞情报搜集的侧重点不同,导致技术人员想要全面了解某一漏洞的相关情报,就需要跳转多个厂商进行情报查阅;

2. 不同厂商之间的漏洞情报相对孤立,每个厂商都有自己的一套情报标注标准,关联不同厂商情报时,会出现情报重复的现象;

3. 当前各类漏洞情报平台所包含的漏洞情报限制性相对较大,对互联网上散落的弱关联情报并没有很好的采集和分析能力;

根据上述问题,我们尝试采用知识图谱技术对互联网上的开源漏洞情报进行整合和分析,并构建了以CVE漏洞管理方法为标准的漏洞情报平台。我们将它命名为"vuln_sprocket",下面我们将介绍该图谱的构建方案。

2. 知识图谱构建

2.1 漏洞情报实体、关系的选择简析

在进行知识抽取前,我们首先要明确,什么是漏洞情报。我们的理解是:针对某一漏洞,所有对了解该漏洞有帮助的信息,都可以称之为该漏洞的漏洞情报在这里,需要明确的是,漏洞需要了解哪些信息,以及怎样的信息才算是对了解该漏洞有帮助。

通过实战经验以及与一线人员交流得到的反馈,我们总结以下几点比较受到关注的漏洞情报信息:漏洞基础信息、漏洞编号 (包括但不限于CVE、CNVD、EDB-ID)、漏洞危害类型(命令执行、注入、溢出等)、漏洞利用方式(远程、本地)、是否存在利用风险(宕机、数据删除)、漏洞危害等级 (低、中、高)、漏洞简介 (英文、中文)、漏洞作用组件 (厂商、组件、版本)、漏洞分析、漏洞原理机制、漏洞复现过程、漏洞复现靶场、漏洞利用工具、漏洞检测、利用过程分析、漏洞检测代码、漏洞利用代码、漏洞权限提升代码、防御措施、漏洞补丁信息、漏洞白盒检测方式、漏洞具体解决方案、漏洞流行度、热度等趋势分析。针对漏洞之间的关系比较感兴趣的几个点是:

1. 漏洞之间的是否存在组合利用的可能性

2. 漏洞作用的组件是否存在供应链

3. 能否根据某组件已知漏洞情报去推断可能存在的新漏洞

4. 能否对漏洞情报进行分析,能够合并内容相同但发布平台不同的漏洞情报

2.2 实体及关系概念构建

根据以上调研,我们不难发现,在这其中,“漏洞”这个实体概念,是作为情报关联的关键。用户关心“漏洞”的攻击收益,关心“漏洞”的作用对象,关心“漏洞”的原理、防守方案等等。因此,在参考stix 2.1 当中对实体和关系的描述后,我们确定以“漏洞”为核心的原始实体及概念关系,如下图。

1c7b1a39e394bc6c44dfe5ab4aed7ac8.png

并且,我们以漏洞为中心点,根据其他实体与漏洞关系位置的不同对其进行如下的逻辑分层。

1e1be61b0508e28b64b82776bc7d58ce.png

1. 组件层(漏洞作用的目标)

A. 软件、操作系统

B. 组件分类信息

2. 漏洞层(中心点)

A. 漏洞基础信息

3. 情报层 (对了解漏洞有帮助的信息)

A. 漏洞情报(对漏洞基础信息进行补充,包括中文翻译、参考链接、漏洞类型等其他属性的补充)

B. 漏洞分析文章(完善漏洞分析情报,包括漏洞分析、复现过程、POC/EXP利用分析、防御措施分析等内容 )

C. 漏洞检测/利用工具情报( 完善漏洞工具的情报,包括发布时间、编写语言、POC/EXP来源等信息)

4. 实例层 (情报的详细说明或对情报的补充拓展信息)

A. 工具源码(包含工具源代码信息)

B. 工具脚本 (包含工具脚本的基础信息以及工具调用/触发所需的场景信息)

C. 具体的复现靶场/镜像

2.3 实体及关系提取

图谱中绝大多数的知识都是通过对半结构化数据转换得来。需要注意的是,在CWE(软件脆弱性类型数据集)和CAPEC(攻击类型枚举和分类数据集)的官方定义中便包含有两者之间及各个数据集内部的关系,可以进行直接的引用。

CAPEC和CWE的关系是“战术与执行者”的关系,意为“某个攻击类型所表示的攻击行为其作用对象是一个组件的某个脆弱点”。CAPEC标准的数据结构包含的“Related_Weaknesses”字段表述该攻击类型所利用的脆弱点列表。

025c2b45981a6841d6bdeab996358487.png

图 1 CAPEC所利用的脆弱性列表

无论是CAPEC还是CWE,在其标准内部也存在不同实体的关系,CAPEC对于攻击类型之间关系的描述保存在该标准中“Related_Attack_Patterns”字段,CWE对于脆弱性之间关系的描述保存在该标准中“Related_Weaknesses”字段。

d00fa641ff32e24cea2319e056836ece.png

图 2 CAPEC之间的关系描述

bd19efc6ddd6df7d46c397eb0d27bd69.png

图 3 CWE之间的关系描述

3. 推理规则构建及隐性关系发掘

在信息搜集过程中,单一的搜集方式会导致信息搜集不全面,或信息误报。通过构建组件、服务、系统等实体之间的关系,并推理之间的间接关系,可完善并发现隐性的资产信息。

确定好原始实体后,我们尝试对实体之间的关系进行分析,除了常规的包含或归属关系外,我们针对组件层,添加了 “depend_on” 这样的一个关系,用来表示组件供应链关系中的依赖关系。这是因为,依赖关系是作用在组件之间的强关联关系(当a依赖b时,若a存在则b一定存在),在进行推理时可以通过该关系进行信息拓展。

3.1 依赖关系发掘

CPE(Common Platform Enumeration的缩写)是一个以标准化方式为软件应用程序、操作系统及硬件命名的方法。最大的漏洞库CVE中对软件的描述便是使用了CPE标准。基于统一资源标识符 (URI) 的通用语法,CPE 包括正式名称格式、用于根据系统检查名称的方法以及用于将文本和测试绑定到名称的描述格式。在CPE的字段中,常常包含一定的软件依赖信息,如“cpe:2.3:a:10web:10websocial:-:*:*:*:*:wordpress:*:*”中描述了10websocial 和 WordPress的依赖关系。

同时,在维基百科上,对软件的描述中,也会包含一些依赖关系。当然这类数据,由于软件名并不是使用的CPE标准格式,因此,首先需要进行非标准描述映射标准描述的工作。在这里,我们主要使用的方法有相似度匹配、人工筛选以及基于CVE漏洞描述的关联推理。

952d5ff003a500adba8ab24f4df55945.png

3.2 依赖关系推理应用实践

根据依赖关系的特性,我们构建如下规则:

1. 软件依赖关系为强关联规则,即关系可靠度为1

2. 软件依赖关系存在“继承”属性,即当a软件所依赖的b软件存在c软件的依赖关系,则a软件与c软件也存在依赖关系

3. 软件依赖关系,若a依赖b组件,则b为a的必要条件。即,当a存在时,b必然存在。

基于以上规则,在信息搜集时,便可以通过推理进行信息补全。

假设,在图谱中存在如下知识:

(n:Software{name:”NextGEN_Gallery”})-[:plugin_for]->(ma:Software{name:”WordPress”})

这里需要注意的是,“plugin_for”与“depend_on”具备同等效果,不同的是,“plugin_for”具备标注依赖关系中,其中一方是另一方的“插件”的作用

当我们在初步信息搜集时,发现了该目标使用了“NextGEN Gallery”组件(“WordPress”组件的一个插件),但由于该目标修改了有关“WordPress”的相关特征,并使用了伪静态。使我们只获取到了“NextGEN Gallery”信息,届时便可以基于上述知识进行关联,确定组件 “WordPress”的存在,并可以根据规则2,推理出其他组件,如图(红线为规则3推理所得)

c1cb6c814c1f0dfe6b792c69b64247b3.png

4. 总结

知识图谱作为“认知智能”技术典型代表,在网络安全领域中的应用具备天然优势。尤其是在情报组织、分析,辅助决策任务,路径规划等方面,随着知识图谱技术的不断发展其应用空间会非常广泛。

本文所构建的情报虽说均来自于互联网开源漏洞情报信息,但其丰富程度已然超过许多商业情报平台,这不难发现,在如今的互联网时代下,公开情报通过精细的采集、分析后其丰富程度仍是商业情报平台无法比拟的,且情报获取速度较商业情报,在大规模应用中也将快于商业情报许多,于精耕细作某一细分方向的商业情报源比较来说,自然是无法达到它所拥有的速度和准确度,但仍不妨开源漏洞情报在诸多领域的广泛应用。

相信在可见的未来,知识图谱相关技术在开源漏洞情报分析领域,会有它无法替代的作用和意义。


OpenKG

OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。

2d1bd74ef7dea15dad84279476b04a85.png

点击阅读原文,进入 OpenKG 网站。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/477810.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 515. 在每个树行中找最大值(层序遍历)

1. 题目 您需要在二叉树的每一行中找到最大的值。 示例: 输入: 1/ \3 2/ \ \ 5 3 9 输出: [1, 3, 9]来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/find-largest-value-in-each-tree-row 著作…

GBDT是如何成为推荐系统顶级工具人的?

文 | 水哥源 | 知乎Saying1. 集成学习的ensemble注意一定要读作昂三姆包而不是印三姆包,一天一个算法工程师装x小技巧2. 区别bagging和boosting的准则是,先训练的模型对于后训练的模型是否有影响3. GBDT中,B(boosting)…

会议交流 | 如何提升推荐系统的可解释性?——DataFunSummit2022知识图谱在线峰会...

背景介绍知识图谱及特征学习结合智能推荐,可解决数据稀疏性及冷启动问题,更好的提升推荐决策场的准确性、多样性及可解释性,进而提升各个场景的推荐决策效率和体验。3月12日13:30-16:50,在DataFunSummit2022:知识图谱在…

LeetCode 143. 重排链表(链表反转+快慢指针)

1. 题目 给定一个单链表 L:L0→L1→…→Ln-1→Ln , 将其重新排列后变为: L0→Ln→L1→Ln-1→L2→Ln-2→… 你不能只是单纯的改变节点内部的值,而是需要实际的进行节点交换。 示例 1: 给定链表 1->2->3->4, 重新排列为…

论文浅尝 | 采用成对编码的图卷积网络用于知识图谱补全

笔记整理:姚祯,浙江大学在读硕士,研究方向为知识图谱表示学习,图神经网络。论文引用:Liu S, Grau B, Horrocks I, et al. INDIGO: GNN-based inductive knowledge graph completion using pair-wise encoding[J]. Adva…

调研了下 AI 作曲,顺便做了期视频...快进来听歌!

文 | 白鹡鸰编 | 小轶视频 | 白鹡鸰嗨,大家好!这里是卖萌屋,我是白鹡鸰。今天和大家聊聊人工智能作曲。人工智能在音乐领域的应用已经非常常见了,像听歌识曲、曲风分类、自动扒谱等等,而 利用机器来替代人类作曲 &…

LeetCode 1275. 找出井字棋的获胜者(位运算)

1. 题目 A 和 B 在一个 3 x 3 的网格上玩井字棋。 井字棋游戏的规则如下: 玩家轮流将棋子放在空方格 (" ") 上。第一个玩家 A 总是用 “X” 作为棋子,而第二个玩家 B 总是用 “O” 作为棋子。“X” 和 “O” 只能放在空方格中,而…

论文浅尝 | DSKReG:基于关系GNN的推荐知识图谱可微抽样

笔记整理:李爽,天津大学硕士链接:https://dl.acm.org/doi/pdf/10.1145/3459637.3482092动机在信息爆炸的时代,推荐系统被广泛研究和应用,以发现用户的偏好信息。RS在冷启动时性能较差,如果将知识图谱(Knowl…

数据开放平台的配置管理

背景 美团是数据驱动的技术公司, 非常重视使用数据的效率。为了达到这个目标,我们将数据以开放平台的形式开放给需求方。例如,帮助需求方开发报表的报表开放平台,帮助需求方获取数据的自助查询平台,让需求方参与数据建…

LeetCode 1271. 十六进制魔术数字(进制转换)

1. 题目 你有一个十进制数字,请按照此规则将它变成「十六进制魔术数字」:首先将它变成字母大写的十六进制字符串,然后将所有的数字 0 变成字母 O ,将数字 1 变成字母 I 。 如果一个数字在转换后只包含 {“A”, “B”, “C”, “…

评测任务征集 | 全国知识图谱与语义计算大会(CCKS 2022)

评测任务征集全国知识图谱与语义计算大会(CCKS 2022)2022年8月25-28日,秦皇岛http://sigkg.cn/ccks2022/全国知识图谱与语义计算大会(CCKS: China Conference on Knowledge Graph and SemanticComputing)由中国中文信息…

SegmentFault 美团云采访实录

约半年前,美团悄然上线了美团云(Meituan Open Services,简称MOS),这是美团网根据自身虚拟化平台开发和运维经验开放的云计算服务,类似AWS。 美团 CEO 王兴可能是中国最知名的连续创业者,曾创办校…

开局一段扯,数据全靠编?真被一篇“神论文”气到了

文 | 苏剑林(追一科技)编 | 智商掉了一地看来以后我们看论文的时候,不仅要关心论文成绩的可复现性,还要留意它们的求和、均值、方差等有没有算错,否则真的是“无奇不有”!!这篇文章谈一下笔者被…

LeetCode 147. 对链表进行插入排序(链表)

1. 题目 对链表进行插入排序。 插入排序的动画演示如上。从第一个元素开始,该链表可以被认为已经部分排序(用黑色表示)。 每次迭代时,从输入数据中移除一个元素(用红色表示),并原地将其插入到…

征稿 | 软件学报专刊征文:知识赋能的信息系统

伴随着人工智能的浪潮,智慧信息系统的发展方兴未艾,正处于由感知智能到认知智能转变的关键时期。要实现认知智能的系统跃升,离不开知识的赋能。在数字化转型背景下,数据对象和交互方式的日益丰富和变化,对以知识图谱为…

基于Flume的美团日志收集系统(二)改进和优化

在《基于Flume的美团日志收集系统(一)架构和设计》中,我们详述了基于Flume的美团日志收集系统的架构设计,以及为什么做这样的设计。在本节中,我们将会讲述在实际部署和使用过程中遇到的问题,对Flume的功能改进和对系统做的优化。 …

LeetCode 462. 最少移动次数使数组元素相等 II(数学)

1. 题目 给定一个非空整数数组,找到使所有数组元素相等所需的最小移动数,其中每次移动可将选定的一个元素加1或减1。 您可以假设数组的长度最多为10000。 例如: 输入: [1,2,3] 输出: 2说明: 只有两个动作是必要的(记得每一步仅可…

embedding亦福亦祸?XGBoost与LightGBM的新机遇

文 | 水哥源 | 知乎Saying1. 小的性能差异在容易实现面前一文不值,这一点是XGBoost和LightGBM的最大优势2. 没能与embedding很好地结合无疑是树模型的灾难,吃不下巨量的新数据,也打不过DNN,除了一些规模比较小的公司,树…

论文浅尝 - ACL2022 | 面向推理阅读理解的神经符号方法

转载公众号 | 南大Websoft概述近两年来NLP领域出现了一些富有挑战性的机器阅读理解数据集,如ReClor和LogiQA。这两个数据集中的问题需要对文本进行逻辑推理,然而传统的神经模型不足以进行逻辑推理,传统的符号推理器不能直接应用于文本。为了应…

LeetCode 1026. 节点与其祖先之间的最大差值(二叉树DFS)

1. 题目 给定二叉树的根节点 root,找出存在于不同节点 A 和 B 之间的最大值 V,其中 V |A.val - B.val|,且 A 是 B 的祖先。 (如果 A 的任何子节点之一为 B,或者 A 的任何子节点是 B 的祖先,那么我们认为…