999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

ERC20智能合約整數溢出系列漏洞披露

2018-08-27 12:40:26陳力波殷婷婷倪遠東
網絡安全與數據管理 2018年8期
關鍵詞:智能

陳力波,殷婷婷,倪遠東,張 超

(清華-360企業安全聯合研究中心(籌),北京 100015)

0 引言

智能合約作為區塊鏈2.0的代表技術,適應于區塊鏈去中心化、分布式的特點,具有獨立運行、不可篡改的優良特性,可用于實現包含金融工具在內的各類分布式應用。開發者可以自行定義交易邏輯并開發代碼發布到鏈上,合約代碼在礦工節點的虛擬機環境(如EVM)中執行。合約交易被打包進區塊后,鏈上節點執行相同代碼,從而同步改變鏈上數據狀態。故合約的多方參與者無需建立信任,也無法相互欺騙。

與傳統程序一樣,智能合約無法避免地存在安全漏洞。而與傳統程序不一樣的是,合約運行在開放的區塊鏈網絡當中,可以被任意調用,而且合約的執行具有“不可更改”的效果,導致合約的漏洞被利用之后危害更大[6]。前面提到的BEC等合約中存在的整數溢出漏洞便是一個典型的例子,攻擊者對漏洞的利用造成了數額驚人的損失。

整數溢出是一種常見的高危漏洞,曾引發許多嚴重事故。1996年阿麗亞娜5型運載火箭在發射37 s后解體并爆炸就是由于整數溢造成的[7]。整數溢出的原理是:計算機中整數變量有上下界,如果在算術運算中出現越界,即超出整數類型的最大表示范圍,數字便會如表盤上的時針從12到1一般,由一個極大值變為一個極小值或直接歸零。此類越界的情形在傳統的軟件程序中很常見,但是否存在安全隱患取決于程序上下文,部分溢出是良性的(如TCP序號等),甚至是故意引入的(例如用作hash運算等)。整數溢出漏洞檢測和校驗是有挑戰性的,程序員極容易犯錯,而自動化檢測方法最大難點在于判斷候選溢出是否真正導致了危害,以免造成大量的誤報。

1 自動化挖掘

“清華-360企業安全聯合研究中心” ChainTrust團隊成員充分利用多年軟件漏洞挖掘的經驗,針對智能合約開發了自動化檢測工具,可以高效挖掘高危整數溢出漏洞。檢測工具通過準確構建整數溢出點的上下文語義,采用符號執行和污點分析等技術,有效區分了無害溢出和有害溢出,能夠顯著降低漏洞的誤報率和漏報率。

截止到目前,團隊針對Etherscan上排名前470位的代幣合約進行了檢測,除去未提供源碼、沒有完整爬取源碼或耗時過長的合約,最終完整分析了390份合約。在這些被分析的合約中,團隊總共發現25個智能合約存在整數溢出安全問題,申請獲得了5個CVE編號,主要包含下述6類新型危害。

團隊成員在“全球EOS開發者大會”上對部分漏洞進行了首次披露。本報告將進行詳細披露,旨在推進社區的安全健康發展。

2 新型漏洞詳情

2.1 underSell:高賣低收(CVE-2018-11811)

管理員通過修改合約中的參數來制造溢出漏洞,導致用戶提幣轉出token之后,卻收不到ETH(或收到極少量ETH),造成用戶經濟損失。

漏洞實例:合約Internet Node Token (INT)。

漏洞所在位置:175行,如圖1所示。

圖1 高賣低收漏洞

漏洞攻擊效果:用戶提幣之后,無法得到對應數額的ETH。

漏洞原理:sellPrice被修改為精心構造的大數后,可導致amount * sellPrice的結果大于整數變量(uint256)最大值,發生整數溢出,從而變為一個極小值甚至歸零。該值在程序語義中是用于計算用戶提幣應得的ETH數量,并在175行進行了校驗,但該值被溢出變為極小值之后可以逃逸175行的校驗,并導致用戶售出token后只能拿到少量的(甚至沒有)ETH。

2.2 ownerUnderflow:下溢增持(CVE-2018-11687)

管理員在特定條件下,通過調用合約中有漏洞的發幣函數制造下溢,從而實現對自身賬戶余額的任意增加。

