技術解析台灣交易所BitoPro駭客攻擊
區塊鏈
12天前
1295

背景


台灣加密貨幣交易所 BitoPro 於台灣時間2019年4月28日上架 Ripple 瑞波幣(XRP)開放交易,並於台灣時間2019年5月1日遭到駭客利用 Partial Payment 特徵進行漏洞攻擊,可能損失約200萬台幣 (根據官方說明)




漏洞在哪?


漏洞來自於 Ripple 支付的特別功能

Ripple 早期推出多種有別於傳統支付 (Payment) 的交易格式,包含非默認路徑支付 (NoDirectRipple)、部分支付 (PartialPayment)、限定匯率支付 (LimitQuality),並採用特定的支付標籤 (Transaction Flag) 作為標記:


螢幕快照 2019-05-12 下午18.29.35 下午.png

https://developers.ripple.com/payment.html#payment-flags






部分支付:容易忽略的危險設計


部分支付的目的主要用於回彈所有目的未知的付款 (Bouncing Payments),有點類似於以太坊智能合約常見的 fallback-revert 功能:


螢幕快照 2019-05-12 下午18.31.03 下午.png



對 Ripple 而言,一般常見的支付交易 (Payment) 格式如下:


螢幕快照 2019-05-12 下午18.37.11 下午.png



上面的 Amount 欄位用來紀錄此筆紀錄總共涉及多少價值。


而特殊的部分交易 (Partial Payment) 格式則會多出一個欄位 delivered_amount,並取代原先 Amount 來紀錄真正涉及的價值。


螢幕快照 2019-05-12 下午18.38.48 下午.png


也就是說,如果交易所或任何機構在接受 Partial Payment 時忘記使用新欄位 delivered_amount,而仍然使用舊的 Amount,就有機會受害…






攻擊發生了


駭客使用部分支付進行攻擊

根據 XRPSCAN 上這筆對 BitoPro 的存入支付,可以看出攻擊者將 Amount 設定在 330,000 XRP (約330萬元台幣),不過實際支付的金額只有右側 Delivered 欄位的 0.003255 XRP (約0.03元台幣),甚至低於此筆支付的手續費 0.005 XRP。


螢幕快照 2019-05-12 下午18.41.14 下午.png

(706E3FEC8F44CECB6E85FBE749AD5BC4C9C50BA75A280DCCD211696BE17F64B4)


若 BitoPro 接受此轉帳並讀取 Amount 作為存入金額,則駭客將憑空製造330萬元台幣,而這筆錢由誰買單?…就將會是交易所自己。





漏洞無人知曉?


2014年Justcoin交易所遭駭

2014年10月8日挪威的 Justcoin 交易所遭到駭客利用部分支付漏洞攻擊。


Stellar 已改善此功能

源自於 Ripple 設計的恆星幣 Stellar 因具有與 Ripple 同樣的部分支付設計,但在觀察到其帶來的實作風險時,已在Justcoin遭駭後三天內改善此功能。


Ripple 持續使用此功能

部分支付是個特徵而不是個錯誤。


螢幕快照 2019-05-12 下午18.42.05 下午.png


只能由官網上看到幾篇提醒使用者的說明:[1][2]






今後如何預防


  • 每天詳讀 Ripple 的特徵公佈欄

  • 加強 KYC 與 Sanity Checks

  • 閱讀大量區塊鏈攻防新聞:XRP Chat, ZyCrypto, SlowMist, 與 BlockThreat

  • 來上課啦plz (作者為大家開課的廣告):https://hahow.in/cr/berkeley


作者為大家開設的 Hahow X UC Berkeley 線上區塊鏈課程:


螢幕快照 2019-05-12 下午18.42.47 下午.png

來啦現在快半價誒:https://hahow.in/cr/berkeley


以上技術解析如有建議,歡迎大家主動指出。

作者對 BitoPro 是100%支持,也希望他們能夠安全平穩的度過這個難關,台灣的區塊鏈生態大家一起加油!:)


(本文由作者授權轉載,部分內容排版有所調整,原文出自作者Medium

Entrepreneur, blockchain researcher, magician, and poet. Github: yhuag, LinkedIn: yaochiehhu
新聞排行
熱門新聞

© blocktimes——專業的區塊鏈媒體平臺