月下載量千萬的npm包被黑客篡改计盒,Vue開發(fā)者可能正在遭受攻擊

今天早起看手機(jī)渴频,結(jié)果發(fā)現(xiàn)我的微信群炸了,未讀消息 999+北启,大家都在討論 event-stream 事件卜朗。打開 twitter 也是被這個刷屏了拔第。

于是翻看了一下 GitHub issue,大概知道了事情的原委场钉。

用戶 @FallingSnow 在 GitHub 上為 event-stream 倉庫創(chuàng)建了一個 issue蚊俺,標(biāo)題為:"I don't know what to say.",翻譯過來大概就是“我也是很無語了”逛万。因?yàn)?event-stream 包突然多出了一個名為 flatmap-stream 的依賴項(xiàng)泳猬,而這個依賴項(xiàng)正在竊取用戶的數(shù)字貨幣。

event-stream 被很多的前端流行框架和庫使用泣港,每月有幾千萬的下載量暂殖。在 Vue 的官方腳手架 vue-cli 中也使用了這個依賴,作為最流行的前端框架之一当纱,這個影響還是挺大的呛每。而 React 則躲過了以此影響。

flatmap-stream 中的惡意代碼會掃描用戶的 nodemodules 目錄坡氯,因?yàn)樗袕?npm 下載的模塊都會放在此目錄晨横。如果發(fā)現(xiàn)了在 nodemodules 存在特定的模塊,則將惡意代碼注入進(jìn)去箫柳,從而盜取用戶的數(shù)字貨幣手形。

如果想查看自己的項(xiàng)目是否受到影響,可以運(yùn)行:

$ npm ls event-stream flatmap-stream
...
flatmap-stream@0.1.1
`...`

如果在輸出里面包含了 flatmap-stream 則說明你也可能被攻擊悯恍。

如果使用 yarn 則可以運(yùn)行:

$ yarn why flatmap-stream

根據(jù) issue 的描述库糠,這次事件還非常具有戲劇性,因?yàn)楣粽撸ˊright9ctrl)在大概 3 個月前明目張膽的添加了攻擊代碼涮毫,并提交到了 GitHub瞬欧,隨后發(fā)布到了 npm。于是 @FallingSnow 在 GitHub 上詢問“為什么 @right9ctrl 有這個項(xiàng)目的訪問權(quán)限呢罢防?”

@dominictarr Why was @right9ctrl given access to this repo? He added flatmap-stream which is entirely (1 commit to the repo but has 3 versions, the latest one removes the injection, unmaintained, created 3 months ago) an injection targeting ps-tree. 

不久這個倉庫的所有者(@dominictarr)給出了一個讓人哭笑不得的回復(fù):

他發(fā)郵件給我艘虎,說他想維護(hù)這個模塊,于是我把模塊所有權(quán)移交給了他咒吐。我沒有從這個模塊得到任何回報野建,而且我已經(jīng)好久不使用這個模塊了,大概有好幾年了吧恬叹。

而且:我已經(jīng)沒有發(fā)布這個模塊的權(quán)限了候生。

作者已經(jīng)把這個模塊移交給了黑客。

$ npm owner ls event-stream
right9ctrl <right9ctrl@outlook.com>

從 GitHub 的提交記錄也可以看到绽昼,作者(@dominictarr)最后一次提交代碼是去年 10 月陶舞。而之后黑客 @right9ctrl 也一直在維護(hù)此模塊。但是在 3 個月前绪励,黑客在 GitHub 上新建了一個 flatmap-stream 倉庫(內(nèi)含惡意代碼)肿孵,并在這個項(xiàng)目中引用了自己的倉庫唠粥。

直到幾天前這個有漏洞的倉庫才被發(fā)現(xiàn),然后 npm 緊急將這個含有惡意代碼的 flatmap-stream 模塊刪除了停做。

這段惡意代碼目前還能在 GitHub 上看到晤愧,感興趣的可以自己去分析。攻擊者還是挺有心機(jī)的蛉腌。

在評論區(qū)也出現(xiàn)了對 @dominictarr 的指責(zé)官份,輕易的將一個周下載量百萬級別的模塊移交給了陌生人去維護(hù)。但是熟悉 @dominictarr 的人都知道烙丛,雖然 @dominictarr 不如 tj 大神那么高產(chǎn)舅巷,但是 @dominictarr 也維護(hù)著 400 多個 npm 包,而維護(hù)這么多包無疑花費(fèi)了很多的時間和精力河咽。

雖然我們不知道黑客(@right9ctrl)發(fā)送的郵件是如何寫的钠右,但是無容置疑的是,這封郵件使其獲得了 @dominictarr 的信任忘蟹,再加上 @dominictarr 已經(jīng)好久不使用這個包了飒房,因此將所有權(quán)轉(zhuǎn)移給了黑客(@right9ctrl)。

而這次漏洞事件媚值,也讓我們回過頭來重新反省 node.js 社區(qū)狠毯。

最后再次提醒:如果你是 vue 開發(fā)者,請務(wù)必檢查一下自己的項(xiàng)目褥芒。即使你不是 vue 開發(fā)者嚼松,最好也檢查一下,因?yàn)楹芏嗔餍心K比如 nodemon锰扶、npm-run-all惜颇、ps-tree 也都受到了影響。

聲明:本文來自justjavac少辣,版權(quán)歸作者所有。文章內(nèi)容僅代表作者獨(dú)立觀點(diǎn)羡蛾,轉(zhuǎn)載目的在于傳遞更多信息漓帅。如需轉(zhuǎn)載,請聯(lián)系原作者獲取授權(quán)痴怨。
https://www.secrss.com/articles/6694?utm_source=tuicool&utm_medium=referral

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末忙干,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子浪藻,更是在濱河造成了極大的恐慌捐迫,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件爱葵,死亡現(xiàn)場離奇詭異施戴,居然都是意外死亡反浓,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門赞哗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來雷则,“玉大人,你說我怎么就攤上這事肪笋≡屡” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵藤乙,是天一觀的道長猜揪。 經(jīng)常有香客問我,道長坛梁,這世上最難降的妖魔是什么而姐? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮罚勾,結(jié)果婚禮上毅人,老公的妹妹穿的比我還像新娘。我一直安慰自己尖殃,他們只是感情好丈莺,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著送丰,像睡著了一般缔俄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上器躏,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天俐载,我揣著相機(jī)與錄音,去河邊找鬼登失。 笑死遏佣,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的揽浙。 我是一名探鬼主播状婶,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼馅巷!你這毒婦竟也來了膛虫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤钓猬,失蹤者是張志新(化名)和其女友劉穎稍刀,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體敞曹,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡账月,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年综膀,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捶障。...
    茶點(diǎn)故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡僧须,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出项炼,到底是詐尸還是另有隱情担平,我是刑警寧澤,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布锭部,位于F島的核電站暂论,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拌禾。R本人自食惡果不足惜取胎,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望湃窍。 院中可真熱鬧闻蛀,春花似錦、人聲如沸您市。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽茵休。三九已至薪棒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間榕莺,已是汗流浹背俐芯。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留钉鸯,地道東北人吧史。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像唠雕,于是被迫代替她去往敵國和親贸营。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容