基于符号执行和图核的恶意软件分析
在当今数字化时代,恶意软件的威胁日益严重,如何高效准确地分析和分类恶意软件成为了安全领域的重要课题。本文将介绍一种基于符号执行和图核的恶意软件分析方法,通过构建系统调用依赖图(SCDG),利用机器学习算法进行分类,为恶意软件的检测和分类提供了新的思路。
1. 整体流程概述
首先,使用Python符号执行框架执行文件,提取每个二进制文件的SCDG。然后,利用这些SCDG训练机器学习算法,包括基于Gspan和图核的分类器。最后,使用训练好的分类器对新的恶意软件进行分类。
2. 调用提取
SCDG的构建基于符号执行,它可以在不具体化变量值和动态执行代码的情况下,探索二进制文件的所有可能执行路径。在代码探索过程中,会构建符号变量的约束并跟踪系统调用,由可满足性模理论(SMT)检查器验证符号约束的可满足性和执行路径的有效性。
然而,符号执行存在状态空间爆炸的问题,只能在合理时间内探索有限的符号路径。因此,路径选择策略对机器学习过程有重要影响。本文提出了自定义广度优先搜索策略(CBFS-Strategy)和自定义深度优先搜索策略(CDFS-Strategy)。
- CBFS-Strategy :算法从可用状态集中选取L个状态放入待探索状态列表R中,然后遍历其他状态。如果找到一个状态能通向代码的未探索部分或执行路径更短,则将其加入R并移除优先级较低的状态。
# CBFS exploration
def CBFS_exploration(S, L):
超级会员免费看
订阅专栏 解锁全文
37

被折叠的 条评论
为什么被折叠?



