开发人员在软件制品中误提交密钥方面面临哪些挑战?
软件工程
2023-01-31 v1 密码学与安全
摘要
在整个2021年,GitGuardian对公共GitHub仓库的监测显示,相较于2020年,暴露的密钥(数据库凭证、API密钥及其他凭证)数量增加了一倍,累计超过六百万个密钥。据我们所知,开发人员为避免误提交密钥所面临的挑战尚未被刻画。我们论文的目标是通过对与误提交密钥相关的挑战与解决方案的实证研究,帮助研究人员和工具开发者理解并优先处理未来研究与工具自动化的机会,以缓解误提交密钥问题。我们从Stack Exchange上提取了779个与误提交密钥相关的问题,并应用定性分析来确定各类挑战以及其他人针对每个挑战提出的解决方案。我们识别出27个挑战与13个解决方案。按排名顺序,四个最常见的挑战为:(i) 部署期间密钥的存储/版本管理;(ii) 源代码中密钥的存储/版本管理;(iii) 源代码中密钥的忽略/隐藏;以及 (iv) 清理版本控制系统(VCS)历史。按排名顺序,三个最常见的解决方案为:(i) 将密钥移出源代码/版本控制并使用模板配置文件;(ii) 部署中的密钥管理;以及 (iii) 使用本地环境变量。我们的发现表明,同一解决方案被提及可用于缓解多个挑战。然而,我们的发现也识别出缺乏已接受解决方案的问题呈增长趋势,这证实了未来在密钥管理方面开展研究与工具自动化的必要性。
引用
@article{arxiv.2301.12377,
title = {What Challenges Do Developers Face About Checked-in Secrets in Software Artifacts?},
author = {Setu Kumar Basak and Lorenzo Neil and Bradley Reaves and Laurie Williams},
journal= {arXiv preprint arXiv:2301.12377},
year = {2023}
}
备注
This paper is accepted at the International Conference on Software Engineering (ICSE) 2023