论攻击科技巨头有多难/h2>
非常容易,而且是简单到极致的那种。
只需要制造虚假的pip、npm软件包,就可以轻松攻破微软、苹果、特斯拉、PayPal、Yelp等数十家科技公司服务器。
没错,就是我们再熟悉不过的那些安装命令。
这是一位名叫Alex Birsan的黑客最近发现的巨大漏洞:只要上传和科技公司内部软件包名字相同的“李鬼”,就可以让他们在不知不觉中感染恶意软件。
其中有来自npm的公共软件包,也有PayPal内部的私有软件包(红色),后者是由PayPal内部托管,这些软件包在公共npm注册表中搜索不到。
Birsan因此产生了很多的疑问:
如果有人假冒PayPal私有软件包的名字,将恶意代码上传到npm会发生什么/p>
PayPal的内部项目是否有可能因此使用假冒的软件包,而不是原来的私有软件包/p>
系统是否会因为安装假冒软件包而运行恶意代码/p>
如果这种攻击方法行得通,可以从中获得科技公司的漏洞赏金吗/p>
这种攻击还会对其他公司起作用吗/p>
攻击方法
带着这些想法,Birsan将同名的“恶意” Node程序包上传到npm注册表,这样PayPal的程序员如果安装他们的私有软件包,就会被假的软件欺骗和替代。
当然,Birsan的“恶意软件”并不包含破坏成分,它只有一个功能,当对方使用npm安装上与原软件同名的“李鬼”时,就会发送信息通知Birsan。
“恶意软件”将返回用户名、主机名、安装路径等信息,一方面可以帮助公司安全团队根据这些信息确定可能受到攻击的系统,同时还可以避免将Birsan的测试误认为是实际的攻击。
不过,要让安装假软件的服务器向自己发出信息并不容易。因为公司内部电脑都受到防火墙的保护,DNS渗透是解决办法。
接下来,就开始“攻击”了。
攻击结果如何/h2>
“成功率简直让人吃惊。”
Brisan在按照上述方法进行攻击后,不禁发出这样的感慨。
他将这样的bug叫做依赖性混乱 (dependency confusion),并称已经在超过35个组织、所有三种测试编程语言中,均有发现:
绝大多数受此影响的公司,规模都是超过1000名员工的,这很可能反映出大型公司内部库的使用率很高。
并且,由于Javascript 依赖名称更容易找到,几乎75% 的已记录回调来自 npm 包,但这并不一定意味着 Python 和 Ruby 不易受到攻击:
Brisan还举了个栗子??。
加拿大电商巨头Shopify就中过招,然后他们为了修复这个bug,特意设立了3万美元的赏金。
无独有偶,在去年8月,他向npm上产了一个Node包,这个包的代码被苹果内部的多台电脑中执行。
苹果为此也设立的3万美元的奖励,但当这位黑客向苹果反映“这个漏洞可能允许威胁参与者在苹果 ID 中注入’后门’”,苹果公司却不这么认为:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!