基于机器学习的恶意文档识别工具设计与实现

■doi:10.3969/j.issn.1671-1122.2018.08.001/2〇18年第8期
N0T IN F O SECURITY
等级保护_
基于机器学习的恶意文档识别工具
设计与实现
------------------文伟平\吴勃志\焦英楠2,何永强1--------------------
(1.北京大学软件与微电子学院,北京102600 ; 2.国家计算机网络应急技术处理协调中心,北京100029)
摘要:随着网络化、信息化的程度进一步提高,高级持续性威胁(Advanced Persistent Threat,A P T)事件不断增多,给国家、企业的安全发展带来了严重威胁和巨
大经济损失。A P T攻击通过定向情报收集、单点攻击突破、控制通道构建、内部横向
渗透和数据收集上传等一系列步骤对特定目标进行长期持续的网络攻击。而在单点攻
击突破阶段,最常用的网络攻击技术手段是采用植入远程木马的恶意文档,所以有效
检测和识别恶意文档十分必要。文章在对现状进行充分调研后,提出一种基于机器学
习的恶意文档检测方法。通过结合虚拟沙箱对未知文档进行动态行为分析,设计并实
现了一种恶意文档识别工具。实验证明,该工具基于机器学习方式,可以高效处理和
识别大规模的恶意文档文件。
关键词:恶意文档;机器学习;特征向量;虚拟沙箱
中图分类号:TP309文献标识码:A文章编号:1671-1122 (2018) 08-0001-07
中文引用格式:文伟平,吴勃志,焦英楠,等.基于机器学习的恶意文档识别工具设计与实现[J].信息 网络安全,2018,18(8):1-7.
英文引用格式:WEN W eiping,W U B ozhi,J I A0 Y ingnan,et al.Design and I mplementation on Malicious Documents Detection Tool Based on Machine Learning[J],Netinfo Security,2018,18(8):1—7.
Design and Implementation on Malicious Documents Detection
Tool Based on Machine Learning
WEN Weiping1,WU Bozhi1,J I AO Yingnan2,HE Yongqiang1
(1. School of E lectronics E ngineering and Computer Science, Peking University, Beijing 102600, China,, 2.
National Computer N etwork E mergency Response Technical Team / Coordination Center, Beijing 100029, China)
Abstract:With the further improvement of the degree of network and information,
the advanced persistent threat(APT)events are increasing,which brings serious threat
to the security development of the state and huge economic losses to enterprises.APT
attack carries out a long-term continuous network attack on specific target by using
a series of steps which include targeted intelligence collection,single point attack
breakthrough,control channel construction,internal horizontal penetration and data
collection and upload and so on.I n the single point attack breakthrough stage,the most
commonly used technology of network attack is to use malicious documents implanted
收稿日期:2018—4—9
基金项目:国家自然科学联合基金[U1736218]
作者简介:文伟平(1976—),男,湖南,教授,博士,主要研究方向为网络攻击与防范、恶意代码研究、信息系统逆向工程和可信计算技术等;吴勃志(1990—),男,广东,硕士研究生,主要研究方向为漏洞分析和漏洞挖掘;焦英楠(1983—),女,辽宁,工程师,硕士,主要研究方向为软件工程、信息安全等;何永强(1984—),男,四川,硕士研究生,主要研究方向为软件工程。通信作者:文伟平weipingwen@pku.edu
- n C t in f o s e c u r it y
I等级保护2018年第8期
remote Trojans,so it is necessary to detect and identify malicious documents.After fully
investigating the status quo,this paper proposes a malicious document detection method
based on machine learning.By analyzing dynamic behaviors of unknown documents
combining with virtual sandbox,a malicious document recognition tool is designed and
implemented.Experiments show that the tool can efficiently process and identify large-
scale malicious documents based on machine learning.
Key words:malicious document; machine learning; feature vector; virtual sandbox
〇引言
近几年来,尚级持续性威胁(Advanced Persistent Threat,APT)攻击已经成为社会关注的热点。Symantec 2016年发布的网络威胁报告⑴指出,随着 攻击成本的降低,A P T攻击的主要目标已经逐渐由大 型企业转变为中小型企业,这意味着有越来越多的公 司面临此类攻击威胁。随着网络攻防态势的发展,远程类漏洞越来越少,恶意文档开始被频繁用于网络攻 击。由于恶意文档比一般可执行程序更容易受到信任,因此在A P T攻击中发挥了重要作用。
针对A PT攻击,国内外学者进行了很多相关研究。其中发现,恶意文档是A P T攻击单点突破阶段最常 用的技术手段,对整体攻击的成功率起到重大作用。如果在邮件钓鱼等环节提前捕获并识别出恶意
文档,那将能有效预防和对抗A P T攻击。然而,识别恶意 文档的方法大多不尽人意,要么存在准确率低、误报率高的问题,要么无法对加密文档进行检测。为此,本文提出一种基于机器学习的恶意文档检测方法,该方法将恶意文档攻击链的关键点作为特征,将检测样 本置于虚拟沙箱子系统中动态运行,结合机器学习方 法训练恶意文档分类模型。实验结果显示,本文提出 的恶意文档检测方法具有很高的准确率,其中。ffice 文件准确率为95.75%,p d f文件准确率为96.34%,swf文件准确率为88.41%。
1相关工作
小柳树和小枣树教学设计
1.1恶意文档当前攻击链分析
为了研究恶意文档检测技术,需要对恶意文档的 攻击链进行详细了解和分析。利用恶意文档进行攻击时,主要分为4个关键阶段(如图1所示):任意代码
执行、绕过系统安全缓解策略、反安全产品检测和执
行功能。下面重点介绍4个阶段中的关键技术。
1)突破DEP/ASLR保护技术。DEP(数据保护 执行)和ASLR(地址空间布局随机化)技术就是利
用操作系统中异常处理机制和代码模块人口点随机
分布这两项技术来阻止恶意代码的执行[2]。
2)突破沙箱保护技术。沙箱技术简单来说就是 让程序运行在其所需最小权限的受限环境中。例如,
栾茂田浏览网页的进程只负责图像渲染就可以了,没有必要
拥有执行系统命令的权限。在沙箱保护模式下运行的
程序即使攻击成功,获得的权限也是非常低的,无法
正常读写文件。
3)任意内存地址读写漏洞利用。任意内存地址读写漏洞触发成功后即获得全内存区域读写权限,获取
该权限后相当于拥有了一个程序运行时的内存补丁生
成器,可以向程序打任意补丁,获取程序完全控制权。
4)模块地址泄露技术。A S L R的最大缺陷就是 虽然代码模块人口地址是随机分配的,但是代码模块
内相对偏移是固定的[\如果能到漏洞将代码模块
内任意地址泄露出来,那么整个代码模块的人口地址
就可以根据固定偏移计算得来,从而使A S L R防护彻
/2〇18年第8期
N 0T IN F O  SECURITY
等级保护_
底失效。
5)
反调试技术。Payload  (有效载荷)执行后,
通过相关技术判断当前程序是否正在被调试,若是, 则不再执行功能代码或执行干扰调试代码以防被进 一步分析。
6)
反hook 挂钩技术。安全软件为了监视程序的 可疑行为,会hook  —些敏感A P I 函数[4],而在漏洞 利用过程中,通常会调用这些A P I 函数完成一些特殊 功能。因此为了绕过安全软件的检测,需要在Payload  中加人反hook 技术,从而突破安全软件的部分限制。
7) 反虚拟执行检测。Payload 执行后,通过相关
技术判断当前程序是否处在虚拟环境中运行,若是,
则直接退出执行,以避免被分析。
1.2国内外恶意文档检测技术
有许多相关技术可用于识别未知恶意代码及其变
种,主要有以下3种。1.2.1静态启发式扫描技术
该技术指在代码没有动态运行的状态下,通过分 析可疑文档中的特征指令序列(如A P I 序列)来识别 恶意代码。文献[5]对文档中的字段进行频谱分析, 通过提取频谱特征属性来进行恶意文档的识别;文 献[6]基于文献[5]提出应用J R ip 算法提取文件频谱 图的特征来检测识别恶意p d f 文档;文献[7]通过提 取p d f 文档中的JavaScript 代码并进行特征分析来识 别恶意p d f 文档。这些方法在非加密变形的恶意文档 方面取得了较好的识别效果,对于加密文档的识别效 果并不显著。
1.2.2基于代码的动态行为分析技术
该技术要点在于监控代码在运行过程中的运行 行为,这些行为包括文件操作、网络连接行为等。
HUANG [8]等人提出通过观察可疑文档动态运行时系统
注册表的键值、网络连接行为以及文件10操作的异常 变化来识别是否有恶意行为。该方法的优点是简单、 高效,可以一定程度检测出未知恶意文档,而不用担 心恶意代码是否被加密;缺点是误报率和漏报率较高。
1.2.3基于机器学习的恶意文档检测技术
文献[9]提出一种改进的静态检测方案,通过学
习一定量的样本来建立模型计算由未知样本提取 出的向量和模型〇中原点之间的欧式距离,设置一定 的权值兄通过比较欧氏距离和权值A 的大小来确定
p d f 文档是否为恶意。文献[10]提出利用半监督学习
罗尔斯的方法,使用大量标记好的p d f 文档进行分类模型的 训练。以上两种方法虽然都有效提高了准确率,但也 仅适用于检测识别基于JavaScript 攻击的恶意p d f 文
档,同样具有局限性。
2恶意文档检测方案
2.1模型选择与方案设计
借助机器学习的方法,使用大规模训练样本集搭
建智能模型,可以高效准确地解决目前大规模攻击导
致的安全问题。然而不同的算法所擅长处理的领域有
很大的区别,选择合适的机器学习算法非常重要。以 下对机器学习算法的优缺点进行比较:
1)
K N N 算法。K N N 算法理论简单、容易实现,
但当样本容量大,数据集计算量比较大,样本不平衡 时,预测偏差比较大。
2)
支持向量机(SVM )。优点是擅长解决非线性
及小规模样本条件下机器学习问题,无局部极小值问 题,可以很好地处理高维数据集,泛化能力比较强。 缺点是对于核函数尤其是径向基函数的高维映射解释 力不强,且对缺失数据敏感。
3)
AdaB〇〇s t 算法。优点是可以采用不同的分类
算法作为弱分类器,并将多个弱分类器级联起来,构 成一个强分类器,使得分类具有很高的精度。缺点是
凯里学院图书馆
AdaBoost 迭代次数也就是弱分类器数目不好设定,且
数据不平衡导致分类精度下降。
4)
决策树。优点是易于理解和解释,能可视化
分析,容易提取出规则且可以同时处理标称型和数值 型数据。测试数据集时运行速度比较快。决策树可以 很好地扩展到大型数据库中,且它的大小独立于数据
jN C T IN F O  s e c u r it y
I
等级保护
2018年第8期
库的大小。缺点是容易出现过拟合问题[11](为了得到 一致假设而使假设变得过度严格称为过拟合)。
5)
朴素贝叶斯算法。优点是对大规模的训练和
查询具有较高的速度,支持增量式运算。缺点是样 本属性需要相互独立,当存在关联时效果不好。
6) 人工神经网络。优点是分类准确率高、学习 能力强、有联想能力、能逼近任意非线性关系、对 噪声数据鲁棒性和容错性较强。缺点是神经网络参
数较多,如权值和阈值,且黑盒过程不能观察中间 结果。
由于恶意文档更新及变种速度极快,为了准确且 快速地进行恶意文档识别,对算法的主要需求为:分 类规则易于理解,可以结合虚拟沙箱模块进行扩展和 改动,识别准确率高且生成的模型可以可视化显示, 可以自动识别具有类似行为的新类别的恶意文档。
在分析、研究恶意文档的攻击链以及机器学习算 法的基础上,本文提出一个检测方法,以恶意文档攻
击链的动态行为作为特征向量获取的依据,生成决策 树,从而实现对各种文件类型的恶意文档检测。本文 设计采用QEMU 虚拟沙箱,将训练文档投人其中模 拟运行,通过m in ifilte r 过滤驱动框架[12]来定点监控 训练文档的动态特征行为,采用C 4.5决策树分类算 法作为机器学习模型,以动态特征行为作为特征向量, 训练该机器学习模型。利用这种方法得到一个分类器, 后续对样本进行检测时,只需将样本放进虚拟沙箱, 利用该分类器分析其动态特征行为即可判断该样本是 否属于恶意文档。
2.2特征向量的提取及分类
特征向量的提取是影响决策树识别结果的重要 因素。本文方法基于当前恶意文档攻击链行为特征进 行特征向量的提取。特征向量提取主要分为两个方面: 静态特征向量提取和动态行为特征向量提取。
1)静态特征向量提取。针对恶意文档中经常出 现的特殊字符串、特殊函数以及特殊关键字进行特征 向量的提取。表1给出了从一些p d f 格式的恶意文档
中提取出的JavaScript 代码的关键静态特征向量[13]。
表1 p d f 恶意文档Ja va S crip t 代码的关键静态特征向量提取
特殊字符
特殊函数
特殊关键字
(1) 含有参数的字符
串个数
(2) 长度大于40的 字符串个数
塞西尔
(3) 字符串中包含 “I frame ” 量(4) 可疑字符串的 个数
(5) 十六进制字符出 现的个数
(1 )
eval 〇的数量
(2 ) escape 〇和 unescqje 〇
的数量(3)
DOM 〇的数量
(4) CreateObject 〇6^C 量
(5 ) fromChaiCodeQ 和
parse I nt 〇的数量
(6) setTimeOut 〇 的数量 (7 ) ActiveXObjectQ  的数量
(1 )
wileyfo r 出现的次数
(2) w hile 出现的次数 (3 ) classld  的数量
2)动态行为特征向量提取。动态行为特征向量分别从任意代码执行、绕过系统安全缓解策略、反安 全产品检测、执行功能这4个阶段进行提取,分析这 4个阶段的触发过程和行为特点,主要包含网络、文件、 内存、线程、进程、系统和注册表7种类别。
(1) 任意代码执行行为特征向量①
线程行为。栈溢出时可能造成的内存破坏
(SEH 链完整性破坏)。
内存行为。通过堆喷射部署内存占领可预测内
存发生的默认堆空间、堆块异常分配。
(2) 绕过系统安全缓解策略行为特征向量① 系统行为。敏感A P I 的异常环境调用。②
内存行为。绕过DEP 和ASLR 的R 0P 链操作,
如Keme 132模块的导出表或M Z 头的异常访问。
(3) 反安全产品检测行为特征向量如反hook 、反调试、反虚拟机等。(4) 执行功能行为特征向量
① 网络行为。建立网络链接、下载数据流量。② 文件行为。创建可执行文件。③ 进程行为。创建进程。
④ 系统方面。调用获取系统环境信息的敏感API 。⑤
注册表方面。创建服务或设置自启动。
2.3C 4.5决策树的生成与识别
C 4.5决策树的生成由以下步骤构成:
1)收集训练样本集,即恶意文档样本及非恶意 文档样本。
^018年第8期
C riN F O SECURITY 等级保护_
2)将训练样本集中的文档样本由调度模块输人 虚拟沙箱。
3)在虚拟沙箱中运行文档样本,捕获文档样本 的运行行为。
4)根据文档样本的运行行为进行分类,包括网 络行为、文件行为、内存行为、线程行为、进程行为、
系统行为和注册表行为7种类别。
5)统计每一类行为的数量并根据该数量计算其 行为特征值,将7种类别的行为特征值组合为该样本
的动态行为特征向量。
6)提取训练样本集中所有样本的动态行为特征
向量,计算特征向量的信息增益率[14],选取信息增益
率最大的特征向量,将由该特征向量得到的行为特征 作为分类特征,按照该特征划分建立子节点。信息增益率的计算公式如下
Gain-ratio=Gain(S,A)II(1)
其中,
Gain(S,A)=E(S)-E(S,A)(2)
E[S)=t j^2Pi(3)
i=l
E(S^)=Z ^T^v)(4)
却)H
公式(1)〜公式(4)中,G a in-ra tio为信息增益 率,S为样本集合,A为特征,Gain(S,A)为信息增益,I为分裂信息度量(用来衡量属性分裂数据的广度和 均匀度);E(S)为S的熵,A是变量i的概率,c为S的变量数量;E(S,A)为A的熵,F(A)是A的值域,S v是 S中在A上值等于v的样本集合。
7)对子节点递归调用以上步骤建立决策树。
基于决策树的识别方法与决策树的生成方法类 似:将待识别的未知样本输人虚拟沙箱以捕获动态行 为;将动态行为传递到任务调度子系统以对它们进行 分类,计算它们的行为特征值,组成行为向量;将行 为向量带人决策树从根节点开始搜索,最终输出叶子 节点,该叶子节点即为识别出的样本。基于决策树算 法的识别流程如图2所示。
图2基于决策树算法的识别流程
2.4恶意文档检测工具的具体实现
基于以上描述,本文设计了一个基于机器学习的 恶意文档检测工具。该工具采用经典的M VC模型进行设计,主要包括以下4个子系统:前端可视化子系 统、任务调度子系统、虚拟沙箱行为捕获子系统和基 于机器学习识别子系统。
前端可视化子系统提供简单的用户登录登出操 作,并提供用户上传检测样本文件接口,能将样本文
件的检测结果简单友好地展示出来。
任务调度子系统完成文件格式识别和任务分发 两项功能。文件格式识别基于文件m agic进行识别,magic匹配采用当前开源的YARA[15]规则匹配。
当目标进程存在过多行为时,传统沙箱严重影响 主机效率岡,因此采用虚拟沙箱捕获样本动态运行 时行为。选用QEMU进行设计和实现,通过lib v irt 进行统一管理[1'QEMU是采用GPL许可证分发源 码的模拟处理器[18],支持多种架构,仿真速度快,安装配置快捷简单,能够满足本文系统对虚拟化软件 平台的基本需求。
基于机器学习识别子系统主要对已知恶意文档训练,提取行为特征并构建决策树规则,基于训练的决 策树规则对未知恶意样本进行匹配和识别。
基于机器学习的恶意文档识别工具处理流程为:

本文发布于:2024-09-23 10:24:35,感谢您对本站的认可!

本文链接:https://www.17tex.com/xueshu/291188.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:文档   行为   恶意   识别   进行   样本
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议