一、来源
1、2018,CCS
2、作者:Kihong Heo, University of Pennsylvania, USA; Woosuk Lee,University of Pennsylvania, USA;Pardis Pashakhanloo,University of Pennsylvania, USA;Mayur Naik,University of Pennsylvania, USA
3、主题:程序简化、强化学习
二、摘要
1、内容
流行的软件工程实践,如代码重用和“一刀切”的方法,导致了软件规模和复杂性的显著和广泛的增加。由此产生的软件膨胀已导致性能下降和安全漏洞增加。
我们提出了一个名为Chisel的系统,使程序员能够有效地定制和删减程序。Chisel将要删减的程序作为输入,并对其所需的功能进行高级说明。输出是程序的简化版本,相对于规范来说是正确的。Chisel通过使用基于强化学习的新方法来加速对简化程序的搜索并扩展到大型程序,从而显著改进了现有的程序简化系统。
我们对一套10个广泛使用的UNIX实用程序进行了评估,每个程序包含13-90个KLOC的C源代码,表明Chisel能够成功地删除所有不需要的功能并减少攻击面。与两个最先进的程序缩减器C-Reduce和Perses(分别在12小时内在6个程序和2个程序上超时)相比,Chisel的运行速度高达7.1x和3.7x,并在所有程序上完成。
二、优缺点
1、优点
- 1)实现了更精细粒度的程序简化。
- 2)可自动删除冗余代码
2、缺点 - 仍然导致了新的漏洞,在文章测试部分分析出来但并没有修改。
- 存在过度删减情况,如将安全检查等功能部分的代码删除了。
网友评论