起碰97在线视频国产,日本乱中文字幕在线系列,亚洲国产精品亚洲,亚洲 激情 图片 小说 伦

  • <acronym id="z70ry"></acronym>
  • <span id="z70ry"><acronym id="z70ry"><dl id="z70ry"></dl></acronym></span>

      您當(dāng)前的位置 :首頁(yè) > 區(qū)塊鏈快訊  正文
      關(guān)鍵詞:

      以太坊再爆高危漏洞!黑客增發(fā)ATN 1100萬(wàn)枚token事件始末

      深圳信息港     www.thesurfingworld.com  

      以太坊再爆高危漏洞!黑客增發(fā)ATN 1100萬(wàn)枚token事件始末

      5月11日,ATN Token遭受惡意攻擊,攻擊者利用DSAuth庫(kù)與ERC223搭配使用具有的混合漏洞,竊取了ATN的所有權(quán)。之后,攻擊者進(jìn)行了竊取代幣操作。

      這是一起嚴(yán)重的黑客攻擊事件,可以導(dǎo)致Token的供應(yīng)總量發(fā)生變化。

      歸根結(jié)底,黑客這次又是沖著智能合約的編寫(xiě)漏洞來(lái)的。我們今天就來(lái)給大家從技術(shù)上揭底這次事件,并透過(guò)這次事件,奉上實(shí)用的合約編寫(xiě)建議。在此鳴謝成都鏈安科技CEO楊霞提供的獨(dú)家資料。

      事情發(fā)生在5月中旬,ATN技術(shù)人員發(fā)現(xiàn)Token合約由于存在漏洞受到攻擊。不過(guò)ATN基金會(huì)隨后透露,將銷(xiāo)毀1100萬(wàn)個(gè)ATN,并恢復(fù)ATN總量,同時(shí)將在主鏈上線映射時(shí)對(duì)黑客地址內(nèi)的資產(chǎn)予以剔除,確保原固定總量不變。

      以下是事件還原。

      事件回顧

      2018年5月11日中午,ATN技術(shù)人員收到異常監(jiān)控報(bào)告,顯示ATN Token供應(yīng)量出現(xiàn)異常,迅速介入后發(fā)現(xiàn)Token合約由于存在漏洞受到攻擊。以下是黑客的攻擊操作以及利用合約漏洞的全過(guò)程。

      攻擊

      這次攻擊主要分為4步。首先,黑客利用ERC223方法漏洞,獲得提權(quán),將自己的地址設(shè)為owner:

       

      第二,黑客在獲得owner權(quán)限后,發(fā)行1100w ATN到自己的攻擊主地址:

       

      第三,黑客將owner設(shè)置恢復(fù),企圖隱藏蹤跡:

       

      最后,黑客從主地址將偷來(lái)的黑幣分散到14個(gè)地址中:

       

       

      利用合約漏洞

      ATN Token合約采用的是在傳統(tǒng)ERC20Token合約基礎(chǔ)上的擴(kuò)展版本ERC223 ,并在其中使用了dapphub/ds-auth庫(kù)。采用這樣的設(shè)計(jì)是為了實(shí)現(xiàn)以下幾個(gè)能力:

      天然支持Token互換協(xié)議,即ERC20Token與ERC20Token之間的直接互換。本質(zhì)上是發(fā)送ATN時(shí),通過(guò)回調(diào)函數(shù)執(zhí)行額外指令,比如發(fā)回其他Token。

      可擴(kuò)展的、結(jié)構(gòu)化的權(quán)限控制能力。

      Token合約可升級(jí),在出現(xiàn)意外狀況時(shí)可進(jìn)行治理。

      單獨(dú)使用ERC223或者ds-auth庫(kù)時(shí),

      并沒(méi)有什么問(wèn)題,但是兩者結(jié)合時(shí),

      黑客利用了回調(diào)函數(shù)回調(diào)了setOwner方法,

      從而獲得高級(jí)權(quán)限。

      ERC223轉(zhuǎn)賬代  碼如下:

       

      當(dāng)黑客轉(zhuǎn)賬時(shí)在方法中輸入以下參數(shù):

       

      from: 0x2eca25e9e19b31633db106341a1ba78accba7d0f——黑客地址;

      to: 0x461733c17b0755ca5649b6db08b3e213fcf22546——ATN合約地址;

      amount: 0

      data: 0x0

      custom_fallback: setOwner(address)

      該交易執(zhí)行的時(shí)候,

      receiver會(huì)被_to(ATN合約地址)賦值,

      ATN 合約會(huì)調(diào)用_custom_fallback

      即DSAuth中的setOwner(adddress)方法,

      而此時(shí)的msg.sender變?yōu)锳TN合約地址,

      owner_參數(shù)為_(kāi)from(黑客地址)

      ds-auth庫(kù)中setOwner代碼如下:

       

      此時(shí)setOwner會(huì)先驗(yàn)證auth合法性的,而msg.sender就是ATN的合約地址。

      setOwner的modifier auth代碼如下:

       

      通過(guò)利用這個(gè)ERC223方法與DS-AUTH庫(kù)的混合漏洞,黑客將ATN Token合約的owner變更為自己控制的地址。獲取owner權(quán)限后,黑客發(fā)起另外一筆交易對(duì)ATN合約進(jìn)行攻擊,調(diào)用mint方法給另外一個(gè)地址發(fā)行1100w ATN。

      最后,黑客調(diào)用setOwner方法將權(quán)限復(fù)原 。

      PS. 截至發(fā)稿前,ATN官方已聲稱:黑客將黑幣分散在14個(gè)不同的新地址中,而這些地址中并沒(méi)有ETH,暫時(shí)不存在立即轉(zhuǎn)賬到交易所銷(xiāo)贓的風(fēng)險(xiǎn)。

      漏洞是怎么造成的?

      這次事件主要是利用了開(kāi)發(fā)者對(duì)以太坊底層函數(shù)call、callcode、delegatecall的不當(dāng)使用造成的。

      call、callcode、delegatecall是以太坊智能合約編寫(xiě)語(yǔ)言Solidity提供的底層函數(shù),用來(lái)與外部合約或者庫(kù)進(jìn)行交互。不當(dāng)?shù)氖褂脮?huì)造成很?chē)?yán)重的后果。

      例如,以下情況:

       

      上述例子中,call函數(shù)的調(diào)用地址(如上圖中的_spender參數(shù))是可以由用戶控制的,攻擊者可以將其設(shè)置為合約自身的地址,同時(shí)call函數(shù)調(diào)用的參數(shù)(如上圖中的_extraData參數(shù))也是可以由用戶任意輸入的,攻擊者可以調(diào)用任意函數(shù)。

      攻擊者利用上述操作,偽造成合約賬戶進(jìn)行惡意操作,可能造成如下影響:

      繞過(guò)權(quán)限檢查,調(diào)用敏感函數(shù),例如setOwer;

      竊取合約地址持有的代幣;

      偽裝成合約地址與其他合約進(jìn)行交互;

      因此,在編寫(xiě)合約時(shí),此類函數(shù)使用時(shí)需要對(duì)調(diào)用參數(shù)的安全性進(jìn)行判定,建議謹(jǐn)慎使用。

      怎樣避免此類漏洞

      為了避免此類漏洞,我們提醒開(kāi)發(fā)者應(yīng)注意以下幾點(diǎn)。

      謹(jǐn)慎使用call、delegatecall等底層函數(shù)。此類函數(shù)使用時(shí)需要對(duì)調(diào)用參數(shù)進(jìn)行限定,應(yīng)對(duì)用戶輸入的call調(diào)用發(fā)起地址、調(diào)用參數(shù)做出嚴(yán)格限定。比如,call調(diào)用的地址不能是合約自身的賬戶地址,call調(diào)用的參數(shù)由合約預(yù)先限定方法選擇器字符串,避免直接注入bytes可能導(dǎo)致的惡意call調(diào)用。

      對(duì)于一些敏感函數(shù),不要將合約自身的賬戶地址作為可信地址。

      準(zhǔn)備修復(fù)措施,增加Guard合約禁止回調(diào)函數(shù)向ATN合約本身回調(diào)。

      增加黑名單合約,隨時(shí)凍結(jié)黑客地址。

      合約無(wú)小事

      綜合上文的分析,我們認(rèn)為,call函數(shù)的使用一定要小心,在智能合約開(kāi)發(fā)中盡量避免call函數(shù)的使用,如果使用需要對(duì)其相關(guān)參數(shù)進(jìn)行嚴(yán)格的限定。另一方面,智能合約在部署之前應(yīng)進(jìn)行安全審計(jì),比如代碼的形式化驗(yàn)證等。

      合約的安全審計(jì),僅依靠開(kāi)發(fā)者的經(jīng)驗(yàn)和能力總有隱患,過(guò)去業(yè)內(nèi)的幾次合約漏洞事件也說(shuō)明了這個(gè)問(wèn)題,開(kāi)發(fā)者務(wù)必要引起重視。

      關(guān)于作者:

      楊霞,成都鏈安科技CEO,創(chuàng)始人。電子科技大學(xué)副教授,最早研究區(qū)塊鏈形式化驗(yàn)證的專家。一直為航空航天、軍事領(lǐng)域提供形式化驗(yàn)證服務(wù)。主持國(guó)家核高基、裝發(fā)重大軟件課題等近10項(xiàng)國(guó)家課題。CC國(guó)際安全標(biāo)準(zhǔn)成員、CCF區(qū)塊鏈專委會(huì)委員。發(fā)表學(xué)術(shù)論文30多篇,申請(qǐng)20多項(xiàng)專利。

      原文網(wǎng)址:http://www.thesurfingworld.com/html/44704.html
      信息首發(fā)以太坊再爆高危漏洞!黑客增發(fā)ATN 1100萬(wàn)枚token事件始末
      以太坊   token
      請(qǐng)聯(lián)系網(wǎng)站管理員

      ●【往下看,下一頁(yè)更精彩】●投稿或合作、請(qǐng)聯(lián)系QQ:22559528

      深圳學(xué)車(chē)考駕照3個(gè)月包拿證!

        深圳學(xué)車(chē)考駕照3個(gè)月包拿證!

        芒果學(xué)車(chē)(綜安駕校)鄭重承諾:不做虛假宣傳!誠(chéng)信經(jīng)營(yíng),服務(wù)至上,規(guī)...

      王寶強(qiáng)老婆馬蓉的胸 馬蓉是什么杯罩

        王寶強(qiáng)老婆馬蓉的胸 馬蓉是什么杯罩的

        照片中,馬蓉穿著波點(diǎn)低胸?zé)o袖長(zhǎng)裙,頭上戴著鮮紅色花朵,手拿棒...

      張?bào)阌耆梭w藝術(shù)寫(xiě)真 張?bào)阌甏蟪叨热?/a>

        張?bào)阌耆梭w藝術(shù)寫(xiě)真 張?bào)阌甏蟪叨热梭w藝術(shù)

        張?bào)阌辏?986年6月6日-),MET-ART國(guó)產(chǎn)人體模特,出生于中國(guó)東北的黑...

      劉鑾雄為什么塞關(guān)之琳乒乓球,關(guān)之琳

        劉鑾雄為什么塞關(guān)之琳乒乓球,關(guān)之琳被某富商塞高爾夫球真相圖片

        當(dāng)年變態(tài)富豪劉鑾雄塞關(guān)之琳乒乓球的事件一度轟動(dòng)香港娛樂(lè)...

      女大學(xué)生稱還款被“逾期” 遭“裸照

        女大學(xué)生稱還款被“逾期” 遭“裸照”要挾

        我給你幾張圖,把你腦袋移上去,你選一下吧。如果沒(méi)有,那就別怪...

      關(guān)于我們 | 網(wǎng)站地圖 | 免責(zé)聲明 | 招賢納士 | 廣告服務(wù) | 網(wǎng)站合作 | 幫助中心 | 投稿指南 | 聯(lián)系我們 | 活動(dòng)QQ群 | 粵ICP備15086532號(hào)-1
      深圳信息港 深圳企業(yè)信息 深圳新聞 深圳百姓網(wǎng)民最喜愛(ài)的深圳都市網(wǎng)絡(luò)媒體!Copyright © 2008- All Rights Reserved
      合作QQ:22559528 投稿QQ22559528 深圳同城活動(dòng)群:284059377深圳吃喝玩樂(lè)群:284059377