漏洞實例:合約Bitcoin Red(BTCR)

漏洞所在位置:41行,如圖2所示。

圖2 下溢增持漏洞

漏洞攻擊效果:管理員執行了一個正常向某個地址進行發幣的操作,實際已經暗中將自身賬戶的余額修改為了一個極大的數。

漏洞原理:distributeBTR()函數的本意是管理員給指定地址發放一定數額的token,并從自身賬戶減少對應的token數量。減少管理員賬戶余額的操作為balances[owner] -= 2000 * 10**8,運算的結果將被存到balances[owner]中,是一個無符號整數類型。當管理員余額本身少于2000 * 10**8時,減法計算結果為負值,解釋為無符號整數即一個極大值。

2.3 mintAny:隨意鑄幣(CVE-2018-11812)

管理員調用鑄幣函數給某個地址增加token時,利用溢出漏洞可以突破該函數只能增加token的限制,實際減少該地址的token數量,從而實現對任一賬戶余額的任意篡改(增加或減少)。在檢測中,有多達18個合約存在類似安全問題。

漏洞實例:合約PolyAi (AI)

漏洞所在位置:132行,如圖3所示。

圖3 隨意鑄幣漏洞

漏洞攻擊效果:管理員可以繞過合約限制,任意篡改所有地址的token余額。

漏洞原理:攻擊者通過構造一個極大的mintedAmount,使得balanceOf[target] + mintedAmount發生整數溢出,計算結果變為一個極小值。

2.4 overMint:超額鑄幣(CVE-2018-11809)

管理員通過構造惡意參數,可以繞過程序中規定的token發行上限,實現超額鑄幣。合約Playkey (PKT)存在此類漏洞,導致合約中的鑄幣上限形同虛設,從而發行任意多的token。此外,還發現Nexxus (NXX)、Fujinto (NTO)兩個合約存在類似漏洞,這兩個合約沒有鑄幣上限限制,但同樣的手段,可以溢出合約中一個用于記錄已發幣總量(totalSupply)的變量值,使其與市場中實際流通的總幣數不一致。

漏洞實例:合約Playkey (PKT)

漏洞所在位置:237行,如圖4所示。

圖4 超額鑄幣漏洞

漏洞攻擊效果:管理員可以篡改已發幣總量(totalSupply)為任意值,并繞過合約中的鑄幣上限超額發行token。

漏洞原理:_value在函數調用時被設置為精心構造的極大值,使得totalSupply + _value計算結果溢出后小于tokenLimit,從而輕易繞過237行的鑄幣上限檢測。

2.5 allocateAny:超額定向分配(CVE-2018-11810)

管理員通過制造溢出來繞過合約中對單地址發幣的最大上限,可以對指定地址分配超額的token,使得對單地址的發布上限無效。

漏洞實例:合約LGO (LGO)

漏洞所在位置:286行,如圖5所示。

圖5 超額定向分配漏洞

漏洞攻擊效果:管理員繞過合約中規定的單地址發幣上限,給指定地址分配超額的token。

漏洞原理:一個極大的_amount可以使得算數加法運算holdersAllocatedAmount + _amount發生整數溢出,變為一個極小值,從而繞過286行的檢測。

2.6 overBuy:超額購幣(CVE-2018-11809)

買家如果擁有足夠多的ETH,可以通過發送大量token制造溢出,從而繞過ICO發幣上限,達到超額購幣。

漏洞實例:合約EthLend (LEND)

漏洞所在位置:236行,如圖6所示。

圖6 超額購幣漏洞

漏洞攻擊效果:調用者繞過合約中規定ICO的token容量上限,獲得了超額購幣。

漏洞原理:一個極大的_newTokens可以使得算數加法運算totalSoldTokens + newTokens發生整數溢出,變為一個極小值,從而繞過236行的檢測。

3 結論

