基于频谱分析的PDF文件恶意代码检测方法

2016-11-21 05:44郝晨曦
信息安全研究 2016年2期
关键词:文档频谱样本

郝晨曦 方 勇

(四川大学信息安全研究所 成都 610065)



基于频谱分析的PDF文件恶意代码检测方法

郝晨曦 方 勇

(四川大学信息安全研究所 成都 610065)

(hcx3630@sina.com)

在对基于频谱分析的复合文档恶意代码检测方法研究的基础上,提出了一种基于机器学习的频谱分析PDF文件恶意代码检测方法,首先介绍了PDF文件恶意代码检测系统.并且在原有基础上进一步优化了改进后的实数序列FFT算法;通过从PDF文件储存结构中提取出全部字段的内容进行频谱变换,对变换后的频谱图进行分析,通过使用机器学习中的算法提取频谱图的特征属性,再根据机器学习后形成的算法对PDF文件是否感染恶意代码进行检测,最后,通过实验分析,验证了所用方法的正确性和有效性,并给出了整个系统的实现方案与检验结果数据.

便携式文档格式;恶意代码检测;频谱变换;机器学习;特征提取

便携式文档格式(portable document format, PDF)是由Adobe Systems用于与应用程序、操作系统、硬件无关的方式进行文件交换所发展出的文件格式.PDF文件因其文件格式在各个操作系统上的通用性、便捷性而被用户广泛使用.随着PDF文件的广泛使用,PDF文件成为许多网络攻击者攻击的目标,因此对PDF植入恶意代码的攻击技术和攻击方法也越来越多.存在PDF中的恶意代码多是跟随用户点击打开PDF文件自行启动,因此与其他类型恶意代码相比,这种攻击方式更加隐蔽,危害性更大.

纵观国内外有关PDF恶意代码检测的技术研究现状,在当前现状下,各国研究者对PDF文件恶意代码的检测展开了很多深入细致的研究工作,已提出了一些富有创意的解决方案.

Vatamanu等人[1]提出了1种基于机器学习中聚类算法的PDF文件恶意代码检测方法,通过标记PDF文件中的JavaScript代码很好地解决了攻击者通过混淆技术对检测带来的干扰.Huang等人[2]提出了基于朴素贝叶斯算法的PDF检测模型,该模型能够对比正常PDF文件和含有恶意样本PDF之间的区别,并通过朴素贝叶斯算法进行分类. Maiorca等人[3]提出1种较为高效的插件,很好地结合了针对PDF结构的特征匹配模型和高效分类器.Lu等人[4]提出了MPScan系统,该系统结合了JavaScript代码动态和静态2种检测方式,具体通过Hook技术获取本地Adobe Reader中的JavaScript引擎信息,从而获取PDF中Java脚本的运行情况,并对此进行检测.Smulz等人[5]提出了1种从文档数据和结构中提取特征的检测方法,并通过对现有真实数据进行检测,验证了该系统的耐用性.Schmitt等人[6]提出了1种PDF检测工具,该工具基于传统检测方式,在模拟环境中通过静态和动态方式检测恶意行为.Kang等人[7]提出了1种自动的恶意软件分析系统,自动执行PDF格式的动态、静态分析并提供结果.

以上各项研究与实验展示了当前针对PDF恶意代码检测研究情况,然而综合来看以上研究均存在局限性和针对性不强的问题,如动态监测和静态检测相结合的检测方法仅是对传统恶意代码检测思路进行延续,对现在新出现的PDF恶意代码针对检测性不强.通过检测是否挂载了JavaScript脚本的PDF恶意代码检测方法,虽然针对性强且准确性高,但是其应用范围有限.

随着针对PDF恶意代码检测方法的不断研究, Han等人[8]提出了在进行熵度量的基础上进行小波分析的方法,对PDF恶意代码进行检测,然后对结果通过相似度算法进行区分比较.刘林等人[9]在此基础上提出的基于频谱分析的复合文档恶意代码检测方法,通过对复合文档进行FFT变换进行恶意代码检测是对变换检测方法的进一步研究,同时也说明了对PDF文件进行变换检测恶意代码的可行性.

