Event-stream,一次可怕的社工
幾天前有人在github建立了一個issue:
ofollow,noindex" target="_blank">https://github.com/dominictarr/event-stream/issues/116
標題為:”I don’t know what to say.“,翻譯過來大概就是“我無語了”。因為 event-stream 包突然多出了一個名為 flatmap-stream 的依賴項,而這個依賴項正在竊取使用者的數字貨幣。
event-stream 被很多的前端流行框架和庫使用,每月有幾千萬的下載量。作為最流行的前端框架之一,在 Vue 的官方腳手架 vue-cli 中也使用了這個依賴,作為最流行的前端框架之一,這個影響還是挺大的,這個影響還是挺大的。而 React 則躲過了。
flatmap-stream 中的惡意程式碼會掃描使用者的 nodemodules 目錄,因為所有從 npm 下載的模組都會放在此目錄。如果發現了在 nodemodules 存在特定的模組,則將惡意程式碼注入進去,從而盜取使用者的數字貨幣。
COPAY錢包因為引用了event-stream庫,它在今年9、10、以及11月27日之前釋出的所有版本都受到了感染,COPAY是bitpay旗下的開源錢包,市場佔有率不可小覷;下面這個連結進行了分析,使用被感染錢包的使用者很有可能被竊取私鑰:
https://github.com/bitpay/copay/issues/9346
COPAY緊急釋出了5.2.2修正版本:
https://github.com/bitpay/copay/pull/9348
使用COPAY錢包的人,請立即升級新版本,並且生成新的錢包,把老錢包裡面的幣轉走。
這個惡意模組更可怕之處,在於背後的駭客是個深謀遠慮、精於社工的人。
這個人的github賬號叫做right9ctrl
,他應該是精心分析了COPAY引用的所有模組,發現event-stream有機可乘。於是給event-stream的創始人-dominictarr
發去了郵件,承諾會自願維護這個專案。
dominictarr
是一個高產的開發者,他維護著近400個NPM包,有人能自願分擔他的工作,他自然是高興之至,於是將這個模組的倉庫控制權移交給了right9ctl
。
剛開始的時候,right9ctl
非常小心的進行著常規的維護。一段時間後,即在 3 個月前,黑客在 GitHub 上新建了一個 flatmap-stream 倉庫(內含惡意程式碼),並在這個專案中引用了自己的倉庫。
直到幾天前這個有漏洞的倉庫才被發現,然後 npm 緊急將這個含有惡意程式碼的 flatmap-stream 模組刪除了。
這個模組的攻擊行為也很隱蔽,首先他只有引用了 event-stream 這個庫,並且依賴引用了 flatmap-stream,使用者在編譯自己的專案時,才會感染惡意程式碼。
感染惡意程式碼的程式,也不會全部發作。只有COPAY錢包執行時,他才會悄悄的竊取使用者資訊,併發送到下面這幾臺伺服器:
copayapi.host 51.38.112.212 145.249.104.239 111.90.151.134
我不知道截止到現在黑客獲取了多少幣,但整個事件非常驚悚。而且這個漏洞剛剛被發現,我認為還會持續有訊息不靈通的受害者。
另外,如果想檢視自己的專案是否受到影響,可以執行:
$ npm ls event-stream [email protected]...
如果在輸出裡面包含了 flatmap-stream 則說明你也可能被攻擊。
如果使用 yarn 則可以執行:
$ yarn why flatmap-stream
區塊鏈歷史中的傳奇HACK手段
我在以前的文章中多次感嘆所謂的區塊鏈技術出來後,簡直是黑客的黃金年代!大概從2011年開始,精彩的HACK事件層出不窮,如果要全部整理出來,可能會是一部讓所謂的區塊鏈專家
和區塊鏈投資者
冷汗直流,後怕不已的手冊。
撇開這幾天的市場動盪,幣價大跌不提,單單從技術上評估,能有多少人意識到他們所謂的投資的技術風險!
我隨意的說幾件印象非常深刻的HACK事件。
整個國家DNS 流量劫持事件
我記得大概是2015年,巴西的骨幹網DNS整個被黑客劫持了,導致當時的blockchain.info 線上錢包有幾個小時的流量完全被導向了釣魚網站,這次事件導致的丟幣數目不可統計。
但是給你一個啟示,當利益足夠大的時候,任何設施,包括國家設施都是不可信、不安全的。結合這兩天發現的jd.com流量返利劫持,你就知道:網路世界裡,有的組織或者個人,完全可以劫持一個國家的網路流量,這不是天方夜譚。
官方域名劫持事件
今年二月份的時候,有人花大價錢買了”electrumltc.org”這個域名,仿照”https://electrum-ltc.org/ “官網,精心炮製了一個以假亂真的網站,然後把下載連結改成了惡意錢包,並且做了Google SEO,把自己的騙子網站搜尋結果推到了第一名;有人因此丟了2399個LTC,那個時候可是不少錢。
很諷刺的是,恰恰是因為真正的開發者買不起這個域名,才搞了一個山寨的域名釋出自己的軟體,讓駭客有機可乘。
諷刺吧,原作者辛辛苦苦開發,卻因為沒錢買域名不得已搞個屌絲網站,駭客財大氣粗,直接買下第一官方域名然後釣魚,並且真的獲取巨大收益。
這種釣魚手法在多個錢包、多個網站上面一再重演,受害小白不計其數!
殺人放火金腰帶,修橋補路無屍骸。
這個世界就是這樣。
整個事件回顧:
https://github.com/pooler/electrum-ltc/issues/176
~~~~
這麼羅列下去,我可以輕易列舉出更多的涉及上億美元的hack事件。每個事件說起來好像天方夜譚一樣,不明技術的小白可能會驚歎:怎麼可能有這種事情?!
但是事實就是這樣,而且將來這樣的悲劇會一再重複下去,說再多也沒用,人的安全意識總敵不過懶惰、貪婪等等等等,可悲的人性啊。