今日应用
今日话题
私有数据、删掉的内容可以永久访问,GitHub官方:故意设计的
重点标签 GitHub安全、CFOR漏洞、数据泄露、存储库管理、安全建议
文章摘要
GitHub存储库数据访问问题
开源社区最近发现了一个令人震惊的事实:在GitHub上删除的内容和私有存储库的数据实际上可以被永久访问。这一发现由开源安全软件公司Truffle Security在其博客中详细披露,并引入了“CFOR(Cross Fork Object Reference)”这一新术语。CFOR漏洞指的是当一个存储库的fork能够访问另一个fork中的敏感数据,包括私有和已删除fork的数据。
访问已删除fork存储库的数据
Truffle Security通过一个工作流程展示了如何访问已删除fork存储库的数据。用户首先fork一个公共存储库,提交代码后删除自己的fork。尽管存储库被删除,但提交的代码仍然可以通过原始存储库访问。Truffle Security在调查一家大型AI公司的公共存储库时,从已删除的fork中发现了40个有效的API密钥。
访问已删除存储库的数据
另一个工作流程展示了即使原始存储库被删除,用户fork的存储库中的数据仍然可以访问。GitHub将存储库和fork存储库存储在存储库网络中,原始“上游”存储库作为根节点。当上游存储库被删除时,根节点角色会转移到下游fork存储库之一,但所有提交仍然存在并可访问。
访问私有存储库数据
私有存储库的数据也面临类似的风险。如果一个私有存储库的内部版本通过fork创建,并在公开前提交了额外的代码,那么这些私有特征和代码在公开后仍然可以通过公共存储库访问。
如何访问数据?
尽管GitHub的UI和常规git操作中删除了对提交数据的引用,但这些数据仍然存在并可通过commit hash访问。GitHub的UI可以用于暴力破解commit hash,尤其是因为git协议允许使用短SHA-1值进行提交引用。GitHub还公开了一个公共事件API端点,第三方可以管理事件存档并查询commit hash。
GitHub的回应
Truffle Security通过GitHub的VDP计划报告了这一问题,但GitHub回应称这是“故意设计的”。GitHub的说明文档解释了当存储库被删除或更改可见性时,fork的行为。尽管Truffle Security赞赏GitHub的透明度,但认为普通用户可能会将私有和公共存储库的分离视为安全边界,而实际上并非如此。
安全建议
Truffle Security建议,修复公共GitHub存储库上泄露密钥的唯一方法是通过密钥轮换。GitHub的存储库架构存在设计缺陷,大多数用户可能不会完全理解存储库网络的实际工作原理,从而降低了安全性。原文链接提供了更多详细信息:https://trufflesecurity.com/blog/anyone-can-access-deleted-and-private-repo-data-github_。
文章来源
原文地址: 点我阅读全文
原文作者: 机器之心