加密貨幣出現至今已超過 10 年,在這段時間發生超過過百宗大型的黑客攻擊貨幣交易所或相關服務的事故,雖然通常都追查不到幕後黑手,但至少掌握到他們常用的技倆,有助防患未然。
1. 釣魚和惡意程式:標準加密貨幣交易所攻擊
交密貨幣交易所儲存用戶的加密貨幣和常規銀行的普通金錢,對網絡罪犯而言,牽涉普通金錢風險太高,即使成功盜取也要趕在銀行查封帳號前盡快「套現」,所以黑客通常會選擇加密貨幣。
大部份的加密貨幣交易所攻擊,黑客會首先取得員工的名單,分析他們的興趣 (包括社交媒體上),然後針對性地發送載有惡意內容的釣魚電郵到黑客認為最容易中計的目標,這樣就成功進入了交易所的網絡。然後黑客便開始瞭解整家公司的運作,會計與上司匯報的周期、內容、內部網絡的架構、加密錢包儲存的位置和保安措施等等,這階段可能需要一段長時間,但結果是網絡罪犯取得員工存取重要系統的裝置控制權。
如果交易所的自動系統包括傳送加密貨幣,取得操作權限意味著攻擊者可以傳送貨幣給自己,近期一家 Binance 交易所相信就是遭受這個劇本的攻擊而損失大約 7000 BTC。
2. 雙重花費:以手機打勢 Bitcoin ATM
另一種盜取 bitcoin 的方法是 ATM,一般傳統 ATM 只是從銀行戶口存取金錢,Bitcoin ATM 則更加能夠購買或出售加密貨幣。要在 ATM 上進行 bitcoin 詐騙,騙徒會使用 ATM 出售 bitcoin 然後獲得普通金錢,隨後取消交易,聽起來很兒戲應該無法實行,但現實是加拿大 45 台加密貨幣 ATM 在短時間內被人用這種方法盜取了 20 萬元。
眾所周知,區塊鏈的資訊儲存在區域之內,而例如「向 John 傳送 1 BTC」並非立即寫在區域上,首先它會排隊,新區域建立需時大約 10 分鐘,任何未確定的交易會被區塊建立器從排隊中移除,由於沒有足夠區塊位置儲存所有交易,所以通常優先給序收費較高的人士。然而,ATM 的開發原意並不包括等待交易記錄在區塊鏈後才吐出鈔票,方便用戶的措施卻對保安做成影響。
此外,其實 Bitcoin 不容許取消排隊中的交易,這導致系統經常因為小額交易而被佔用,為了解決這個問題,Bitcoin 加入取代機制,令排隊中的交易能以其他交易取代,就像付錢「打尖」一樣,但這個機制同時造成可以更改收款人,把 bitcoin 傳送回發送者手上。
3. 51% 攻擊:掌握區塊鏈
相信很多人都聽過「數據儲存在區域鏈無法改變」,這其實並非故事的全部。區域鏈有兩個原則確保所資料所有人相同,首先要同意誰人是下個區塊的創立者,這位幸運兒取決於投放了多少資源,越「挖礦」能量越高機會。第二是「最長鏈法則」,當發生衝突時,區塊鏈最長的版本當作有效,如果有人偽造自己版本的區塊鏈然後嘗試把它廣播,所有人都會拒絕,因為較少資源和它比較短。
但是,如果有心人使用多過 50% 總挖礦能量來造假,這時候區塊鏈就會比其他正常礦工長,於是假區塊鏈就會被認定為真,而且所有人接受,財務紀錄就可以改變,付出過的 bitcoin 在舊的公共區塊鏈內會在偽造的區塊鏈上回到了自己的帳號。而這亦是今年年初 Gate.io 交易所發生的事故。
想瞭解更多區塊鏈,可以瀏覽「What is blockchain technology and how it works」和「Explainer: Bitcoin mining」。
4. 秘鑰盜竊:密碼併寫檢查
要使用加密貨幣的話用戶需要秘鑰,這秘鑰儲存在加密錢包之內,而用戶的結餘則儲存在區塊鏈,如果要轉換錢包,用戶要從舊錢包複制秘鑰到新錢包,為了方便起見,秘鑰由 12 個簡單單字組成成為短句。
曾經有加密錢包的開發人員意外把他的秘鑰字句傳到檢查併寫,這導致 7 萬元被盜的結果,雖然結果令人懷疑,但事件具有啟發性。因為現時的應用程式通常不會由頭開始寫起,而是由不同元件組合而成,包括由第三方開發的元件,這亦是 Coinomi 加密錢包的運作方式,為了顯示秘鑰輸入表格,他們使用 jxBrowser 元件,但開發人員並不知道這元件預設檢查併寫所有輸入表格的文字,而且並非使用世界知名的字典,而是雲端的 googleapis.com。
一般情況下並沒有問題,但是密碼和超級秘密的字句就非常危險,儘管問發人員聲稱字句以加密形式只發送給 Google,然後 Google 回覆錯誤,但無論如何,事件中的開發人員損失了 7 萬元。