[论文解读] Build It, Break It, Fix It: Contesting Secure Development
本文介紹了Build It, Break It, Fix It(BIBIFI)安全競賽,這是一種創新框架,透過結合競賽性開發、漏洞發現與修復階段,評估安全軟件開發。主要發現顯示,靜態類型語言相比C/C++將安全缺陷減少11倍,且兼具開發與發現能力的團隊在識別漏洞方面表現顯著更優異。
Typical security contests focus on breaking or mitigating the impact of buggy systems. We present the Build-it, Break-it, Fix-it (BIBIFI) contest, which aims to assess the ability to securely build software, not just break it. In BIBIFI, teams build specified software with the goal of maximizing correctness, performance, and security. The latter is tested when teams attempt to break other teams' submissions. Winners are chosen from among the best builders and the best breakers. BIBIFI was designed to be open-ended; teams can use any language, tool, process, etc. that they like. As such, contest outcomes shed light on factors that correlate with successfully building secure software and breaking insecure software. We ran three contests involving a total of 156 teams and three different programming problems. Quantitative analysis from these contests found that the most efficient build-it submissions used C/C++, but submissions coded in a statically-type safe language were 11 times less likely to have a security flaw than C/C++ submissions. Break-it teams that were also successful build-it teams were significantly better at finding security bugs.
研究动机与目标
- 為解決網絡安全教育與研究中的缺口,創建一種評估安全軟件開發而非僅漏洞利用的競賽。
- 研究影響現實環境下安全軟件構建與有效漏洞發現的因素。
- 提供實證數據,說明程式語言選擇、團隊組成與開發實務如何影響軟件安全結果。
- 建立可擴展、激勵一致的競賽框架,鼓勵深入、廣泛且準確的漏洞報告。
- 作為研究平台,用於研究安全軟件工程實踐,並孵化安全開發的改進。
提出的方法
- BIBIFI將競賽分為三個階段:Build-it(團隊根據規格實現安全軟件)、Break-it(團隊發現並報告他人代碼中的漏洞)、Fix-it(開發者修復報告的缺陷以恢復分數,重複修復可獲獎勵)。
- 計分機制旨在獎勵正確性、效能與安全性,並對頂尖開發者與頂尖破壞者設立獨立排名。
- 團隊因提交有效且獨特的漏洞報告而獲得分數;重複報告或指向相同根本缺陷的報告會降低分數,從而抑制重複提交。
- 競賽使用自動化驗證工具(oracle)來驗證測試用例,確保報告缺陷的可重現性。
- 收集了三場競賽的數據,涵蓋156支團隊與三種不同的程式設計問題,數據包括原始碼、問卷調查與參與日誌,以供分析。
- 透過量化分析,將開發實務(如程式語言、團隊規模、測試)與Build-it及Break-it的表現結果關聯。
实验结果
研究问题
- RQ1程式語言的選擇如何影響安全軟件實現中出現安全缺陷的可能性?
- RQ2在安全軟件開發方面表現優異的團隊,在發現他人代碼漏洞方面是否也顯著更優秀?
- RQ3團隊規模如何影響Break-it階段漏洞發現的效率?
- RQ4哪些開發實務與更高品質的安全軟件及更有效的漏洞檢測相關?
- RQ5計分系統中的激勵機制如何影響漏洞報告的品質與多樣性?
主要发现
- C/C++在實現高性能Build-it提交方面最為高效,但其安全缺陷發生率顯著高於靜態類型語言。
- 使用靜態類型語言撰寫的提交,其包含安全缺陷的可能性比C/C++低11倍。
- 同時在Build-it與Break-it中表現優異的團隊,在識別安全漏洞方面顯著更有效,顯示安全編碼能力與漏洞發現能力之間存在強烈相關性。
- 較大的Break-it團隊在破壞軟件方面更為成功,因為代碼審計是一項高度可並行化的任務。
- 激勵機制有效抑制了重複報告,促進了對多份提交的廣泛且深入的漏洞探索。
- 該競賽框架成功產生了高品質、基於實證的數據,反映安全軟件開發實務,支持其作為研究與教育平台的應用。
更好的研究,从现在开始
从论文设计到论文写作,大幅缩短您的研究时间。
无需绑定信用卡
本解读由 AI 生成,并经人工编辑审核。