构建、破解、修复:安全开发竞赛
密码学与安全
2018-08-31 v2 软件工程
摘要
典型的安全竞赛侧重于破解或减轻有缺陷系统的影响。我们提出了“构建 - 破解 - 修复”(BIBIFI) 竞赛,旨在评估安全构建软件而不仅仅是破解软件的能力。在 BIBIFI 中,团队构建指定软件,目标是最大化正确性、性能和安全性。后者通过团队尝试破解其他团队的提交作品来进行测试。获胜者从最佳构建者和最佳破解者中选出。BIBIFI 设计为开放式的——团队可以使用任何他们喜欢的语言、工具、流程等。因此,竞赛结果揭示了与成功构建安全软件和破解不安全软件相关的因素。期间我们举办了三场竞赛,涉及总共个团队和两个不同的编程问题。对这些竞赛的定量分析发现,最高效的构建提交使用了 C/C++,但用静态类型语言编码的提交出现安全漏洞的可能性较低;拥有多样化编程语言知识的构建团队也产生了更安全的代码。较短的程序与更好的得分相关。同时也是构建团队的破解团队在发现安全漏洞方面表现显著更好。
引用
@article{arxiv.1606.01881,
title = {Build It, Break It, Fix It: Contesting Secure Development},
author = {Andrew Ruef and Michael Hicks and James Parker and Dave Levin and Michelle L. Mazurek and Piotr Mardziel},
journal= {arXiv preprint arXiv:1606.01881},
year = {2018}
}