0x01 Github平台的信息
Github做为全球最大的代码托管(tongxingjiaoyou)平台,有着令人惊讶的数据量。您除了会在其中泄露一些个人信息,最重要的就是源码。你的项目可能出卖了你。最有名的事件大概就是18年8月发生的华住5亿数据泄露。此事件的缘起,据说就是开发人员将数据库的套接字与口令直接上传到了github库中。
如今,各种Github泄露监控软件如雨后春笋板的出现。说道Github信息泄露,就不得不说今年ndss上发布的那篇-“How Bad Can It Git? Characterizing Secret Leakage in Public GitHub Repositories ”,哈哈哈哈哈哈哈。
0x02 论文
原文作者:Michael Meli, Matthew R.McNiece, Bradley Reaves
原文标题:How Bad Can It Git? Characterizing Secret Leakage in Public GitHub Repositories
原文会议:the 26th Annual Network and Distributed System Security Symposium, NDSS 2019
该团队来自北卡罗来纳州立大学(NCSU),主要关心的是在开源代码库中,私有证书的管理。这篇文章六个月内扫描了Github上13%的公共代码库,发现了超过10万代码库泄露了API令牌和加密密钥。
API Key作为接口间通信的长期身份认证令牌,一旦泄漏即可绕过认证系统。
本文获取这些敏感信息的过程如下:
0: 总结这些敏感信息的规律,称之为Distinct Secrets。
1(1a, 1b): 总结根据这些规律通过GitHub API 和 Google Github Snapshot(两者互补)收集潜在的代码和数据文件。形成Candidate Files。
2: 对Candidate Files中的Distinct Secrets进行正则,形成Candidate Secrets。
3:(3a, 3b, 3c)对Candidate Secrets进行三层过滤(熵),形成Valid Secret。
本系统遵循这些敏感信息的内容是有规律可循的。下表为一些有迹可循的popular API keys和Asymmetric Private Keys。
从文中看,这个系统的实验效果还是比较好的。文章从以下几个方面进行分析。
- 私有或者公有隐私信息
从这张表可以看出,在实际数据采集分析后。目标隐私信息的私密度非常的高。
平行泄露
即有些应用不能单方面的使用必须有"multi-factor"才能触发。如Google OAuth IDs必须同时找到OAuth Secret。而研究表明这种"parallel secrets"通常会在隐私数据前后五行内平行泄露。
隐私存活周期
研究者功能总泄密项目,观察所有者是否会发现,监控每小时探测一次。发现大约6%的用户在泄密一小时后发现并删除。19%会在两周后移除。然而这些删除掉的隐私通常仍然可以在git历史中访问。
- 文章还分析了RSA Key Leakage, Number of Encrypted Keys以及OpenVPN Config等隐私数据泄露。总之,公共开源项目中泄露的大量的私密信息。NCSU团队表示,他们在10万个GitHub项目中总共发现了575,456个API和密钥,其中201,642个是独立的。