知识图谱系列Paper 1:Open-CyKG: An Open Cyber Threat Intelligence Knowledge Graph

news2024/11/17 10:06:05

向前进!

一、摘要

Instant analysis of cybersecurity reports is a fundamental challenge for security experts as an immeasurable amount of cyber information is generated on a daily basis, which necessitates automated information extraction tools to facilitate querying and retrieval of data. Hence, we present Open-CyKG: an Open Cyber Threat Intelligence (CTI) Knowledge Graph (KG) framework that is constructed using an attention-based neural Open Information Extraction (OIE) model to extract valuable cyber threat information from unstructured Advanced Persistent Threat (APT) reports. More specifically, we first identify relevant entities by developing a neural cybersecurity Named Entity Recognizer (NER) that aids in labeling relation triples generated by the OIE model. Afterwards, the extracted structured data is canonicalized to build the KG by employing fusion techniques using word embeddings. As a result, security professionals can execute queries to retrieve valuable information from the Open-CyKG framework. Experimental results demonstrate that our proposed components that build up Open-CyKG outperform state-of-the-art models.1

二、研究背景和挑战

为了理解不同网络攻击的手段及后果,网络安全专家们借鉴网络安全报告,但这些报告通常是非结构化的,造成信息难以被检索和获取。
面临如下问题:
1、在信息抽取中,实体和关系通常被预先定义。
2、缺少有效存储信息的数据结构。
3、构建知识图谱时面临冗余&模糊的问题。

三、研究内容

1、一个不预先设定实体类别的系统—【此步主要由OIE完成,可是后期用NER时,不也需要设定吗】
2、设计基于注意力机制的s2s OIE模型
3、设计NER模型(感觉没什么创新)
4、使用NER的label和word embedding完成KG的实体融合
5、演示KG功效—一个查询系统

四、方法

1、整体结构—三个模块

(1)OIE提取三元组
(2)NER给词汇打标签
(3)KG构建—进行实体消融
在这里插入图片描述

2、KG消融具体方法

(1)平均实体中的所有词嵌入向量
(2)使用HAC方法进行聚类----不需要预定义簇的个数+complete linkage clustering(如下图)

The complete linkage clustering is fitting in KG canonicalization as demonstrated in [38] as small-sized clusters are expected as opposed to single and average linkage clustering. Fig. 6 illustrates the canonicalized version of Fig. 5, where nodes are merged after the clustering process

在这里插入图片描述
(3)决定聚类代表
与平均距离最近的节点

五、实验与结果

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、总结

几个有意思的未来方向
1、补全+链路预测
2、动态推理
3、多语言

Despite their value and practicality, KGs usually suffer from incompleteness, redundancy, and ambiguity that might translate to uninformative query results. First and foremost, we are in the process of acquiring more cybersecurity data from AAR reports to carry out a large-scale experiment. In future work we will shift our attention to KG completion and link prediction to further enhance the strength of the generated KG. Additionally, we would like to explore the possibility of extending the KG model to include a dynamic reasoning component instead of completely relying on static information to build the KG. A final interesting addition would be to construct a multi-lingual or cross-lingual KG to support machine translation-based applications. All in all, we foresee that in the near future KGs will become sufficiently mature to provide added value to daily practices in cybersecurity and beyond.

七、个人评价

(一)positive

1、OIE这个名词对我来说还是很新鲜的,不预定实体和关系种类地去做抽取。
2、neo4j的用法确实可以好好研究一下,最后的示例挺有意思。
3、文中所举的关于KG消歧作用(加强数据关联性,避免节点孤岛)的例子很直观。
4、文章写作不错,有理有据。

(二)question/negative

后续的NER再给实体分类。但是我觉得这篇论文NER解释的不是很清楚,既然NER是预定种类的,就有必要把图谱构建时候的种类写清楚。
然而,作者却说没有该数据集的标注信息(如下),那么KG是如何生成的呢?

