NPM蠕虫漏洞披露

NPM项目已正式承认其存在一个长期的安全漏洞,该漏洞可能导致恶意的代码包可以在开发者系统上随意的运行任意代码,导致了第一个NPM创建的蠕虫。在一篇名为“npm无法限制恶意代码包的行为”的漏洞说明VU319816中,Sam Saccone描述了创建一个蠕虫需要的步骤以及怎么让它自动传播。尽管这是在2016年一月被报道出来的,然而从NPM仓库管理初始版本发布开始,这个问题就已经存在而且被广泛知晓。

这个问题的根源在于,NPM模块有相关的脚本文件,它们可以在安装的时候被NPM运行。当模块从NPM上被下载后,它有足够多的机会可以运行其代码:

preinstall - 在包被安装之前运行 postinstall - 在包被安装之后运行 preinstall - 在包被卸载之前运行 uninstall - 在包被卸载时运行 postuninstall - 在包被卸载之后运行

这些脚本使得NPM模块的发布更加简单并可以在使用之前进行内容的后期处理。举例来说,一些模块原本是由CoffeeScript或者TypeScript编写的,它们需要一个转化的步骤,或者是用ES6编写的,需要Babel转化后才能运行在目前的浏览器上。另外,JavaScript库一般都会进行压缩(使其更小),这往往也是需要自动化运行的一个步骤。因为JavaScript是解释性的,像make这样的工具不会被使用,所以npm脚本就用来干这些苦力活。

在模块被客户端下载和使用的时候,NPM错误地使用了这些代码,不光用来完成编译时间验证,还进行客户端运行。举例来说,left-pad惨状(InfoQ昨日报道)在重新发布模块后得到解决;然而,如果像这样被广泛使用的模块(例如true,其功能只是打印true)有被影响的代码块,那么这样的代码运行在成千上万的机器上也有了可能。

这些代码满足了蠕虫的创建条件,然后这些蠕虫持续地影响其他的代码包并依次传播。NPM包开发者使用标准的证书把他们的代码包(当然是通过npm)发布到NPM目录。为了加快发布,他们有可能会登录到该目录然后一直保持登录状态,此后任何的代码包都可以发布到该目录。正因如此,一旦一个npm包开发者的机器被攻占,蠕虫可以扫描其他的代码包,然后重新发布它们(通过开发者现有的证书),与此同时,蠕虫已经被注入到这些刚被感染的包的脚本代码块中。

甚至,包管理其自己也执行JavaScript,这意味着仅仅是解决包的依赖就会导致任意代码的执行。这里有个例子可以最作为该概念的认证,一个代码包使用变量作为其包名,被发现可以伪装成任何的包。参考真实的开源精神,该概念认证是MIT证书认证:

A="$1" echo '{ "name": "'"$A"'", "version": "2.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo "Error: no test specified" && exit 1" }, "author": "", "license": "ISC"}' > package.jsonnpm publish

如果一个包开发者下载了此代码包然后运行了其脚本,那么之后该包会运行index.js,之后便可以在终端机器上运行任意的代码。该例子就展示了怎样运行sudo rm -rf /,显然这会在没有任何备份的情况下造成严重后果。

NPM目录允许任何人重新规划一个存在的代码包,只需要在他们的空间里用相同的命名发布一个新的版本,这使得该问题变得更加复杂。除非开发者特意的写死他们所依赖的代码包版本,否则很有可能自动更新到最近的版本并在之后遭受攻击。

到目前为止NPM的回复都相当的软弱,否认了其对扫描恶意软件的责任,并指出开发者使用那些模块受到注入攻击也是咎由自取。然而整个基础都被设置成允许所有人拥有自己的包并可以用任何JavaScript替换这些包;尽管这些脚本可以被排除在外(通过使用using npm install --ignore-scripts 或者npm config set ignore-scripts true),然而还是有机会使用 require('shelljs').exec('rm -rf /')替代JavaScript文件的内容,其运行时还是有着破坏性的影响。并且,让一个npm会话保持登录意味着任何应用,无论是基于NodeJS还是其他语言,都可以很容易的在用户不知晓的情况下以当前用户的名义发布脚本。

最近的这些事件表明,随着JavaScript的以及服务器端NPM使用的快速增长,其被赋予了和JavaScript语言本身一样的安全性的考虑。唯一让人感到惊讶的是,整个事件花费了这么长的时间才水落石出。

本文转自d1net(转载)

时间: 2022-12-07

NPM蠕虫漏洞披露的相关文章

政府安全资讯精选 2017年第十二期 中国网络安全漏洞披露平均效率远超美国; 美国美国国土安全部发布指令,要求联邦机构强化Web和电子邮件安全

  [国内政策分析] 安徽合肥开出首张<网络安全法>罚单 点击查看原文   概要:合肥市公安局高新分局对某企业的门户网站被植入木马病毒的案件进行调差.同时,对该单位网络安全负责人和负责维护合肥某信息产业有限公司的负责人开出了合肥市首张违反<网络安全法>处罚决定,对未落实网络安全保护责任的行为下达整改通知书,并处以警告处罚.   点评:该企业违反了<网安法>第二十一条,"网络运营者应当按照网络安全等级保护制度的要求,采取防范计算机病毒和网络攻击.网络侵入等危害网

政府安全资讯精选 2017年第二期:英美重视IoT安全,漏洞披露和安全人才培养

