计算机系统应用  2021, Vol. 30 Issue (5): 39-46   PDF    
基于梯度提升决策树的变形宏病毒检测
闫华1,2, 刘嘉1, 位凯志2, 古亮2     
1. 中国科学院 深圳先进技术研究院, 深圳 518071;
2. 深信服科技股份有限公司, 深圳 518071
摘要:宏病毒在高级持续性威胁中被广泛运用. 其变形成本低廉且方式灵活, 导致传统的基于病毒规则库的反病毒系统难于有效对抗. 提出一种基于梯度提升决策树的变形宏病毒检测方法. 该方法以病毒专家经验为指导, 实施大规模特征工程, 基于词法分析对变形宏病毒做细粒度建模, 并使用海量样本训练模型. 实验表明, 该方法能够准确检测企业级用户网络中传播的真实变形宏病毒和主流变形工具生成的变形宏病毒; 对400万个宏程序样本进行10折交叉验证, 准确率和召回率分别达到99.41%和97.34%, 优于现有其他方法.
关键词: 信息安全    宏病毒    反病毒    机器学习    梯度提升决策树    
Obfuscated Macro Malware Detection Based on Gradient Boosting Decision Tree
YAN Hua1,2, LIU Jia1, WEI Kai-Zhi2, GU Liang2     
1. Shenzhen Institutes of Advanced Technology, Chinese Academy of Sciences, Shenzhen 518071, China;
2. Sangfor Technologies Inc., Shenzhen 518071, China
Foundation item: Chinese Postdoctoral Science Foundation (2020M682837)
Abstract: Macro malware is widely used in advanced persistent threats. Macro obfuscation is low-cost and flexible, rendering traditional rule-based anti-malware systems insufficient. A gradient-boosting-decision-tree-based approach to detecting obfuscated macro malware is proposed. The approach performs large-scale feature engineering guided by the expertise of malware specialists, with fine-grained modeling for obfuscated macro malware carried out on top of lexical analysis, and massive samples are used to train the model. Experimental results show that the approach is able to precisely detect real-world obfuscated macro malware found in the network of enterprise customers, as well as those variants generated by mainstream obfuscation tools; 10-fold cross validation is carried out for a total of 4000 000 macro programs, giving a precision of 99.41% and a recall of 97.34%, which outperforms existing works.
Key words: information security     macro malware     anti-virus     machine learning     gradient boosting decision tree    

高级持续性威胁(Advanced Persistent Threat, APT)是危害企业信息安全的主要攻击形式, 也是当前网络安全布防的重点. 其最常见的方式之一是通过鱼叉攻击诱骗受害者打开恶意邮件的Office附件, 并运行其中的宏病毒程序, 进而入侵受害者的计算机和网络. 例如, 2020年2月, 印度APT组织以新冠肺炎疫情题材的鱼叉邮件对我国卫生部门和相关企事业单位投放宏病毒. 可见, 宏病毒检测是抵御APT攻击的重要环节.

传统反病毒系统对被检测样本做静态分析, 通过查询病毒数据库的方式检测病毒[1,2]. 病毒数据库 ${{D}} = {{{D}}_{\rm hash}} \cup {{{D}}_{\rm rule}} $ 包含病毒文件哈希库 ${{{D}}_{\rm hash}}$ 和病毒规则库 ${{{D}}_{\rm rule}}$ , 其中病毒规则 $r \in {{{D}}_{\rm rule}}$ 是包含通配符和逻辑算子的字符串匹配模式. 给定被测样本 $\varepsilon $ , 若 $\varepsilon $ 的哈希值 ${d_\varepsilon }$ 在病毒哈希库中( ${d_\varepsilon } \in {{{D}}_{\rm hash}}$ ), 或者 $\varepsilon $ 符合病毒规则 $r \in {{{D}}_{\rm rule}}$ , 则判定 $\varepsilon $ 为病毒[3,4].