As the MalwareDB dataset has no named entities annotation we could not train or evaluate our model based on MalwareDB extractions. In this section, we will discuss the datasets used to train and validate our NER neural network described in Section 3.2.

还是说NER这个模块是多余的?有没有都无所谓?如何理解NER这个模块在其中的作用呢?如果如下所述,模型都没训练,如何label呢?

First, an attentionbased OIE architecture for extracting domain-independent relational triples from unstructured data. Second, a NER model for automatic labeling of cybersecurity terms. More precisely, we start by extracting structural relation tuples from APT reports using OIE, which are later populated in the KG with the help of the NER task.

八、其他知识

1、span OIE model

开放信息抽取(OIE)是信息抽取的一种全新的范式,主要思想是减少人工参与,无监督地进行信息抽取,抽取那些实体、关系未定义地情形。


我把span翻译成“文段”。Cambridge dictionary的定义是:the length of something from one end to the other,所以在一段文本里,就是连续的若干token (usually represented as word in English or character in Chinese)。

作者:sulley
链接:https://www.zhihu.com/question/450683401/answer/1794295308
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

2、bootstrapping pattern-based approach for tuple extraction.

(1)一个少量标注数据集+一个分类模型
(2)一个评价标注效果的方法

Bootstrapping过程形式化描述为:
对于给定的自然语言处理任务,选取特定的有指导的训练分类模型的方法。然后需要两个数据集,一般是少量的标注数据集L和为标注的数据集U。然后逐步通过未标注的数据集U来扩大标注的数据集。从而训练处最终的分类器实现具体的自然语言处理任务。
通过未标注数据集扩大标注数据集的过程如下:
1.使用已经标注的数据集L(可能是非常少量的数据集),应用选择的分类方法训练分类器h,h的作用主要是用于标注未标注数据集中的标注分类,通常可能是一些启发式规则等。
2.使用h对U进行标注分类目的是从U中获取到标注的数据。
3.在(2)中获取的标注数据中选择置信度较高的数据作为标注数据加入到标注数据集;
4.重复上述过程直到满足迭代结束条件。
Bootstrapping是一个能利用较少的标注语料获取到置信度较高的多量的标注语料的反复迭代的过程。Bootstrapping方法是通过两个主要的过程实现的,首先是提供一个少量语料就能够有效的进行分类的启发式规则或者时其他分类方法,其次是对分类器产生的新的标注语料进行评价的方法。通过评价来获得置信度较高的标注语料,这样通过迭代就可以获取到更大的标注数据集。迭代终止条件是给定一个迭代次数的阈值,或者时产生新的标注数据的数目过少等。
————————————————
版权声明:本文为CSDN博主「长弓Smile」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012485480/article/details/80227240

3、KG

将知识图谱理解为一种数据结构–由节点和边组成,方便查询。

Knowledge Graph can be defined as a form of a data structure, which is composed of nodes and edges that are leveraged as a way to manage and illustrate information in such manner that users can efficiently query and obtain data on a specific topic.

第一个KG由google于2012年推出,旨在加强用户搜索查询体验

The first KG was introduced by Google [28] in 2012, with the main objective of enhancing query results and further enriching the overall search experience of end-users.

4、After Action Reports (AAR)

和CTI相似——提供检测和减缓影响的方法。

As AARs provide crucial data about detection and mitigation techniques of attacks, they can also aid in dealing with new unidentified cybersecurity incidents by matching pattern similarities with a predefined incident.

5、Time Distributed Dense (TDD)

应该和dense layer相似,只不过多了一个time维度。
搜索的时候发现了这个教程网站,挺好的。
https://campus.datacamp.com/courses/machine-translation-in-python/implementing-an-encoder-decoder-model-with-keras?ex=9

6、A good example for explaining canonicalization

如果不canonicalize的话,就会导致信息孤立。

