一次常见的开发失误,让成千上万个软件仓库直接暴露在公网上。研究人员发现,有28000个可公开访问的 .git 仓库里,存着登录凭证、财务信息和内部员工记录。这些内容一旦被利用,可能给攻击者打开通往云账户和企业系统的通道。
这并不算传统意义上的恶意软件攻击。风险起点很简单:Web 服务器意外把隐藏的 Git 目录留在了可访问状态,自动扫描工具就能抓取代码和文件的历史版本。泄露出来的密钥随后可能被用于数据窃取、支付欺诈、钓鱼攻击,或者篡改代码。
Intruder 的分析师是在大规模检查互联网暴露面时发现这一问题的。他们在分享给 Cyber Security News(CSN)的报告中表示,团队测试了350万个活跃主机,发现一种即使开发者以为凭证已经删除、问题仍会长期存在的风险。
扫描方法与发现规模
研究人员从证书透明度数据中圈出4000万个可能目标,再筛选出运行 HTTP 服务的主机,逐一检查是否存在暴露的仓库。他们开发了名为 gitreaper 的工具,在内存中检查仓库历史,而不必下载整个项目。
历史记录之所以关键,是因为从最新版本中删除密码或密钥,并不会抹掉此前包含该内容的提交。Git 元数据、分支指针和日志都能把访问者带回旧内容。类似的弱点也出现在 CISA 公开 GitHub 暴露事件中,那次涉及云凭证和基础设施代码。
这次扫描共找回超过400个 AWS 访问密钥、107个 Stripe API 密钥、123个 OpenAI API 密钥、80个 Telegram 令牌和17个 GitHub 个人访问令牌。其中一部分在测试期间仍然有效,意味着入侵者有可能进入关联环境。
从密钥到内部文件
一个硬编码的 AWS 密钥,让访问者进入了存放内部雇佣文件的存储桶,内容包括考勤记录和员工处分文件。这类材料可以帮助犯罪分子让欺诈信息看起来更可信、针对个别员工下手,或者以公开披露相威胁向机构施压。
另一个提交在配置文件里的密钥,则通过支付服务暴露了付款和交易历史。可访问的数据包括收入数字、付款时间表和部分银行账户信息。根据权限不同,一个有效的支付密钥还可能被滥用于发起退款、查看客户信息或改变收款去向。
报告指出,暴露的 Git 目录应当被当作紧急安全事件处理,而不是普通的 Web 服务器小错误。攻击者正在越来越多地自动化搜索密钥,旧提交会把小失误放大成真正的安全事故。
热门跟贴