中文

自承认技术债务能告诉我们关于安全的什么信息?一项混合方法研究

软件工程 2024-03-05 v3 人机交互

摘要

自承认技术债务(Self-Admitted Technical Debt, SATD)包含开发人员自己在软件制品(例如代码注释和提交消息)中报告的各种次优设计和实现选择。在过去几十年中,此类报告一直是软件维护和演化研究的核心。然而,它们也可以被视为关于潜在可利用漏洞和安全缺陷的可怕信息来源。本研究从技术和以开发人员为中心的视角调查了 SATD 的安全影响。一方面,它分析了 SATD 来源中披露的安全指示是否可用于表征开源软件(Open-Source Software, OSS)项目和仓库中的漏洞。另一方面,它深入探讨了开发人员对这一做法背后的动机、普遍性及其潜在负面后果的看法。我们采用了一种混合方法,包括(i)分析包含 8,812 个 SATD 实例的现有数据集,以及(ii)对 222 名 OSS 从业人员进行的在线调查。我们通过数据集分析收集了 201 个 SATD 实例,并将它们映射到不同的通用弱点枚举(Common Weakness Enumeration, CWE)标识符。总体而言,在提交消息、拉取请求、代码注释和问题部分中发现了 25 种不同类型的 CWE,其中 8 种出现在 MITRE 最危险的 Top-25 中。调查表明,软件从业人员经常在 SATD 制品中放置安全指示,以在同行中推广安全文化并帮助他们发现脆弱代码段等。然而,他们也认为这种做法有风险,因为它可能促进漏洞利用。我们的研究结果表明,保护分布在 SATD 制品中的安全指示的上下文完整性,对于保护商业和 OSS 解决方案免受零日攻击至关重要。

关键词

引用

@article{arxiv.2401.12768,
  title  = {What Can Self-Admitted Technical Debt Tell Us About Security? A Mixed-Methods Study},
  author = {Nicolás E. Díaz Ferreyra and Mojtaba Shahin and Mansooreh Zahedi and Sodiq Quadri and Ricardo Scandariato},
  journal= {arXiv preprint arXiv:2401.12768},
  year   = {2024}
}

备注

Accepted in the 21th International Conference on Mining Software Repositories (MSR '24)