负责保护美国关键基础设施的网络安全机构CISA(网络安全和基础设施安全局),自己出了一个大安全事故——一名拥有管理员权限的承包商,在公开的GitHub账号上发布了AWS GovCloud密钥和大量内部系统凭证。
事件经过
5月18日,安全记者Brian Krebs(KrebsOnSecurity)报道了这一事件。CISA的一名承包商在其代码开发平台上拥有管理员权限,创建了一个名为”Private-CISA”的公开GitHub账号,其中包含了数十个内部CISA系统的明文凭证。
审查过这些泄露凭证的安全专家表示,代码仓库的提交记录显示,这名承包商主动禁用了GitHub内置的敏感凭证发布检测功能。这意味着这不是无心之失,而是有意为之。
时间线
2025年11月:该GitHub账号最初创建,此后一直作为个人工作区使用
2026年5月18日:KrebsOnSecurity报道此事
5月19日:参议员Maggie Hassan致信CISA代理主任Nick Andersen要求解释
5月19-22日:CISA仍在努力撤销泄露的凭证
CISA的回应
CISA在声明中表示:”没有迹象表明任何敏感数据因此事件被泄露。”
但这个回应难以令人信服——如果凭证在公开GitHub上存在了6个月,声称”没有数据泄露”需要非常强的证据支撑。
参议员Hassan在信中写道:”这些报道引发了对CISA内部政策和程序的严重关切,尤其是在美国关键基础设施面临重大网络安全威胁的时期。”
讽刺之处
这件事的讽刺程度堪称教科书级别:
1. CISA是美国负责网络安全的联邦机构——他们的职责包括帮助其他机构防止网络入侵
2. 泄露的是AWS GovCloud凭证——这是专门为政府机构设计的安全云环境
3. 承包商主动禁用了安全检测——GitHub的secret scanning功能本来可以阻止这种事
4. 泄露持续了6个月——在强调”持续监控”的今天,6个月才发现意味着监控机制形同虚设
对站长和开发者的教训
虽然这是政府机构的事故,但教训对所有人都适用:
1. 不要相信”内部安全”:CISA作为安全机构自己都出事了,说明安全不是靠机构名称保证的,而是靠具体的流程和工具。
2. 启用GitHub Secret Scanning:如果你的代码仓库可能包含密钥或凭证,务必启用GitHub的secret scanning和push protection功能。
3. 使用环境变量和密钥管理:永远不要在代码中硬编码AWS密钥、数据库密码等敏感信息。使用.env文件(加入.gitignore)或密钥管理服务。
4. 定期轮换凭证:即使不小心泄露了密钥,如果定期轮换,泄露的密钥很快就会失效。
5. 最小权限原则:承包商不需要管理员权限。给每个人最小必要的权限,可以限制泄露的影响范围。
6. 监控GitHub上的组织名:设置GitHub组织监控,及时发现有人用你的组织名创建公开仓库。
给开发者的安全检查清单
# 检查你的仓库是否有硬编码的密钥
# 安装git-secrets工具
git secrets --install
git secrets --register-aws
# 每次提交前自动扫描
git secrets --scan
# 检查历史提交中的密钥泄露
trufflehog git https://github.com/your/repo
本文参考来源:Krebs on Security – Lawmakers Demand Answers as CISA Tries to Contain Data Leak
















暂无评论内容