在以上研究基础上,本文提出了基于机器学习的频谱分析PDF文件恶意代码的检测方法研究方式,将文件二进制数据的顺序看作时间轴,正常PDF文件与挂载了恶意代码的PDF文件差异在时域上并不明显,但是经过FFT变换后,在相位、频率分布和能量上就会表现出差异,对于存在差异的结果通过机器学习进行分类就能相对精准地找到正常PDF文件与加载了恶意代码的PDF文件之间的差异点,通过差异点便可对加载了恶意代码的PDF文件进行高效检测.

本文以下部分将通过四大部分进行详尽说明:第1节介绍PDF文件进行FFT 变换的原理;第2节介绍基于机器学习的频谱分析系统的具体结构;第3节将展示实验验证思路,设计方法,展示实验结果;第4节对本文内容进行总结.

1 PDF文件FFT变换原理

PDF文件结构即物理结构包括4个部分:头文件(Header)、文件体(Body)、交叉引用表(cross-reference table)和文件尾(Trailer),具体结构如图1所示:

HeaderBodyxrefTableTrailer

图1 PDF文件格式

其中Header指明了该文件所遵从PDF规范的版本号,它出现在PDF文件的第1行; Body由一系列的PDF间接对象组成,这些间接对象构成了PDF文件的具体内容如字体、页面、图像等等;xref Table则是为了能对间接对象进行随机存取而设立的一个间接对象地址索引表; Trailer声明了交叉引用表的地址,指明文件体的根对象,还保存了加密等安全信息.

本文将使用1种经过改进的实数序列FFT算法,该改进算法是通过实验优化得来,利用FFT的频域变换性质将实数序列转化为复数序列.将N点的实数序列按照式(1)分解:

(1)

在式(1)中:

将N个实数序列分解重构为N2个复数序列,运算量没有增加,得到的表达式如下:

(2)

对z(n′)进行N2个序列的复数傅里叶变换:

Z(k)=FFTN2(k,z),k=0,1,…,N2-1,

(3)

之后通过fe(n′)和fo(n′)的傅里叶变换将z(n′)的FFT还原,这样就可以获得原始序列即N个点实数序列的FFT.推导过程如下:

(4)

由表达式F(k)=Fe(k)+e-j2πkNFo(k)可以推导出下面的结果:

je-j2πkN((Z(k)-Z(N2-k)*)},

N=0,1,…,N2-1,

(5)

关于序列的第N2项,其计算方法如式(6):

F(N

j(Z(0)-Z(0)*)},

(6)

关于序列中后N2项,可通过FFT变换的频率对称性F(k)=F(N-k)*求解,这样就将N个实数序列转换为N2个复序列运算,达到优化算法的目的.

在针对PDF文件结构研究的基础上,通过对全文件二进制数据进行提取,将其转换为相应实数序列,然后利用Python(x,y)中的NumPy和SciPy库实现上述改进的FFT算法,具体核心代码如下所示:

fh=open(filename, "rb")

raw=fh.read()

x=[]

for ch in raw:

x.append(ord(ch))

fft_size=len(x)

fh.close()

sampling_rate=131072

xs=x[:fft_size]

