又见古老的Typosquatting攻击:这次入侵了Npm窃取开发者身份凭证

2017 年 8 月 9 日 FreeBuf liki

有些攻击方式虽然听起来很幼稚,但有时候却也可以生效,比如typosquatting攻击——我们上次看到这种攻击是在去年6月份,这本身也是种很古老的攻击方式。

所谓的typosquatting,主要是通过用户的拼写错误诱导用户访问或下载某个伪装成合法工具的恶意程序——其核心只在于工具名或文件名和原版很像,比如app1e.com,这种类型的钓鱼就是typosquatting。最近 npm 就遭遇了这种攻击。

有人在 npm 上传了不少恶意包

npm的CTO CJ Silverio在博客上发表了一篇文章提到:7月19日-31日期间,名为hacktask的账户发动了typosquatting攻击,此账户发布了一系列package,名称和npm中比较流行的package类似。

这其实就是typosquatting攻击的精髓。而上面提到的npm其实是node.js的package管理工具。开发人员会封装一些常用功能的代码发布到Node.js上,这样其他的人员就可以复用类似功能的代码,而不必重新造轮子。

Silverio在博客中说,这些package的命名绝对是故意、恶意的,目的就是为了欺骗用户,并最终收集到用户数据。好在hacktask发布的所有package都已经从npm移除。安全研究人员暂时发现除了hacktask之外,npm中还没有其它同类typosquatting攻击的package。

这些恶意的package和下载数显示如下:

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

对于此事,Node.js社区建议:

如果你已经下载并已经安装了上面提到的这些package的话,你应该马上删除或替换掉你在命令行环境下存储的各种重要信息。

攻击并不高明

“过去,这样的事大多都是偶然的,我们也见过故意山寨现有库的名字来与原有开发者竞争的情况。但这次,package的命名完全是故意和恶意的,目的就是欺骗用户,从而从他们那里收集有用的信息,“Silverio说。

位于瑞典的开发人员Oscar Bolmsten在一个名为crossenv的package中发现了恶意代码,而人们真正想找的却是cross-env—— 一款当下很流行的用来设置环境变量的脚本。

通过使用环境变量的方法将身份凭证递交给软件,这样的做法很普遍。所以这是一件很好的事情,”Silverio在接受电话采访时说道。

环境变量还用于存储用户名,密码,token,和连接一些应用程序,云服务,API访问权限的密码。

在攻击者发动的typosquatting攻击中,恶意代码会尝试复制受害者机器上设置的所有环境变量,并将其传输到攻击者控制的服务器npm.hacktask.net上。

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

根据Silverio所说,由hacktask提交的大约40个npm包已从npm删除,现在基本已经清理干净,我们扫描了每个npm package,来寻找恶意使用的安装代码,但是没有发现其他类似hacktask的情况。

Silverio对这次攻击的效果表示了怀疑,她说:“通过拼写错误来将恶意软件倒入注册表的手段并不高明,因为人们更倾向于使用搜索或者复制粘贴已发布的代码

7月中旬以来,排除因为好奇的关系前往下载,hacktask上传的绝大部分package,每个下载量大约是40次,恶意的crossenv软件包的下载次数最多,为700次,但这里面大多数都被认为是触发了npm镜像服务器的自动下载。

Silverio估计在这段时期只有约50人下载了恶意的crossenv包,她说她还没有发现有开发者由于这次事件导致账户被黑的上报情况。

虽然hacktask的账户已经被封了,但其背后主谋却还未知是谁。

这种攻击有办法预防吗?

当问到npm是否已采取相应的措施来防止其他用户名下的类似攻击时,Silverio表示这种攻击仍然可能无法立即检测到。

她说:“虽然我们在发布的过程中无法随时随刻的掌控一切,但我们建立了一个运行良好的系统”,Silverio称赞了npm社区的警惕性。

尽管如此,Silverio仍表示,npm正在研究如何识别有相似名字的npm package,用来防治今后的typosquatting攻击。npm也正在与安全公司Smyte一起检测发布过的垃圾信息。很明显,垃圾信息的发布者希望搜索引擎检索到README文件,来提高自己的网站排名。

2016年的kiwicon,开发者Jeff Andrews在关于Node.js的安全性的演讲上问了自己这样一个问题:“我使用Node.js或npm,但我怎么保证这么做是安全的呢?”他答道:“根本不能保证。”

*参考来源:theregister ,npmjs.org,FB小编Liki编译,转载请注明来自FreeBuf.COM

登录查看更多
1

相关内容

AI创新者:破解项目绩效的密码
专知会员服务
33+阅读 · 2020年6月21日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【WWW2020-微软】理解用户行为用于文档推荐
专知会员服务
35+阅读 · 2020年4月5日
深度神经网络实时物联网图像处理,241页pdf
专知会员服务
76+阅读 · 2020年3月15日
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
7 款实用到哭的App,只说一遍
高效率工具搜罗
84+阅读 · 2019年4月30日
ZigBee 网络安全攻防
计算机与网络安全
13+阅读 · 2019年4月15日
被动DNS,一个被忽视的安全利器
运维帮
11+阅读 · 2019年3月8日
去哪儿网开源DNS管理系统OpenDnsdb
运维帮
21+阅读 · 2019年1月22日
社会工程学之伪装
计算机与网络安全
4+阅读 · 2019年1月2日
已删除
AI科技评论
4+阅读 · 2018年8月12日
这位程序员为什么要弃用Facebook?
CSDN
5+阅读 · 2017年7月14日
Deflecting Adversarial Attacks
Arxiv
8+阅读 · 2020年2月18日
Arxiv
6+阅读 · 2018年5月18日
Arxiv
4+阅读 · 2018年4月9日
Arxiv
8+阅读 · 2018年2月23日
Arxiv
6+阅读 · 2018年2月7日
VIP会员
相关VIP内容
AI创新者:破解项目绩效的密码
专知会员服务
33+阅读 · 2020年6月21日
【实用书】Python技术手册,第三版767页pdf
专知会员服务
234+阅读 · 2020年5月21日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【WWW2020-微软】理解用户行为用于文档推荐
专知会员服务
35+阅读 · 2020年4月5日
深度神经网络实时物联网图像处理,241页pdf
专知会员服务
76+阅读 · 2020年3月15日
相关资讯
用Now轻松部署无服务器Node应用程序
前端之巅
16+阅读 · 2019年6月19日
7 款实用到哭的App,只说一遍
高效率工具搜罗
84+阅读 · 2019年4月30日
ZigBee 网络安全攻防
计算机与网络安全
13+阅读 · 2019年4月15日
被动DNS,一个被忽视的安全利器
运维帮
11+阅读 · 2019年3月8日
去哪儿网开源DNS管理系统OpenDnsdb
运维帮
21+阅读 · 2019年1月22日
社会工程学之伪装
计算机与网络安全
4+阅读 · 2019年1月2日
已删除
AI科技评论
4+阅读 · 2018年8月12日
这位程序员为什么要弃用Facebook?
CSDN
5+阅读 · 2017年7月14日
Top
微信扫码咨询专知VIP会员