我們把真實發生的公開事故,不當成新聞的重播,而是以 「在你的環境中該如何防禦」 的視角來解讀。本文為 依據公開紀錄(主管機關、企業官方、報導)的解說。出處於文末列明,且不涉及攻擊的重現步驟。
- 對象
- 保管於加密資產交易所熱錢包中的用戶資產(XEM/NEM)
- 發覺
- 2018 年 1 月 26 日(偵測到不當轉出)
- 影響規模
- 約 523 百萬 XEM、當時約 580 億日圓(約 26 萬人受影響)
- 根本原因
- 巨額放在連網熱錢包 + 未導入多重簽章(單點故障)+ 終端的惡意軟體耐受性不足 + 大量轉出的偵測與停止能力薄弱
- 真正的對策
- 金鑰離線/集中至專用保險庫、多人核准、熱錢包餘額最小化、終端/郵件防禦、異常轉出的偵測
發生了什麼(用淺白的話說)
加密資產的「錢包」守護的不是資產本身,而是 能動用它的私鑰。金鑰的擺放方式有兩種——連上網路、可立即動用的「熱錢包」,以及與網路隔離的 「冷錢包(離線保管)」。熱錢包很方便,但攻擊者的手也能隔著網路伸進來。
在這起事件中,巨額的 XEM 被放在 熱錢包,而且 未使用多重簽章(multisig) 保管。多重簽章是「轉帳需要多把金鑰共同同意」的機制,讓即使一把金鑰外洩也無法被擅自動用。因為沒有這道機制,所以 只要單一把私鑰被竊,當下就能動用幾乎全部的保管資產。公開資訊指出,侵入的第一步是瞄準員工的 魚叉式郵件 所投放的 惡意軟體,並由此竊得私鑰。
『可立即動用的巨額』,對攻擊者而言是最理想的目標
對攻擊者而言,最有價值的,是 只要攻破一處就直通大量價值的單點故障。把巨額放在連網熱錢包、以單一簽章保管——這正好符合這個條件。不限於加密資產,一把 API 金鑰就能讀取整個資料庫、一個管理者帳號就能操作全部 的配置,同樣潛藏著這種危險。
攻擊的連鎖,同時也是一張『防禦地圖』
這起事件同樣是一條 每一段都有可攔下之處 的連鎖。請不要把它讀成攻擊手順,而要讀成 在哪裡本可以斷開它。
① 入口:對員工的魚叉式郵件/惡意軟體
用調查過目標的偽郵件,讓終端感染惡意軟體。
⊘ 攔阻點:郵件/終端防禦(EDR、對附件與巨集的警覺)
② 竊取熱錢包的私鑰
從受感染的終端,竊得能動用資產的私鑰。
⊘ 攔阻點:將金鑰放到離線/專用保險庫(HSM)、把多人簽章列為必要
③ 一次性不當轉出(約 523 百萬 XEM)
因為單一簽章即可動用,短時間內幾乎全額被轉出。
⊘ 攔阻點:把熱錢包餘額最小化、對大量轉帳的偵測、核准與凍結
④ 換現/分散
以規避追蹤的方式移動資產。
⊘ 攔阻點:異常偵測與即時停止的維運、以及從源頭縮小爆炸半徑
公開的時間軸
2018-01-26
偵測到不當轉出。約 523 百萬 XEM(當時約 580 億日圓)外流。停止 XEM 的存提與交易等。2018-01-27
召開記者會公開。表明將以日圓對受害用戶進行補償的方針。2018-03
金融廳依《資金結算法》發出業務改善命令。對約 26 萬人合計實施約 463 億日圓的補償。2018-04
宣布由 Monex 集團(摩乃科斯)收購,經營體制全面刷新。2018〜
以此事件為契機,對加密資產交易業的規範與監督逐步強化。
根本原因不是「單一次失誤」,而是層層崩落
若把這起事件用「被惡意軟體攻陷了」一句帶過,就會再發。實際上,本質是 多個防護層接連崩落。
崩落的配置(事故當時)
- 把巨額 XEM 放在連網的熱錢包保管
- 未導入多重簽章=單一金鑰外洩即可動用全額(單點故障)
- 員工終端擋不住魚叉式郵件/惡意軟體的第一步
- 對巨額異常轉帳即時停止的機制薄弱
守得住的配置(防止再發)
- 絕大部分放在冷儲存(離線),熱錢包保持最小
- 以多重簽章/多人核准使單一金鑰外洩無害化
- 以終端/郵件防禦擋下魚叉式攻擊的第一步
- 把大量轉出的偵測、核准與凍結納入日常維運
補償與規範:事後付出的代價很大
Coincheck 以日圓對受害者進行補償(約 26 萬人、合計約 463 億日圓),接受金融廳的業務改善命令,最終走向以收購重建經營。事後補償、重建信任與因應規範的成本,遠遠高於事前的設計投資——這是不分規模的共通教訓。要在事故發生之前,就設計出與所守護之物價值相稱的金鑰管理,這才是本質。
在你的環境中防止再發
即使你不經手加密資產,只要有任何一處是「一把金鑰、一個帳號就能動用巨大價值」,那就與你切身相關。以下依優先順序列出對策。
把最重要的金鑰與機密集中到『冷』
不必立即使用的金鑰與機密,放到無法從網路觸及之處或專用保險庫(HSM/KMS)。可從網路觸及的部分(熱)保持必要最小限度,好把萬一被攻破時的受害金額本身壓小。
消除單點故障(多人核准、權限分割)
避免一把金鑰、一人操作就能動用全部資產與權限的狀態。重要操作應以**多人核准(相當於多重簽章)**為必要,並分割權限。設計成即使外洩一處也不會致命。
偵測並停止異常的大量操作
偵測「短時間內大量轉出」「與平時不同的收款方」,並備妥能即時暫停、等待核准、凍結的維運。即使無法防住,只要縮短察覺並停止所需的時間,受害就會變小。
與本站設計思想相通之處
這起事件的本質,是把機密(金鑰)放在超出必要的「熱(可立即動用)」狀態,並大量集中成單點故障。這與本站自身的原則——不代管機密、只讓必要最小限度可被觸及、把爆炸半徑最小化——恰好互為表裡。不限於加密資產,一把 API 金鑰就能讀取整個資料庫/一個管理者帳號就能操作全部的配置,同樣潛藏這種危險。「往冷集中、熱保持最小、不讓單一金鑰動用全部」,是一種不分規模、人人都能落實的防守。
出處(公開紀錄)
本文的事實依據以下公開資訊。不涉及攻擊的重現步驟,僅聚焦於防禦的教訓。
- 金融廳「關於對 Coincheck 株式會社的行政處分」(2018) — fsa.go.jp
- Coincheck 株式會社 官方公告(關於不當轉出的通知・補償方針, 2018) — coincheck.com
- Reuters「Japan's Coincheck exchange loses $530 million in cryptocurrency heist」(2018) — reuters.com
接下來閱讀
- 術語:什麼是網路釣魚(魚叉式) / 什麼是惡意軟體(侵入的第一步)
- 術語:EDR 是什麼(偵測終端的異常)
- 實務:資安最低限度檢查清單(最優先守護王國的鑰匙)
FAQ
QCoincheck 事件的根本原因是什麼?
是把巨額的 XEM(NEM)放在連上網際網路的『熱錢包』,而且未使用多重簽章(multisig)保管。在這種配置下,只要竊得單一把私鑰,就足以動用幾乎全部的保管資產。就侵入的第一步,公開資訊指出是透過瞄準員工的魚叉式郵件所投放的惡意軟體竊得了那把私鑰。
Q我沒有持有加密資產,這和我有關嗎?
有關。這起事件的本質並非加密資產所特有,而是『把有價值的機密(金鑰、API 金鑰、管理者權限)放在可立即動用的“熱”狀態、且大量集中成單點故障』。應盡量把重要機密集中到離線或專用保險庫(HSM/KMS),把可從網路觸及的部分壓到最小,並確保沒有任何單一金鑰能動用全部——這個思路對任何系統都有效。
Q小型服務也能從中學到東西嗎?
可以。①把最重要的金鑰與機密放到離線或專用保管處(HSM/KMS);②做到沒有任何單一金鑰或單一人員能動用全部資產與權限(多人核准、權限分割);③強化終端的惡意軟體防護與對魚叉式郵件的警覺;④偵測並停止異常的大量操作。這些不論規模大小都適用。