To further clarify the importance of canonicalization in addressing ambiguity and redundancy, consider the following two triple extractions: <Barack Obama, born in, Hawaii> and <Obama, served as, 44th U.S President>. In an uncanonicalized version of the KG, the two extractions would be included separately without any connecting edges, as Barack Obama and Obama are perceived as two distinct entities. This may lead to a remarkable impact when querying data from the KG as it will not return all information linked with Barack Obama. Such KGs will also suffer from redundant facts, which is undesired. Canonicalizing KGs using HAC clustering as described above guarantees relation transitivity, that both entities —Barack Obama and Obama— are fused to represent a single entity. Several other canonicalization approaches and entity linking techniques are proposed in [55,56].

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

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

相关文章

英文论文实例赏析——如何写前言?

写作与实验、统计一样重要 研究生的学习往往会遵循这样的过程&#xff1a;实验——数据分析——写作。虽然写作是最后进行的&#xff0c;但写作的学习这应该和实验的学习、数据分析的学习保持同步&#xff0c;因为写作与统计和实验技能一样&#xff0c;是科研工具箱的必…

接口测试总结

一、了解一下HTTP与RPC 1. HTTP&#xff08;HyperText Transfer Protocol) 说明&#xff1a;超文本传输协议&#xff0c;是互联网上应用最为广泛的一种网络协议。 优点&#xff1a;就是简单、直接、开发方便&#xff0c;利用现成的http协议进行传输。 流程图&#xff1a; 2. R…

C++学习Day3:面向对象OOP、抽象

OOP特点&#xff1a;封装、继承、duotai 接口的好处&#xff1a;Communication & Protection&#xff08;向外界隐藏实现&#xff09; 抽象 类的析构函数 析构函数的名称与类的名称是完全相同的&#xff0c;只是在前面加了个波浪号&#xff08;~&#xff09;作为前缀&am…

C++ 提示并输入一个字符串,统计该字符中大写、小写字母个数、数字个数、空格个数以及其他字符个数

#include <iostream>using namespace std;int main() {string str;cout << "请输入一个字符串>>>" << endl;getline(cin, str);int size str.size();int xiaoxie 0;int daxie 0;int shuzi 0;int kongge 0;int qita 0;for(int i0;i < …

厂商大盘点,让我们来看看国内有哪些RPA厂商?RPA厂商有没有开箱即用的产品呢?

一、什么是RPA&#xff1f; RPA(Robotic Process Automation)机器人流程自动化&#xff0c;指用软件机器人实现业务流程的自动化&#xff0c;以“模拟人工操作”的方式进行业务操作帮助企业处理重复的、规则固定的、繁琐的流程作业。 二、国内有哪些RPA厂商 我这边根据IDC最新…

【逐步剖C++】-第三章-C++内存管理

一、C/C内存分布 C/C的内存分布主要分为如下这么四个区域&#xff1a; 1、栈区&#xff08;stack&#xff09;&#xff1a;在执行函数时&#xff0c;函数内局部变量的存储单元都可以在栈上创建&#xff0c;函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器…

电机控制、运动控制、过程控制三者关系

