1.背景
随着信息化及网络技术的持续发展, 网络攻击手段也日渐成熟,并呈现出长持续性、高复杂性和高隐蔽性的特点。面对高级可持续威胁(advanced persistent threat, apt)等高级攻击方式,除了传统基于ioc(indicator of compromise)的防御策略,还需要采用网络安全情报、安全态势感知等综合防御策略。网络安全情报一般包括:漏洞情报、威胁情报、资产情报等用于安全分析的相关信息。其中,威胁情报(threat intelligence)是一种基于证据的信息, 用于描述针对资产的威胁信息(例如:恶意ip地址、恶意样本描述、攻击者特征等)。利用威胁情报可以分析攻击行为,了解系统不足并随之做出相应的调整, 变被动防御为主动防御。
虽然利用网络安全情报可以提高网络主动防御的能力, 但是在具体落地应用时仍面临诸多挑战,包括(1)如何从海量数据中提取高价值的安全情报(2)如何解决网络安全情报的可信性(3)如何提升网络安全情报的综合使用率。2012年,谷歌借鉴语义网技术提出了知识图谱(knowledge graph, kg)概念, 带动了知识图谱技术在信息检索领域的研究和应用。知识图谱产品不断出现,如:谷歌的knowledge graph、微软的satori、搜狗的知立方、freebase、dbpedia等。知识图谱在商业应用领域也获得了应用,如:在金融领域中,将知识图谱技术用于股票分析以及反金融诈骗等;在公安情报领域, 将知识图谱技术用于辅助线索分析、预防电信诈骗等。
针对网络安全情报落地应用时面临的挑战,网络安全界也开始尝试将知识图谱技术应用于网络安全情报及应用领域。目前,针对网络安全情报知识图谱的研究仍处于早期阶段,安全知识图谱在网络安全领域缺乏应用实践。
本文首先介绍了知识图谱技术的基础知识和安全知识图谱概念内涵。其次分析了安全知识图谱构建流程和关键技术;最后描述了安全知识图谱技术在网络安全领域中的可能应用场景。
2.知识图谱概念
2.1 知识图谱提出
知识图谱并不是一个新的概念,其原型来自于1998年由tim berners-lee 提出的语义网(semantic web)。万维网的目的是构建以“链接”为中心的全球信息系统,任何人都可以通过添加链接的方式把自己的文档链接到这个系统中。www这种形式只表示网页之间存在链接关系,不能描述网页之间的链接含有的语义关系,计算机无法有效的从万维网中识别出这样的语义信息。为了解决万维网存在的问题,万维网的创始人tim berners-lee于1998年提出的语义网(semantic web)的概念。和万维网一样,语义网仍然基于链接和图的组织方式,只是图中的节点代表的不只是网页,而是客观世界中的实体,超链接也增加了语义描述,具体表明实体之间的关系,即语义网的本质是关于数据的互联网或者是事物的互联网。
知识图谱是语义网技术在具体应用场景中的一种简化商业实现,是基于语义网的概念、方法、技术和工具等的具体构建。
2.2 知识图谱定义
首先我们了解下知识的定义。根据维基百科的定义,知识是关于某个主体确信的认识,并且这些认识拥有潜在的能力为特定目的而使用。关于主体的事实或状态就称为知识,包括:认识或了解某种科学、艺术或技巧;通过研究或经验而获得的一整套知识或资讯。我们可以用spo(subject-predicate-object)知识三元组来表示知识,如图1所示。
图1 spo知识三元组
知识图谱是一种用图模型描述知识和建模世间万物之间的关联关系的技术方法,其目的是从数据中识别、发现和推断事物与概念之间的复杂关系,是关于事物关系的计算模型,如图2所示[1]。
图2 知识图谱:事物关系的可计算模型
举例1:简单的知识图谱
知识图谱使用图表示多条知识及其关系,是一个由节点和边组成的有向图,其基本构成单元为spo知识三元组。知识图谱中的节点可以是实体(如一个人或一本书),也可以是抽象概念,如人工智能、知识图谱等。边可以是实体的属性,如人名、书名,也可以是实体之间的关系,如朋友、配偶关系等。一个简单的知识图谱,如图3所示[1]。
图3 简单的知识图谱
举例2:完整的知识图谱
完整的知识图谱由三层组成:
(1)预定义词汇层:表示知识所用的语言(owl、rdfs)。
(2)词汇层:使用本体定义语言定义的词汇。以上两层构成了我们所称的知识本体。
(3)数据层:使用知识本体词汇表示的具体知识。
图4所示为一个关于罗纳尔多的完整知识图谱。
图4 球星罗纳尔多的知识图谱(图片来自于网络)
2.3 知识图谱分类
知识图谱可分为通用知识图谱和领域知识图谱两大类。
(1)通用知识图谱
以dbpedia、yago、wikidata、百度和google的搜索引擎所使用的知识图谱为代表,其主要特征是:知识来自于互联网上开放的数据或众包数据,以事实型知识为主,以搜索和问答为主要形式,对知识的质量容忍度较宽。
(2)领域知识图谱
面向具体的应用领域,如阿里巴巴电商知识图谱,医疗领域的医学语义网umls、geneonto、金融领域的kenso等。领域知识图谱的主要特征是:数据来自具体的应用领域,来源多样;知识结构复杂,通常包含复杂的本体工程和规则型的知识;知识抽取质量要求高;对推理的要求高,可解释型要求强。
2.4 知识图谱的构建流程
知识图谱方法论涉及知识的表示、知识获取、知识处理及知识应用多个方面。一般的流程为:确定知识表示模型;根据数据来源选择不同的知识获取手段导入知识;利用知识推理、知识融合、知识挖掘等技术提升知识图谱的质量;根据场景需求设计不同的知识访问和呈现方式等,如图5所示[1]。
图5 知识图谱构建流程
(1)知识来源
根据应用领域确定知识来源。不同的数据源的知识化都需要综合不同的技术手段,例如:对于文本数据源,我们需要利用自然语言处理技术(nlp)实现实体识别、实体链接、关系提取、事件提取;对于结构化数据库,可能需要定义结构化数据到本体模型的语义映射,使用语义翻译工具实现结构化数据到知识图谱的转化。
(2)知识表示和本体工程
知识表示是指用用计算符号描述和表示知识,以支持计算机能模拟人的心智进行推理的方法和技术。知识表示决定了知识图谱构建输出的目标,包括:语义描述框架,如w3c的rdf;schema和本体,定义知识图谱的类集、属性集、关系集和词汇集;知识交换的语法,定义知识实际存在的物理格式,如turtle、json等;实体命名和id体系,定义实体的命名原则与唯一标识规范等。
(3)知识抽取
知识抽取按照任务可分为概念抽取、实体识别、关系抽取、事件抽取和规则抽取等。现代知识图谱的构建通常基于已有的结构化数据资源进行转化,形成基础数据集,在此基础上使用自动化知识抽取和知识图谱补全技术,使用多种数据源进一步扩展知识图谱,通过人工众包进一步提升知识图谱的质量。
(4)知识融合
知识融合是指将不同来源的知识进行对齐、合并的工作,目的在于形成全局统一的知识标识和关联。在构建知识图谱时,不可避免的需要使用第三方的知识库产品,但不同知识图谱之间既存在的本体异构也存在实体异构,需要使用知识融合技术解决异构问题。数据层的融合是指实体和关系元组的融合,包括:实体对齐、实体消歧或共指消解。模式层的融合使用本体对齐将新得到的本体融入已有的本体库中,以及新旧本体的融合,一般采用专家人工构建和本体演化管理框架实现本体对齐。
(5)知识图谱补全和推理
我们可能无法获得关于客体的全部知识,但我们可以利用已存在的知识通过推理和补全技术获得关于客体的新知识并添加到知识图谱中。实现知识图谱补全的方法包括:基于本体推理的补全方法,基于图结构和关系路径特征的补全方法,基于表示学习和图嵌入的补全方法,利用文本信息辅助的补全方法等。
(6)知识检索和知识分析
基于知识图谱的知识检索的实现形式主要包括语义检索和智能问答,使得搜索引擎可以直接对事物进行检索。知识图谱和语义技术也可用于数据分析和决策,plantir利用知识图谱和语义技术增强数据之间的关联,使用户可以更加直观的图的方式对数据进行关联挖掘与分析。知识图谱和语义技术可以用于实现描述性数据分析。
3.安全知识图谱概念
3.1 安全知识图谱定义
安全知识图谱(cyber security knowledge graph)是知识图谱在网络安全领域的实际应用,属于领域知识图谱,包括:基于本体论构建的安全知识本体架构,以及通过威胁建模等方式将多源异构的网络安全领域信息进行加工、处理、整合,转化成结构化的网络安全领域知识库。
举例:图6展示了一个来自恶意软件、攻击关系知识图谱。
图6 安全知识图谱示意(图片来自网络)
3.2 安全知识图谱特点
与通用知识图谱相比, 安全知识图谱具有以下特点:
(1)知识来源不同
通用知识图谱的知识来源于互联网开放数据,主要是互联网上广泛存在的半结构化数据和非结构化数据,从中提取出人类可理解的一般意义上的通用知识。安全知识图谱的知识主要来源于即包括互联网上对网络安全问题研究的分析成果:如来自于网络安全机构的研究报告、权威机构发布的威胁情报、商用/开源威胁情报、安全论坛博客中发布的对相关网络安全问题的分析、it企业发布的安全漏洞信息、恶意软件分析报告等;也包括来自企业内部拥有的的安全数据;既有结构化的数据,如权威机构发布的威胁情报、商用/开源威胁情报;也有半结构化/非结构化的数据,如:安全论坛中发布的博文、恶意软件分析报告、安全研究报告等。
(2)信息抽取的技术不同
信息抽取技术包括如何从异构数据源中自动抽取信息得到候选指示单元。信息抽取是一种自动化地从半结构化和无结构数据中抽取实体、关系以及实体属性等结构化信息的技术。涉及的关键技术包括:命名实体识别(named entity recognition,ner)、关系抽取(relation extraction)和属性抽取(attribute extraction)。
通用知识图谱的知识大部分来自于互联网上文本数据,这些文本数据的目标是供人类阅读的,描述的内容也是普通大众可理解的;对于这样的文本数据的理解,一直是自然语言理解的主要研究内容,有大量的成熟的信息提取工具可用,如stanford nlp库。安全知识图谱的知识也来源于互联网上的文本数据,但这类数据是供具有安全知识背景的安全专家来阅读的,使用领域内约定的描述方式来表达,其描述的内容也只有他们才可以理解;研究表明,通用nlp工具难以用于安全领域的文本信息处理。
(3)本体库不同
无论是通用知识图谱还是领域知识图谱,均需根据具体的应用构建本体库。近20年来,通用知识图谱研究和应用获得了广泛的关注和研究,尤其是w3c语义网的标准化,本体的研究趋于成熟,有成熟的本体库可供使用;即便是在具体的知识图谱的应用领域,如电商知识图谱、医疗知识图谱、金融知识图谱,对本体的研究也取得了长足的进展。但在网络安全知识图谱领域,由于相关的研究和应用才刚刚开始,对本体的研究仍处于初级阶段,尚缺乏成熟的、公认的关于网络安全的知识本体库可供使用。
4.安全知识图谱的构建
4.1 构建框架
安全知识图谱旨在借助知识图谱技术对分散的安全知识情报进行整合, 实现安全情报聚合分析和应用场景扩展等目的。安全知识图谱的构建框架与通用知识图谱构建框架相同,如图7所示(*表示安全知识图谱构建专有的技术)[3]。
安全知识图谱的构建过程同样包括三个层次:
(1)信息抽取:包括实体抽取、关系抽取和属性抽取;
(2)知识融合:实现多源异质信息的形式层面与内容层面的融合, 包括实体链接、本体工程、
质量评估的过程
(3)知识加工与应用,:主要实现知识的后端处理, 包括知识存储、知识表示和知识推理。
图7 安全知识图谱构建框架
4.2 关键技术
尽管安全知识图谱与通用知识图谱采用相同的构建框架,但我们无法直接使用成熟的知识图谱技术解决安全知识图谱构建中存在的专有问题,这些问题主要集中在安全知识图谱构建流程的前几个阶段。
关键技术1: 安全情报信息发现
高效自动化从海量互联网信息中准确的发现安全相关的信息是构建安全知识图谱的关键。互联网上的网络安全信息主要由两类构成:(1)分析后得到的网络安全情报,如来自网络安全机构的研究报告、权威机构发布的威胁情报、商用/开源威胁情报;(2)广泛发布于互联网上的各种有关网络安全的信息,如暗网、安全论坛、博客、自媒体等。
研究方向:如何高效的从海量的互联网信息中筛选出与安全有关的信息,如:词频统计、支持向量机等;如何确定所发现的安全类信息的可信性,如:多源安全信息关联分析技术等[3]。
关键技术2:安全信息抽取
安全信息提取与自然信息领域的信息提取技术存在较大的差别,大致可分为两类:基于机器学习的规则匹配方法和基于自然语言处理的方法两大类。
研究方向:(1)如何利用机器学习算法来减少规则的数量或自动生成规则, 解决匹配效率与抽取准确率平衡的问题。(2)通用nlp工具难以用于处理安全领域的文本信息[4],建立网络安全相关的语料库,目前此领域的工作几乎空白。
关键技术3:安全本体构建
在安全知识图谱研究领域,安全本体的研究较为广泛,但主要是面向安全特定领域的,例如:态势感知、入侵检测、漏洞挖掘、物联网安全等,尚缺少统一的成熟的安全本体可供借鉴。
研究方向:(1)自顶向下的安全本体构建技术[2],从网络安全研究的原理、需求、规范等抽象角度出发, 定义安全知识的范围和安全本体框架。(2)自下向上的安全本体构建技术[2],从现有安全数据的格式、内容、结构化程度出发构建安全本体。(3)本体学习技术,利于机器学习技术,从安全数据中提取新的概念和上下文关系,不断更新安全本体。
关键技术4:知识图谱嵌入
知识图谱嵌入是实现知识图谱高效计算的关键技术。知识图谱可以用属性图进行表示,其应用需要使用与图相关的算法实现,算法复杂度高,难于应用于大规模知识图谱场景。
研究方向:借鉴自然语言理解中的词嵌入技术研究的进展,如独热编码、词袋模型、词向量等,知识图谱研究领域开始考虑在保留语义的同时,将知识图谱中的实体和关系映射到连续稠密的低维向量空间。相关的知识图谱嵌入技术,包括:转移距离模型;语义匹配模型;考虑附加额外信息的模型等[2]。
5.安全知识图谱的应用场景
知识图谱通过信息抽取、知识融合、知识推理等过程, 将分散在多处以不同形式表示的信息进行关联融合, 形成一个统一表示且高质量的知识集, 继而根据现有的知识进行推理, 挖掘潜在的知识同时产生新的知识, 从而实现安全情报分析的智能化。
基于知识图谱的信息整合能力, 安全知识图谱将在如下实际场景中发挥作用:
(1)安全情报搜索
在情报库中查找相关情报是较为常见的应用,准确查找到不同类型的情报将减轻情报分析的工作量。知识图谱将搜索视为实体的搜索而非简单的字符串搜索的思想, 可用于构建知识层级的查询系统, 达到提升情报查询结果的相关程度及查询效率的目的。
(2)敌手画像构建
画像构建是根据用户或团体的属性信息构建用户模型的常用方法。基于威胁情报等来源对敌手的常用工具、攻击手法、社工情报等信息进行收集关联, 知识图谱可以构建详细描述敌手信息的画像, 展示攻击者的全貌, 更精准的实现攻击溯源。
(3)团伙情报挖掘
网络攻击行为通常由多人或多个团伙发起, 但在要素众多的情报中挖掘团伙信息面临着困难。知识图谱从主体、事件、人和物等语义层面构建情报的关联关系, 并根据设定的规则进行挖掘从中寻找线索, 可实现团伙情报分析以及隐匿组织的发现。
(4)apt 攻击发现
apt 攻击是当前互联网领域面临的严重威胁, 具备apt 攻击的检测能力是实现网络安全的重要保证。当前, 通过单一的数据分析实现apt 检测的概率较低, 需要探索多维度联合的分析方法。知识图谱可以将资产、威胁、漏洞、流量、日志等信息进行统一描述, 打破数据鸿沟, 并进一步应用知识推理的方法实现异常行为的分析, 从而实现apt 的发现。
6.总结
安全知识图谱可以借助知识图谱技术对分散的安全知识情报进行整合, 达到安全情报聚合分析和应用场景扩展等目的。当前,人工智能特别是自然语言处理技术的快速发展使得高效自动化从巨量信息中获取知识成为可能,极大的推动了知识图谱技术在各个领域的应用。但是,知识图谱在安全领域应用的相关工作仍处于早期探索性研究阶段,构建安全知识图谱的关键技术尚需突破。
参考
[1] 王昊奋,漆桂林,陈华钧. 知识图谱:方法、实践与应用[m].北京:电子工业出版社,2019
[2] 翟裕中,胡伟,程龚. 语义网技术体系[m].北京:科学出版社,2014
[3]董 聪, 姜 波, 卢志刚,等.面向网络空间安全情报的知识图谱综述[j].信息安全学报,2020.9:vol.5 no. 5
[4] peter phandi, amila, silva wei lu. semeval-2018 task 8: semantic extraction from cybersecurity reports using natural language processing (securenlp)[c]// proc 12th international workshop on semantic evaluation. new orleans, louisiana,2018:697-706