基于MAEC 本体的恶意软件知识抽取方法的构建*
2022-04-11王玉梅
杨 望,曾 娟,王玉梅
(东南大学,江苏 南京 211189)
0 引言
作为当下网络中最常见的安全威胁之一,恶意软件侵害计算机系统所带来的损失是巨大的。于是,各种恶意软件分析和检测方法被不断提出,各种捕获并描述恶意软件高级别特征的方式更是不断涌现。然而,同一恶意软件在不同检测工具的检测结果输出格式存在个性化差异且内容交叉而互异,使得不同来源检测信息的关联性分析的难度增大。因此,基于关联性分析能够帮助分析人员更加全面地认识并了解恶意软件等原因。本文旨在构建一种对恶意软件知识进行更通用的信息表示的模型,来更高效地分析恶意软件。
为有效地分析和共享领域知识,Antoniou 等人[1]定义了“共享概念模型的明确的形式化规范说明”——本体。本体可获取、描述和表示相关领域的知识,提供对该领域知识的共同理解,确定领域内共同认可的词汇,并从不同层次的形式化模式上给出这些词汇和词汇间相互关系的明确定义,为恶意软件知识的信息通用表示提供了选择。同时,MITRE 公司提出的恶意软件属性枚举和表征(Malware Attribute Enumeration and Characterization,MAEC)[2]在描述恶意软件特征时,能够提供全面地、结构化地获取恶意软件样本详细信息的方法。MAEC 基于自身支持的特性,有望成为恶意软件分析工具的标准输出格式,且目前已有若干工具支持直接或间接生成该格式的分析报告。由此可见,基于MAEC 进行恶意软件知识抽取本体的构建是本文可进行的研究方向。然而,由于MAEC 大量引用其他标准和模型作为外部参考,且检测工具自动生成的MAEC 格式的报告中包含大量低级别的操作数据、缺乏高级语义数据,因此,本文还考虑了不同来源恶意软件信息的交互融合以及高级恶意软件知识的获取问题,在基于MAEC 标准并结合网络本体语言(Web Ontology Language,OWL)[3]构建本体模型的基础上,接入了对手战术、技术和通用知识库(Adversarial Tactics,Techniques,and Common Knowledge,ATT&CK)等外部参考模型,并引入了语义网规则语言(Semantic Web Rule Language,SWRL)[4]推理规则,以支持从低级别的操作数据中推理抽取出高层次的恶意软件知识。
1 相关工作
本文将结合推理规则进行恶意软件知识抽取本体模型的构建。对部分相关本体、本体在恶意软件检测方面的应用以及相应推理规则的应用研究情况进行介绍。
Wang 等人[5]提出了一种用于管理和分析美国国家漏洞库(National Vulnerability Database,NVD)中所有现有漏洞的本体-漏洞管理本体(Ontology for Vulnerability Management,OVM)。该本体结合了通用漏洞披露(Common Vulnerabilities&Exposures,CVE)、通用漏洞评分系统(Common Vulnerability Scoring System,CVSS)、共享攻击模式的公共标准(Common Attack Pattern Enumeration and Classification,CAPEC)等通用标准,专门为漏洞分析和管理而设计,其捕获和利用信息安全中的基本概念及其之间的关系,可以正式、准确地描述外部威胁和内部漏洞的模式。同时,基于OVM 中预先加载的数据和规则,用户可以检索漏洞数据并对漏洞的原因和影响进行推理,为实现信息安全自动化提供了一条有用途径。但在实际应用中,该本体的概念层次需要进一步扩展,且编写推理规则用于网络本体语言描述逻辑(Web Ontology Language Description Logic,OWL-DL)推理任务时,需要增强其推理能力。Syed 等人[6]提出的统一的网络安全本体论(Unified Cybersecurity Ontology,UCO)整合了来自不同网络安全系统的异构数据和知识模式,以及用于信息共享和交换的最常用网络安全标准,包括结构化威胁信息表示标准(Structured Threat Information eXpression,STIX)方面的映射,以及对CVE、公共配置枚举(The Common Configuration Enumeration,CCE)、CVSS、CAPEC、通过关联上下文观察理解情境和威胁(Situation and Threat Understanding by Correlating Contextual Observations,STUCCO)及killChain的引用。该本体是一个可以支持更广泛和多样安全用例的网络安全本体,但其没有使用OWL 构词,降低了自身的推理能力,且当与推理机一起使用时,该本体对域和范围的限制还将导致错误的分类。
Gregio 等人[7-9]提出了一种可以模拟恶意软件行为知识的本体论作为未来研究推理和检测程序的基础。他们定义了恶意软件主要行为的层次结构,其中的每个主要行为都由一系列可疑活动组成,以根据表现出来的行为识别未知的恶意软件。之后,该工作得到进一步扩展,提出了一种新颖的本体——恶意软件行为本体(Malware Behavior Ontology,MBO)[10],用于解决现代复杂恶意软件家族的检测问题。该本体定义了可疑事件及其相关行为的类的层次结构,并为恶意程序主要行为中的每个可疑活动定义了推理规则和风险级别。通过在本体中应用SWRL 规则进行推理,使其能够检测现代复杂恶意软件家族。实验结果表明,基于本体的方法具有改善恶意软件行为分析的潜力,但在性能上无法实时检测到恶意软件,且存在误报与假阴性。
Ding 等人[11]将本体技术引入恶意软件检测领域,通过构建一个恶意软件知识库来表示和存储恶意软件及其家族的行为知识,并使用本体推理技术来识别未知恶意软件家族。该本体根据恶意软件行为的组成分为恶意软件类(行为的执行者)和计算机系统组件类(行为的目标)两类。作者使用数据挖掘算法挖掘同一恶意软件家族的常见行为,通过定义与恶意软件家族常见行为等效的EquivalentClass 公理来推断恶意软件所属的家族。该本体结构较为简单,但只将恶意软件行为描述为粗粒度行为(系统行为),无法提供有关病毒感染过程和恶意软件破坏程度的准确信息。
陈剑锋等人[12]将本体的概念引入了威胁情报体系之中,能够实现多个情报个体之间信息的共享,并指出这是数据驱动安全的发展趋势。
陈光等人[13]采用基于推理规则进行知识推理的方式来补全知识图谱知识,在其进行的知识图谱推理实践中,基于自定义的SWRL 推理规则,有效地实现了从低级传感数据到高级系统工作知识的推理,以及系统状态的自动感知和故障的推理判断。
周亮等人[14]基于OWL 语言构建了故障树领域本体,然后将故障树中事件之间的逻辑关系转化成SWRL 规则语言,最后将故障树领域本体和SWRL规则放入Jess 推理机中进行推理,能够挖掘出故障树中的隐含知识,但该本体制定的SWRL 规则仅用到简单的逻辑与非关系,而构建更为普遍使用的故障树本体及相应的SWRL 规则还需要进行大量工作。
徐顺航等人[15]基于OWL 语言构建了面向智慧旅游的文物领域本体,通过将自定义的SWRL 推理规则加载到Pellet 推理机中完成基于语义的信息检索,可根据用户输入的文物信息推理得到文物领域本体中的隐含知识反馈给用户,以满足用户的潜在需求。孔令龙等人[16]构建了一种智能家庭的本体模型,通过采集机器人服务系统的历史信息和实时信息,并将历史上下文信息转换为SWRL 推理规则后,利用Jess 推理引擎结合实时的上下文信息与生成的规则库的匹配,来实现机器人进行家庭服务的实时推理,进一步提高了机器人服务的智能性。
最后,通过对相关工作的研究,发现恶意软件检测大多依据行为进行恶意软件程序分类,且目前的恶意软件本体并不能涵盖网络威胁情报所需的所有信息,也无法正式表示收集到的领域专业知识。而基于MAEC 语言构建恶意软件本体则可以全面而结构化地表示恶意软件特征,并进行恶意软件信息的关联分析。同时,将本体结合SWRL 推理规则,可以实现恶意软件知识的推理,从提取到的低级别操作信息中推理出行为、能力等高级语义,进而可以为恶意软件防御提供更多的有效信息。
2 关键技术
在领域本体的构建过程中,斯坦福大学医学院开发的“七步法”[17]具有较高的参考价值。而根据“七步法”以及研究需求,本文需解决以下两个主要问题。
2.1 本体属性词汇表的建立
在本文的研究过程中,本体属性词汇表主要是基于MAEC 官方文档提供的恶意软件特征词汇建立的,但由于外部参考的存在,这些词汇显然是远远不够的。因此,本文在此基础上参考了其他共享标准定义的词汇,对现有词汇表进行扩充。其扩充来源如下:
(1)从Cuckoo 签名库中去掉安卓平台和无行为信息的签名类后剩余的330 个有效签名类中提取的属性词汇;
(2)从ATT&CK 技术矩阵的222 个技术和12个Tactic 中提取的属性词汇;
(3)从Autoruns 实用程序中划分的19 类自启动项中提取的属性词汇;
(4)从本体通过technique_refs、capability_refs、family_refs、analysis_refs 等对象属性关联引用的实体类中提取的属性词汇。
在此过程中,由于不同标准的词汇之间存在含义交叉与重叠的现象,因此,本文在处理过程中对重叠词汇进行了合并,并对含义相近的词汇建立了从属关系,例如:
(1)persistence 词汇存在于多个标准之中,因此,本文在建立词汇表时将多个标准的该词汇合并为一个词汇,即persistence;
(2)多个标准中分别含有anti-behavioralanalysis、anti-emulation、anti-memory-forensics 和anti-vm 这些属性词汇,但由于它们含义相近又各自略有差异,因此,本文在处理过程中进行了归类划分,在它们之间建立起了从属关系,即在本体属性词汇表中,以anti-behavioral-analysis 为父词汇,而其他词汇为该词汇的子词汇。
(3)最后,在MAEC 官方文档的基础上,本文又扩充了571 个behavior 属性词汇、71 个capability属性词汇和222 个external_reference 属性词汇。
2.2 SWRL 推理规则的制定
本文在构建本体模型的过程中,主要是基于Cuckoo 沙箱[18]获取本体数据源。通过Cuckoo 沙箱获取的恶意软件分析报告转换成的MAEC 报告包含大量低级别的动态操作信息,且对应实例数据基本没有MAEC 高层语义数据。因此,本文采用本体推理的方式进一步挖掘实例数据中隐含的恶意软件知识,并从中抽取相关高级语义。同时,根据对相关工作的研究,本文选择使用SWRL 规则语言进行推理规则的制定。
目前,SWRL 推理规则的定义方式主要有根据专家经验进行编写和根据外部输入进行推理规则的自动提取两种。这两种方式都需要遵循“一条规则包含一个body 和一个head,当body 中所有条件均成立时,head 中的所有结论也必须成立,且head中的变量一定是要出现在body 中的”规则。而从现实条件出发,基于对规则自定义的准确性与效率的需求,本文主要针对自动提取方式展开研究。
在实际推理规则自定义过程中,MAEC 本体推理逻辑上是由进行了敏感操作的低级实体推理出高级实体的,但在一些推理过程中,head 中的高级实体并未出现在body 中,例如:
可见,该条规则并不符合SWRL 语法。因此,为解决此问题,本文将head 中高级实体的实例写入body 中,并根据name 属性唯一地确定此行为实例。于是,经过改写,正确的SWRL 规则书写如下:
最后,本文针对性地制定了如下SWRL 推理规则:
(1)每个Cuckoo 签名文件的Signature 类对应一个MAEC behavior,其中推理规则的提取如图1所示。同时,根据Signature 类的categories 字段还可对应得到MAEC capability。
图1 从Cuckoo 签名文件中提取SWRL 推理规则的映射推理关系
(2)每个ATT&CK技术对应一个MAEC behavior,推理规则的提取如图2 所示。其中,MAEC behavior 实体实例的technique_refs 属性由ATT&CK 技术的Technique ID 直接映射而来,而name 属性则由att&ck_Technique ID 映射而来。同时,根据ATT&CK 技术所属的Tactic 还可对应得到MAEC capability。
图2 从ATT&CK 库中提取SWRL 推理规则的映射推理关系
(3)每个被Autoruns 工具检测到的自启动条目均可推理出“persistence”能力属性。
3 实验与结果分析
相较于目前存在的网络安全领域本体,本文研究的MAEC 本体有其自身的独特优势,且通过与SWRL 推理规则相结合实现语义推理,弥补了MAEC 格式报告中高级别恶意软件知识的缺失。
3.1 MAEC 本体模型构建
根据“七步法”,本文在确定本体模型之后,首先根据MAEC 规范文档运用自顶向下的方式定义了maec_package、maec_objects、observable_objects、external_reference、capability 和Process Tree Node 等MAEC Type 实体6 个大类,具体如表1 所示;其次,根据MAEC 文档定义了类的338 个数据属性和84 个对象属性,并使用Protégé依据类及其相关的从属子类以及相应的类的属性进行本体构建;再次,将获取的本体数据导入模型进行实例创建;最后,依据2.2 节所述,为使自定义的推理规则满足语法,本文又进一步扩充本体模型,进行了高级语义词汇对应的高级语义实体的实例创建。
表1 MAEC 类型的含义及其相关信息
针对前文中提取出的推理规则,通过Jena 通用推理引擎加载自动提取的规则库就可以对恶意软件实例隐含的恶意软件行为进行推理,而通过建立behavior 实例和capability 实例之间的映射关系等则能够进一步推理出恶意软件实例具有的能力及其技术手段。
3.2 推理规则的自动提取实验及结果分析
编写程序从2.2 节所述的3 个外部输入源中自动提取推理规则,提取结果如表2 所示。
表2 自动提取SWRL 推理规则实验结果
(1)在Cuckoo 签名库中按照前文所述5 个类别,共提取出851 条对恶意软件行为进行推理的实用SWRL 规则,且其中有284 条使用了正则表达式,同时,根据Signature 类的名称(即类别)还提取出了246 个behavior 实例和74 个capability 实例用于扩充MAEC 本体模型;
(2)针对ATT&CK 技术矩阵,通过爬取针对Windows 平台的网页数据,共提取出40 个behavior实例和12 个capability 实例用于扩充MAEC 本体模型,而根据前文所述方法则自动生成了118 条针对behavior的推理规则(针对注册表的规则40 条、针对实用程序的规则78 条),同时,通过ATT&CK技术矩阵能够很方便地推导出每个behavior 实例与capability 属性的映射关系;
(3)通过爬取Autoruns 实用程序的自启动条目,自动生成了具有自启动行为的推理规则158条,且其中9 条使用了正则表达式,而根据推理规则的自动提取,涉及的自启动类可转换得到15 个behavior 实例,且这些实例均具有“persistence”能力属性。
3.3 推理规则的有效性测试及其结果分析
在基于Cuckoo 沙箱获取的本体数据源中,本文抽取了其中的1 047 个恶意样本对应的MAEC 报告进行测试,经过推理发现,平均每份分析报告约可推理得到6 条behavior 实例以及4 条capability 实例,具体统计情况如表3 和表4 所示。
表3 测试样本推理得到behavior 实例的情况
表4 测试样本推理得到capability 实例的情况
通过结果可以看出,推理机能够有效地抽取出恶意软件中隐含的高级语义信息。
4 结语
本文通过建立MAEC 本体模型结合SWRL 推理规则进行恶意软件知识抽取的方法为相关研究工作提供了新思路,为恶意软件检测的关联分析提供了更多的可能。一方面,本文在进行本体词汇表的建立过程中吸收了源于多个标准的词汇并进行了整合,实现了不同标准之间的词汇共享;另一方面,本文在制定推理规则的过程中实现了有针对性的推理规则的自动提取,并建立了自己的推理规则库,为低级别语义信息转化为高级别语义信息提供了更多的便利。未来,相关工作将在以下3 个方面继续展开:
(1)进一步研究实现本体属性词汇表的半自动化甚至是自动化的建立与扩充;
(2)在推理规则的自动提取方面展开进一步研究,以实现自动提取推理规则的普适性;
(3)在保证功能的情况下,进一步提高推理机的推理性能。