Security is a requirement of utmost importance to produce high-quality software. However, there is still a considerable amount of vulnerabilities being discovered and fixed almost weekly. We hypothesize that developers affect the maintainability of their codebases when patching vulnerabilities. This paper evaluates the impact of patches to improve security on the maintainability of open-source software. Maintainability is measured based on the Better Code Hub's model of 10 guidelines on a dataset, including 1300 security-related commits. Results show evidence of a trade-off between security and maintainability for 41.90% of the cases, i.e., developers may hinder software maintainability. Our analysis shows that 38.29% of patches increased software complexity and 37.87% of patches increased the percentage of LOCs per unit. The implications of our study are that changes to codebases while patching vulnerabilities need to be performed with extra care; tools for patch risk assessment should be integrated into the CI/CD pipeline; computer science curricula needs to be updated; and, more secure programming languages are necessary.
翻译:安全是制作高质量软件的一个极为重要的要求。 但是,仍然发现并几乎每周固定了大量的弱点。 我们假设开发商在弥补弱点时会影响其代码库的可维护性。 本文评估了补丁对改善开放源代码软件的可维护性的影响。 可维护性是根据更好的代码枢纽关于数据集的10项准则模式(包括1300项与安全有关的承诺)来衡量的。 研究结果表明,41.90%的案件的安全性与可维护性之间发生了权衡,即开发商可能会妨碍软件的可维护性。 我们的分析表明,38.29%的补丁软件复杂性增加,37.87%的补丁提高了单位的LOC百分比。我们研究的影响是,改变代码库的同时,需要特别小心地弥补脆弱性;应将补丁风险评估工具纳入CI/CD管道;计算机科学课程需要更新;以及更安全的编程语言是必要的。