【導(dǎo)讀】:NPM 成也依賴,坑也依賴!2016 年 3 月,NPM 就炸鍋一次。一個 NPM 模塊的開發(fā)者撤回了自己的代碼,導(dǎo)致諸如React 和 Babel 等大量重要項目出問題了。
今天NPM圈又炸鍋了,因為一個廣泛使用的依賴庫 event-stream 在被原維護(hù)者Dominic Tarr轉(zhuǎn)讓給right9ctrl之后被植入了竊取比特幣的后門。這意味著使用到該模塊的開發(fā)者們,其設(shè)備或許早在不知情的情況下變成了挖礦設(shè)備了。
我們是怎么一步一步掉坑的?
event-stream 是一個用于處理 Node.js 流數(shù)據(jù)的 JavaScript npm 包,它使得創(chuàng)建和使用流變得容易,正是因此,它也受到了廣大開發(fā)者的歡迎,目前這個庫每周有 200 萬的下載量。
數(shù)月前,event-stream庫的作者者@dominictarr 因為缺乏時間和興趣無法繼續(xù)維護(hù)這個庫了,于是就將該庫轉(zhuǎn)讓給了一個完全不認(rèn)識卻又想要維護(hù)的陌生人@right9ctrl ,噩夢就此開始了。
@dominictarr:
(@right9ctrl)他發(fā)郵件給我,說他想維護(hù)這個模塊,于是我把模塊所有權(quán)移交給了他。我沒有從這個模塊得到任何回報,而且我已經(jīng)好久不使用這個模塊了,大概有好幾年了吧。
9 月 8 日,新維護(hù)者@right9ctrl 開始了初步動作,首先釋出了event-stream3.3.6 版本的更新,并在其中加入了一個全新的模塊——flatmap-stream,彼時這個模塊中并沒有惡意功能。
9 月 16 日,@right9ctrl 重寫了代碼并刪除了對flatmap-stream 的依賴,之后又推出新版本,這意味著更新不會自動升級。
10 月 5 日,flatmap-stream 0.0.1 版本被一個名為“hugeglass”的用戶推送到了 NPM。而這次釋出的更新中該模塊就被加入了竊取比特幣錢包并轉(zhuǎn)移出余額的功能。
因此,自 10 月 5 日以來,任何通過event-stream 庫并使用被植入惡意代碼 flatmap-stream 的開發(fā)者都可能受到惡意腳本的攻擊。而據(jù)統(tǒng)計,自2018 年 9 月更新以來,惡意包已下載近 800 萬次。且原作者也無奈地表示,自己也沒有權(quán)限去修改。
event-stream原作者的回應(yīng)
收到其他開發(fā)者的譴責(zé)后,event-stream 原作者Dominic Tarr在 GitHub 上發(fā)表聲明做出了回應(yīng)。
https://gist.github.com/dominictarr/9fd9c1024c94592bc7268d36b8d83b3a
大意如下:
使用者將維護(hù)的負(fù)擔(dān)壓在作者身上,而他開發(fā)這個庫不是出于利他動機(jī),是因為好玩。從開發(fā)中學(xué)習(xí)并獲得樂趣,將維護(hù)交給另一個人是因為分享也是一種學(xué)習(xí)。
為什么要把這個軟件包項目交給一個陌生人?
因為當(dāng)它不再有趣,你從維護(hù)中得不到任何東西。一開始他并沒有從 right9ctrl 身上感受到惡意,他以為這是一位真心想幫助他的人。
與其他貢獻(xiàn)者分享 commit access/publish 權(quán)力在 node/npm 社區(qū)是很流行的。
他認(rèn)為有兩種方法解決這個問題:給維護(hù)者錢,或者使用者也應(yīng)該承擔(dān)部分維護(hù)的責(zé)任。
如何知道是否中招了?該怎么辦?
目前對于開發(fā)者受到此漏洞的影響程度尚未可知,但是當(dāng)前我們的首要任務(wù)還是檢查自己是否使用了相關(guān)的惡意庫,例如運行以下代碼:
$npmlsevent-streamflatmap-stream...flatmap-stream@0.1.1...
如果在輸出里面包含了 flatmap-stream 則說明你也可能被攻擊。
倘若確認(rèn)受到了影響,接下來你首先要做的是從應(yīng)用程序中刪除惡意軟件包,可以通過恢復(fù)到 event-stream版本 3.3.4 來執(zhí)行此操作。
-
模塊
+關(guān)注
關(guān)注
7文章
2741瀏覽量
47841 -
比特幣
+關(guān)注
關(guān)注
57文章
7006瀏覽量
141458
原文標(biāo)題:可怕!月下載量 800 萬的開源庫被植入比特幣后門
文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論