Virtualization-obfuscation is well known as the most powerful code protection method. In recent years there is an explosive growth of virtualization-obfuscated code in Advanced Persistent Threat(APT) and botnets. Reverse engineering of virtualization-obfuscated code plays a key role of malware analysis and defence. In our research, we focus on the two major problems introduced by virtualization- obfuscated code: “difficult to comprehend and reverse engineer, since they are resistant to both static and dynamic analysis techniques” and “reverse engineering of one instance of a virtualization-obfuscated program does not help us deal with a different program obfuscated using the same obfuscator”. We build models of typical virtualization-obfuscated code sequence, by performing an analysis of their inner logic and relationship between behaviors. We also build models to improve the efficiency and capacity of analyzing internal mechanism of virtual machines in virtualization-obfuscated code, by solving the problem of proposing methods to form a model of multiple characteristics. With models mentioned above, we develop a new method to achieve fine-grained dynamic analysis. By measuring the similarity among instruction sequences and obfuscated code models, we divide instruction samples into several clusters and form a method of deducing unobfuscated code from these clusters, to improve the capacity of analyzing of obfuscated variants. Finally, we will complete the development of proto-type system to evaluate our research, form a complete theoretical and technical framework, and play a part in malware analysis. This project is expected to play a catalytic role in analyzing and defending known or unknown virtualization-obfuscated malware variants and professional malware developed by organized attackers. Moreover, it is also useful to improve the security of our critical information system.
虚拟化混淆是强度极高的恶意代码自我保护方式,近年来在高级持续性威胁(Advanced Persistent Threat,APT)攻击、僵尸网络中应用越来越广泛,突破虚拟化混淆保护是实现相关恶意代码深度分析和防御的关键环节。本项目针对虚拟化混淆带来的逆向分析困难、已知样本分析结果难以支撑未知样本分析等问题,研究混淆代码序列语义提取与描述、运行过程多特征融合建模、基于模型的动态分析与基于代码序列语义等价判定的原始代码逆向推导方法等,重点提高动态运行过程分析能力、代码核心语义等价判定能力,形成一套动态分析和原始指令恢复方法,进而形成对于未知样本的逆向分析能力。基于项目理论研究成果研发原型系统,形成完整的理论和技术框架,在验证方法正确性的同时为实际工作提供支撑。该研究对于提高虚拟化混淆恶意代码分析,以及有组织研发的专业恶意代码的分析和防御能力,防范对我国重要信息系统的攻击,具有重要的现实意义。
项目从虚拟化混淆代码语义提取与描述方法、虚拟机运行过程建模方法、虚拟机识别与关键运行阶段分析方法、虚拟化混淆代码原始指令恢复方法四个方面展开研究。.1)虚拟化混淆代码语义提取与描述方法研究方面,提出了一套基于中间语言表示的混淆代码语义描述方法,该方法基于LLVM中间语言实现,将虚拟化混淆代码的实际执行功能码表示为中间语言的形式,基于中间语言提取代码变量个数、操作的寄存器、使用的内存等信息,并将抽取相关信息的语义,在语义状态下开展功能码的等价性判定。.2)虚拟机运行过程建模方面提出了一种基于代码执行循环识别和内存状态识别的虚拟化混淆代码运行过程模型。该方法通过提取代码执行过程记录,并针对执行过程中的内存状态建立状态转换模型,表示为DFA的形式。针对离线记录展开分析,通过回环判定方法识别其中的循环,通过对循环代码所在内存状态和位置的判定,分析并确定虚拟化混淆代码的实现基于动态生成代码还是预置的功能码。.3)虚拟机识别与关键运行阶段分析方法研究。本项目提出了一种基于代码相似性和内存状态的关键阶段分析方法。虚拟机分为进入虚拟机、跳出虚拟机、虚拟机代码执行三个部分。我们针对三种类型的虚拟机运行阶段分别建立了模型,根据取指、译码、执行阶段进行划分,通过代码匹配或控制流转移识别的方式提取关键代码。.4)虚拟化混淆代码原始指令恢复方法研究方面,提出了一种基于中间语言等价判定的原始指令恢复方法,通过将实际执行的代码去混淆、抽象提取之后形成中间语言描述的指令序列,并根据指令序列之间的等价关系,判定指令序列的等价性,进而根据已知序列与原始指令的对应关系,将等价指令序列逆向推导为原始指令。.在项目的支持下发表国际会议论文4篇,其中CCF A类论文3篇,CCF B类论文1篇。申请专利6项,申请软件著作权2项,获得北京市科技进步二等奖1项,通信学会科技进步一等奖1项。
{{i.achievement_title}}
数据更新时间:2023-05-31
玉米叶向值的全基因组关联分析
正交异性钢桥面板纵肋-面板疲劳开裂的CFRP加固研究
硬件木马:关键问题研究进展及新动向
基于SSVEP 直接脑控机器人方向和速度研究
小跨高比钢板- 混凝土组合连梁抗剪承载力计算方法研究
复杂恶意代码逆向分析方法研究
二进制代码路径混淆方法研究
白盒攻击环境下安全关键代码保护的广义混淆变换方法研究
动静协同的恶意代码智能分析方法研究