论文部分内容阅读
随着互联网的高速发展和办公自动化的日益普及,PDF(portable document format)文件已经成为全球电子文档分发的开放式标准,是继PostScript文件格式之后的一种新的输出文件格式。PDF凭借着它的种种优势,克服了电子文件共享过程中经常遇到的识别问题,使用户可以在网上自由地浏览文件和方便地交换文件,它成为进行现代电子文档分发的理想格式。但是PDF文档给人们的工作和生活带来许多便利的同时,也带来了许多问题。其中,尤其以含有恶意代码的PDF文档所造成的危害最大最广,给企业和用户造成了巨大的不可挽回的损失,给互联网应用带来了严峻的威胁和挑战。由于PDF文档的高实用性和普遍适应性,因而更加加速了恶意代码的快速传播,使其成为恶意代码常用有效载体。由于恶意代码对计算机的严重破坏性,检测和防止含有恶意代码的PDF文档已日益成为计算机安全领域的重要目标。在本文中,首先详细介绍了PDF文档的物理结构和逻辑结构,在此基础上构建了PDF文档结构的自动解析系统,此系统可以快速准确的查看和提取PDF文档结构中各部分的二进制数据,尤其是对各类压缩流对象可以快速准确解压和提取,这为进一步的检测和分析提供数据支持。其次,对不同恶意PDF文档原理进行了深入的研究和分析,研究了各类主流恶意PDF文档中代码的传播方式和传播模型,接着对现有恶意PDF文档的攻击于段,反查杀方式进行分析和总结,以此为基础研究恶意PDF文档检测的方法和可行性。并且,构建了Javascript(?)弋码的解码引擎,实现了对PDF文档中提取的Javascript代码和压缩混淆的Javascript代码的解码分析。第三,本文通过动态分析和静态分析相结合的方式实现了对PDF文档中恶意代码的分析和恶意行为特征的提取,在YARA恶意特征规则库的基础上构建了新的恶意特征规则识别库,并建立了一套快速增加恶意特征识别库中特征码的方法,从而有效的提高了对PDF文档中包含的恶意代码的识别率。第四,构建了Libeum仿真环境。首先,通过Distorm3对恶意PDF文档中提取的shellcode二进制代码进行反汇编。其次,使用Libeum对反汇编代码进行X86指令解析、注册表仿真和基本的FPU仿真。同时,实现对shellcode的检测,包括使用GetPC启发式检测、静态分析、二进制方式的动态分析、Win32API HOOK等。通过仿真模拟方式进行行为自动化分析,判定该shellcode代码行为的恶意性。第五,通过对多个恶意PDF文档样本测试实验证明,本文提出的恶意PDF文档分析检测系统效果明显,尤其是对包含压缩混淆型Javascript(?)弋码的恶意PDF文档能够快速检测。同时,该分析系统能够为恶意PDF文档处置提供快速、准确的直接分析资料,可以成为系统安全员检测恶意PDF文档的重要的工具。