一种构建网络安全知识图谱的实用方法——贾焰
文章链接:https://www.ixueshu.com/document/22cde1e97521595bc36aadb3dd6ff858318947a18e7f9386.html.
文章主要工作
- 论述了构建网络安全知识库的三个步骤,并提出了一个构建网络安全知识库的框架;
- 讨论网络安全知识的推演
1.框架设计
总体知识图谱框架如图1所示,其包括数据源(结构化数据和非结构化数据)、信息抽取及本体构建、网络安全知识图谱的生成:
1.1 网络安全本体构建
文中提出了一个基于网络安全知识库的五元组模型,该模型包含:概念、实例、关系、属性和规则。网络安全知识库的架构如图2所示。
该架构如图2所示,其中包括三个本体:资产(Assets)、漏洞(Vulnerability)和攻击(Attack)。图3表示网络安全本体,其中包含五个实体类型:漏洞、资产、软件、操作系统、攻击。
1.2 基于机器学习提取网络安全相关实体
由于条件随机场模型(CRF)保留了条件概率框架的优点,如最大熵Markov 模型,也解决了标记偏差的问题,所以适用于命名实体识别。
Stanford NER提供了线性链条件随机场(CRF)序列模型的一般实现,于是文中使用它来提取网络完全相关的实体。下面是Stanford NER的一些主要特征:
- UseNGrams:利用n-gram取特征,即词的子串。
- MaxNGramLeng:这个特征的值类型为整型。如果这个特征的值为正,则大于该值的n-gram将不会在 模型中使用。在本文中,我们将maxNGramLeng的值设 置为6。
- UsePrev:这可以给我们提供<previous word, class of previous word>的特征,并与其他选项一起启用, 如<previous tag,class>。这导致基于当前单词与一对< previous word,class of previous word >之间的关系的特 征。当有连续的词属于同一个类时,这个特征将是非常 有用的。
- UseNext:和UsePrev特征非常相似。
- UseWordPairs:这个特征基于两个词对—— <Previous word,current word,class> 和 <current word, next word,class>。
- UseTaggySequences:这是一个重要的特征,它 使用类的序列而不是单词的集合,而是使用第一、第二 和第三顺序类和标签序列作为交互特征。
- UseGazettes:如果为真,则由下一个名为“gazette”的特征将把文件指出为实体字典。
- Gazette:该值可以是一个或多个文件名(以逗 号、分号或空格分隔的名称)。如果从这些文件加载公 开的实体词典,每行应该是一个实体类名称,后跟一个 空格,后面再跟上一个实体。
- CleanGazette:如果这个值为真,则仅当全部词 在字典中被匹配时,此特征才会触发。如果在字典中 有一个词“Windows 7”,那么整个词应该在字典中进 行匹配。
- SloppyGazette:如果这个值为真,词和字典中 的词局部匹配也能触发这个特征,如“Windows ”可以 和“windows 7”进行匹配。
2. 知识推演
2.1 数据源
- 漏洞的来源:CVE、NVD、 SecurityFocus、CXSECURITY、Secunia、中国国家漏 洞数据库(CNVD)、 CNNVD和安全内容自动化协议中 国社区(SCAP)。
- 攻击的数据来源
(1).一类来自信息安全网站,其中包括Pediy BBS、Freebuf、 Kafan BBS和开放Web应用安全项目(OWASP);
(2).另一 类来自企业自建信息响应中心,包括360安全响应中心 (360SRC)和阿里巴巴安全响应中心(ASRC)。
2.2 属性推演
如图4所示,图中有三个实例:Ni、Nj和Nl,每一个实例对应一对(key,values)值。
属性值Valueik的 预测公式如下:
对于实例Ni,通过计算下述公式可以得到新的属性,如图5所示。
2.3 关系推演
常用推理方法有三种:基于嵌入的技术、基于低维 向量表示和路径排序算法。在本文中,我们选择使用路径排序算法。路径排序的基本思想是使用连接两个实体的路径作为特征来预测两个实体之间的关系。实例Ni、Nj和Nk 之间的属性值和关系如图6所示。
关系推理的预测公式如下:
式中,π为所有从l到j的可达路径,length(π)≤n。如果 Score(l, j)≥τ,τ为阈值,则elj成立;否则不成立。通过路径排序算法可以得到新的关系,如图7所示。
2.4 评估标准
在信息检索和提取系统中,有两个主要的评估指 标,包括精确率和召回率。有时,为了全面评估系统的性能,通常计算精确率和召回率的调和平均值。这就是我们通常所说的F-Measure。在本文中,我们使用 F-Measure的特殊形式F1值。精确率、召回率和F1值由真正、假正和假负定义。定义如下:
- 真正(TP):将正类预测为正类数。
- 假正(FP):将负类预测为正类数。
- 假负(FN):将正类预测为负类数。
精确率(Precision)由以下公式给出:
召回率(Recall)由以下公式给出:
F1值由以下公式给出:
2.5 实验结果(主要复制文章细节)
为了验证useGazettes的影响,我们建立了三个模型 (NER1、NER2和NER3)。
- NER1没有使用useGazettes作为它的特征
- NER2使用useGazettes,并选择了cleanGazette选项
- NER3也使用了useGazettes,但是它选择了 sloppyGazette选项。
然后,采用了10倍交叉验证的方法 来评估这些模型,将数据分成10个数据块,将十分之九的块用作训练数据,其余用作测试数据。
NER1的平均识别结果如表1所示,该表显示结果的精度相对较高。对于F1度量,软件和漏洞的识别率相近,且高于其他任何实体类型,也就是说, 软件和漏洞的识别在整体识别效果方面取得了良好的表现。
然后,我们使用了包含useGazettes的特征,并选择 了cleanGazette的选项来训练NER2。NER3是根据包含 useGazettes和sloppyGazette两个选项的特征进行训练的。 平均识别结果如表2所示。
如表2所示,在NER2的识别结果中,对软件的识别取得了良好的整体表现。对于NER3,OS的识别实现了高F1值。就软件和操作系统的认可而言,NER3的整体 性能比NER2好。这个结果表明sloppyGazette选项有助于识别与网络安全相关的实体。NER2和NER3的后果和平均值的F1测量值仍然很低,均小于70%。图8给出了这三种模型之间的直观比较。
一种构建网络安全知识图谱的实用方法——贾焰相关推荐
- 基于Neo4j的网络安全知识图谱构建分析
摘要: 网络上大量安全情报知识以多源.异构.碎片化的形式存在,为使这些信息表达成安全人员能够有效管理.理解.组织的形式,构建了基于Neo4j的网络安全知识图谱.首先,设计了网络安全本体模型:其次,将权 ...
- AbutionGraph:构建以知识图谱为核心的下一代数据中台
「免费学习 60+ 节公开课:投票页面,点击讲师头像」 作者 | 图特摩斯科技创始人闭雨哲 出品 | AI科技大本营(ID:rgznai100) 前言 图特摩斯科技(Thutmose)基于自研的图形数 ...
- Neo4j构建目标知识图谱
一.引言 本文主要介绍怎样借助Neo4j构建知识图谱,主要分为软件安装.参数配置.知识图谱定义.图谱展示.案例介绍等环节,整理最近的工作的同时也方便新手快速搭建目标知识图谱. 二.软件安装 本节内容主 ...
- [Pyhon大数据分析] 五.人民网新闻话题抓取及Gephi构建主题知识图谱
该系列文章是Python大数据分析系列博客,包括网络爬虫.可视化分析.GIS地图显示.情感分析.舆情分析.主题挖掘.威胁情报溯源.知识图谱.预测预警及AI和NLP应用等.希望该系列文章对您有所帮助. ...
- 让知识构建未来—知识图谱技术与应用 | AI TIME-33
点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入! 以深度学习为代表的人工智能获得巨大进展,但深度学习的不可解释性已成为制约其发展的障碍,"理解"与"解释&q ...
- DiaKG:用于构建医学知识图谱的糖尿病标注数据集【命名实体识别(NER)和关系抽取(RE)】
原文:DiaKG: an Annotated Diabetes Dataset for Medical Knowledge Graph Construction 作者: Dejie Chang1, M ...
- 如何构建行业知识图谱
AI深入浅出 关注 作者 | 李文哲,人工智能.知识图谱领域专家 导读:从一开始的Google搜索,到现在的聊天机器人.大数据风控.证券投资.智能医疗.自适应教育.推荐系统,无一不跟知识图谱相关.它在 ...
- 手把手教学构建农业知识图谱:农业领域的信息检索+智能问答,命名实体识别,关系抽取,实体关系查询
项目设计集合(人工智能方向):助力新人快速实战掌握技能.自主完成项目设计升级,提升自身的硬实力(不仅限NLP.知识图谱.计算机视觉等领域):汇总有意义的项目设计集合,助力新人快速实战掌握技能,助力用户 ...
- 线下课程推荐 | 知识图谱理论与实战:构建行业知识图谱 (第四期)
知识,是智能的前提. 2012年,Google推出"Google Knowledge Graph",并利用其在搜索引擎中增强搜索结果,这便是"知识图谱"名称的由 ...
最新文章
- 介绍下Nginx 反向代理与负载均衡
- js闭包循环原因_常见的三个 JS 面试题
- opencv nms 学习笔记
- appium安装完成后运行和执行python脚本的错误合集
- module 'itertools' has no attribute 'izip'
- boost::gil::channel_type用法的测试程序
- python批处理文件_Python文件夹批处理操作代码实例
- HTTP 与HTTPS的结构
- 如何在Marketing Cloud的弹出UI窗口里添加扩展字段
- python 数据科学书籍_您必须在2020年阅读的数据科学书籍
- java读取整数列表_Java-检查整数列表中的X类整数
- 【C语言进阶深度学习记录】十 C语言中:struct的柔性数组和union分析
- mysql5.6 memcached_MySQL 5.6 安装配置InnoDB memcached Plugin
- php 传递类名,php 对象和数组序列化 serialize()返回字符串方便存储和传递 unserialize()反序列化 不丢失类型和结构...
- cleanmymac3.9.6_Android Studio 3.6 特征大揭秘
- 转:如何用EXCEL表运用FV函数
- php中fread用法,phpfread函数与fread函数用法_PHP教程
- AndroidStudio测试用例合集(一)
- EDI REMADV报文详解
- OpenERP的外贸企业ERP方案