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

以太坊代幣“假充值”漏洞細(xì)節(jié)披露及修復(fù)方案區(qū)塊鏈

張希 2018-07-13 11:55
分享到:
導(dǎo)讀

作為平臺(tái)方,在對(duì)接新上線的代幣合約之前,應(yīng)該做好嚴(yán)格的安全審計(jì),這種安全審計(jì)必須強(qiáng)制代幣合約方執(zhí)行最佳安全實(shí)踐。作為代幣合約方,在編碼上,應(yīng)該嚴(yán)格執(zhí)行最佳安全實(shí)踐,并請(qǐng)第三方職業(yè)安全審計(jì)機(jī)構(gòu)完成嚴(yán)謹(jǐn)完備的安全審計(jì)。

披露時(shí)間線

以太坊代幣“假充值”漏洞影響面非常之廣,影響對(duì)象至少包括:相關(guān)中心化交易所、中心化錢包、代幣合約等。單代幣合約,我們的不完全統(tǒng)計(jì)就有 3619 份存在“假充值”漏洞風(fēng)險(xiǎn),其中不乏知名代幣。相關(guān)項(xiàng)目方應(yīng)盡快自查。由于這不僅僅是一個(gè)漏洞那么簡(jiǎn)單,這已經(jīng)是真實(shí)在發(fā)生的攻擊!出于影響,我們采取了負(fù)責(zé)任的披露過程,這次攻擊事件的披露前后相關(guān)時(shí)間線大致如下:

2018/6/28 慢霧區(qū)情報(bào),USDT “假充值”漏洞攻擊事件披露

2018/7/1 慢霧安全團(tuán)隊(duì)開始分析知名公鏈?zhǔn)欠翊嬖陬愃茊栴}

2018/7/7 慢霧安全團(tuán)隊(duì)捕獲并確認(rèn)以太坊相關(guān)代幣“假充值”漏洞攻擊事件

2018/7/8 慢霧安全團(tuán)隊(duì)分析此次影響可能會(huì)大于 USDT “假充值”漏洞攻擊事件,并迅速通知相關(guān)客戶及慢霧區(qū)伙伴

2018/7/9 慢霧區(qū)對(duì)外發(fā)出第一次預(yù)警

2018/7/10 慢霧安全團(tuán)隊(duì)把細(xì)節(jié)同步給至少 10 家區(qū)塊鏈生態(tài)安全同行

2018/7/11 細(xì)節(jié)報(bào)告正式公開

漏洞細(xì)節(jié)

以太坊代幣交易回執(zhí)中 status 字段是 0x1(true) 還是 0x0(false),取決于交易事務(wù)執(zhí)行過程中是否拋出了異常(比如使用了 require/assert/revert/throw 等機(jī)制)。當(dāng)用戶調(diào)用代幣合約的 transfer 函數(shù)進(jìn)行轉(zhuǎn)賬時(shí),如果 transfer 函數(shù)正常運(yùn)行未拋出異常,該交易的 status 即是 0x1(true)。

image.png

如圖代碼,某些代幣合約的 transfer 函數(shù)對(duì)轉(zhuǎn)賬發(fā)起人(msg.sender)的余額檢查用的是 if 判斷方式,當(dāng) balances[msg.sender] < _value 時(shí)進(jìn)入 else 邏輯部分并 return false,最終沒有拋出異常,我們認(rèn)為僅 if/else 這種溫和的判斷方式在 transfer 這類敏感函數(shù)場(chǎng)景中是一種不嚴(yán)謹(jǐn)?shù)木幋a方式。而大多數(shù)代幣合約的 transfer 函數(shù)會(huì)采用 require/assert 方式,如圖:

image.png

當(dāng)不滿足條件時(shí)會(huì)直接拋出異常,中斷合約后續(xù)指令的執(zhí)行,或者也可以使用 EIP 20 推薦的 if/else revert/throw 函數(shù)組合機(jī)制來顯現(xiàn)拋出異常,如圖:

image.png

我們很難要求所有程序員都能寫出最佳安全實(shí)踐的代碼,這種不嚴(yán)謹(jǐn)?shù)木幋a方式是一種安全缺陷,這種安全缺陷可能會(huì)導(dǎo)致特殊場(chǎng)景下的安全問題。攻擊者可以利用存在該缺陷的代幣合約向中心化交易所、錢包等服務(wù)平臺(tái)發(fā)起充值操作,如果交易所僅判斷如 TxReceipt Status 是 success(即上文提的 status 為 0x1(true) 的情況) 就以為充幣成功,就可能存在“假充值”漏洞。如圖:

image.png

參考示例 TX:

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

修復(fù)方案

