近日,一个高度针对性的攻击滥用了开放源代码库的松散信任链,并可能通过受感染的NPM软件包感染数百万用户–该软件包平均每周被下载150万次。
NPM是Node.jsJavaScript运行时环境的软件包管理器,这个流行的软件包(事件流)被添加了恶意代码,并在一个多月时间内没有被任何人发现。这个恶意代码于10月5日被添加到NPM包中,直到11月20日才被发现,并且直到11月26日才确定代码执行的操作。该事件发生在该模块的所有权从原始开发人员转移到匿名用户之后,这位匿名用户添加了恶意代码。
这个恶意代码具有高度针对性,专门针对使用Copay比特币钱包的用户,以窃取加密货币。目前仍然不清楚有多少用户受到影响,但NPM软件包非常欢迎,还有其他数千个软件包依赖于NPM。
根据英国安全架构师Kevin Beaumont的说法,受感染的NPM包的影响范围可能很广。
NPM中约有5k木马感染包,已经受感染长达几个月。换句话说,它可能存在于各种应用程序中,天哪。
– Kevin Beaumont(@GossiTheDog)2018年11月26日
西雅图软件开发人员Gary Bernhardt在Twitter上说,NPM特别适合这样的攻击。
为什么这会发生在NPM而不是另一个系统呢?事实上,NPM是一个很大的目标。但部分原因在于NPM模块很小,因此有更多的模块和维护者,这意味着更多的攻击面。 Create-react-app 2.1.1安装1770个依赖项(不包括dupes)。
– Gary Bernhardt(@garybernhardt),2018年11月26日
Shape Security公司工程总监Jarrod Overson表示:“这种攻击需要进行大量的研究和规划,并且攻击者在无法劫持事件流时还可能有备用路线。鉴于这个攻击的方式,攻击者似乎专门针对Copay,而不是抓住任意有价值的宝库并计划从那里进行攻击。事件流的流行意味着攻击者可轻松地路由到全球数百家公司的特权计算机。”
受感染NPM包由谁负责
加利福尼亚州立大学富勒顿分校计算机科学专业学生Ayrton Sparling(GitHub的用户名FallingSnow)在受感染的NPM软件包中发现了恶意代码,并将该问题关联到原创作者Dominic Tarr,Tarr在9月初将NPM包的维护工作交给给不知名的用户。
新西兰软件工程师Tarr对在GitHub放弃对该软件包的控制权做出了辩护,他指出他没有从维护该模块中得到任何好处,而且“多年来一直没有使用它。”
Rendition Infosec的创始人兼总裁Jake Williams等人表示,Tarr不应该受到指责,因为“这里存在严重的供应链风险,我们早晚需要引起重视。”
这意味着,我们需要一个更好的机制来评估像npm这样的包管理工具中的信任情况。我们真的需要确定我们信任的是什么:开发人员/开发团队还是包名。我认为我们现在的做法不可取。
– 杰克威廉姆斯(@MalwareJake)2018年11月26日
Overson表示,对于受感染NPM软件包这样的问题,责任“非常分散,以至于没有地方可以归咎”。
Overson说:“这里问题在于,现在有非常多的软件是建立在免费工作的人的基础之上。他们提供了有用的软件,并被期望一直提供维护。如果他们不能这样做,他们要么潜水并忽略请求或安全漏洞,要么他们将接力棒传递给其他人。有时候这样做可行,有时不可行,但没有任何结果可以表明这导致软件供应链出现安全漏洞。甚至对这些漏洞的发现、研究和随后的损害控制主要都是由开源生态系统无偿的志愿者完成。”
瞻博网络威胁实验室负责人Mounir Hahad表示,减少这种攻击的方法之一是使用“强制性代码审查和流程来批准提交者的代码更改”。
Hahad称:“企业必须密切关注他们使用的硬化包的最新信息。鉴于大多数公司依赖数百甚至数千个开源软件包,这可能不是一项容易的任务。企业应该安排专职人员来完成这项任务。”
Tripwire漏洞与暴露研究小组的计算机安全研究员Craig Young表示,在NPM生态系统中,这种类型的依赖管理 “特别具有挑战性,其中通常包括来自各种贡献者的大量模块”。
Yang称:“node.js / NPM项目拥有超过1000个依赖项并不罕见,这极大增加了单个恶意模块提交可能破坏很多终端项目安全性的机率。当企业使用node.js / NPM开发代码时,需要密切关注正在导入的内容、谁控制代码以及它是否值得信任。对于依靠免费社区开发的代码时尤其如此。”
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国