麻豆国内精品欧美在线-麻豆国内精品久久久久久-麻豆国产在线观看一区二区-麻豆国产在线观看免费-麻豆国产原创-麻豆国产一区二区在线观看

EOS智能合約被爆整型溢出等漏洞,可致交易歸零!區(qū)塊鏈

區(qū)塊鏈大本營 2018-06-27 03:35
分享到:
導(dǎo)讀

剛緩了幾天,又被發(fā)現(xiàn)了合約上的漏洞——EOS代幣合約存在整型溢出等問題,部分合約實現(xiàn)不夠嚴(yán)謹(jǐn)。這一問題嚴(yán)重時可能會引發(fā)交易所市值歸零,給項目方、Token持有者帶來慘痛且不可挽回的損失。

最近,我們在審計客戶合約時發(fā)現(xiàn):EOS代幣合約存在整型溢出等問題,部分合約實現(xiàn)不夠嚴(yán)謹(jǐn)。

具體包括:

整型溢出錯誤;

權(quán)限檢查不嚴(yán)謹(jǐn);

API函數(shù)的不規(guī)范使用;

常規(guī)代碼錯誤。

為了使開發(fā)者在合約開發(fā)中不掉進坑里,我們接下來就一一對上述問題進行分析。并且給出合理的解決辦法,讓開發(fā)者不至被黑客利用。

讓我們直奔主題。

問題出在EOS的代幣合約

這次漏洞的主要原因,在于EOS的代幣合約有不嚴(yán)謹(jǐn)之處,主要體現(xiàn)在以下4個方面:

1.  整型溢出錯誤

使用自己的數(shù)據(jù)結(jié)構(gòu)描述代幣,對代幣數(shù)值進行算數(shù)運算時未進行安全檢查。在誤操作時容易產(chǎn)生整型溢出錯誤,可能導(dǎo)致代幣量歸零甚至變成負(fù)數(shù)的嚴(yán)重后果!

image.png

2. 權(quán)限檢查不嚴(yán)謹(jǐn)

權(quán)限檢查不嚴(yán)謹(jǐn),造成邏輯漏洞。部分代幣合約設(shè)置了「凍結(jié)賬戶和代幣」的功能,然而用戶們卻將檢查 「凍結(jié)」 的代碼放在transfer(轉(zhuǎn)賬)函數(shù)中,從而導(dǎo)致執(zhí)行issue(發(fā)行代幣)的時候不受「凍結(jié)」?fàn)顟B(tài)影響,可以任意增發(fā)代幣。參考以下代碼。

image.png

3. API函數(shù)的不規(guī)范使用

這里指的是開發(fā)者要注意EOS API函數(shù)的參數(shù)類型。

例如:string_to_symbol(uint8_t , const char *),

第一個參數(shù)傳入的整型變量需要小于256,若使用該API前未對輸入進行檢查,則可能導(dǎo)致整型溢出,從而導(dǎo)致操作了錯誤類型的代幣,帶來嚴(yán)重后果。

image.png

4. 常見代碼錯誤

數(shù)據(jù)庫API使用不嚴(yán)謹(jǐn),如multi_index中提供的get和find。其中g(shù)et會檢查數(shù)據(jù)是否查詢成功,數(shù)據(jù)未找到則斷言退出,而find不會檢查數(shù)據(jù)查詢情況,需要用戶自行判斷,如果缺少判斷直接使用將會導(dǎo)致指針使用問題。

image.png

不要慌!關(guān)鍵時刻拿走這三根救命稻草

既然EOS代幣合約存在不嚴(yán)謹(jǐn)之處,那么作為項目方應(yīng)該如何去防范后期可能造成的風(fēng)險呢?我們給出下面三種建議方法。

第一,合約中使用官方提供的asset數(shù)據(jù)結(jié)構(gòu)描述代幣,對代幣的算數(shù)運算同樣利用asset完成。參考以下代碼:

image.png

第二,在使用multi_index的find函數(shù)時,一定要進行返回值的檢查。

image.png

第三,對所有輸入都通過斷言檢查有效性,調(diào)用API函數(shù)前,檢查參數(shù)類型和大小。

image.png

最后,建議代幣合約參照EOS官方給出的eosio.token示例進行實現(xiàn),避免疏忽而導(dǎo)致的安全檢查不完備。

此漏洞應(yīng)引起開發(fā)者重視

雖然目前EOS代幣合約還沒有上線,但是項目方一定不能掉以輕心,反而應(yīng)該時刻記住BEC這類事件的慘痛教訓(xùn),避免重蹈覆轍,以及整型溢出問題引發(fā)的代幣被盜事件的發(fā)生。

總體而言,我認(rèn)為從目前審計EOS代幣合約所遇到的問題來看,開發(fā)者在合約敏感代碼(如操作代幣數(shù)額)前后,一定要做好參數(shù)限制和權(quán)限檢查,使用EOS API時一定要搞清楚該函數(shù)的輸入限制和返回值形式,同時多多參考官方的示例實現(xiàn)。

另一方面,智能合約安全是整個區(qū)塊鏈行業(yè)的基礎(chǔ)設(shè)施最底層的保障,項目方合約開發(fā)完成后進行安全審計也是很有必要的,從多角度分析合約代碼,找出那些容易忽略的問題,并且做到防患于未然。

合約 檢查 問題 EOS 使用
分享到:

1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會明確標(biāo)注作者和來源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請轉(zhuǎn)載時務(wù)必注明文章作者和"來源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或?qū)⒆肪控?zé)任;
3.作者投稿可能會經(jīng)TMT觀察網(wǎng)編輯修改或補充。


專題報道

主站蜘蛛池模板: 婷婷99视频精品全部在线观看 | 亚洲成色 | 日本高清免费不卡在线 | 国外欧美一区另类中文字幕 | 波多野结衣之高校教师 | 好大好硬好湿好紧h | 男人好大好硬好爽免费视频 | 成人影院在线观看视频 | 嫩草影院永久在线播放 | 日本三级免费观看 | 好逼365 | tobu8中国在线观看免费视频 | 日本男男漫画 | 操美女b | 深夜福利软件 | 日本在线观看免费观看完整版 | 日韩国产成人精品视频人 | 久久久久久免费高清电影 | 亚洲欧美成人综合 | 国产精品女主播大秀在线 | 免费一级毛片完整版在线看 | 操久| 男人的天堂日本 | 色老板免费在线观看 | 俄罗斯大逼 | 秋霞一级成人欧美理论 | 国产精品原创巨作无遮挡 | 国产全部视频 | 日韩视频在线精品视频免费观看 | 亚洲欧美优优色在线影院 | 亚洲第一免费播放区 | 国产三级自拍 | 国产美女久久精品香蕉69 | 91久色 | 成人网免费视频 | 久久影院中文字幕 | 日韩一区二区三 | 九九精品成人免费国产片 | 日本艳鉧动漫1~6完整版在 | 国产精品林美惠子在线观看 | 欧美成人aaaa免费高清 |