该漏洞利用了一个相对简单的技巧:用公共软件包替换私有软件包。公司在构建程序的时候,往往会使用其他人编写的开源代码,所以他们不会花费时间和资源去解决一个已经解决的问题。
在 NodeJS 的 npm、PyPi 的 PyPi 和 Ruby 的 RubyGems 等资源库上都可以找到这些公开的程序。值得注意的是,Birsan 发现这些资源库可以用来进行这种攻击,但并不限于这三种。
IT之家了解到,除了这些公开的包,公司往往会建立自己的私有包,他们不会上传,而是在自己的开发者中分发。Birsan 就是在这里发现了这个漏洞。他发现,如果他能找到公司使用的私有包的名称(大多数情况下是非常容易的),他就可以把自己的代码上传到一个同名的公共仓库中,公司的自动化系统就会使用他的代码来代替。他们不仅会下载他的包而不是正确的包,而且还会运行里面的代码。
用一个例子来解释这个问题,想象一下,你的电脑上有一个 Word 文档,但是当你去打开它的时候,你的电脑说:“嘿,互联网上还有一个同名的 Word 文档。我还是打开那个吧。”这样,那个 Word 文档就可以自动对你的电脑进行修改。
根据 Birsan 的说法,他所联系的大多数关于该漏洞的公司都能够迅速修补他们的系统。微软甚至还整理了一份白皮书,解释系统管理员如何保护他们的公司免受这类攻击,但坦率地说,有人花了这么长时间才发现这些庞大的公司容易受到这类攻击,实在令人吃惊。
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。