安全研究人员找到了一种在Apple,PayPal和Microsoft系统上运行代码的方法
Lasted 2021-02-11 09:56:14
安全研究员Alex Birsan发现了一个安全漏洞,使他可以在Apple,Microsoft,PayPal和其他30多家公司拥有的服务器上运行代码。该漏洞利用显然也很简单,许多大型软件开发人员都必须弄清楚如何保护自己免受攻击。
该漏洞利用了一个相对简单的技巧:用公共包替换私有包。公司在构建程序时,通常会使用其他人编写的开源代码,因此他们不会花费时间和资源来解决已经解决的问题。例如,我曾在必须将文本文件实时转换为网页的网站上工作。我的团队没有编写自己编写代码的方法,而是找到了一个执行该操作的程序并将其构建到我们的网站中。
这些可公开使用的程序可以在存储库中找到,例如NodeJS的npm,Python的PyPi和Ruby的RubyGems。值得注意的是,Birsan发现这些存储库可用于实施此攻击,但不仅限于这三个。
除了这些公共软件包之外,公司通常还会构建自己的私有软件包,这些私有软件包不上传,而是分发给自己的开发人员。这是Birsan发现漏洞的地方。他发现是否可以找到公司使用的私有软件包的名称(在大多数情况下,这项任务非常容易完成),他可以将自己的代码上传到一个具有相同名称的公共存储库中,自动化系统会改用他的代码。他们不仅会下载他的软件包而不是正确的软件包,而且还会在其中运行代码。
为了举例说明,假设您的计算机上有一个Word文档,但是当您打开它时,计算机会说:“嘿,互联网上还有一个同名的Word文档。我会打开那个。” 现在,想象一下Word文档可以自动对您的计算机进行更改。这不是一个好情况。
两家公司似乎都同意这个问题很严重。Birsan在他的Medium帖子中写道:“大多数已授予的Bug赏金都设置为每个程序的策略所允许的最大金额,有时甚至更高。” 对于那些不熟悉的人,错误赏金是公司向发现严重错误的人支付的现金奖励。错误越严重,他们付出的钱就越多。
根据Birsan的说法,他就此漏洞所接触的大多数公司都能够快速修补其系统,因此它们不再脆弱。微软甚至整理了一份白皮书,解释了系统管理员如何保护他们的公司免受这类攻击,但令人惊讶的是,花了这么长时间才有人弄清楚这些庞大的公司容易受到这种攻击。值得庆幸的是,这不是那种必须立即更新家中每台设备的故事,但是对于系统管理员来说,这将是漫长的一周,他们现在必须更改其公司使用公共代码的方式。