代幣漏洞安全事件代碼審計是必要條件
代幣漏洞安全事件代碼審計是必要條件
目前,區(qū)塊130鏈整體9370還處于6165低迷期,但是智能合約的發(fā)展卻非常穩(wěn)定,根據(jù)安全中心的數(shù)據(jù),近一個月以太坊的智能合約平均每天以2000+的數(shù)量在增長。
智能合約漏洞雖然數(shù)量不多,但是所造成的損失是非常巨大的,這與solidity語言的特性有關(guān),也與erc20協(xié)議使代幣發(fā)行變得便捷有關(guān)。
智能合約漏洞的0攻擊類型為:重入攻擊、權(quán)限控制、整型溢出、未檢查的call返回值、順序依賴、時間戳依賴、條件競爭、短地址攻擊、可預(yù)測的隨機處理等。
所有智能合約事件中的當(dāng)屬美鏈?zhǔn)录?8年4月22下午,才發(fā)行兩個月左右的bec美蜜合約出現(xiàn)重大的溢出漏洞通過合約的批量轉(zhuǎn)賬方法無限生成代幣,天量bec從兩個地址轉(zhuǎn)出,進而引發(fā)拋售潮。當(dāng)ec的價值幾乎歸零。損失金額超過10億。
由于的“代碼即一切”的原則,導(dǎo)致目前沒有有效的安全防護手段來避免智能合約安全的問題。
對于智能合約的開發(fā),小豹建議摒棄“敏捷開發(fā)”的理念。而采用緩慢而有條理的方法來開發(fā)智能合約,在設(shè)計和編碼時,就盡量謹(jǐn)慎和考慮周全。
開發(fā)管理者也不要對開發(fā)人員太大的壓力(比如制定嚴(yán)格的期限等),通常來說,趕出來的東西都多多少少會有問題。
另外,在上鏈之前,找到的安全公司對智能合約進行安全審計是基礎(chǔ)和必要的。
以下是2018年智能合約大事件,以及相關(guān)事件的一些細節(jié):
(1)2018年 8月22god.game合約遭到攻擊,god智能合約上的以太坊總量歸零
(2)2018年4月25artmesh 出現(xiàn)重大安全漏洞,導(dǎo)致1.4億美元損失
(3)18年4月22午,才發(fā)行兩個月左右的bec美蜜合約因為存在溢出漏洞,被從兩個地址不斷轉(zhuǎn)出代幣,使bec價格幾乎歸零,損失金額總計超過10億美元。
安全
據(jù)網(wǎng)絡(luò)安全公司 cifertrace 10月發(fā)布的一份報告顯示,2018年前9個月,通過的加密就已達9.27億美金,已經(jīng)是整個2017年的2.5倍。
韓國科技部的調(diào)查報告稱:“大部分都存在安全漏洞。”
那么,為什么加密安全問題層出不窮?
一方面的匿名性,不可篡改性以及無監(jiān)管特性,導(dǎo)致了資產(chǎn)轉(zhuǎn)移便捷,溯源找回難度大。另一方面交易行業(yè)出現(xiàn)時間短,發(fā)展又非常快,利潤高,導(dǎo)致本來技術(shù)積累就不足的情況下,仍然忽視信息安全方面的建設(shè),隱藏的安全漏洞多,攻擊起來相對容易。甚至還有一些加密數(shù)字甚至完全沒有安全系統(tǒng)。
數(shù)字面臨的安全威脅主要包括:服務(wù)器軟件漏洞、配置不當(dāng)、攻擊、服務(wù)端web程序漏洞(包括技術(shù)性漏洞和業(yè)務(wù)邏輯缺陷)、辦公電腦安全問題、內(nèi)部人員攻擊等。
對于規(guī)模較大,用戶較多的還會面臨用戶者利用的網(wǎng)站騙取認證信息的問題。
而針對這些安全威脅,小豹建議在面向用戶之前行滲透測試,代碼審計等安全服務(wù),挖掘并系統(tǒng)存在的安全漏洞。
另外,建議對所有正式入職的員工進行必要的基礎(chǔ)的安全培訓(xùn)。
后,針對數(shù)字交易的建議大家主動學(xué)習(xí)安全知識,并在電腦端、手機端使用安全軟件,千萬不要自信“裸奔”,以避免掉進網(wǎng)絡(luò)陷阱以及錢包被盜事件的發(fā)生。
以下是2018年加密被盜事件,以及相關(guān)事件的具體細節(jié)。
(1)1月,日本數(shù)字加密 coincheck 被盜走價值5.34億美元的xem。coincheck 是日本第二大在之后的發(fā)布會上,coincheck 表示,xem 被盜是因為存儲 xem 的熱錢包的私鑰被所但是沒有其他幣種被盜。受此事件影響,xem 當(dāng)天下跌9.8%。
(2)2月11日,意大利加密 bitgrail價值 1.7 億美元的加密nano 被盜。
(3)3月7日inance 遭到,通過控制幣安部分賬戶,賣出這些賬戶持倉的btc,買入 via 幣,導(dǎo)致 via 逆市大漲。幣安將異常交易進行了回滾處理,但此事件依然引起市場恐懼,隨后幾天跌幅超過15%。
(4)4月1日t-z 遭遇攻擊,未造成資金損失。為此 bit-z 專門設(shè)立了10000個 eth 安全用于獎勵安全漏洞提交者。這筆獎勵在當(dāng)時價值400萬美金。
(5)4月13日,印度三大之一 coinsecure 在發(fā)布公告稱,該438個 btc 失竊,價值約330萬美元。該首席安全官 amitabh saxena 被列為嫌疑人。這是印度加密被盜事件。
(6)6月5日tfinex 遭到“拒絕服務(wù)(denial-of-service)”攻擊,bitfinex 隨即暫停了的所有交易。
(7)6月10日,韓國數(shù)字加密 coinrail 遭到攻擊,損失超過5000萬美元。coinrail 加密總量的70%被保存在冷錢包,被盜總量的三分之二已被追回。
(8)6月20日,韓國加密 bithumb價值3000萬美元的加密被盜,這是 bithumb 第三。
此前,該還遭受了兩次“攻擊”。
次:2017年4月,bithumb 某員工電腦被黑,導(dǎo)致超過3萬名用戶的資料被竊,bithumb 也因此被韓國監(jiān)管機構(gòu)罰款5.5萬美元。
第二次:2017年12月22日,韓國mbc雇傭了一家安保公司,對包括bithumb 在內(nèi)的5家韓國進行安全測試。該安保公司成功“黑入”包括bithumb 在內(nèi)的5家并獲取了部分用戶數(shù)據(jù)和資金。受雇“”聲稱僅使用了“基本的技巧”。
但是,安全問題并未引起足夠重視,這才導(dǎo)致了2018年6月份的事件發(fā)生。
(9)9月20日,日本 zaif 宣布遭受攻擊,損失5967萬美元。其中1959萬美元屬于該自有資金,其余4007萬美元屬于客戶資金。
代碼審計成就合約
智能合約通過代碼建立一套“法律合同”,軟件工程師創(chuàng)造一個完全無誤差的代碼是不可能的,程序員總存在疏忽的地方。紅岸科技和科技大學(xué)的ulord項目研究團隊對市面上的智能合約進行了審計,他們的研究發(fā)現(xiàn):
對所有的程序員來說,寫一個沒有bug的代碼實在是太難了,即使采取了所有可能的措施,在復(fù)雜的軟件中也總會出現(xiàn)沒有預(yù)料到的執(zhí)行路徑或可能的漏洞。
這是為什么要代碼審計的原因之一。
中的 “法律合同”是一項受解釋和仲裁的約束,程序員很難去創(chuàng)造一個縝密的合約。在任意一個大的合約里,可能出現(xiàn)的文稿錯誤以及一些條款需要解釋和仲裁。
同時,軟件工程師不是法律反之亦然。起草一份好的合約需要各種各樣的技能,不一定與編寫的計算機程序兼容。
因此,智能合約代碼在一定程度上都可能存在安全隱患。傳統(tǒng)的智能合約代碼審計主要利用人工,依靠code reviewer閱讀智能合約代碼。人工代碼審計終還是依賴人的經(jīng)驗,代碼審計效果不明顯,針對目前eth大量代幣的智能合約,人工審計工作量大,難以的完成工作。
在領(lǐng)域從事代碼審計業(yè)務(wù)的項目公司較少,目前每個代幣在上之前,其智能合約代碼由進行審察和判定,但有時并不能完全有效地判斷合約是否。