基于符号执行与图核的恶意软件分析
1. 引言
在过去十年中,恶意软件感染数量显著增加。据统计,2021 年恶意软件感染总数达到了 12.8732 亿次,每天大约有 45 万个新的恶意软件出现。企业平均每年要花费 240 万美元来防御这些恶意软件。因此,有效的自动化恶意软件检测和分类对于保障系统安全和用户保护至关重要。
大多数恶意软件分类方法基于签名和签名检测的概念。恶意软件签名就像是恶意软件的“DNA”,可分为语法签名和行为签名。语法签名基于恶意软件二进制文件的语法属性,如长度、熵、节的数量或某些字符串的存在;行为签名则基于恶意软件的行为属性,如与系统的交互和网络通信。
不同类型的签名产生了不同的恶意软件分类方法,主要包括静态分析和动态分析:
- 静态分析 :直接在反汇编的二进制文件中检测给定静态签名的存在,通常是一串字符。这种方法的优点是速度快且无需执行恶意软件,但静态签名对混淆技术非常敏感,容易被绕过。
- 动态分析 :执行恶意软件并观察其对系统的影响是否符合某些行为签名。为避免感染分析系统和防止恶意软件传播,通常在沙箱中执行。然而,恶意软件可以检测沙箱环境,通过避免表现出恶意行为来绕过检测。
为克服这些局限性,一些研究人员提出使用形式验证领域的符号执行技术。符号执行可以在不具体化变量值或动态执行代码的情况下探索二进制文件的可能执行路径,同时构建符号变量的约束并跟踪系统调用。随着符号执行的出现,基于机器学习的全自动恶意软件分类方法应运而生。
2. 恶意软件分析中的图比较
在恶意软件分析中,图比较用于提取和比较由系统调用