1. 电机控制 { 单电机参数&#xff1a;位置/角位移(方向)环、速度环(加减速、最大速度、启停速)、扭/转矩环三个控制环 } Motor Control 主要关注的是&#xff0c;控制单个电机的转距(torque control mode)、速度(speed control mode)、位置(position control mode)中的一个或…

自学(黑客)技术方法————网络安全

如果你想自学网络安全&#xff0c;首先你必须了解什么是网络安全&#xff01;&#xff0c;什么是黑客&#xff01;&#xff01; 1.无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面性&#xff0c;例如 Web 安全技术&#xff0c;既有 Web 渗透2.也有 Web 防…

若依分离版-前端使用

1 执行 npm install --registryhttps://registry.npm.taobao.org&#xff0c;报错信息如下 npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: ktg-mes-ui3.8.2 npm ERR! Found: vue2.6.12 npm ERR! node_modu…

102-视频与网络应用篇-环境搭建

1.开发环境 本栏目开发所采集的操作系统是windows10Vmware上安装的Ubuntu18&#xff0c;关于Vmware和Ubuntu操作系统的安装过程本文不详细描述&#xff0c;具体安装步骤大家可以自己百度&#xff0c;有很丰富的安装教程。 本栏目查看资料、代码编辑、均在windows端&#xff0c;…

Unittest接口自动化测试

我又来了&#xff0c;来分享年前的unittest接口自动化实战啦。这次自动化接口框架比较简单&#xff0c;但是五脏俱全。(注:项目是针对我们公司内部系统的测试&#xff0c;我就不分享链接了。&#xff09; 项目简介 项目名称&#xff1a;****名片系统 项目目的&#xff1a;实…

wails window下打包安装包

官方文档https://wails.io/zh-Hans/docs/guides/windows-installer 版本&#xff1a;Wails CLI v2.6.0 问题 打包命令 wails build 打包出来的exe文件是直接打开的&#xff0c;不能包含程序安装功能 解决办法 1、chocolatey 安装包管理器工具安装 管理员身份打开powershell&a…

基于旗鱼优化的BP神经网络(分类应用) - 附代码

基于旗鱼优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于旗鱼优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.旗鱼优化BP神经网络3.1 BP神经网络参数设置3.2 旗鱼算法应用 4.测试结果&#xff1a;5.M…

vue解决:Parsing error: No Babel config file detected for ....

报错信息 Parsing error: No Babel config file detected for C:\Users\Admin\Desktop\shabi\work\src\App.vue. Either disable config file checking with requireConfigFile: false, or configure Babel so that it can find the config files. 分析错误&#xff1a;没有检测…

Pyside6 安装和简单界面开发

Pyside6 安装和简单界面开发 Pyside6介绍Pysied6开发环境搭建Python安装Pysied6安装 Pyside6界面开发简单界面设计界面设计界面编译 编写界面初始化代码软件打包 Pyside6介绍 对于Python的GUI开发来说&#xff0c;Python自带的可视化编程模块的功能较弱&#xff0c;PySide是跨…

嵌入式处理趋势,第一部分:超集成MCU

当今的嵌入式微控制器&#xff08;MCU&#xff09;是协同和创新的惊人例子。单个芯片上可容纳30,000至2百万个门&#xff0c;直到最近&#xff0c;各种集成的组件和模块都被视为独立的高级IC。 例如&#xff0c;当前典型的MCU设备&#xff08;下面的图1&#xff09;可能包含以…

【Kubernetes】深入了解 Kubernetes:现代容器编排与管理平台

前言 kubernetes&#xff0c;简称K8s&#xff0c;是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的&#xff0c;用于管理云平台中多个主机上的容器化的应用&#xff0c;Kubernetes的目标是让部署容器化的应用简单并且高效&#xff08;powerful&#xff09;,Kub…

【红日靶场】vulnstack3-完整渗透过程

系列文章目录 【红日靶场】vulnstack1-完整渗透过程 【红日靶场】vulnstack2-完整渗透过程 【红日靶场】vulnstack3-完整渗透过程 文章目录 系列文章目录基本信息环境配置开始渗透信息收集暴力破解漏洞利用绕过内网信息收集尝试上线msf上线msf横向移动msf 传达会话给cs横向到域…

关于IDEA中gradle项目bootrun无法进入断点以及gradle配置页面不全的解决方案

问题背景 在使用gradle编写的bootrun&#xff0c;采用debug方式启动项目时&#xff0c;无法进入断点&#xff0c;程序正常运行 并发现象1 此处无法识别为大象图标 点击右键后&#xff0c;没有圈中的这个选项 并发现象2 图片圈中的位置缺失 问题原因 正常的 run 命令是通过…

【状态估计】将Transformer和LSTM与EM算法结合到卡尔曼滤波器中,用于状态估计(Python代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…