Background: Security regressions are vulnerabilities introduced in a previously unaffected software system. They often happen as a result of source code changes (e.g., a bug fix) and can have severe effects. Aims: To increase the understanding of security regressions. This is an important step in developing secure software engineering. Method: We perform an exploratory, mixed-method case study of Mozilla. First, we analyze 78 regression vulnerabilities and 72 bug reports where a bug fix introduced a regression vulnerability at Mozilla. We investigate how developers interact in these bug reports, how they perform the changes, and under what conditions they introduce regression vulnerabilities. Second, we conduct five semi-structured interviews with as many Mozilla developers involved in the vulnerability-inducing bug fixes. Results: Software security is not discussed during bug fixes. Developers' main concerns are the complexity of the bug at hand and the community pressure to fix it. Moreover, developers do not to worry about regression vulnerabilities and assume tools will detect them. Indeed, dynamic analysis tools helped finding around 30% of regression vulnerabilities at Mozilla. Conclusions: These results provide evidence that, although tool support helps identify regression vulnerabilities, it may not be enough to ensure security during bug fixes. Furthermore, our results call for further work on the security tooling support and how to integrate them during bug fixes. Data and materials: https://doi.org/10.5281/zenodo.6792317
翻译:背景:安全回归是先前未受影响的软件系统中引入的弱点。 安全回归往往是源代码变化( 例如, 错误修正) 的结果, 并且可能产生严重的影响。 目标 : 加深对安全回归的理解。 这是开发安全软件工程的一个重要步骤 。 方法 : 我们对Mozilla 进行探索性、 混合方法的案例研究。 首先, 我们分析78个回归脆弱性和72个错误报告, 其中错误修正在 Mozilla 引入了回归脆弱性。 我们调查开发者如何在这些错误报告中互动, 如何进行这些变化, 以及在什么条件下他们引入回归脆弱性。 其次, 我们与参与脆弱性诱导错误修正的很多Mozilla开发者进行五次半结构性访谈。 结果: 软件安全在错误修正过程中没有讨论。 开发者的主要关切是当前错误的复杂性以及社区压力。 此外, 开发者不担心回归脆弱性, 假设工具会检测它们。 事实上, 动态分析工具帮助在 Mozilla 找到约30% 的回归脆弱性。 结论: 这些结果有助于确定安全性的脆弱性, 工具支持在错误期间如何修正数据。 。 。 工具支持 如何修正安全性工作, 在错误期间, 如何修正工具中, 如何修正数据 如何修正。