freqs=np.linspace(0, sampling_rate2,

set_printoptions(threshold="nan")

xfp=20*np.log10(np.clip(np.abs(xf),

1e-20, 1e100))

将实数序列变换成复序列,最后利用matplotlib库绘制频谱图如图2、图3所示:

图2 正常PDF文件频谱图

图3 绑定了恶意代码后的PDF文件频谱图

2 基于频谱分析的检测系统

图4为本文提出的检测方法的原理图,首先需要整理收集大量的恶意PDF样本及非恶意的PDF样本.之后对这两大样本集分别进行频谱变换,频谱变换的部分根据本文第1节介绍的改进后的FFT算法进行,并生成相应频谱图集.通过人为对比生成的2个频谱图集,分析出恶意PDF样本集和非恶意PDF样本集的特征属性.最后通过机器学习中监督学习的JRip算法提取数据规则对2组特征点进行分类,并从中提取出相应判断规则,根据提取规则书写判断代码.在检测阶段,我们运用相同的方法,先对未知PDF文件进行频谱变换,之后提取变换后的相应特征点,对特征点进行判断后分析其是否为含有恶意代码的PDF文件.

图4 检测方法原理图

为了更好地阐述本文所提出的基于机器学习的频谱分析PDF文件恶意代码检测方法,下面将介绍基于本文思路所研发的基于机器学习的频谱分析PDF文件恶意代码检测系统.整个系统共包括四大模块,分别为管理模块、PDF文件数据读取模块、数据处理计算模块、分析模块,系统架构如图5所示:

图5 检测系统框架图

其中,管理模块主要是面向用户使用,用户可已通过管理模块输入需要检测的未知PDF文件,并通过管理模块获得最终检测结果,同时也要求管理模块具备较好的用户界面设计.PDF文件读取模块细分为3个部分:读入待检测PDF文件部分,用于读取用户输入的PDF文件;提取有效二进制数据部分,负责将读入的PDF文件转换为二进制序列,并将无用字段剔除;最后一部分将提取出的二进制文件转换为有效的实数数列并传送至数据处理计算模块.数据处理计算模块主要负责进行数据的FFT变换,将数据以改进过的FFT运算法则进行转换得到我们需要的数据形式,最终以频谱图的方式展示给用户.分析模块的功能是对进行转换后的文件数据结果进行分析,通过使用机器学习后的判断算法对提取出的数据特征值进行分析,判断其是否为恶意PDF文件,并将结果反馈给用户.同时随着恶意PDF样本文件的不断扩充,技术人员可以通过进一步机器学习分类判断的方式提高判断算法的准确性.

3 实验验证

本节将对本文提出的检测方法进行验证,检测样本均是通过绑定工具对正常PDF文件进行恶意工具绑定,从而作为检测样本.

图6 正常PDF文件检测结果

本次检测样本选取了大量不同内容不同大小的PDF文件,之后通过对这些正常PDF文件进行恶意代码绑定,从而得到待检测的恶意PDF文件样本,恶意代码绑定是通过绑定工具将诸如下载器等的恶意代码进行绑定到正常PDF样本中.

图6是对正常PDF文件检测所得到的图谱.

图7是对图5所示正常PDF文件进行恶意带绑定之后的检测结果.

图7 恶意PDF文档检测结果

从图6、图7不难看出,本检测方法针对正常PDF文件和恶意PDF文件的检测结果具有显著差别,也证明了基于机器学习的频谱分析PDF恶意代码检测技术具有研究价值.

本次验证实验共选取40个样本进行判断统计,其统计结果如表1所示:

表1 实验验证结果表

表1中数据充分说明了本检测方法对于检测PDF恶意代码的有效性,同时也不可否认,随着今后恶意代码的推陈出新,检测能力必须紧随其变,这也要求我们收集更多更新的含有恶意代码的PDF样本.

4 总结与展望

本文立足于基于频谱分析的恶意代码检测技术,针对PDF文件提出了相应可行的检测方法,并对相关理论进行了具体实现.

本文所提出的基于频谱分析的PDF文件恶意代码检测技术不仅可针对PDF文件进行检测,从理论上判断,同时也可以针对大部分二进制复合文档进行检测.

在具有广阔应用前景的同时,本文所阐述的PDF文档检测技术也具有一定的检测局限性:1)本文针对恶意代码特殊属性判断的机制,是依据对大量含有恶意代码的PDF文件进行分析统计得来,可能存在因样本数量不足的原因所造成的判断不准问题;2)现阶段恶意代码更新频率过快,造成检测过程中会出现误报或者漏报的可能;3)本系统只考虑了针对含有恶意代码的PDF文件检测功能,并不具有对恶意文件进行拦截的能力.