除了判斷交易事務(wù) success 之外,還應(yīng)二次判斷充值錢包地址的 balance 是否準(zhǔn)確的增加。其實(shí)這個(gè)二次判斷可以通過 Event 事件日志來進(jìn)行,很多中心化交易所、錢包等服務(wù)平臺(tái)會(huì)通過 Event 事件日志來獲取轉(zhuǎn)賬額度,以此判斷轉(zhuǎn)賬的準(zhǔn)確性。但這里就需要特別注意合約作惡情況,因?yàn)?Event 是可以任意編寫的,不是強(qiáng)制默認(rèn)不可篡改的選項(xiàng):

emit Transfer(from, to, value); // value 等參數(shù)可以任意定義

作為平臺(tái)方,在對(duì)接新上線的代幣合約之前,應(yīng)該做好嚴(yán)格的安全審計(jì),這種安全審計(jì)必須強(qiáng)制代幣合約方執(zhí)行最佳安全實(shí)踐。

作為代幣合約方,在編碼上,應(yīng)該嚴(yán)格執(zhí)行最佳安全實(shí)踐,并請(qǐng)第三方職業(yè)安全審計(jì)機(jī)構(gòu)完成嚴(yán)謹(jǐn)完備的安全審計(jì)。

后記 Q&A

Q:為什么我們采取這種披露方式?

A:本質(zhì)是與攻擊者賽跑,但是這個(gè)生態(tài)太大,我們的力量不可能覆蓋全面,只能盡我們所能去覆蓋,比如我們第一時(shí)間通知了我們的客戶,然后是慢霧區(qū)伙伴的客戶,再然后是關(guān)注這個(gè)生態(tài)的安全同行的客戶,最終不得不披露出細(xì)節(jié)。

Q:為什么說披露的不僅僅是漏洞,而是攻擊?

A:其實(shí),以我們的風(fēng)格,我們一般情況下是不會(huì)單純?nèi)ヌ崧┒矗┒催@東西,對(duì)我們來說太普通,拿漏洞來高調(diào)運(yùn)作不是個(gè)好方式。而攻擊不一樣,攻擊是已經(jīng)發(fā)生的,我們必須與攻擊者賽跑。披露是一門藝術(shù),沒什么是完美的,我們只能盡力做到最好,讓這個(gè)生態(tài)有安全感。

Q:至少 3619 份存在“假充值”漏洞風(fēng)險(xiǎn),這些代幣該怎么辦?

A:很糾結(jié),一般來說,這些代幣最好的方式是重發(fā),然后新舊代幣做好“映射”。因?yàn)檫@類代幣如果不這樣做,會(huì)像個(gè)“定時(shí)炸彈”,你不可能期望所有中心化交易所、中心化錢包等平臺(tái)方都能做好安全對(duì)接,一旦沒做好這個(gè)“假充值”漏洞的判斷,那損失的可是這些平臺(tái)方。而如果平臺(tái)方損失嚴(yán)重,對(duì)整個(gè)市場(chǎng)來說必然也是一種損失。

Q:有哪些知名代幣存在“假充值”漏洞?

A:我們不會(huì)做點(diǎn)名披露的事。

Q:有哪些交易所、錢包遭受過“假充值”漏洞的攻擊?

A:恐怕沒人會(huì)公開提,我們也不會(huì)點(diǎn)名。

Q:這些代幣不重發(fā)是否可以?

A:也許可以,但不完美。不選擇重發(fā)的代幣要么很快是發(fā)布主網(wǎng)就做“映射”的,要么得做好通知所有對(duì)接該代幣的平臺(tái)方的持續(xù)性工作。

Q:為什么慢霧可捕獲到這類攻擊?

A:我們有健壯的威脅情報(bào)網(wǎng)絡(luò),捕獲到異常時(shí),我們默認(rèn)直覺會(huì)認(rèn)為這是一種攻擊。

Q:除了 USDT、以太坊代幣存在“假充值”漏洞風(fēng)險(xiǎn),還有其他什么鏈也存在?

A:暫時(shí)不做披露,但相信我們,“假充值”漏洞已經(jīng)成為區(qū)塊鏈生態(tài)里不可忽視的一種漏洞類型。這是慢霧安全團(tuán)隊(duì)在漏洞與攻擊發(fā)現(xiàn)史上非常重要的一筆。

漏洞 安全 合約 攻擊 判斷
分享到:

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


專題報(bào)道

