打开网易新闻 查看精彩图片

计算机安全专家对1000万个网站进行了分析,在1万个网页中发现了近2000个API凭据被泄露。

研究人员在一篇名为《门垫上的钥匙:网络上暴露的API凭据》的预印本论文中详细介绍了他们的发现。他们表示进行这项研究是因为目前对暴露凭据的关注主要集中在搜索代码存储库和源代码上,而对生产网站的动态分析对于理解问题范围至关重要。

斯坦福大学博士生、论文通讯作者Nurullah Demir在接受采访时表示:"我们发现了高度敏感的API凭据被公开暴露在公共网页上。这些凭据充当访问令牌,授权应用程序与第三方服务交互,直接访问云平台和支付提供商等关键基础设施。"

Demir认为,API凭据比暴露的登录详细信息更危险,因为它们提供对资源的程序化访问。

研究人员使用名为TruffleHog的工具扫描了大约1000万个网站,发现了1748个有效凭据,这些凭据属于包括跨国公司、关键基础设施实体和政府机构在内的组织。这些密钥提供对AWS、GitHub、Stripe和OpenAI等服务的访问权限。

Demir表示,其中一个受影响的组织是一家全球银行,另一个是为电子设备制造固件的公司。

"一家'全球系统重要性金融机构'直接在其网页上暴露了云凭据,这提供了对多个核心云基础设施服务的直接访问,包括数据库和密钥管理系统。"Demir说。

研究人员还发现了一个开发人员的存储库凭据,该开发人员负责各种无人机和遥控设备制造商使用的固件。Demir表示,攻击者可以使用这些凭据修改源代码并向各种设备推送恶意固件更新。

论文解释说:"暴露在各个服务类别中都很普遍,云服务(如AWS、Cloudflare)和支付服务(如Stripe、Razorpay)占已验证凭据的大部分。仅AWS凭据就占所有已验证暴露的16%以上,在超过4693个网站上被发现。SendGrid和Twilio等电子邮件和通信服务也经常出现,其中很大一部分暴露来自嵌入的第三方资源。"

研究人员发现的大多数凭据存在于JavaScript资源中(84%),其次是HTML(8%)和JSON(7%)文件。他们还发现了一些不寻常的情况,比如在CSS文件中嵌入了经过验证的GitHub访问令牌

在JavaScript文件中,62%的凭据暴露出现在Webpack等构建工具创建的包中。

Demir表示,他和他的合著者——加州大学戴维斯分校的Yash Vekaria、代尔夫特理工大学/斯坦福大学的Georgios Smaragdakis以及斯坦福大学的Zakir Durumeric——为联系受影响的组织做出了重大努力。在研究人员开始报告他们的发现后,大约两周内暴露凭据的数量减少了一半。

"当我们从开发人员那里得到反馈时,我们发现其中很多人完全不知道这些暴露,"他解释说。"也许最令人担忧的是,我们的历史分析显示,这些凭据通常保持暴露状态平均12个月,在某些情况下甚至长达数年。"

Demir表示,他和他的合著者只验证了14个不同服务提供商的凭据,因此暴露数字代表的是下限。

"我们坚信,网络上暴露凭据的实际数量远高于我们在这项研究中捕获的数量。"他说。

Q&A

Q1:这项研究发现了多少个暴露的API凭据?

A:研究人员扫描了大约1000万个网站,在1万个网页中发现了1748个有效的API凭据,这些凭据属于包括跨国公司、关键基础设施实体和政府机构在内的组织。

Q2:API凭据暴露为什么比普通密码泄露更危险?

A:API凭据比暴露的登录详细信息更危险,因为它们提供对资源的程序化访问。这些凭据充当访问令牌,授权应用程序与第三方服务交互,能够直接访问云平台和支付提供商等关键基础设施。

Q3:这些暴露的凭据通常会在网上存在多长时间?

A:根据研究人员的历史分析显示,这些API凭据通常保持暴露状态平均12个月,在某些情况下甚至长达数年。在研究人员开始报告发现后,大约两周内暴露凭据的数量减少了一半。