ERC223智慧合約ATN幣出現owner許可權竊取漏洞

FLy_鵬程萬里發表於2018-07-15

漏洞評估


安全等級:高

影響合約:atn-contracts

影響方面:導致 ATN Token 總供應量發生變化

事件經過:2018.5.11 上午 11:46,ATN 技術人員收到異常監控警示,顯示 ATN Token 供應量出現變化,迅速介入後確定 Token 合約受到黑客攻擊。ATN 技術團隊極速反應,定位到 ERC223 標準推薦合約實現與 ds-auth 庫同時使用時可能發生非常罕見的許可權漏洞,並迅速堵上此漏洞、凍結黑客增發的 Token 及實施對黑客的追蹤;同時 ATN 與第三方專業區塊鏈安全機構慢霧科技深度合作,聯合對 ATN 合約進行再次審計。審計過程中,慢霧安全團隊對 ATN 技術團 隊的快速反應和修復合約表現的高效表示認可,修復後的合約也成功通過了慢霧嚴謹的安全審計,合約安全威脅已解除。


漏洞分析和攻擊過程


為了讓 ATN 接收合約具備轉賬後處理功能,ATN Token 合約採用的是相容 ERC20 Token 標準的擴充套件標準 ERC223,並在其中使用了 dapphub/ds-auth 庫。單獨使用 ERC223 或者 ds-auth 庫時,並沒有什麼問題,但是兩者結合時,黑客利用自定義回撥函式回撥 setOwner 方法,從而獲得高階許可權。通過利用這個 ERC223 方法與 ds-auth 庫的混合漏洞,黑客將 ATN Token 合約的 owner 變更為自己控制的地址。獲取 owner 許可權後,黑客發起另外一筆交易對 ATN 合約進行攻擊,呼叫 mint 方法給另外一個地址進行 Token 的發行。最後,黑客呼叫 setOwner 方法將許可權復原。


抵禦攻擊


經過追蹤,發現黑客將增發的 ATN Token 分散在 14 個不同的新地址中,而這些地址中並沒有 ETH,暫時不存在立即轉賬到交易所銷贓的風險。而 ATN 技術團隊有能力採取技術手段立即凍結黑客的黑幣,恢復供應量的變化,所以,重點在如何追蹤到黑客,於是 ATN 技術團隊採用如下應對:


  1. 準備修復措施,增加 Guard 合約通過禁止向 ATN 合約地址傳送 ATN 進而禁止自定義回撥函式向 ATN 合約本身回撥以修復此次攻擊漏洞;增加黑名單合約,隨時凍結黑客地址;

  2. 監控黑客地址的 ETH、向交易所傳送的充值交易,以獲得進一步的追責證據;

  3. 獲得證據後,立即啟動修復流程,將黑客相關地址加入黑名單,禁止其轉移 ATN Token;

  4. ATN 基金會銷燬等量 ATN Token 以恢復供給總量,並在 ATN 主鏈上線時予以修正。

最終監控到黑客向某交易所充值 1000 個 ATN 後,ATN 團隊即刻部署 Guard 安全修復合約,對黑客相關地址予以禁止轉賬處理,並獲得追責證據:


https://etherscan.io/tx/0x18bd80b810f6a6b6d397901d677657d39f8471069bcb7cfbf490c1946dfd617d

 

這意味著我們將有可能獲得黑客的 KYC 資訊,ATN 團隊可在交易所的配合下向黑客進行追蹤,並保留相應追責的權利。


同時 ATN 基金會銷燬 1100 萬個 ATN,恢復 ATN 總量,並將在主鏈上線對映時對黑客地址內的資產予以剔除,確保原固定總量不變。


基於 ERC223 的 ATN Token 特性


  1. ERC223 是對 ERC20 的改進、相容的同時,提供更好的 token 功能,使得接收合約具備轉賬後處理功能。瞭解更多可訪問:

    https://github.com/ethereum/EIPs/issues/223

    且支援跨鏈,可用於 AI Market 做跨鏈 Token 支付;

  2. 因為 ATN Token 的設計初衷包含作為轉賬燃料來使用,使用者或 DAPP 使用 ATN 進行支付,ATN 代幣合約要有能力在轉賬完成後觸發其他業務邏輯;

  3. 另外 ERC20 代幣無法用於釋出眾籌合約,而基於 ERC223 的 ATN 可以,可以參考 ATN 的 Swap 合約:

    https://github.com/ATNIO/atn-contracts/blob/master/src/AGT2ATNSwap.sol


總結


合約無小事,由於 ATN 合約設計增加多項功能及治理機制,增加了審計的難度和複雜度,在釋出到鏈上之前已進行幾次內部和外部審計。區塊鏈合約的安全,僅依靠開發者的經驗和能力並非萬無一 失。過去業內的幾次合約漏洞事件也說明了這個問題,如著名的 TheDAO 被盜、近來的 EDU、BAIC、SMT 等 ERC20 漏洞攻擊。


而 ATN 技術團隊依靠豐富的合約部署經驗、夯實的技術力量、極速反應的抵禦策略,幾乎零損失的化解了這次黑客攻擊,守護了社群的整體利益,並保留對黑客追責的權利。


這次 ATN 成功的對以太坊合約漏洞的攻擊抵禦,也為以太坊社群其他使用 ERC223 標準的專案成員提供了漏洞 review 與修復案例,為整個以太坊生態發展貢獻了積極的力量。


在 ATN 主鏈上線前,ATN 技術團隊將保持對合約與 Token 狀態的實時監控,並與慢霧科技等多家安全審計機構合作,在主鏈上線前開原始碼,確保未來 ATN 公有鏈生態的開源與安全。


ATN 與慢霧達成戰略合作


慢霧科技(SlowMist)是一家專注區塊鏈生態安全的公司,其創始團隊擁有豐富的網路安全攻防實戰經驗。該團隊相關成員曾為谷歌、 微軟、W3C、中國公安部、騰訊、阿里巴巴及百度等公司和政府機構輸出過安全能力,其核心能力包括安全審計、防禦部署和地下黑客風向標追蹤和防禦等。


在修復完漏洞後,ATN 團隊立即聯絡到慢霧,反饋並提供《ATN 抵禦黑客攻擊的報告》( https://atn.io/resource/aareport.pdf ),ATN 技術團隊全力配合慢霧對 ATN 合約進行嚴格的、全方位的安全審計。最終,慢霧給出了積極的安全審計結果,併發布了 ATN 基於 ERC223 的合約安全審計報告。


ATN 已啟動主鏈加速計劃,並將與慢霧等安全機構在合約、節點安全標準及執行環境和風險控制等方面開展長期的戰略合作。雙方合作不僅僅為不久後的 ATN 主鏈上線保駕護航,更將為長遠的區塊鏈生態安全的持續建設添磚加瓦。


相關文章