智能合約之所以“智能”,是由于合約代碼一旦上鏈,其執行效果完全由可見且不可篡改的代碼來決定,而不用依賴于對任何參與方的信任。然而,智能合約并沒有預期的“智能”,存在相當多的安全風險,尤其是管理員權限下,可能導致諸多嚴重的安全問題。僅僅通過整數溢出這一常見漏洞類型,管理員便能夠任意篡改所有賬戶余額,惡意超額,甚至無上限鑄幣,背離合約白皮書的約定,這樣的合約無法保證參與多方的公平性,更談不上智能。而管理員利用整數溢出進行作惡早已有先例,2018年2月初,基于以太坊的Monero Gold(XMRG) Token在交易所的價格先猛漲787%,后迅速暴跌至崩盤,造成大量用戶經濟損失[8],其背后就是管理團隊利用預留的整數溢出漏洞進行超額鑄幣,并在交易所拋售造成惡性通貨膨脹,最后價值幾乎歸零[9]。在區塊鏈上運行的智能合約,本意是利用區塊鏈不可篡改的特性來構建可信的執行環境,然而安全漏洞的存在就像一個個隱藏的定時炸彈,對智能合約的可信任基礎帶來了巨大的挑戰。

猜你喜歡
智能
智能與自主
讓紙變得智能
一種智能微耕機的研發
智能制造 反思與期望
智能前沿
文苑(2018年23期)2018-12-14 01:06:06
智能前沿
文苑(2018年19期)2018-11-09 01:30:14
智能前沿
文苑(2018年17期)2018-11-09 01:29:26
智能前沿
文苑(2018年21期)2018-11-09 01:22:32
智能制造·AI未來
商周刊(2018年18期)2018-09-21 09:14:46
爭渡智能石化
能源(2018年4期)2018-05-19 01:53:44
主站蜘蛛池模板: аⅴ资源中文在线天堂| 国产成人精品男人的天堂下载| 国产午夜福利亚洲第一| 尤物特级无码毛片免费| 亚洲精品制服丝袜二区| 久久99国产综合精品女同| 国产色爱av资源综合区| 国产精品亚洲专区一区| 久久亚洲天堂| 中文字幕久久波多野结衣| 国产在线91在线电影| 91精品小视频| 日韩黄色精品| 国产精品久久久久无码网站| 波多野结衣在线se| 国产精品久久久久久久久| av午夜福利一片免费看| 日韩精品久久久久久久电影蜜臀| 欧美日韩国产在线播放| 国产中文在线亚洲精品官网| 99这里只有精品免费视频| 国产成人精品免费av| 黄色网在线| 99视频精品全国免费品| 亚洲日本中文字幕乱码中文| 99热这里只有精品在线观看| 亚洲三级色| 亚洲人妖在线| 亚洲综合精品第一页| 久久久久亚洲AV成人网站软件| 亚洲成人77777| 一级香蕉视频在线观看| 漂亮人妻被中出中文字幕久久| 免费国产好深啊好涨好硬视频| 一本大道香蕉久中文在线播放 | 国产精品99久久久| 五月婷婷综合在线视频| 91综合色区亚洲熟妇p| 91精品国产丝袜| 婷婷丁香色| 2021最新国产精品网站| 国产女人18毛片水真多1| 一级全黄毛片| 97精品伊人久久大香线蕉| 欧美a网站| 国产精品55夜色66夜色| 欧美三级不卡在线观看视频| 天天摸夜夜操| 日韩精品一区二区三区大桥未久 | 欧美激情成人网| 亚洲天堂视频在线观看免费| 成人午夜天| 亚洲国产日韩视频观看| 日本成人在线不卡视频| 一级毛片网| 亚洲精品男人天堂| 青青草一区| 国产激爽大片在线播放| 蜜桃视频一区| 精品国产成人三级在线观看| 看你懂的巨臀中文字幕一区二区| 亚洲精品无码久久毛片波多野吉| 白丝美女办公室高潮喷水视频| 亚洲精品欧美重口| 亚洲欧美综合另类图片小说区| 亚洲一区无码在线| 在线a视频免费观看| 亚洲国产高清精品线久久| 香蕉网久久| 亚洲午夜国产片在线观看| 国产成人一区在线播放| 国产情精品嫩草影院88av| 国产精品尤物铁牛tv| 88av在线播放| 亚洲熟女偷拍| 99爱在线| 日韩一区二区三免费高清 | 伊人网址在线| 国产美女在线免费观看| 高h视频在线| h视频在线观看网站| 国产成人久久综合777777麻豆|