这起事件与OAuth令牌攻击无关,但还是令人不安,因为GitHub披露了大约10万个用户的详细资料已被不法分子窃取。
GitHub近日透露,它将JavaScript软件包注册中心集成到GitHub的日志系统中之后,把“npm注册中心的众多明文格式的用户登录信息”存储到内部日志中。
该公司今天发布了调查4月份一起无关的OAuth令牌窃取攻击的结果,上述信息浮出水面。GitHub描述了攻击者如何窃取了数据,包括大约10万个npm用户的详细信息。
这个代码托管平台继续向用户保证:相关的日志文件没有在任何数据泄密中泄露;它已改进了日志清理工作;它在“npm遭到攻击之前”删除了相应的日志。
GitHub此前已在4月向“第三方OAuth令牌窃取已查明身份的受害者”发去了通知,但今天表示“根据我们的可用日志,计划向受影响的用户直接告知明文密码和GitHub个人访问令牌”。
明文格式的登录信息?这是上个世纪才犯的低级错误。
分析报告并没有提到受影响的用户有多少、明文存储现象持续了多久,但我们已向Github询问更多信息。GitHub在2020年4月15日完成了对NPM Inc的收购。技术人员已经跑到Hacker News留言板,详细透露他们从npm收到的电子邮件。
根据事后分析报告:
在内部发现和进一步调查之后,GitHub发现了npm注册中心的许多明文用户登录信息,这些登录信息是在将 npm集成到GitHub日志系统中之后被存储到内部日志中的。
报告补充道:
虽然将登录信息记录到日志中的这种做法有悖于我们的安全最佳实践,但GitHub或npm并没有遇到暴露含有明文登录信息的这些日志的攻击或数据泄露事件。
涉及哪些信息?
内部发现日志中的明文登录信息:npm访问令牌和少量用于试图登录到npm帐户的明文密码,以及发送到npm服务的一些 GitHub个人访问令牌。
据GitHub声称,至于4月份首次披露的那次攻击,问题的根源出在向GitHub.com的两家集成商:Heroku和Travis CI发放的OAuth 用户令牌被窃取。
Salesforce旗下的Heroku特别指出,它的一些私有代码存储库在4月9日被访问,随后它紧急关停GitHub集成功能。据该公司的状态页面显示,这种集成已在本周早些时候恢复。
虽然Travis CI认为当时没有任何客户数据被窃取,但还是重新发放了用于GitHub集成的所有私有客户密钥和令牌。
攻击者能够使用窃取而来的OAuth令牌访问npm的AWS基础设施。凭借这一访问权,攻击者窃取了2021年4月7日以来skimdb.npmjs.com 的备份内容,包含2015年以来的用户信息(大约10万用户的npm用户名、密码哈希和电子邮件地址)以及2021年4月7日以来的所有私有npm软件包清单文件和软件包元数据。
来自两家组织的私有软件包也已被撤下,不过GitHub没有指名道姓。
虽然这些数据含有自述文件、维护者电子邮件和版本历史记录之类的信息,但并不含有实际的软件包工件(即打包文件本身)。
然而据GitHub声称,哈希密码确实带来了问题,因为哈希是使用PBKDF2或加入随机字符串的SHA1算法生成的。从2017年开始,就使用bcrypt加强安全性。密码已被重置,用户预计会在某个时候收到通知。
顺便说一下,GitHub今天早上发布分析报告结果时,网站遭遇故障,用户访问不了。它的大部分服务从07:54 UTC开始出现异常。据GitHub的服务状态页面显示,故障事件在 09:00 UTC之前已得到解决。