Although existing techniques have proposed automated approaches to alleviate the path explosion problem of symbolic execution, users still need to optimize symbolic execution by applying various searching strategies carefully. As existing approaches mainly support only coarse-grained global searching strategies, they cannot efficiently traverse through complex code structures. In this paper, we propose Eunomia, a symbolic execution technique that allows users to specify local domain knowledge to enable fine-grained search. In Eunomia, we design an expressive DSL, Aes, that lets users precisely pinpoint local searching strategies to different parts of the target program. To further optimize local searching strategies, we design an interval-based algorithm that automatically isolates the context of variables for different local searching strategies, avoiding conflicts between local searching strategies for the same variable. We implement Eunomia as a symbolic execution platform targeting WebAssembly, which enables us to analyze applications written in various languages (like C and Go) but can be compiled into WebAssembly. To the best of our knowledge, Eunomia is the first symbolic execution engine that supports the full features of the WebAssembly runtime. We evaluate Eunomia with a dedicated microbenchmark suite for symbolic execution and six real-world applications. Our evaluation shows that Eunomia accelerates bug detection in real-world applications by up to three orders of magnitude. According to the results of a comprehensive user study, users can significantly improve the efficiency and effectiveness of symbolic execution by writing a simple and intuitive Aes script. Besides verifying six known real-world bugs, Eunomia also detected two new zero-day bugs in a popular open-source project, Collections-C.


翻译:虽然现有技术已经提出了自动化方法来解决符号执行的路径爆炸问题,但用户仍然需要通过谨慎地应用各种搜索策略来优化符号执行。由于现有方法主要支持粗略的全局搜索策略,它们无法高效地遍历复杂的代码结构。在本文中,我们提出了Eunomia,一种符号执行技术,允许用户指定本地域知识以启用细粒度搜索。在Eunomia中,我们设计了一种表达力强的DSL——Aes,使用户能够准确定位目标程序不同部分的局部搜索策略。为了进一步优化局部搜索策略,我们设计了一种基于区间的算法,自动隔离不同局部搜索策略的变量上下文,避免了相同变量的局部搜索策略之间的冲突。我们将Eunomia实现为针对WebAssembly的符号执行平台,这使我们能够分析用不同语言编写(如C和Go),但可以编译成WebAssembly的应用程序。据我们所知,Eunomia是支持WebAssembly运行时的第一个符号执行引擎。我们使用专门的符号执行微基准套件和六个真实世界的应用程序对Eunomia进行评估。我们的评估显示,Eunomia可以将实际应用程序中的漏洞检测加速高达三个数量级。根据全面的用户研究结果,用户可以通过编写简单直观的Aes脚本显著提高符号执行的效率和效果。除验证六个已知的真实世界漏洞外,Eunomia还在一个流行的开源项目Collections-C中发现了两个新的零日漏洞。

0
下载
关闭预览

相关内容

【MIT Sam Hopkins】如何读论文?How to Read a Paper
专知会员服务
105+阅读 · 2022年3月20日
微软正式发布 Stream Analytics 无代码编辑器
Flutter 组件: Autocomplete 自动填充 | 开发者说·DTalk
谷歌开发者
0+阅读 · 2022年10月28日
Docker 发布 WebAssembly 支持工具预览版
InfoQ
0+阅读 · 2022年10月26日
微信小程序支持webP的WebAssembly方案
前端之巅
19+阅读 · 2019年8月14日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
已删除
德先生
53+阅读 · 2019年4月28日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
WebAssembly在QQ邮箱中的一次实践
IMWeb前端社区
13+阅读 · 2018年12月19日
LibRec 精选:推荐的可解释性[综述]
LibRec智能推荐
10+阅读 · 2018年5月4日
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
VIP会员
相关VIP内容
【MIT Sam Hopkins】如何读论文?How to Read a Paper
专知会员服务
105+阅读 · 2022年3月20日
相关资讯
微软正式发布 Stream Analytics 无代码编辑器
Flutter 组件: Autocomplete 自动填充 | 开发者说·DTalk
谷歌开发者
0+阅读 · 2022年10月28日
Docker 发布 WebAssembly 支持工具预览版
InfoQ
0+阅读 · 2022年10月26日
微信小程序支持webP的WebAssembly方案
前端之巅
19+阅读 · 2019年8月14日
Hierarchically Structured Meta-learning
CreateAMind
26+阅读 · 2019年5月22日
已删除
德先生
53+阅读 · 2019年4月28日
A Technical Overview of AI & ML in 2018 & Trends for 2019
待字闺中
17+阅读 · 2018年12月24日
WebAssembly在QQ邮箱中的一次实践
IMWeb前端社区
13+阅读 · 2018年12月19日
LibRec 精选:推荐的可解释性[综述]
LibRec智能推荐
10+阅读 · 2018年5月4日
相关基金
国家自然科学基金
0+阅读 · 2013年12月31日
国家自然科学基金
1+阅读 · 2013年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
0+阅读 · 2012年12月31日
国家自然科学基金
1+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2011年12月31日
国家自然科学基金
0+阅读 · 2009年12月31日
Top
微信扫码咨询专知VIP会员