[全球政策趋势] 美参议员提出<物联网网络安全改善法案>,提高政府设备采购安全门槛.点击查看原文 概要:近日,美国数位参议院议员提出<物联网网络安全改善法案>,希望立法规范联邦政府采购的物联网(以下简称IoT)设备的安全标准,.该法案要求IoT厂商保证出售给政府的装置可修补漏洞,不可使用固定密码,杜绝已知安全漏洞:要求使用IoT的部门清点装置并建立安全要求. 点评:参议员表示,希望通过政府采购"以身作则",进一步完善整个行业的安全标准,补救"市场失灵&

OpenSSL漏洞披露:想法没错 时间不对

研究人员最近披露称,OpenSSL安全漏洞披露可能在更新发布前的空档期造成更严重的潜在后果. 技术领域的斗争可谓古来有之--Windows对Linux.emacs对vi乃至Perl对Python,而如今安全领域也有了自己的争端--安全漏洞披露方式.曾几何时,公开发布安全漏洞被作为业界共识,然而最近人们发现公布与OpenSSL相当之漏洞却往往反生祸端. 攻击者们能够利用一套经过精心设计的私有密钥立足于外部读取OpenSSL中b2i_PVK_bio()函数中的漏洞说明,Intelworks公司软件工

乌云漏洞盒子同时维护 漏洞披露机制或迎重大升级

国内两个安全漏洞平台同一天启动了升级及维护动作. 伴随而来的,还有坊间的传闻. 两个安全漏洞平台声明辟谣 7月19日晚间,有微博大号爆料称安全漏洞平台乌云网官方网站无法访问,可能出现状况.乌云网随后在网站首页发布声明称,乌云网及相关服务进行升级,并将在最短时间内,以最好的姿态回归.乌云网同时在声明中称,"与其相信谣言,不如相信乌云". 7月19日,另一企业级安全漏洞平台漏洞盒子发布升级公告称,管理团队对其网站进行例行维护.维护期间,暂停互联网漏洞与威胁情报接收.漏洞盒子公告称,新版本上

漏洞披露究竟怎么做更”合适“?看看美国相关部门怎么看

当安全研究者发现一个软件产品漏洞后,最好的漏洞披露方式是什么?软件供应商又应该如何接收和响应漏洞披露?这类问题的解答正凸显关切和重要,因为伴随着信息软件商品的涌现,随之而来就是各种网络安全漏洞.而在实际中,作为事件相关方,处理类似问题,或许需要更多的支撑数据和参考观点. 因此,在美国国家电信与信息管理局(NTIA)的发起下,我们就"多方利益"相关的漏洞披露处理态度和方法,对一些安全研究者和技术运营商开展了调查.调查分三个工作组,作为成员单位,我们Rapid7负责关注漏洞披露处理的采用方

美国国防部公布漏洞披露政策 黑客可访问政府系统

本周一,美国国防部公布"漏洞披露政策",允许自由安全研究人员通过合法途径披露国防部公众系统存在的任何漏洞.这项"漏洞披露政策"(Vulnerability Disclosure Policy)旨在允许黑客在不触犯法律的前提下访问并探寻政府系统.国防部长Ash Carter在博文中表示,"我们希望该项政策使漏洞源源不断披露,从而便于我们迅速发现并修复漏洞.最终使国防部.服务人员以及公众会更为安全."该项目由HackerOne公司管理.今年早些时候,

NSA漏洞披露政策:攻击和防御间的权衡

美国国家安全局(NSA)公布了有关其漏洞披露政策的一些统计数据以及指导原则,但有专家表示他们没有公布重要的细节. 网站详细介绍了NSA的漏洞披露政策,这又引出了这样一个问题:NSA是否会披露其发现的漏洞?根据NSA表示,这个问题的答案在大部分时候是肯定的,因为负责任的披露"显然符合国家利益".但NSA也声称,披露的决策其实非常困难和复杂. "对于披露漏洞的决定,既有优点又有缺点,并且,在及时披露和在有限时间内不公布某些漏洞之间的权衡会带来显著的后果,"NSA写道,&

漏洞披露模式的法理与价值:记乌云白帽大会圆桌论坛

前不久,一名白帽子因在第三方漏洞平台提交世纪佳缘网漏洞涉案一事,在业内引起轩然大波,各方面相关人士对事件的看法不尽相同,争议四起. 在近日举行的乌云白帽大会上,包括法律.安全.公安.互联网公司.电子取证.漏洞收集平台.白帽子.媒体等8位不同领域的专家就世纪佳缘事件涉及的相关法律问题进行了深入探讨.现将此次讨论的内容编辑整理如下: 论坛主持:安全牛主编李少鹏 论坛嘉宾: 电子取证专家--中科院软件研究所研究员,中国电子学会计算机取证专委会主任委员,公安部三局特聘专家丁丽萍; 公安网监--江苏省公安

火眼急眼 将披露其产品漏洞的公司告上法庭

本文讲的是火眼急眼 将披露其产品漏洞的公司告上法庭,这场两个安全公司之间的口水战显示出漏洞提交是一件非常敏感的事,尤其是流行软件产品的漏洞. 在火眼恶意软件保护(MPS)产品中发现了5个漏洞的公司是德国一家安全咨询公司ERNW的一名研究人员.这些漏洞中的其中之一,可以被攻击者利用获得主机访问权,ERNW在今年4月初就将漏洞细节提交给了火眼.前者本来计划在90天漏洞披露期之后,才会公开漏洞细节.但之后,两个公司之间的关系开始变得紧张起来. 火眼在评估了ERNW提交的漏洞之后,认为包含了太多其MPS