新闻快讯
< >

前端开发人员注意!NPM遭“误植域名”攻击长达2周

E安全8月5日讯,攻击者使用NPM注(Node.js包管理注册表)上的crossenv恶意软件窃取开发人员的凭证,这起攻击活动在38个恶意NPM包被删除后得以停止。

npm遭遇“误植域名”攻击长达2周-E安全

开发人员会定期添加JavaScript代码至Node.js应用程序,以实现最常用的功能,因此开发人员本身不必编写代码。

NPM首席技术官希杰·西尔韦里奥周三发布博文指出,7月19日至7月31日,用户“hacktask”发布一系列与现存NPM包相似的域名实施“误植域名”(Typosquatting)攻击。

E安全百科:

1、NPM    

全称是 Node Package Manager,npm为JavaScript开发者提供了一个分享代码的方式,同时也能够为开发者提供一个在他们项目中重用代码的方式。

2、“误植域名”(Typosquatting攻击    

Typosquatting也被称为:URL劫持(URL hijacking),是一种域名抢注和品牌劫持形式,针对是在Web浏览器输入网址时出现拼写错误的网络用户(例如将Google.com误打成“Gooogle.com”)。

西尔韦里奥表示,在过去,这种攻击较为偶然。他们很少看到有人故意误植域名与现存包竞争。而这次,包命名既为故意之举,也是恶意行为,其意图在于收集被骗用户的数据。

瑞典开发人员奥斯卡·波尔姆斯顿在包中发现恶意软件“crossenv”,其专门用来欺骗用户搜索cross-env---设置环境变量的热门脚本。

1.jpg

波尔姆斯顿在接受媒体电话采访时表示,由于环境变量是将凭证传递至软件的常用方式,因此环境变量是相当不错的选择。

除此之外,环境变量能用来存储账户名称、密码、令牌和为应用程序、云服务和API提供访问权的密钥。

这种情况下,crossenv恶意软件试图复制受害者设备上的任何环境变量集合,并将其传输至攻击者在npm.hacktask.net控制的服务器。

Crossenv使用的JSON配置文件运行名为package-setup.js的脚本,这个脚本允许将现有环境变量转换成字符串,之后通过POST请求发送数据。

西尔韦里奥表示,hacktask提交的38个包已从npm移除。她指出,Lift Security公司扫描了具有相同包设置代码的npm包,但未发现其它实例。

npm遭遇“误植域名”攻击长达2周-E安全

西尔韦里奥对攻击效果表示怀疑。她表示,误植域名结果被证明不是将恶意软件植入该注册表的最有效方式,用户趋向于搜索或复制粘贴发布的代码。

39个与hacktask有关的npm包中,大多数自7月中旬以来下载量为40左右,排除因好奇心驱使的下载,而crossenv恶意包最大的下载量为700。但大多数这些包是npm镜像服务器触发的自动下载。

babelcli: 42
cross-env.js: 43
crossenv: 679
d3.js: 72
fabric-js: 46
ffmepg: 44
gruntcli: 67
http-proxy.js: 41
jquery.js: 136
mariadb: 92
mongose: 196
mssql-node: 46
mssql.js: 48
mysqljs: 77
node-fabric: 87
node-opencv: 94
node-opensl: 40
node-openssl: 29
node-sqlite: 61
node-tkinter: 39
nodecaffe: 40
nodefabric: 44
nodeffmpeg: 39
nodemailer-js: 40
nodemailer.js: 39
nodemssql: 44
noderequest: 40
nodesass: 66
nodesqlite: 45
opencv.js: 40
openssl.js: 43
proxy.js: 43
shadowsock: 40
smb: 40
sqlite.js: 48
sqliter: 45
sqlserver: 50
tkinter: 45

西尔韦里奥预计,crossenv恶意包暴露期间,约有50人下载。她未发现任何开发人员报告因这起事件引发的账号盗用情况。

Hacktask账号已被禁用,但该账号的用户身份尚未被揭开。

当被问及npm是否采取措施防止其它人使用不同的账号实施类似的攻击,西尔韦里奥承认,这种攻击可能不会立即被发现。

西尔韦里奥在博文中表示,npm公司正在调查识别包中名称相似的问题,以防止未来发生误植域名攻击。npm还与安全公司Smyte合作检测公布在注册表中的垃圾包---很显然,某人发布垃圾包,是希望搜索引擎将README文件编入索引,从而提升网站搜索排名。

开发人员杰夫·安德鲁斯2016曾表示,他自己就在使用Node.js/npm,但如何保证安全?他给出的无法是“不能”!

E安全注:本文系E安全独家编译报道,转载请联系授权,并保留出处与链接,不得删减内容。联系方式:① 微信号zhu-geliang ②邮箱eapp@easyaq.com

@E安全,最专业的前沿网络安全媒体和产业服务平台,每日提供优质全球网络安全资讯与深度思考,欢迎关注微信公众号「E安全」(EAQapp),或登E安全门户网站www.easyaq.com , 查看更多精彩内容。