在未来的研究工作中,将从以下几个方面解决上述问题:通过增加样本数量与新出现的恶意代码样本种类,增强本系统的检测能力,减少误报和漏报概率;通过扩展检测文件类型增大本系统的检测范围;通过增加针对恶意文件进行处理的功能模块,提高本系统的实用性.

[1]Vatamanu C, Dragos G, Benchea R. A practical approach on clustering malicious PDF documents[J]. Journal in Computer Virology, 2012, 8(4): 151-163

[2]Huang Cheng, Fang Yong, Liu Liang, et al. A static detection model of malicious PDF documents based on Naïve Bayesian classifier technology[OL]. [2015-12-12]. http:ieeexplore.ieee.orgxpllogin.jsp?tp=&arnumber=6413432&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D6413432

[3]Maiorca D, Giacinto G, Corona I. A pattern recognition system for malicious PDF files detection[OL]. [2015-12-12]. http:link.springer.comchapter10.1007%2F978-3-642-31537-4_40

[4]Lu Xun, Zhuge Jianwei, Wang Ruoyu, et al. De-obfuscation and detection of malicious PDF files with high accuracy[OL].[2015-12-12]. http:ieeexplore.ieee.orgxpllogin.jsp?tp=&arnumber=6480434&url=http%3A%2F%2Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D6480434

[5]Smutz C, Stavrou A. Malicious PDF detection using metadata and structural features[C]Proc of Computer Security Applications Conf. New York: ACM, 2012

[6]Schmitt F, Gassen J, Gerhards-Padilla E. PDF scrutinizer: Detecting javascript-based attacks in PDF documents[OL]. [2015-12-12]. http:ieeexplore.ieee.orgxplarticleDetails.jsp?tp=&arnumber=6297926

[7]Kang H, Kim J, Kim B, et al. Development of an automatic document malware analysis system[OL]. [2015-12-12]. http:link.springer.comchapter10.1007%2F978-94-007-5860-5_1

[8]Han S, Lee K, Lee S. Packed PE file detection for malware forensics[OL]. [2015-12-12]. http:ieeexplore.ieee.orgxpllogin.jsp?tp=&arnumber=5404211&url=http%3A%2F%2Fieeexplore.ieee.org%2Fiel5%2F5403362%2F5404169%2F05404211.pdf%3Farnumber%3D5404211

[9]刘林, 赵向辉, 姚原岗, 等. 基于频谱分析的复合文档恶意代码检测[J]. 清华大学学报: 自然科学版, 2013, 53(12): 1713-1718

郝晨曦

硕士,主要研究方向为信息安全.

hcx3630@sina.com

方 勇

博士,教授,主要研究方向为信息安全、网络信息对抗.

yfang@scu.edu.cn

PDF File Malicious Code Detection Method Based on Spectrum Analysis

Hao Chenxi and Fang Yong

(InstituteofInformationSecurity,SichuanUniversity,Chengdu610065)

In basic research based on compound documents malicious code detection method of spectrum analysis, a spectrum analysis method based on machine learning is proposed to detect the malicious code in PDF file, firstly, we introduced the PDF file malicious code detection system and make a further optimization of the improved real sequence FFT algorithm based on the original ; we made the spectrum transformation of all the field contents extracted from the PDF file storage structure, and analyzed the transformed spectrum map, extracted feature attributes of those spectrum maps by using machine learning algorithms, then formed whether PDF files infected with malicious code is detected according to the machine learning algorithm ,and finally, through experimental analysis , to verify the correctness and validity of the method used , and gives the implementation of the whole system and test result data.

portable document format (PDF); malicious code detection; spectrum transform; machine learning; feature extraction

2016-01-03

TP399

猜你喜欢
文档频谱样本
浅谈Matlab与Word文档的应用接口
有人一声不吭向你扔了个文档
用样本估计总体复习点拨
一种用于深空探测的Chirp变换频谱分析仪设计与实现
推动医改的“直销样本”
随机微分方程的样本Lyapunov二次型估计
基于RI码计算的Word复制文档鉴别
频谱大师谈“频谱音乐”——法国作曲家缪哈伊访谈记
村企共赢的样本
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat