Syntia:综合模糊代码的语义

作者:

Tim Blazytko、Moritz Contag、Cornelius Aschermann和Thorsten Holz,波鸿大学

摘要:

当前最先进的去模糊方法对指令跟踪进行操作,并使用符号执行和污点分析的混合方法;需要对底层代码进行精确分析的两种技术。然而,最近的研究表明,这两种技术很容易受到特定转换的阻碍。

由于程序合成可以合成任意代码复杂度的代码,因此它仅受底层代码的复杂度限制语义的在我们的工作中,我们提出了一种使用蒙特卡罗树搜索(MCTS)指导的程序合成来自动进行代码消隐的通用方法。具体来说,我们的原型实现Syntia通过将执行跟踪划分为不同的跟踪窗口来简化执行跟踪,这些窗口的语义随后通过合成“学习”。为了证明我们的方法的实际可行性,我们通过混合布尔算法自动学习了500个模糊随机表达式中489个的语义。此外,我们在两个最先进的基于虚拟化的商业模糊器(VMProtect和Themida)中综合了算术指令处理程序的语义,成功率超过94%。最后,为了证实我们的说法,即该方法是通用的,适用于不同的用例,我们表明Syntia还可以自动学习ROP小工具的语义。

开放存取媒体

USENIX致力于开放访问我们活动上展示的研究。活动开始后,所有人都可以免费获得论文和会议记录。活动结束后发布的任何视频、音频和/或幻灯片也免费向所有人开放。支持USENIX以及我们对开放存取的承诺。

BibTeX公司
@进行中{203640,
author={Tim Blazytko和Moritz Contag以及Cornelius Aschermann和Thorsten Holz},
title={Syntia:综合模糊代码的语义},
booktitle={第26届USENIX安全研讨会(USENIX-Security 17)},
年份={2017},
isbn={978-1-931971-40-9},
地址={温哥华,不列颠哥伦比亚},
页数={643--659},
url={https://www.usenix.org/conference/usenixsecurity17/technical-sessions/presentation/blazytko},
publisher={USENIX协会},
月=八月
}

演示文稿视频