今日推薦 | 慢霧:IOTA 重大被盜幣事件的分析與安全建議

買賣虛擬貨幣

一些天前我們注意到 IOTA 暫停了主網,雖然早前我們也知道 IOTA 使用者遭遇了盜幣攻擊,但沒想到 IOTA 官方會透過暫停主網方式來進行這次盜幣攻擊的阻攔與調查,看來問題很嚴重。隨後,2020/02/19,我們深入分析了官方披露在 status.iota.org 上的一些線索,開始獨立調查這次嚴重安全事故的具體原因。

透過對 IOTA 官方錢包 Trinity 新版本釋出的分析,我們在其 GitHub 上進行了版本比對,注意到了 MoonPay 這個第三方元件被移除,且我們注意到 Trinitiy 桌面錢包是基於 Electron 開發的,安全經驗告訴我們,這可能是個大坑,於是,我們 2020/02/19 時釋出了一些推測:

慢霧:IOTA 使用者 Trinity 錢包被盜幣攻擊推測

IOTA 因為近期不少使用者的 Trinity 錢包被盜幣攻擊,為了阻止攻擊繼續、調查與修復具體原因,主網協調器都暫停執行了。這是一個被低估的經典攻擊,官方沒披露具體攻擊細節,但透過我們的分析,可以做出某些重要推測,首先可以明確的幾個點:不是 IOTA 區塊鏈協議的問題,是 IOTA 的 Trinity 桌面錢包的問題(官方說的,且先相信)這款桌面錢包基於 Electron(一個使用 JavaScript 為核心構建桌面應用的框架),意味著核心程式碼是 JavaScript 寫的在做該做錢包新舊版本程式碼的 diff 分析時,發現去除了之前內建的一個交易所功能模組 MoonPay,這其中關鍵點是去掉了一段可怕的程式碼:

const script = document.createElement('script');script.src = 'https://cdn.moonpay.io/moonpay-sdk.js';document.write(script.outerHTML);

如果這個第三方 JavaScript 連結主動或被黑作惡,那該桌面版錢包就可以認為是完全淪陷了。到這,我們很有理由相信這是個很大的定時炸彈,如果這個定時炸彈是真的炸了,那很吻合官方的一些說辭與解釋,如:儘快升級新版本的 Trinity 桌面錢包,儘快改密碼,儘快轉移資產到安全種子裡等等。且看官方的後續披露。

今天(2020/02/22),我們注意到了官方披露了一些細節,基本驗證了我們的推測。

https://blog.iota.org/trinity-attack-incident-part-1-summary-and-next-steps-8c7ccc4d81e8

重點關注下這段:

The attacker started on November 27th, 2019 with a DNS-interception Proof of Concept that used a Cloudflare API key to rewrite the api.moonpay.io endpoints, capturing all data going to api.moonpay.io for potential analysis or exfiltration. Another longer-running Proof of Concept was evaluated by the attacker one month later, on December 22nd, 2019. On January 25th, 2020, the active attack on Trinity began, where the attacker started shipping illicit code via Moonpay’s DNS provider at Cloudflare.

攻擊者利用 MoonPay 的 Cloudflare API Key 完成了後續一系列劫持攻擊,預估被盜的 IOTA 達 8.55 Ti(8550000 枚 MIOTA,MIOTA 現在是交易所預設最小交易單元,當前價格 0.267 美金/MIOTA)。根據我們歷史經驗,如果 Web 服務方使用了 Cloudflare,而其 Cloudflare 賬號許可權被控制,就可以做到非常完美的中間人劫持攻擊,注入惡意 JavaScript。而 Trinity 桌面錢包又是基於 Electron,一個完美的 JavaScript 執行環境就擺在這,不需要任何特別的越權,JavaScript 可以完成使用者或 Trinity 錢包可以完成的任何事情,其中就包括密碼和種子的盜取等等。

由於我們不像 IOTA 和 MoonPay 官方,他們擁有足夠的日誌記錄來將攻擊過程完整掌握,我們只能透過我們所能接觸到的完成以上推測與相關分析工作。剩下的就希望官方公佈具體細節並儘快完成主網的重新執行。

在這,我們不得不提的一些安全看法及建議:第三方是可以邪惡的,預設都不可信,軟體安全開發過程一定要警惕第三方依賴,包括第三方元件與第三方 JavaScript 連結

注:IOTA 基金會聯合創始人 Dominik Schiener 表示:“此次攻擊是由於整合 MoonPay 的漏洞造成,「Trinity 錢包所犯的最大錯誤是沒有整合 NPM 軟體包,並且沒有適當地對整合進行安全稽覈」”我們站在第三方獨立安全審計的角度認為,這種說法是不嚴謹的,在加密貨幣發展的歷史上,因為 NPM 包中引用的第三方源而導致的加密貨幣被盜案件不在少數。如知名的 "event-stream" 事件Cloudflare 等第三方 CDN/WAF 服務很優秀很強大,但如果使用者沒安全管理好自己的賬號許可權,其 Web 服務將會遭遇完美的中間人攻擊公鏈官方錢包的一個致命缺陷可能搞垮一條公鏈,鏈上安全關注的同時,鏈下安全也不能忽視,他們是一直整體,這也是為什麼我們關注的是區塊鏈生態安全,而不是僅僅區塊鏈本身的鏈上安全作為 IOTA 官方錢包 Trinity 的使用者來說,儘快按官方的指導完成安全加固工作,這個就不多說了

相關連結:

Trinity Attack Incident Part 1: Summary and next steps https://blog.iota.org/trinity-attack-incident-part-1-summary-and-next-steps-8c7ccc4d81e8

Trinity Attack Incident Part 2: Trinity Seed Migration Planhttps://blog.iota.org/trinity-attack-incident-part-2-trinity-seed-migration-plan-4c52086699b6

Trinity Attack Incident Part 3: Key Learnings & Takeawayshttps://blog.iota.org/trinity-attack-incident-part-3-key-learnings-takeaways-c933de22fd0a

IOTA Status Page:https://status.iota.org/

如何看待 NPM 包 event-stream 被駭客篡改,發現包含惡意程式碼?https://www.zhihu.com/question/303815270

慢霧安全團隊會在「慢霧區」知識星球持續披露加密貨幣世界的威脅情報及相關觀點,歡迎識別二維碼關注。

- END -

往期回顧

慢霧:詳解 DeFi 協議 bZx 二次被黑

慢霧科技釋出「Cosmos 應用鏈安全審計服務」

慢霧科技成立兩週年,感恩所有同行的夥伴

慢霧:2019 年度區塊鏈安全與隱私生態大事記

喜訊 | 慢霧科技透過“國家高新技術企業”認定

慢霧(SlowMist)對2020年區塊鏈世界的一點思考

慢霧導航

慢霧科技官網

https://www.slowmist.com/

慢霧區官網

https://slowmist.io/

慢霧GitHub

https://github.com/slowmist

Telegram

https://t.me/slowmistteam

Twitter

https://twitter.com/@slowmist_team

Medium

https://medium.com/@slowmist

幣乎

https://bihu.com/people/586104

知識星球

https://t.zsxq.com/Q3zNvvF

火星號

http://t.cn/AiRkv4Gz

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;