主站蜘蛛池模板: 磨煤机配件-高铬辊套-高铬衬板-立磨辊套-盐山县宏润电力设备有限公司 | TTCMS自助建站_网站建设_自助建站_免费网站_免费建站_天天向上旗下品牌 | 橡胶接头_橡胶软接头_可曲挠橡胶接头-巩义市创伟机械制造有限公司 | 消泡剂_水处理消泡剂_切削液消泡剂_涂料消泡剂_有机硅消泡剂_广州中万新材料生产厂家 | 航空障碍灯_高中低光强航空障碍灯_民航许可认证航空警示灯厂家-东莞市天翔航天科技有限公司 | 海尔生物医疗四川代理商,海尔低温冰箱四川销售-成都壹科医疗器械有限公司 | 通信天线厂家_室分八木天线_对数周期天线_天线加工厂_林创天线源头厂家 | 欧必特空气能-商用空气能热水工程,空气能热水器,超低温空气源热泵生产厂家-湖南欧必特空气能公司 | 玻纤土工格栅_钢塑格栅_PP焊接_单双向塑料土工格栅_复合防裂布厂家_山东大庚工程材料科技有限公司 | 杭州门窗厂家_阳光房_包阳台安装电话-杭州窗猫铝合金门窗 | 自动化改造_智虎机器人_灌装机_贴标机-上海圣起包装机械 | 耐火浇注料-喷涂料-浇注料生产厂家_郑州市元领耐火材料有限公司 耐力板-PC阳光板-PC板-PC耐力板 - 嘉兴赢创实业有限公司 | 定量包装机,颗粒定量包装机,粉剂定量包装机,背封颗粒包装机,定量灌装机-上海铸衡电子科技有限公司 | 成都租车_成都租车公司_成都租车网_众行宝 | 赛尔特智能移动阳光房-阳光房厂家-赛尔特建筑科技(广东)有限公司 | 气动隔膜泵厂家-温州永嘉定远泵阀有限公司 | 专注提供国外机电设备及配件-工业控制领域一站式服务商-深圳市华联欧国际贸易有限公司 | 健康管理师报名入口,2025年健康管理师考试时间信息网-网站首页 塑料造粒机「厂家直销」-莱州鑫瑞迪机械有限公司 | hdpe土工膜-防渗膜-复合土工膜-长丝土工布价格-厂家直销「恒阳新材料」-山东恒阳新材料有限公司 ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 食品级焦亚硫酸钠_工业级焦亚硫酸钠_焦亚硫酸钠-潍坊邦华化工有限公司 | 红外光谱仪维修_二手红外光谱仪_红外压片机_红外附件-天津博精仪器 | 定制异形重型钢格栅板/钢格板_定做踏步板/排水沟盖板_钢格栅板批发厂家-河北圣墨金属制品有限公司 | 小型气象站_便携式自动气象站_校园气象站-竞道气象设备网 | 自恢复保险丝_贴片保险丝_力特保险丝_Littelfuse_可恢复保险丝供应商-秦晋电子 | China plate rolling machine manufacturer,cone rolling machine-Saint Fighter | 盐水蒸发器,水洗盐设备,冷凝结晶切片机,转鼓切片机,絮凝剂加药系统-无锡瑞司恩机械有限公司 | 工业rfid读写器_RFID工业读写器_工业rfid设备厂商-ANDEAWELL | 大立教育官网-一级建造师培训-二级建造师培训-造价工程师-安全工程师-监理工程师考试培训 | 传递窗_超净|洁净工作台_高效过滤器-传递窗厂家广州梓净公司 | 扬尘监测_扬尘监测系统_带证扬尘监测设备 - 郑州港迪科技有限公司 | 杭州画室_十大画室_白墙画室_杭州美术培训_国美附中培训_附中考前培训_升学率高的画室_美术中考集训美术高考集训基地 | WF2户外三防照明配电箱-BXD8050防爆防腐配电箱-浙江沃川防爆电气有限公司 | 高博医疗集团上海阿特蒙医院| 刮板输送机,粉尘加湿搅拌机,螺旋输送机,布袋除尘器 | ORP控制器_ORP电极价格-上优泰百科| 磁力去毛刺机_去毛刺磁力抛光机_磁力光饰机_磁力滚抛机_精密金属零件去毛刺机厂家-冠古科技 | 不锈钢反应釜,不锈钢反应釜厂家-价格-威海鑫泰化工机械有限公司 不干胶标签-不干胶贴纸-不干胶标签定制-不干胶标签印刷厂-弗雷曼纸业(苏州)有限公司 | 间苯二酚,间苯二酚厂家-淄博双和化工 | 99文库_实习生实用的范文资料文库站| 板材品牌-中国胶合板行业十大品牌-环保板材-上海声达板材 | 环保袋,无纺布袋,无纺布打孔袋,保温袋,环保袋定制,环保袋厂家,环雅包装-十七年环保袋定制厂家 |