TMT观察网_独特视角观察TMT行业

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

區塊鏈大本營 2018-06-27 03:35
分享到:
導讀

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

最近,我們在審計客戶合約時發現:EOS代幣合約存在整型溢出等問題,部分合約實現不夠嚴謹。

具體包括:

整型溢出錯誤;

權限檢查不嚴謹;

API函數的不規范使用;

常規代碼錯誤。

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

讓我們直奔主題。

問題出在EOS的代幣合約

這次漏洞的主要原因,在于EOS的代幣合約有不嚴謹之處,主要體現在以下4個方面:

1.  整型溢出錯誤

使用自己的數據結構描述代幣,對代幣數值進行算數運算時未進行安全檢查。在誤操作時容易產生整型溢出錯誤,可能導致代幣量歸零甚至變成負數的嚴重后果!

image.png

2. 權限檢查不嚴謹

權限檢查不嚴謹,造成邏輯漏洞。部分代幣合約設置了「凍結賬戶和代幣」的功能,然而用戶們卻將檢查 「凍結」 的代碼放在transfer(轉賬)函數中,從而導致執行issue(發行代幣)的時候不受「凍結」狀態影響,可以任意增發代幣。參考以下代碼。

image.png

3. API函數的不規范使用

這里指的是開發者要注意EOS API函數的參數類型。

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

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

image.png

4. 常見代碼錯誤

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

image.png

不要慌!關鍵時刻拿走這三根救命稻草

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

第一,合約中使用官方提供的asset數據結構描述代幣,對代幣的算數運算同樣利用asset完成。參考以下代碼:

image.png

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

image.png

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

image.png

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

此漏洞應引起開發者重視

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

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

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

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

1.TMT觀察網遵循行業規范,任何轉載的稿件都會明確標注作者和來源;
2.TMT觀察網的原創文章,請轉載時務必注明文章作者和"來源:TMT觀察網",不尊重原創的行為TMT觀察網或將追究責任;
3.作者投稿可能會經TMT觀察網編輯修改或補充。


專題報道

主站蜘蛛池模板: 智慧消防-消防物联网系统云平台| Pos机办理_个人商户免费POS机申请-拉卡拉办理网 | 耐高温硅酸铝板-硅酸铝棉保温施工|亿欧建设工程 | 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 新疆系统集成_新疆系统集成公司_系统集成项目-新疆利成科技 | 棉柔巾代加工_洗脸巾oem_一次性毛巾_浴巾生产厂家-杭州禾壹卫品科技有限公司 | 焊接减速机箱体,减速机箱体加工-淄博博山泽坤机械厂 | 分子蒸馏设备(短程分子蒸馏装置)_上海达丰仪器 | 台湾阳明固态继电器-奥托尼克斯光电传感器-接近开关-温控器-光纤传感器-编码器一级代理商江苏用之宜电气 | 上海小程序开发-上海小程序制作公司-上海网站建设-公众号开发运营-软件外包公司-咏熠科技 | 定制/定做冲锋衣厂家/公司-订做/订制冲锋衣价格/费用-北京圣达信 | 讲师宝经纪-专业培训机构师资供应商_培训机构找讲师、培训师、讲师经纪就上讲师宝经纪 | 赛尔特智能移动阳光房-阳光房厂家-赛尔特建筑科技(广东)有限公司 | 泰州物流公司_泰州货运公司_泰州物流专线-东鑫物流公司 | 石家庄律师_石家庄刑事辩护律师_石家庄取保候审-河北万垚律师事务所 | 洁净实验室工程-成都手术室净化-无尘车间装修-四川华锐净化公司-洁净室专业厂家 | 东亚液氮罐-液氮生物容器-乐山市东亚机电工贸有限公司 | 沥青车辙成型机-车托式混凝土取芯机-混凝土塑料试模|鑫高仪器 | 明渠式紫外线杀菌器-紫外线消毒器厂家-定州市优威环保 | 洛阳防爆合格证办理-洛阳防爆认证机构-洛阳申请国家防爆合格证-洛阳本安防爆认证代办-洛阳沪南抚防爆电气技术服务有限公司 | 首页|成都尚玖保洁_家政保洁_开荒保洁_成都保洁 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | SDI车窗夹力测试仪-KEMKRAFT方向盘测试仪-上海爱泽工业设备有限公司 | [品牌官网]贵州遵义双宁口腔连锁_贵州遵义牙科医院哪家好_种植牙_牙齿矫正_原华美口腔 | 石家庄网站建设|石家庄网站制作|石家庄小程序开发|石家庄微信开发|网站建设公司|网站制作公司|微信小程序开发|手机APP开发|软件开发 | 环氧铁红防锈漆_环氧漆_无溶剂环氧涂料_环氧防腐漆-华川涂料 | 沈阳庭院景观设计_私家花园_别墅庭院设计_阳台楼顶花园设计施工公司-【沈阳现代时园艺景观工程有限公司】 | 14米地磅厂家价价格,150吨地磅厂家价格-百科 | 恒温恒湿试验箱厂家-高低温试验箱维修价格_东莞环仪仪器_东莞环仪仪器 | 西子馋火锅鸡加盟-太原市龙城酉鼎餐饮管理有限公司 | 超声波_清洗机_超声波清洗机专业生产厂家-深圳市好顺超声设备有限公司 | 依维柯自动挡房车,自行式国产改装房车,小型房车价格,中国十大房车品牌_南京拓锐斯特房车 - 南京拓锐斯特房车 | 广州办公室设计,办公室装修,写字楼设计,办公室装修公司_德科 | 螺纹三通快插接头-弯通快插接头-宁波舜驰气动科技有限公司 | 带式过滤机厂家_价格_型号规格参数-江西核威环保科技有限公司 | 液压扳手-高品质液压扳手供应商 - 液压扳手, 液压扳手供应商, 德国进口液压拉马 | 江苏全风,高压风机,全风环保风机,全风环形高压风机,防爆高压风机厂家-江苏全风环保科技有限公司(官网) | 杭州月嫂技术培训服务公司-催乳师培训中心报名费用-产后康复师培训机构-杭州优贝姆健康管理有限公司 | 100_150_200_250_300_350_400公斤压力空气压缩机-舰艇航天配套厂家 | 智慧物联网行业一站式解决方案提供商-北京东成基业 | 产业规划_产业园区规划-产业投资选址及规划招商托管一体化服务商-中机院产业园区规划网 |