一、简介
什么是信息抽取?信息抽取 (Information Extraction,IE)是将文本里的非结构信息转化成结构化信息的过程。在网安领域,IE技术可以从纷杂的文章、博客和评论中抽取与网安相关的网络威胁信息,该技术对实现情报交换、舆情分析、热度预测、知识图谱构建等任务均有重要影响。
信息抽取包含三个子任务,其中,命名实体识别(Named Entity Recognition,NER)找句子中的实体词;关系抽取(Relation Extraction,RE)找句子中的头实体、关系类型、尾实体;事件抽取 (Event Extraction,EE)找句子中的触发词以及触发词对应的论元。传统的IE对3个子任务分别建模,任务之间的关联性弱,相互协作的能力较差。为此,Lu等人提出了一种基于统一结构生成的信息抽取模型(Universal Information Extraction,UIE),该模型对不同的抽取任务统一建模,利用资源共享有效提升了信息抽取的能力。
对于网安领域而言,除了使用统一式的信息抽取模型,还有需要对部分细节进行设计。如:网安领域的实体、关系和事件的定义、适用于网安领域的prompt模板设计等。本文针对网安领域的信息抽取任务进行讨论,分别介绍本体构建、UIE模型以及算法效果和应用三部分。
二、本体构建
采用自底向上的方式,构建了网安领域知识图谱的本体模式。本体构建包含实体定义、关系定义、事件和论元定义等方面。
①实体定义:结合STIX和开源网安数据集,从各渠道提取、融合实体类型。具体而言,由于各数据集下的实体类型命名和定义有所区别,故需要对不同的实体类型进行统一,如合并不同实体命名,删除无关实体。得到的部分网安领域实体类型如表1所示。
实体类型 | 含义 |
malware.name | 恶意软件(家族)名称 |
threator | 攻击组织 |
ip | ip地址 |
attack.pattern | 攻击模式 |
vuln.name | 漏洞名词 |
表1 实体定义
②关系定义:定义实体之间的关系,且衍生出了他们的反向关系,用于后期方便识别头尾实体。如表2所示,subject_type和object_type分别表示头实体和尾实体的类型。如攻击组织对漏洞的“目标”关系,攻击组织对恶意软件的“使用”关系,恶意软件对ip的“关联”关系。
关系类型 | subject_type | object_type |
target(e1,e2) | threator | vuln.cve |
target(e2,e1) | vuln.cve | threator |
use(e1, e2) | threator | malware.name |
threator | attack.pattern | |
malware.name | attack.pattern | |
use(e2, e1) | malware.name | threator |
attack.pattern | threator | |
attack.pattern | malware.name | |
contact(e1, e2) | malware.name | ip |
contact(e2,e1) | ip | malware.name |
表2 关系定义
③事件和论元定义:使用CASIE数据集对事件和论元的定义。事件是指某一个网络安全事件,包含网络钓鱼、补丁漏洞、披露漏洞、databreach、ransom等。而论元是事件的参与者,主要由实体、值、时间组成,如位置、受害者、攻击模式、工具、支付方式等。如图1所示为事件ransom和databreach对应的论元,可以看到两者是一对多的关系。
图1 事件ransom和databreach对应的论元
三、UIE模型
3.1模型背景
信息抽取是NLP技术落地中必不可少的环节,然而当前市面上的信息抽取工具大多基于传统算法构建,偏向学术研究,对实际使用并不友好。产业级信息抽取面临的挑战主要包含①通用领域知识很难迁移到专业领域,②针对实体、关系、事件等不同任务需开发不同的模型,③部分领域数据稀缺,难以获取等。
对此,中科院软件所和百度共同提出了一个统一式的用信息抽取技术——UIE,UIE在实体、关系、事件和情感等4个信息抽取任务、13个数据集的全监督、低资源和少样本设置下,均取得了SOTA性能。
3.2整体框架
图2 UIE整体框架
如图2所示,UIE的整体框架包含SSI和SEL两大模块,其中SSI属于编码阶段,SEL属于解码阶段。
编码阶段,SSI将待抽取的Schema信息转换成“线索”(Schema-based Prompt),作为待抽取文本的前缀。如对“Steve became CEO of Apple in 1997”文本进行关系抽取任务,便可以将“[spot] person [asso] work for”作为前缀,拼接到待抽取文本[text]上,作为整体输入到UIE中。其中“person”指“人”实体类型,“work for”指“工作于”关系类型。通过这种引导,语言模型就可以明确具体的信息抽取任务要求。
解码阶段,SEL对包含任务引导(prompt)和语义信息(text)的中间向量进行解码,得到的输出能够覆盖全部的抽取任务。如{{“人”: 斯蒂芬{“工作于”: “苹果”}}}表示关系抽取结果,{{“事件起始”: “成为”{“受雇人”: 斯蒂芬}{“雇主”: “苹果”}{“组织名称”: “苹果”}}表示事件抽取结果,{{“人”: 斯蒂芬”}{“组织名称”: “苹果”}{“时间”: “1997”}}表示实体抽取结果。
3.3预训练
为了让模型能够获得通用的信息抽取能力,需要做预训练,预训练目标包括3个部分。
(1)Text-to-Structure (文本到结构化输出):这是最基本的一个训练目标,即训练模型的encoder和decoder,让模型获得根据非结构化输入x文本得到结构化输出y的能力。
- Structure generation(结构生成):训练模型的decoder,使得decoder能够按照正确的抽取结构输出抽取结果,注重的是模型生成结构化文本的能力。
- Retrofitting semantic representation(增强语义表示):实际上是 masked language model 任务,通过打乱的原文本去预测打乱的目标问题,从而提升UIE模型的语义编码能力。
3.4模型优势
(1)支持多种抽取任务
图3 传统建模和统一建模对比图
如图3所示,传统方案对不同的抽取任务构建多个IE模型,各模型单独训练,数据和知识不共享。在UIE方案使用单个模型解决所有信息抽取需求,包括但不限于实体、关系、事件、评价维度、观点词、情感倾向等信息抽取,降低开发成本和机器成本。
- 零样本抽取和少样本快速迁移能力
图4 UIE在各场景下few-shot、zero-shot的能力
UIE开创了基于Prompt的信息抽取多任务统一建模方式,通过大规模多任务预训练学习的通用抽取能力。如图4 所示,UIE可以在不限定行业领域的情况下实现零样本快速冷启动。
- 无需改变模型,易于添加新实体
图5 不同抽取任务的prompt模板
如图5所示为UIE模型四个任务对应的prompt,每个prompt由schema名称拼接生成。当任务需要增加实体、关系、事件类型时,只需要在对应的prompt中增加新的类型,不需要重新调整模型。
四、在网安领域的表现——抽取结果及应用
4.1 网安领域抽取结果
使用UIE模型对网安数据集进行信息抽取,其绝大多数抽取结果和标签完全一致,模型的准确率很高,抽取结果具有一定可信度。以实体、事件抽取两任务为例,本文仅对两者不一致的样本进行展示,其中红色表示标签词、蓝色表示预测词、黄色表示正确预测的标签词。
- 实体抽取
1)Although we have only observed APT33 use DROPSHOT to deliver TURNEDUP , we have identified multiple DROPSHOT samples in the wild that delivered wiper malware we call SHAPESHIFT .
实体类型:malware.name(恶意软件名称)
尽管我们只观察到APT33使用DROPSHOT来传递迂回,但我们已经在野外发现了多个DROPSHOT样本,这些样本提供了我们称之为SHAPESHIFT的雨刮器恶意软件
模型输出的抽取结果优于文本标签,模型的输出更加全面。
2)The first attack in the US that Group IBattributes to this group was conducted in the spring of 2016 : money was stolen from the bank by gaining access to First Data ’ s “ STAR “ network operator portal .
实体类型:threator(攻击组织)
归因于该IB集团的美国第一次攻击发生在2016年春季:通过访问First Data的“STAR”网络运营商门户,从银行窃取了资金。
模型抽取了整个主语,增加了attributes to this group状语,文本标签更加准确。
3)APT33 has targeted organizations – spanning multiple industries – headquartered in the United States , Saudi Arabia and South Korea .
实体类型:location(地点)
APT33的目标组织 – 跨越多个行业 – 总部设在美国,沙特阿拉伯和韩国。
模型输出和文本标签均不完整,地点类型应包含美国、沙特阿拉伯和韩国三地。
- 事件抽取
1) And finally , Juniper said nearly 40 vulnerabilities have been resolved in the Junos Space Network Management Platform 18.3 R1 and 18.4 R1 by upgrading third party components or fixing internally discovered security vulnerabilities .
触发词类型:patch vulnerability(补丁漏洞)
最后,瞻博网络表示,Junos Space网络管理平台18.3 R1和18.4 R1中已经通过升级第三方组件或修复内部发现的安全漏洞解决了近40个漏洞。
模型输出和文本标签均不完整,与补丁漏洞相关的触发词应包含升级、修复和解决了三词。
2)If a victim opens a crafted , malicious file in the Cisco Webex Player — potentially sent over email as part of a spear phishing campaign — the bugs are triggered , leading to exploit .
触发词类型:phishing(钓鱼)
如果受害者在 Cisco Webex Player 中打开精心制作的恶意文件(可能作为鱼叉式网络钓鱼活动的一部分通过电子邮件发送),则会触发这些错误,从而导致漏洞利用 。
标签更加准确,发送应给该事件的触发词
3)Phishing and other hacking incidents have led to several recently reported large health data breaches , including one that UConn Health reports affected 326,000 individuals .
角色类型:phishing(钓鱼)
网络钓鱼和其他黑客事件导致最近报告的几起大型健康数据泄露事件,其中包括UConn Health报告的一起影响了326,000人。
标签更加准确,人过于笼统,抽取UConn Health更有意义。
4)The ransomware encrypted the files on the computers and showed a ransom note demanding payment for a decryption key .
角色类型:attack pattern(攻击模式)
勒索软件对计算机上的文件进行了加密,并显示了要求支付解密密钥的赎金记录
标签和输出均不准确,攻击模式应为对文件加密和显示赎金记录。
4.2 算法应用
UIE是一种现有最优的信息抽取算法,将UIE用于网安领域可以极大的帮助研究者们分析网络威胁,同时对维护网络安全、促进社会信息化发展具有重要作用。具体而言,UIE在网络安全领域的应用有以下几部分:
(1)构建网安知识图谱
信息抽取是构建知识图谱的基础,在网安领域存在的大量非结构化文本,包含漏洞描述、恶意软件分析报告、攻击组织分析报告,安全热点事件等,都依赖于IE技术对其进行结构化表示。其次,网络安全领域存在知识、资产难以定义的问题,对此,引入强大的预训练语言模型可以帮助研究者从自然语言的角度推进对专业知识的定义。
知识图谱概念图
(2)APT组织画像
由于传统对离线数据建模的方法难以满足大部分企业对APT攻击实时分析的要求,所以业内均对APT组织画像归因开展了积极的探索工作。APT组织画像归因需要利用安全知识图谱统一描述APT攻击每个阶段的TTPs,实现对APT攻击的自动化威胁追踪,掌握攻击者的攻击特征、发掘潜在的危机,甚至防堵未来的攻击。而其中的安全知识图谱的构建同样使用了信息抽取技术的帮助。
(3)丰富网安平台功能
近些年,舆情分析、网空测绘等平台不断涌现,而信息抽取技术贯穿于多个功能之间。利用IE技术提取报告、情报中的信息作为关键词(实体、关系、事件),可以帮助阅读者形成对网安文章的第一认知。通过将提取的关键词转化为标签,可用于舆情文章的分类、关联和推送等。最后,可以在用户浏览各类文章的过程中使用文章标签反向定义用户画像,从而提供个性化服务。
参考文献
Lu Y, Liu Q, Dai D, et al. Unified Structure Generation for Universal Information Extraction[J]. arXiv preprint arXiv:2203.12277, 2022.
版权声明
本站“技术博客”所有内容的版权持有者为绿盟科技集团股份有限公司(“绿盟科技”)。作为分享技术资讯的平台,绿盟科技期待与广大用户互动交流,并欢迎在标明出处(绿盟科技-技术博客)及网址的情形下,全文转发。
上述情形之外的任何使用形式,均需提前向绿盟科技(010-68438880-5462)申请版权授权。如擅自使用,绿盟科技保留追责权利。同时,如因擅自使用博客内容引发法律纠纷,由使用者自行承担全部法律责任,与绿盟科技无关。