中文

关于 GitHub 提交签名的普遍性与用途:一个纵向和跨域研究

软件工程 2025-04-29 v1 密码学与安全

摘要

GitHub 是最广泛使用的公共代码开发平台之一。然而,平台上托管的代码存在提交伪造风险,攻击者可通过伪造提交元数据来声称代码由合法用户添加,从而将恶意代码或提交注入仓库。GitHub 唯一的防御措施是提交签名 process,该 process 根据用户注册的密钥来判断提交是否来自有效来源。在本研究中,我们对 GitHub 仓库中提交签名的普遍性进行实证分析。为此,我们构建了一个框架,允许提取 GitHub 仓库所有历史提交的元数据,并识别哪些提交是已验证的。我们使用该框架分析了 60 个属于四个不同领域(Web 开发、数据库、机器学习和安全)的开源仓库,并研究了这些仓库中已验证提交在五年间的存在情况。我们的分析显示,仅约有 10% 的这些 60 个仓库中的所有提交是已验证的。针对安全相关仓库的代码提交者在签名提交方面更为严谨。我们还分析了不同的 Git 客户端在提交签名便利性方面的情况,发现 GitKraken 提供了最便捷的提交签名方式,而 GitHub Web 提供了最易访问的提交验证方式。在我们的分析过程中,我们还发现了 GitHub 在处理用户账户中未验证的电子邮件时所表现出的一种意外行为,这会阻止合法所有者使用该电子邮件地址。我们认为,已验证提交数量较低可能是由于缺乏意识、设置困难以及密钥管理问题。最后,我们提出了一种基于 GitHub Events API 来识别提交所有权的方法,以解决提交伪造问题。

关键词

引用

@article{arxiv.2504.19215,
  title  = {On the Prevalence and Usage of Commit Signing on GitHub: A Longitudinal and Cross-Domain Study},
  author = {Anupam Sharma and Sreyashi Karmakar and Gayatri Priyadarsini Kancherla and Abhishek Bichhawat},
  journal= {arXiv preprint arXiv:2504.19215},
  year   = {2025}
}

备注

Accepted as a conference paper at EASE 2025