近年来黑客锁定开发人员下手,上架恶意的NPM、PyPI组件的安全事故不时传出,其中一种诱骗用户的手法,就是使用已经下架的组件名称,重新上架有问题的组件,这种情况相当泛滥,PyPI软件基金会(PSF)为此采取行动,表明他们会每天关注域名名称的使用情况来应对,如今类似的问题,也在开源IDE工具Visual Studio Code(VS Code)的组件市场出现。

安全企业ReversingLabs指出,他们在今年6月发现新的VS Code恶意延伸组件,可被用于引发勒索软件攻击。但引起该公司注意的地方在于,这个恶意组件的名称与3个月前出现的组件完全相同,他们查看微软相关的文件,这样的情况不应该发生,经过调查后,确认这是存在于VS Code市场的弱点,能让攻击者重新利用已下架的组件名称。

今年6月出现的恶意组件名为ahbanC.shiba,与今年3月出现的组件ahban.shiba名称相同,都是“shiba”,差别在于开发者的账号名称不同,但ahbanC.shiba功能与先前披露的ahban.shiba、ahban.cychelloworld类似,都是在用户安装之后,计算机后续就有可能下载勒索软件并执行。

ReversingLabs指出,根据微软发布的VS Code文件,所有的组件名称都必须是专属的,不应该出现相同名称的扩展组件。他们进一步调查,结果发现shiba并非个案,这样的情况很有可能已被黑客利用。

究竟攻击者如何得逞?ReversingLabs指出,只要前一个开发人员选择移除(Remove),其他开发者就能重新使用相同名称上架新组件。这意味着,一旦有热门组件不再维护,开发者将其从市场移除,那么攻击者很快就会抢下它的名称,以便进一步运用。

附带一提的是,假若原开发者设置为取消发布(Unpublish),虽然用户同样无法下载组件,但其他组件开发人员也无法使用相同名称上架自己的组件。

ReversingLabs进一步比对黑客上架新旧恶意组件的时间点,结果发现,新组件ahbanC.shiba很可能在旧组件移除不久就上架,且在6月17日前后设置为取消发布的状态,虽然用户无法下载恶意组件,不过他们仍能访问相关统计数据,因此,攻击者日后很有可能重新发布,以利用于其他攻击活动。不过,对于黑客为何要采取取消发布的做法,ReversingLabs没有说明。