变形是病毒绕过反病毒系统的重要手段[1-5]. 令 ${\sigma _P}$ 为程序P的语义, 变形g通过替换标识符、插入冗余代码、动态执行字符串和打乱指令顺序等方式产生 $P' = $ $ g(P)$ , 使得 $P' \ne P$ ${\sigma _{P'}} = {\sigma _P}$ .

与传统的Windows PE (Portable Executable)病毒不同, 对宏病毒进行变形无需考虑编译和二进制重写等因素, 因此成本低廉且方式灵活[5,6]. 例如, 通过添加空白字符等简单修改, 即可绕过病毒文件哈希库 ${{{D}}_{\rm hash}}$ ; 通过混淆程序的字符串模式等略复杂的变形, 即可绕过病毒规则库 ${{{D}}_{\rm rule}}$ . 宏病毒变形是对传统病毒检测方法的挑战. 实践表明, 传统反病毒系统查杀变形宏病毒的效果较差[1,2,4-6].

研究者提出使用机器学习的方法, 训练模型在高抽象层次上识别变形病毒的不动点, 从而检测变形病毒[5-9]. 然而, 现有方法在特征工程、机器学习算法选型、样本规模和样本真实性方面均存在局限性, 导致了其在效果方面的不足, 限制了其在工业界的应用和推广.

本文介绍一种基于机器学习的变形宏病毒检测方法── OVD (Obfuscated VBA Detector). 与传统反病毒系统不同, OVD不依赖文件的哈希值和病毒规则, 而是使用机器学习算法训练模型, 然后通过模型预测文件是否为病毒. 与现有的基于机器学习的方法相比, OVD在特征工程规模、特征工程精细度、样本规模和样本真实性等方面优于现有工作. 在特征工程方面, 与现有工作[5-9]不超过20维的特征工程不同, OVD采用520维的细粒度特征工程. 在训练集方面, OVD基于用户真实场景的海量样本采集. 在性能方面, OVD以轻量级的词法分析器作为预分析器, 避免对被测文件做重量级的语法分析或语义分析.

在400万个样本上的实验表明, OVD的召回率和准确率分别为97.34%和99.41%; 对比文献[5]的方法在相同样本集上的召回率和准确率分别为72.97%和88.87%. 在机器学习算法选型方面, 实验对比支持向量机[10]、随机森林[11]、梯度提升决策树[12]和多层感知机[13]. 实验数据表明, 在大规模样本集上, 梯度提升决策树的效果最佳.

1 总体框架

图1所示, OVD的总体框架包括训练和查杀两个阶段. 在训练阶段, 首先采集宏病毒样本, 形成文件样本集 ${{\Omega }}$ ; 然后对文件 $\omega \in {{\Omega }}$ 按Office文件的格式标准[14]进行结构化解析, 并对其中的宏程序做词法分析; 基于文件解析和词法分析做特征提取, 生成特征向量 ${x_\omega }$ ; 最后, 应用机器学习训练算法, 生成宏病毒模型f. 在查杀阶段, 首先解析被检测文件 $\varepsilon $ , 并对其宏程序进行词法分析, 进而提取特征向量 ${x_\varepsilon }$ ; 通过f ${x_\varepsilon }$ 进行预测, 从而判断 $\varepsilon $ 是否为变形宏病毒.

图 1 OVD的总体框架

2 梯度提升决策树

在有监督机器学习中, 一种典型的集成学习方法是提升法(boosting)[12]. 它迭代地将M个弱学习器(或基函数) ${h^{{\rm{\{ 1\} }}}},{h^{{\rm{\{ 2\} }}}},\cdots,{h^{{\rm{\{ }}M{\rm{\} }}}} \in H$ 集成为一个强学习器f; 在第i轮迭代向 ${f^{\{ i\} }}$ 中集成 ${h^{\{ i\} }}$ 时, 被在第 $i{\rm{ - 1}}$ ( ${\rm{1}} < i \le M$ )轮迭代中预测错误的样本被赋予较高权重. 梯度提升法在训练中使用梯度下降法最小化损失函数, 如算法1.

算法1. 梯度提升树算法

输入: 数据集 $\scriptstyle\left\{ {\left( {{x^{(i)}},{y^{(i)}}} \right)} \right\}_{i = 1}^n$ , 假设空间H, 损失函数L, 迭代次数M, 学习率v

输出: 梯度提升决策树

1 $\scriptstyle {\rm{ }}{f_0} = \mathop {\arg \min }\limits_\gamma \sum\limits_{i = 1}^n {L\left( {{y^{(i)}},\gamma } \right)} $

2 ${\scriptstyle {\bf{ for }}\;m \in \left\{ {1,2,\cdots,M} \right\}\;{\bf{ do:}}}$

3  $\;\;\;\scriptstyle{\gamma ^{\{ m\} (i)}} = - {\left[ {\frac{{\partial L\left( {{y^{(i)}},f\left( {{x^{(i)}}} \right)} \right)}}{{\partial f\left( {{x^{(i)}}} \right)}}} \right]_{f = {f^{\{ m - 1\} }}}},\;\forall i \in \left\{ {1,2,\cdots,n} \right\}$

4  $\;\;\;\scriptstyle{h^{\{ m\} }} = \mathop {\arg \min }\limits_{_{h \in H}} \sum\limits_{i = 1}^n {{{\left( {{r^{\{ m\} (i)}} - h\left( {{x^{(i)}}} \right)} \right)}^2}} $

5  $\scriptstyle\;\;\;{\gamma ^{\{ m\} }} = \mathop {\arg \min }\limits_\gamma \sum\limits_{i = 1}^n {L\left( {{y^{(i)}},{f^{\{ m - 1\} }}\left( {{x^{(i)}}} \right) + \gamma {h^{\{ m\} }}\left( {{x^{(i)}}} \right)} \right)} $

6  $\scriptstyle\;\;\;{f^{\{ m\} }} \leftarrow {f^{\{ m-1\} }} + \nu {\gamma ^{\{ m\} }}{h^{\{ m\} }}$

7 $\scriptstyle{\bf{ return }}{f^{\{ m\} }}$

梯度提升决策树是以决策树为基函数的提升法, 即限定基函数的假设空间H为回归树:

$H = \left\{ {\sum\limits_{t = 1}^T {{c_t}{{I}}\left( {x \in {R_t}} \right)} } \right\}$ (1)

其中, T为叶子数量, ${c_t}$ 为在 ${R_t}$ 区域内的预测值.

3 面向变形宏病毒的特征工程

基于病毒专家在大量变形宏病毒样本上的研究经验, 将OVD的特征工程分为若干子任务, 如图2所示. 子任务的划分依据病毒专家经验和实验分析. 本章各小节详细介绍各子任务产生的特征与变形病毒属性之间的相关性. 各子任务的必要性和特征工程粒度的合理性在实验中论证(见5.4节). OVD的细粒度特征工程是效果驱动的, 仅考虑对区分变形宏病毒和正常宏程序有贡献的特征; OVD不考虑无效特征, 例如Office文档的内部目录结构和文件修改日期等.

图 2 特征工程任务分解

3.1 标记频率分析

通过词法分析, OVD得到宏程序的标记(token)集合, 并统计每种标记的频率. 其意义在于: 变形宏病毒较频繁地使用某些类型的标记, 而较少使用其他类型的标记. 对标记按类型统计频率可以为区分变形宏病毒和正常文件提供重要参考. 例如, 表示字符串拼接的标记“+”和“&”在变形宏病毒中比较常见, 因为字符串拼接是使病毒规则失效的常用手段. 如图3所示的真实病毒样本中的宏程序, 出现了较多的“+”. 再比如, 一种常见的变形手段是将恶意代码隐藏在大量无实际意义的整数常量计算中. 因此, 整数常量的数量是识别变形宏病毒的有效特征之一. OVD的词法分析器识别220种标记, 表1列出了几种对识别变形宏病毒有较大贡献的标记. OVD在样本特征向量中记录每种标识符的数量和频率.

图 3 使用字符串拼接的变形宏病毒

表 1 OVD识别的典型词法标记类型

3.2 标识符分析

正常程序一般使用有意义的单词或词组, 通过驼峰法等方式为变量名和函数名等标识符命名. 变形宏病毒程序的标识符与正常程序往往有明显不同, 其典型特点包括: ① 元音字母较少; ② 大写字母占比较高; ③ 数字占比较高; ④ 长度较大; ⑤ 长度方差较小. 例如, 在图4所示的真实宏病毒程序中, 标识符平均长度超过20, 且标识符内容全部为大写字母, 这与正常程序有明显区别. OVD统计宏程序中标识符的平均长度、长度方差、平均元音字母占比、平均大写字母占比、平均小写字母占比和平均数字占比, 并记入样本的特征向量.

3.3 字符串分析

利用脚本语言的动态特性, 通过执行字符串形式的动态代码完成恶意行为是躲避反病毒系统的常用手段. 因此, 字符串在变形病毒中出现频繁. 一种典型的变形方式是将恶意代码编码为字符串, 然后将其分割为大量子字符串, 再动态地通过拼接、反转和解码等操作将恶意代码还原, 从而在不改变恶意代码语义的前提下对其灵活变形, 绕过传统反病毒系统的病毒规则库. 图5是一个真实的宏病毒程序. 该病毒程序通过大量的字符串拼接操作达到变形的目的.

图 4 标识符平均长度超过20的变形宏病毒

图 5 含常量字符串的变形宏病毒

OVD统计宏程序中的字符串数量, 并记入特征向量. 另一面, 一种典型的字符串变形手段是通过对超长字符串编码, 从而隐藏有效载荷(payload). 针对该变形手段, OVD统计字符串的平均长度, 识别常见编码格式(如base64)的超长字符串, 并统计其数量.

下载器(downloader)是一类常见的宏病毒. 它通过网络下载并自动运行其他类型的病毒. 这类宏病毒程序往往出现“powershell”、“exe”和“download”等关键字符串. OVD统计这些关键字符串的数量和频率, 并记入特征向量.

3.4 文件元信息

文件元信息与文件是否为病毒有相关性. 例如, 为了便于病毒在网络中扩散传播, 鱼叉邮件中的Office文件附件通常较小. 因此, 病毒Office文件的体积和其中病毒宏程序的体积有一定规律. 基于此现象, OVD将Office文件的体积和其中宏程序的体积记入特征向量. 另一方面, 一些变形宏病毒将恶意代码隐藏在Office文件的自定义属性中, 并通过从自定义属性中取值的方式在宏程序中还原恶意代码. 因此, OVD在样本的特征向量中记录自定义属性的数量和属性内容的平均长度.

3.5 黑词分析

对宏病毒程序统计词频, 结合病毒专家经验, 得到宏病毒中出现较多的标识符集合 ${{W}}_{\rm blk}^{\rm freq}$ ; 排除正常宏程序中出现较多的标识符集合 ${{W}}_{\rm wht}^{\rm freq}$ , 形成黑词库 ${{{W}}_{\rm blk}} = $ $ {{W}}_{\rm blk}^{\rm freq} - {{W}}_{\rm wht}^{\rm freq}$ . 给定被测样本 $\varepsilon $ , OVD统计 $\varepsilon $ 中每个黑词 $w \in {{W}}_{\rm blk}^{\rm freq}$ 的出现次数和频率. 表2列出了部分OVD识别的黑词. 图6是一个真实变形宏病毒示例, 其中含有document_open、chr和shell等黑词. 注意, OVD对英文字母大小写不敏感.

表 2 OVD识别的部分黑词

图 6 含OVD所识别的黑词的变形宏病毒

3.6 白词分析

对正常宏程序统计词频, 得到出现较多的标识符集合 ${{W}}_{\rm wht}^{\rm freq}$ , 排除宏病毒中出现较多的标识符集合 ${{W}}_{\rm blk}^{\rm freq}$ , 形成白词库 ${{{W}}_{\rm wht}} = {{W}}_{\rm wht}^{\rm freq} - {{W}}_{\rm blk}^{\rm freq}$ . 给定被测样本 $\varepsilon $ , OVD统计 $\varepsilon $ 中每个白词 $w \in {{W}}_{\rm wht}^{\rm freq}$ 出现次数和频率. 表3列出部分OVD识别的白词.

表 3 OVD识别的部分白词

3.7 熵值分析

研究表明, 变形恶意程序的信息熵[15]高于正常程序[9]. 给定被测样本 $\varepsilon $ , OVD计算 $\varepsilon $ 在其滑动窗口上的平均信息熵, 算法如算法2所示. 更具体地, OVD以500字节为宽度生成 $\varepsilon $ 的滑动窗口集合 ${{S}}$ , 对所有滑动窗口 $s \in {{S}}$ 计算信息熵, 并取平均值记入 $\varepsilon $ 的特征向量.

算法2. 计算滑动窗口信息熵均值

输入: 宏程序 $\scriptstyle\varepsilon $ , 滑动窗口宽度l

输出: $\scriptstyle\varepsilon $ 中所有宽度为l的滑动窗口的信息熵算术平均

1 $\scriptstyle\;p \leftarrow 0$

2 $\scriptstyle\;{\bf{ while }}\;p < \left| \varepsilon \right| - l\;{\bf{ do:}}$

3  $\scriptstyle\;\;\;{P_i} \leftarrow 0,\forall i \in \left\{ {0,1,\cdots,255} \right\}$

4  $\scriptstyle\;\;\;{\bf{for }}\;i \in \left\{ {0,1,\cdots,l} \right\}{\bf{ do:}}$

5   $\scriptstyle\;\;\;\;\;\;{P_{\varepsilon [p + i]}} \leftarrow {\rm{ }}{P_{\varepsilon [p + i]}} + \frac{1}{{256}}$

6  $\scriptstyle\;\;\;{H_p} = - \sum\limits_{i = 0}^{255} {{P_i}{{\log }_2}\left( {{P_i}} \right)} $

7  $\scriptstyle\;\;\;p \leftarrow p + 1$

8 $\scriptstyle\;{\bf{ return }}\frac{{\sum\limits_{p = 0}^{\left| \varepsilon \right| - l - 1} {{H_p}} }}{{\left| \varepsilon \right| - l}}$

4 大规模样本采集

样本规模是保证机器学习效果的重要条件. 主流的现代反病毒系统采用云端分离的分布式的架构. 如图7所示, “云”一般部署在反病毒厂商, “端”是指反病毒系统的客户端. 在客户端部署样本上传模块, 将客户端的文件样本通过网络采集到云上, 实现大规模样本采集.

通过宏程序变形工具, 进一步对恶意样本变形, 可增加变形宏病毒的样本数量. 样本集包含主流变形工具生成的变形宏病毒样本. 主流变形工具包括: macro_pack[16]、Macroshop[17]、vba-obfuscator[18]、VBad[19]、Veil Framework[20]、Generate-Macro[21]. 通过杂交, 进一步扩大样本集. 令 $\phi $ 为杂交操作, 给定正常样本 $\varepsilon _1^{\rm wht}$ $\varepsilon _2^{\rm wht}$ , 则 ${\varepsilon }_{3}^{\rm wht}=\phi \left( {{\varepsilon }_{1}^{\rm wht},{\varepsilon }_{2}^{\rm wht}} \right)$ 仍为正常样本; 给定变形宏病毒 $\varepsilon _1^{\rm blk}$ $\varepsilon _2^{\rm blk}$ , 则 ${\varepsilon }_{3}^{\rm blk}=\phi \left( {{\varepsilon }_{1}^{\rm blk},{\varepsilon }_{2}^{\rm blk}} \right)$ 仍为变形宏病毒.

图 7 分布式的反病毒系统部署

5 实验分析

采用XGBoost[22]作为梯度提升决策树的实现, 样本空间大小 ${\rm{|}}{\bf{\Omega }}{\rm{| }} = {\rm{4 000\; 000}}$ , 样本集分布如表4所示. 实验平台为3.5 GHz Intel Xeon 16-core CPU, 256 GB内存, 操作系统为Ubuntu 18.04 LTS. 实验进行5次, 取平均值作为结果. 令 $TP$ 为被分类正确的恶意样本数量, $TN$ 为被分类正确的正常样本数量, $FP$ 为被分类错误的正常样本数量, $FN$ 为被分类错误的恶意样本数量. 正确率(accuracy)、准确率(precision)和召回率(recall)的定义分别为:

$accuarcy \; = \; \frac{{TP + TN}}{{TP + TN + FP + FN}}$ (2)
$precision \; = \; \frac{{TP}}{{TP + FP}}$ (3)
$recall \; = \; \frac{{TP}}{{TP + FN}}$ (4)
5.1 OVD的实验效果

采用网格搜索优化XGBoost的超参数. 决策树数量为1000, 树高为6, 学习率为0.1. 采用16线程, 训练时间为13 410 s. 采用10折交叉验证, 实验效果如表5所示. OVD的正确率、准确率和召回率分别为98.38%、99.41%和97.34%. 由于变形工具和杂交算法的规律性, OVD对变形工具和杂交算法生成的恶意样本的识别能力比真实样本更强.

表 4 样本集分布

5.2 机器学习算法的对比

基于Scikit-learn[23]对比了支持向量机、随机森林、梯度提升决策树和多层感知机的效果. 结果如图8所示. 梯度提升决策树在正确率、准确率和召回率上均高于其他3种机器学习算法.

梯度提升决策树的两种主流实现是XGBoost和LightGBM[24]. 使用相同的超参数(决策树数量为1000, 树高为6, 学习率为0.1, 采用16线程训练), 对XGBoost和LightGBM的实验结果如表6所示. XGBoost在正确率、准确率和召回率均略高于LightGBM, 而在训练时间方面LightGBM优于XGBoost. 因为宏病毒检测对检测效果的敏感性, 故XGBoost更优.

表 5 OVD的实验效果

图 8 机器学习算法的对比

表 6 对比XGBoost和LightGBM

5.3 与相关工作的对比

文献[5]提出的基于多层感知机的方法, 采用15维特征对宏程序向量化, 并使用多层感知机作为机器学习算法. 文献[5]的工作仅基于2537个样本(其中变形宏病毒样本773个, 正常样本1764个)进行实验, 准确率和召回率分别为93.80%和91.50%.

在4000000样本集上通过两组实验对比OVD和文献[5]的方法: ① 对比文献[5]基于多层感知机的方法在大样本集和小样本集上的效果差异; ② 采用梯度提升决策树, 对比文献[5]提出的15维特征和OVD的520维特征. 表7给出实验结果. 虽然文献[5]基于15维特征的方法在小样本集上取得了较好的正确率、准确率和召回率, 但在大样本集上的效果较差. 一种可能的解释是样本量过小导致过拟合. 在大样本集上的实验结果表明: ① 梯度提升决策树(MLP)的效果优于多层感知机(XGB); ② OVD的特征工程优于文献[5]的方法.

表 7 对比文献[5]的方法和OVD

5.4 特征工程粒度的合理性分析

通过实验分析特征工程各子任务(图2)的必要性. 基于4000000样本, 将各子任务 $t$ 从特征工程T中去除, 对比 ${{T}} - \left\{ t \right\}$ T的效果, 以验证t的必要性. 实验结果如表8所示. 其中, 去除特征工程的任意子任务t, 总体检测效果在综合考虑正确率、准确率和召回率时降低. 特别的, 去除白词分析, 虽然召回率小幅提升, 但正确率和准确率下降; 去除熵值分析后, 虽然准确率小幅提升, 但正确率和召回率下降. 基于上述分析, OVD的特征工程中的各子任务对优化总体检测效果具有必要性.

表 8 特征工程子任务的必要性分析

在扫描时间方面, 对单个样本做全量特征工程T的平均耗时为57.65 ms, 其中文件解析和词法分析的平均耗时为45.02 ms. 表9给出各子任务t的平均时间开销. 所有子任务共产生28.01%的时间开销. 该指标属于合理范围, 不影响工业级应用推广. 各子任务t均不产生明显的内存开销.

表 9 特征工程子任务的时间开销

6 结语

本研究提出了OVD—一种基于梯度提升决策树的变形宏病毒检测方法. 与传统的基于病毒数据库的检测方法不同, OVD通过机器学习在高抽象层次对变形宏病毒的不动点建模, 实现了良好的泛化性. OVD面向工业级应用, 基于专家经验实现了520维的变形宏病毒特征工程, 较现有方法粒度更细. 介绍了特征工程及其各子任务的功能和设计思路. 实验验证了细粒度特征工程的合理性, 并讨论了其性能影响. 大规模数据集上的实验表明, OVD能有效检测变形宏病毒, 准确率和召回率分别达到99.41%和97.34%, 优于现有方法.

参考文献
[1]
Souri A, Hosseini R. A state-of-the-art survey of malware detection approaches using data mining techniques. Human-centric Computing and Information Sciences, 2018, 8(1): 3. DOI:10.1186/s13673-018-0125-x
[2]
Ye YF, Li T, Adjeroh D, et al. A survey on malware detection using data mining techniques. ACM Computing Surveys, 2017, 50(3): 41.
[3]
Sihwail R, Omar K, Ariffin KAZ. A survey on malware analysis techniques: Static, dynamic, hybrid and memory analysis. International Journal on Advanced Science, Engineering and Information Technology, 2018, 8(4–2): 1662.
[4]
Saeed IA, Selamat A, Abuagoub AMA. A survey on malware and malware detection systems. International Journal of Computer Applications, 2013, 67(16): 25-31. DOI:10.5120/11480-7108
[5]
Kim S, Hong S, Oh J, et al. Obfuscated VBA macro detection using machine learning. Proceedings of the 48th Annual IEEE/IFIP International Conference on Dependable Systems and Networks. Luxembourg City, Luxembourg. 2018. 490–501.
[6]
Nissim N, Cohen A, Elovici Y. ALDOCX: Detection of unknown malicious Microsoft office documents using designated active learning methods based on new structural feature extraction methodology. IEEE Transactions on Information Forensics and Security, 2017, 12(3): 631-646. DOI:10.1109/TIFS.2016.2631905
[7]
Cohen A, Nissim N, Rokach L, et al. SFEM: Structural feature extraction methodology for the detection of malicious office documents using machine learning methods. Expert Systems with Applications, 2016, 63: 324-343. DOI:10.1016/j.eswa.2016.07.010
[8]
林杨东, 杜学绘, 孙奕. 恶意PDF文档检测技术研究进展. 计算机应用研究, 2018, 35(8): 2251-2255. DOI:10.3969/j.issn.1001-3695.2018.08.003
[9]
周安民, 户磊, 刘露平, 等. 基于熵时间序列的恶意Office文档检测技术. 山东大学学报(理学版), 2019, 54(5): 1-7.
[10]
Cortes C, Vapnik V. Support-vector networks. Machine Learning, 1995, 20(3): 273-297.
[11]
Ho TK. The random subspace method for constructing decision forests. IEEE Transactions on Pattern Analysis and Machine Intelligence, 1998, 20(8): 832-844. DOI:10.1109/34.709601
[12]
Friedman JH. Greedy function approximation: A gradient boosting machine. Annals of Statistics, 2001, 29(5): 1189-1232.
[13]
Cybenko G. Approximation by superpositions of a sigmoidal function. Mathematics of Control, Signals and Systems, 1989, 2(4): 303-314. DOI:10.1007/BF02551274
[14]
[MS-OLEDS]: Object Linking and Embedding (OLE) Data Structures. https://docs.microsoft.com/openspecs/windows_protocols/ms-oleds. [2020-07-12].
[15]
Shannon CE. A mathematical theory of communication. ACM SIGMOBILE Mobile Computing and Communications Review, 2001, 5(1): 3-55. DOI:10.1145/584091.584093
[16]
[17]
[18]
[19]
[20]
[21]
[22]
Chen TQ, Guestrin C. XGBoost: A scalable tree boosting system. Proceedings of the 22nd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining. San Francisco, CA, USA. 2016. 785–794.
[23]
http://scikit-learn.org. [2020-09-03].
[24]
Ke GL, Meng Q, Finley T, et al. LightGBM: A highly efficient gradient boosting decision tree. Proceedings of the 31st International Conference on Neural Information Processing Systems. Long Beach, CA, USA. 2017. 3149–3157.