论文部分内容阅读
二十多年来,安全社区与恶意软件的斗争从未停止。然而,尽管学术界和工业界都为这个问题付出了巨大的努力,恶意代码的同源分析仍然是一个开放问题。本文恶意代码脱壳及同源判定研究旨在解决PE(Portable Executable)格式恶意软件端到端的同源分析问题。因此,在详细调研和分析相关研究的基础上,本文设计和实现了PE恶意软件脱壳及同源判定的相关方案和系统,包括:基于启发式OEP(Original Entry Point)判别的动态脱壳方案,基于深度学习的恶意代码谱系分析模型和PE恶意软件同源判定系统。基于启发式OEP判别的动态脱壳方案。加壳程序载入内存后,脱壳存根会自动执行脱壳操作,恢复原程序有效载荷,返回OEP给操作系统执行原程序代码。基于这个事实,本文设计了基于内存写执行和Window API调用的联合触发方法,实现脱壳存根恢复有效载荷的触发;构建了基于熵门限、长跳转和节跳转的启发式OEP判别集合,实现载荷中OEP的识别;设计了导入地址表的搜索算法和API的去混淆方法,实现可执行镜像导入地址表的修复。实验表明,本文提出的方案能胜任常见加壳器的脱壳任务。与相关的研究相比,其在导入函数的修复和脱壳的性能上有明显提高。基于深度学习的恶意代码谱系分析模型。创新性地提出一个名为Mal2Vec的恶意代码矢量化方法和一个名为MalVecNet的深度学习网络。Mal2Vec将反汇编工具生成的恶意样本指令信息和反汇编元数据映射成图像矢量,将恶意软件的谱系分析问题转换为不依赖于领域知识和复杂的特征提取的图像分类问题。同时,本文使用自然语言中语句分类问题的思想来建立和优化MalVecNet,与传统的卷积神经网络相比,其在Mal2Vec上具有更好的理论可解释性,并且可以被快速地训练。与相关研究的对比实验表明,本文提出的基于Mal2Vec和MalVecNet的恶意代码谱系分析模型在性能上取得了显著突破,在大规模恶意软件的谱系分析问题上具有实际意义。PE恶意软件同源判定系统。设计了PE恶意软件的同源判定架构、同源数据库的构建方法,同时实现了整个系统的前后端编写,提供了一个可供使用的系统雏形。实例样本的测试结果显示,本文编写的同源判定系统已具备初步的应用价值。本文重点研究PE恶意软件的通用脱壳、快速谱系分析和攻击线索提取的相关技术,在深入分析现有研究方法和工具的基础上,重点对相关技术在通用性、规模和效率方面进行了优化设计和实现,对于构建大规模PE恶意软件端到端的同源分析系统具有实际的参考意义。