圖/iThome
區塊鏈發展至今,歷經了多次變革,最初主要作為比特幣的底層技術,而後出現了區塊鏈平臺以太坊(Ethereum),開發者開始能在區塊鏈上開發多元應用,甚至近年來,區塊鏈逐漸走到不同場域,比如加密貨幣IOTA,就是針對IoT應用所設計,許多現實生活中的服務,也透過區塊鏈走向虛擬化,尤其近期受到廣泛討論的去中心化金融(Decentralized Finance,DeFi),就是在鏈上提供金融服務的作法。
在區塊鏈應用愈趨多元且蓬勃發展下,隨之而來的資安攻擊,也成為開發者需小心慎防的威脅來源。現任Line資安工程師,且具有超過3年網路安全、區塊鏈安全滲透測試經驗的Vic Huang,就將區塊鏈架構分為資料層、點到點網路層(P2P network)、共識層及應用層,分別列舉各層中常見的駭客攻擊手法,並以具代表性的案例來說明資安防護的重要性。
區塊鏈架構各階層可能遭遇的資安攻擊。
資料層威脅:小心社交工程騙私鑰
首先,在資料層常見的攻擊手法,包括惡意軟體、釣魚攻擊、不安全的網路位址、粉塵攻擊(Dusting)等。Vic Huang表示:「對使用者來說,在資料層中最重要的就是私鑰,所以駭客會利用社交工程、惡意軟體等手法來騙取私鑰,進而掌握用戶的數位財產。」也就是說,在資料層中,駭客攻擊目標大多以用戶私鑰為主,用戶需妥善保護私鑰不被取得。
但同時,Vic Huang也提醒,私鑰雖重要,但也不要過度保護,以避免私鑰不慎遺失導致錢包內的資金無法取回。比如比特幣交易所QuadrigaCX創辦人Gerald Cotten,就是在 2018年底在印度旅遊時驟逝,導致交易所冷錢包的私鑰丟失,積欠了客戶價值約1.9億美元的加密貨幣資產。
除了需妥善保管私鑰,Vic Huang也建議,用戶利用私鑰生成器網站生成自己的私鑰時,不要用非官方的服務,尤其是WalletGenerator.net、BitcoinPaperWallet.com、BitAddress.Org等網站,因為這些網站使用相同的原始程式碼進行二次開發,而這些程式碼也已經被發現存在漏洞或後門程式,比如WalletGenerator.net提供的生成器服務,會導致使用者在生成私鑰時,該私鑰資訊也被傳送給植入後門的攻擊者。
不只個人用戶,企業內也會有私鑰管理的需求,需遵照一套私鑰使用的規則,通常包含5個角色,分別是私鑰的擁有者(Owner)、保管者(Holder)、私鑰(Key)、驗證者(Validator)及執行者(Operator)。當企業老闆、高管(Owner)需要使用私鑰時,需先經由驗證者簽核,再帶著執行者去找私鑰的保管者拿取私鑰,最後交由執行者來執行。
Vic Huang推薦,企業可以使用由HashiCorp所開發的開源管理工具Vault,來管理企業中的API金鑰、私鑰、密碼、身份驗證等資訊,因為Vault能提供嚴格的存取控制,以及紀錄詳細的數據軌跡(Audit Log),且除了完全開源的特性,Vault也已經被部分企業客製化用於企業內部系統中。
點對點網路層威脅:常見DDoS、BGP狹持攻擊
而點對點網路層,也就是公、私鏈主要的網路架構,常見的攻擊手法包括了阻斷服務攻擊(DDoS)、洪水攻擊、BGP狹持攻擊(BGP Hijacking)、日蝕攻擊(Eclipse Attack)等。
區塊鏈的DDoS、洪水攻擊,是攻擊者透過不斷向區塊鏈發起大量無用的交易,導致整個網路服務暫時中斷或停止。而日蝕攻擊,則是透過干擾網路節點,使節點無法獲取有效資訊而引發網路中斷的攻擊手法。
在2018年,也發生過BGP狹持攻擊,是指駭客駭進ISP業者或其它網路架構供應商的BGP伺服器,散布錯誤的路由資訊以干預流量。Vic Huang說明,當時,以太幣(Ether)加密錢包服務MyEtherWallet,就遭到駭客將流量導至偽造的俄國網站,誘導MyEtherWallet用戶輸入憑證,共被盜走了價值17萬美元的以太幣。
在這個案例中,外界初期以為這是尋常的DNS挾持(DNS hijacking),而後發現,駭客是藉由挾持BGP把Amazon Route 53服務的流量導至駭客所操縱的DNS伺服器,再將造訪MyEtherWallet的用戶導向偽造的網站,因此判定為是攻擊範圍與規模都更大的BGP挾持攻擊。不過,由於駭客導向的假網站未取得有效的SSL憑證,經部分警覺性高的用戶發現後舉報,才曝光這起攻擊事件。
共識層威脅:小型區塊鏈需注意51%攻擊
區塊鏈架構中的共識層,能夠讓分散、去中心化的區塊鏈節點,針對數據的有效性達成共識,其中可能遇到的資安攻擊,包括51%攻擊、雙重支付(Double Spending)、女巫攻擊(Sybil Attack)等。
區塊鏈網路靠去中心化及分散式節點來維護,透過共識機制來驗證交易,藉此來維持整個區塊鏈的唯一性,同時阻止單一個組織操控整個系統。Vic Huang進一步說明,在工作量證明(Proof-of-Work,PoW)的共識機制下,常見以最長鏈原則來處理可能的分岔,也就是當擁有較多的運算能力者,率先計算出亂數(Nonce)並獲得完成該區塊(Block)的獎勵後,其他節點在最長鏈原則下,會拋棄原本的鏈,把更長的鏈複製過來,在這條鏈的基礎上繼續運算。
這就導致,如果攻擊
也因51%攻擊需要掌控大量的運算資源,區塊鏈系統越大,駭客越不易成功發動攻擊,比如Crypto51網站就統計對各個區塊鏈系統發動51%攻擊的成本,其中以攻擊比特幣網絡的成本最高,需要的成本市值超過10億美元,每小時攻擊成本也超過50萬美元。不過,對小型區塊鏈系統來說,由於攻擊成本較低,就容易成為攻擊對象,比如今年8月,以太坊經典(Ethereum Classic,ETC)就在一周內遭受51%攻擊兩次,上千個區塊被重組,駭客從中獲利的金額遠大於租用的運算成本。
應用層威脅:開發漏洞易發生重入攻擊
最後,區塊鏈應用層的資安威脅,在於開發者自行開發的智能合約可能因程式出現漏洞,或是開發者對智能合約的應用不熟悉,導致邏輯上的錯誤,引起駭客有機可趁。
Vic Huang說明,2016年發生的DAO遭竊事件就是一例。當時,The DAO創投組織採用了以太坊技術,建立了一個智能合約平臺,要打造出一個分散式自治組織,因此在4月時啟動募資專案,並在短短一個月內就募得超過1.5億美金價值的以太幣。雖然資安專家曾在5月警告其智能合約有漏洞問題,呼籲DAO進行修補,但不久後,駭客仍在6月17日成功攻擊了DAO,盜領了約370萬個以太幣,約等於5,000萬美金,而當天以太幣的市值,也因此下降了四分之一,從21.5美元下跌到15美元。
當年駭客對DAO發動的攻擊,就是重入攻擊(Reentrancy),是藉由Fallback函數的特性,以重複呼叫的方式,反覆地獲取同一智能合約裡的以太幣。Vic Huang舉例,若將DAO視為銀行,並將惡意程式視為領款人,提款人要去銀行取出一千元,銀行一定會先驗證提款人存款是否有足夠的錢,確認後再提供相應款項,並扣除相應金額。但是,重入攻擊鎖定智能合約的漏洞,在金錢轉出但尚未扣款之前,重複不斷提款,也就是在銀行沒有扣款的情況下,重複提領大量金錢。
Vic Huang指出,重入攻擊不僅盜取金額高,直到今年仍持續發生,近2年興起的DeFi服務,也成為駭客攻擊目標之一。
熱門新聞
2024-10-05
2024-10-07
2024-10-07
2024-10-07
2024-10-07
2024-10-07
2024-10-07