宾西姆

BinSim:通过系统调用切片段等价性检查实现基于跟踪的语义二进制区分。检测两个二进制可执行文件之间的差异(binary diffing)首先源于补丁分析,广泛应用于各种软件安全分析任务中,如软件剽窃检测和恶意软件谱系推断。尤其是在分析恶意软件变体时,普遍存在的代码混淆技术已经推动了最近的工作,以确定语义相似性,尽管表面上存在语法差异。现有的方法依赖于比较运行时行为或用符号执行对代码段语义进行建模。然而,这两种方法都没有达到预期的精度。在本文中,我们提出系统调用切片段等价性检查,这是一种混合方法来识别两个执行轨迹之间的细粒度语义相似性或差异性。我们执行增强的动态切片和符号执行来比较影响可观察行为的指令逻辑。我们的方法改进了现有的基于语义的二进制区分:1)推断两个可执行二进制的行为是否在条件上等价;2) 检测相似性或差异性,其影响遍及多个基本块。我们已经开发了一个叫做BinSim的原型,并针对复杂的混淆组合和超过1个进行了实证评估;000个最近的恶意软件样本,包括现在臭名昭著的加密勒索软件。实验结果表明,BinSim能够成功地识别模糊二进制文件之间的细粒度关系,并且在恢复力和准确性方面优于现有的二进制差异工具。