Unleashing Mayhem on Binary Code

Security and Privacy(2012)

引用 672|浏览1
暂无评分
摘要
In this paper we present Mayhem, a new system for automatically finding exploitable bugs in binary (i.e., executable) programs. Every bug reported by Mayhem is accompanied by a working shell-spawning exploit. The working exploits ensure soundness and that each bug report is security-critical and actionable. Mayhem works on raw binary code without debugging information. To make exploit generation possible at the binary-level, Mayhem addresses two major technical challenges: actively managing execution paths without exhausting memory, and reasoning about symbolic memory indices, where a load or a store address depends on user input. To this end, we propose two novel techniques: 1) hybrid symbolic execution for combining online and offline (concolic) execution to maximize the benefits of both techniques, and 2) index-based memory modeling, a technique that allows Mayhem to efficiently reason about symbolic memory at the binary level. We used Mayhem to find and demonstrate 29 exploitable vulnerabilities in both Linux and Windows programs, 2 of which were previously undocumented.
更多
查看译文
关键词
hybrid symbolic execution,raw binary code,symbolic memory indices,symbolic memory index,offline execution,bug report,execution path,unleashing mayhem,index-based memory modeling,exploit generation,concolic execution,hybrid execution,binary code,working shell-spawning exploit,binary-level,symbolic memory,binary level,program debugging,exhausting memory,binary programs,active managing execution paths,mayhem,online execution,binary codes,exploitable bug,executable programs,windows programs,linux programs,memory management,concrete,servers,engines,indexation,switches,computer bugs,memory model
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要