一名罗马尼亚威胁研究员 Alex Birsan 在一份报告中详细说明了他是如何侵入世界上一些大公司的 IT 系统的。他成功地入侵了苹果、微软、特斯拉、贝宝、 Netflix 和其他 30 多家公司。
Alex Birsan 事先通知了这些公司,他将测试他们系统的安全性,但没有事先向他们提供细节。
漏洞攻击成功率惊人
Alex Birsan 通过启动一个相对简单的攻击模式完成了这些任务: 他用公共代码包定期地替换由服务器激活的私有代码包。当搜索代码包时,公司使用的自动化系统会进入公共存储库。如果执行某个特定功能需要 Javascript、 Ruby 或 Python 模块,公司服务器将自动将一个公共模块替换为自己的内部模块,如果它检测到一个名称相同的包,它认为这是一个更新的版本。
Birsan 说,他的漏洞暴露了“自动构建或安装工具中的漏洞或设计缺陷,这些漏洞或缺陷可能导致将公共依赖项误认为是名称完全相同的内部依赖项。”
Birsan 利用了这个漏洞,将代码注入到存储在 GitHub 等公共存储库中的包中。他把这种刻意的名称重复和随后的文件交换称为“依赖性混淆”。
他首先必须确定代码文件使用的公司名称,这样他就可以创建同名的伪造文件,但他发现这项任务相对容易。例如,Shopify 自动安装了一个来自 Birsan 的伪造文件,他猜对了这个文件是“ Shopify-cloud”。
Birsan 对自己的战绩做了评估,他说:“成功率简直令人吃惊,我们能够自动扫描目标公司的数百万个域名,并提取出数百个尚未在 npm 注册中被认领的 javascript 包名称。”
研究员靠入侵测试赚了 13 万美元
这种由恶意参与者植入的信息可能会对整个公司的网络造成严重破坏,扰乱公司运营,窃取数据或企图敲诈钱财。
Birsan 的代码并没有恶意,他只检索了每台受代码影响的计算机的基本信息,包括用户名、主机名和每个唯一安装的当前路径。当目标公司激活 Birsan 代码时,程序就会通知他。
除了外部 IP,这些数据足以帮助安全团队根据这份报告识别可能存在漏洞的系统,同时避免 Birsan 的测试被误认为是实际攻击。
作为回报,Birsan 收到了这些公司支付给发现漏洞的研究人员的“漏洞赏金”,他收到的赏金总额超过了 13 万美元。
此外,Birsan 的一位同事 Justin Gardner 检查了一个内部 JavaScript 包管理文件,他想知道如果将一个名字相同的文件放在一个公共存储库中会发生什么。他们很快发现,无论哪个文件有最近的版本号,都会被公司的服务器点击。
Birsan 表示大多数受影响的公司能够在收到入侵通知后迅速修补他们的系统。但他认为对开源平台依赖性的混淆仍然是一个问题。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。