通付盾2021Q1智能合約安全態(tài)勢(shì)感知報(bào)告


中國(guó)產(chǎn)業(yè)經(jīng)濟(jì)信息網(wǎng)   時(shí)間:2021-04-29





  團(tuán)隊(duì)介紹


  通付盾區(qū)塊鏈安全團(tuán)隊(duì)(SharkTeam)專(zhuān)注于區(qū)塊鏈和智能合約安全,由擁有多年一線網(wǎng)絡(luò)安全及區(qū)塊鏈實(shí)戰(zhàn)經(jīng)驗(yàn)的團(tuán)隊(duì)成員組成,精通區(qū)塊鏈和智能合約底層原理,具備完善的漏洞挖掘和智能合約審計(jì)能力,可提供全面的威脅建模、合約審計(jì)、應(yīng)急響應(yīng)服務(wù),已幫助多個(gè)知名區(qū)塊鏈項(xiàng)目發(fā)現(xiàn)并修復(fù)安全漏洞,致力于保護(hù)用戶數(shù)字資產(chǎn)安全與隱私安全。


  " In Math,We Trust !"


  內(nèi)容概覽


  智能合約這一概念由計(jì)算機(jī)學(xué)家和法學(xué)家尼克·薩博在20世紀(jì)90年代提出,是區(qū)塊鏈至關(guān)重要的組成部分,極大地?cái)U(kuò)展了區(qū)塊鏈的應(yīng)用場(chǎng)景與現(xiàn)實(shí)意義,目前區(qū)塊鏈與智能合約技術(shù)已被廣泛地應(yīng)用于股權(quán)眾籌、游戲、保險(xiǎn)、供應(yīng)鏈、物聯(lián)網(wǎng)等領(lǐng)域。


  但伴隨著區(qū)塊鏈和智能合約產(chǎn)業(yè)的不斷發(fā)展,隨之而來(lái)的安全事件也不斷爆發(fā)。相比于普通的程序而言,智能合約更容易成為攻擊者的目標(biāo)。一方面,智能合約通常用于管理區(qū)塊鏈平臺(tái)上的數(shù)字資產(chǎn),對(duì)智能合約的攻擊可能會(huì)為攻擊者帶來(lái)更高的經(jīng)濟(jì)價(jià)值;而更為重要的是,引入智能合約的初衷在于借助區(qū)塊鏈的特性來(lái)保證合約的可信賴,而智能合約漏洞會(huì)使合約出現(xiàn)非預(yù)期的行為,從而可能使其變?yōu)橐环荨安黄降群霞s”,而失去了智能合約最根本的意義。


  僅2021年第一季度就已發(fā)生SushiSwap第二次被攻擊、Alpha Finance 與 Cream被攻擊、Yearn.finance閃電貸攻擊、Furucombo被攻擊、PAID Network被攻擊、DODO資金池被盜、Roll被攻擊、EasyFi密鑰泄漏等一系列安全事件,不僅給用戶造成了巨大的經(jīng)濟(jì)損失,同時(shí)也使得智能合約的公平、可信賴受到挑戰(zhàn)和質(zhì)疑。一次又一次的攻擊事件表明,智能合約的安全形勢(shì)已十分嚴(yán)峻,對(duì)智能合約的相關(guān)安全漏洞開(kāi)展研究并保障其安全已十分迫切。


  通付盾區(qū)塊鏈安全團(tuán)隊(duì)(SharkTeam)在第一季度選取了主流的41個(gè)區(qū)塊鏈項(xiàng)目,并對(duì)覆蓋高級(jí)語(yǔ)言層、虛擬機(jī)層、區(qū)塊鏈層、業(yè)務(wù)邏輯層的75項(xiàng)常見(jiàn)安全問(wèn)題進(jìn)行了安全掃描,共計(jì)發(fā)現(xiàn)安全問(wèn)題2192項(xiàng)。《通付盾2021Q1智能合約安全態(tài)勢(shì)感知報(bào)告》(以下簡(jiǎn)稱為“報(bào)告”)從漏洞位置分布、危害等級(jí)分布和項(xiàng)目類(lèi)型三個(gè)角度進(jìn)行相關(guān)數(shù)據(jù)分析。


  漏洞位置分布


  智能合約的安全漏洞主要來(lái)自于高級(jí)語(yǔ)言、虛擬機(jī)、區(qū)塊鏈和業(yè)務(wù)邏輯四個(gè)層面。


  報(bào)告數(shù)據(jù)顯現(xiàn),目前智能合約安全問(wèn)題重點(diǎn)集中在高級(jí)語(yǔ)言層,共發(fā)現(xiàn)1500項(xiàng)問(wèn)題。具體分布如下:


0_副本.png


  1.高級(jí)語(yǔ)言層


  高級(jí)語(yǔ)言是開(kāi)發(fā)者進(jìn)行智能合約編寫(xiě)的工具。以太坊智能合約開(kāi)發(fā)有多種可以使用的高級(jí)語(yǔ)言,其中最為常用的是 Solidity語(yǔ)言。高級(jí)語(yǔ)言層面為智能合約帶來(lái)的安全威脅主要有兩個(gè)原因,一個(gè)是高級(jí)語(yǔ)言自身設(shè)計(jì)的缺陷所引入的安全問(wèn)題,另一個(gè)則是開(kāi)發(fā)者在編寫(xiě)高級(jí)語(yǔ)言過(guò)程中因?yàn)楹鲆暣a質(zhì)量而引入的安全漏洞。報(bào)告數(shù)據(jù)顯示,漏洞主要集中在“命名不規(guī)范”、“編譯器版本不一致”、“Solidity版本過(guò)時(shí)”等方面,其中“命名不規(guī)范”漏洞數(shù)量最多,有517個(gè)。


圖片1_副本.png


  2.虛擬機(jī)層


  虛擬機(jī)是編譯后的智能合約字節(jié)碼執(zhí)行器。以太坊的虛擬機(jī)及其字節(jié)碼的設(shè)計(jì)規(guī)范被定義在以太坊技術(shù)黃皮書(shū)中,是各種以太坊客戶端實(shí)現(xiàn)以太坊虛擬機(jī)的標(biāo)準(zhǔn)指導(dǎo)手冊(cè)。虛擬機(jī)層面的安全威脅主要有兩個(gè)方面,一是以太坊黃皮書(shū)設(shè)計(jì)智能合約字節(jié)碼規(guī)范和運(yùn)行機(jī)制本身的一些缺陷,二是不同的以太坊客戶端在實(shí)現(xiàn)虛擬機(jī)的過(guò)程中,因沒(méi)有嚴(yán)格按照手冊(cè)實(shí)現(xiàn)而引入的問(wèn)題。報(bào)告數(shù)據(jù)顯示,問(wèn)題主要集中在重入漏洞,其中“亂序引起的重入”最多,有62個(gè)。


圖片2_副本.png


  3.區(qū)塊鏈層


  智能合約依靠區(qū)塊鏈來(lái)提供去中心化、不可篡改和信任等特性,區(qū)塊鏈平臺(tái)對(duì)智能合約的運(yùn)行也有很多影響。區(qū)塊鏈對(duì)于智能合約來(lái)說(shuō),雖然是其安全可信的根基,但區(qū)塊鏈本身的很多特性也會(huì)給智能合約帶來(lái)安全風(fēng)險(xiǎn)。報(bào)告數(shù)據(jù)顯示,區(qū)塊鏈層的漏洞主要集中在“隨機(jī)性不足”和“時(shí)間戳依賴”,其中“時(shí)間戳依賴”最多,有17個(gè)。


圖片3_副本.png


  4.業(yè)務(wù)邏輯層


  區(qū)塊鏈項(xiàng)目的業(yè)務(wù)邏輯目前越來(lái)越復(fù)雜,也面臨越來(lái)越多的業(yè)務(wù)安全問(wèn)題,以DeFi為例,如資產(chǎn)凍結(jié)、鏈上私有數(shù)據(jù)未加密、缺少external聲明等問(wèn)題并非由單純的代碼編寫(xiě)錯(cuò)誤導(dǎo)致,更多與業(yè)務(wù)邏輯設(shè)計(jì)緊密相關(guān),因此在項(xiàng)目上線前要進(jìn)行嚴(yán)格的業(yè)務(wù)流程測(cè)試,仔細(xì)分析設(shè)計(jì)中的薄弱環(huán)節(jié),防止業(yè)務(wù)問(wèn)題的發(fā)生。報(bào)告數(shù)據(jù)顯示,“缺少external聲明”出現(xiàn)的頻率最高,有473個(gè)。


圖片4_副本.png


  威脅等級(jí)分布


  漏洞本質(zhì)是非故意、非預(yù)期的安全缺陷或風(fēng)險(xiǎn),基于國(guó)家區(qū)塊鏈漏洞庫(kù)《區(qū)塊鏈漏洞定級(jí)細(xì)則》,并結(jié)合業(yè)務(wù)特點(diǎn)及應(yīng)用場(chǎng)景將威脅等級(jí)分為高、中、低、消息四個(gè)等級(jí)。主要依據(jù)漏洞的危害程度、利用難度,輔以其他因素綜合判定。危害程度主要根據(jù)機(jī)密性影響、完整性影響、可用性影響三個(gè)維度定義;利用難度主要根據(jù)攻擊向量、攻擊復(fù)雜度、認(rèn)證三個(gè)維度定義。


  報(bào)告數(shù)據(jù)顯示,智能合約安全問(wèn)題主要集中在消息級(jí),共發(fā)現(xiàn)1785項(xiàng)漏洞。具體分布如下:


圖片5_副本.png


  報(bào)告對(duì)每個(gè)威脅等級(jí)的漏洞都進(jìn)行了詳細(xì)的分析,以“高?!甭┒礊槔焊呶B┒匆话阒钢械屠秒y度且對(duì)智能合約的機(jī)密性、完整性、可用性或其經(jīng)濟(jì)模型產(chǎn)生惡劣影響,可對(duì)合約業(yè)務(wù)系統(tǒng)造成大量經(jīng)濟(jì)損失、局部功能不可用、大范圍數(shù)據(jù)錯(cuò)亂、權(quán)限管理失控、關(guān)鍵功能失效、公信力下降,或間接影響與之關(guān)聯(lián)的其他智能合約正確運(yùn)行并造成大量損失等嚴(yán)重且多數(shù)不可逆的危害。報(bào)告數(shù)據(jù)顯示,高危漏洞主要集中在“影子狀態(tài)變量”、“任意地址發(fā)布以太幣”、“修改器中有外部變量”、“修改器修改狀態(tài)變量”等,其中“修改器中有外部變量”最多,有11個(gè)。


圖片6_副本.png


  項(xiàng)目類(lèi)型分布


  本次選取的41個(gè)項(xiàng)目包含:抵押借貸、現(xiàn)貨交易、穩(wěn)定幣交易、保險(xiǎn)&衍生品交易、支付&理財(cái)、錨定幣等類(lèi)型。


  報(bào)告數(shù)據(jù)顯示,目前安全問(wèn)題主要集中在現(xiàn)貨交易項(xiàng)目中,發(fā)現(xiàn)1084項(xiàng)漏洞。分布如下:


圖片7_副本.png


  攻擊原理分析


  未知攻焉知防,結(jié)合41個(gè)項(xiàng)目的綜合審計(jì)結(jié)果及第一季度實(shí)際發(fā)生的8起典型安全事件,報(bào)告從合約漏洞、密鑰泄露、經(jīng)濟(jì)攻擊、流量攻擊、算力攻擊5個(gè)方面分析了相關(guān)攻擊原理并提出防范建議。


  合約漏洞


  智能合約本質(zhì)上是一段運(yùn)行在區(qū)塊鏈上的代碼,其極大地?cái)U(kuò)展了區(qū)塊鏈的業(yè)務(wù)范圍,同時(shí)區(qū)塊鏈也為智能合約提供了更好的運(yùn)行環(huán)境。部署在區(qū)塊鏈上的智能合約具有公開(kāi)透明、自動(dòng)化獨(dú)立執(zhí)行、不可更改以及天然帶有經(jīng)濟(jì)屬性并攜帶數(shù)字資產(chǎn)等特性,因此智能合約越來(lái)越受到黑客的關(guān)注與攻擊。因?yàn)榇蠖鄶?shù)智能合約都是開(kāi)源的,黑客可以研究現(xiàn)有的合約漏洞,并根據(jù)發(fā)現(xiàn)的合約漏洞發(fā)起攻擊,給用戶造成了極大的經(jīng)濟(jì)損失。


  1.密鑰泄露:


  區(qū)塊鏈賬戶地址屬于匿名賬戶,其賬戶的安全性完全依賴于賬戶對(duì)應(yīng)的私鑰的安全性。持有賬戶的私鑰,相當(dāng)于擁有對(duì)賬戶以及賬戶資產(chǎn)的絕對(duì)控制權(quán)。


  智能合約中的一些特殊賬戶,其安全性對(duì)整個(gè)合約甚至整個(gè)項(xiàng)目有著極大的影響,例如owner賬戶、鑄幣賬戶,掌握了其私鑰,就可以利用這些賬戶對(duì)合約進(jìn)行某些不合法的操作。若擁有了owner賬戶的私鑰,則可能利用該owner賬戶直接調(diào)用owner地址的驗(yàn)證,從而對(duì)合約進(jìn)行重新初始化、隨意修改狀態(tài)變量等非法操作;若擁有的鑄幣賬戶的私鑰,則可以利用該鑄幣賬戶無(wú)限制的鑄幣,然后盜取大量數(shù)字資產(chǎn),從而引起賬戶的重大的損失。Roll被攻擊就是因?yàn)橛脩糍~戶的私鑰被黑客盜取引起的大量資金被盜的典型安全事件。


  2.經(jīng)濟(jì)攻擊:


  DeFi項(xiàng)目的業(yè)務(wù)邏輯設(shè)計(jì)復(fù)雜,利用閃電貸這種新型產(chǎn)品進(jìn)行攻擊的DeFi事件在過(guò)去的一年里層出不窮。這些安全問(wèn)題的深層次原因在于,在設(shè)計(jì)業(yè)務(wù)邏輯時(shí),未考慮到某些關(guān)鍵性因素,如:彈性供應(yīng)機(jī)制、增發(fā)機(jī)制、清算機(jī)制設(shè)計(jì)不合理、鏈上價(jià)格及其他信息可被低成本操控等,導(dǎo)致了惡意套利、惡意增發(fā)等問(wèn)題。攻擊者通過(guò)操縱 AMM 資產(chǎn)池內(nèi)的資產(chǎn)價(jià)格或者資產(chǎn)數(shù)量使關(guān)聯(lián)協(xié)議蒙受損失,我們不妨稱之為經(jīng)濟(jì)攻擊。至今出現(xiàn)的經(jīng)濟(jì)攻擊通常分為哄抬套利和操縱預(yù)言機(jī)兩種手法。


  3.流量攻擊:


  在區(qū)塊鏈網(wǎng)絡(luò)中的流量攻擊被稱之為DDoS(distributed denial-of-service)攻擊。是指網(wǎng)絡(luò)被大量的流量或特定信息蓄意淹沒(méi),從而引發(fā)系統(tǒng)崩潰。此類(lèi)攻擊的目標(biāo)通常為知名企業(yè)(如各個(gè)中心化交易平臺(tái)等)。這些攻擊通常不以獲取個(gè)人信息或劫持系統(tǒng)為目的,而是為了制造巨大的混亂。從本質(zhì)上講,發(fā)動(dòng)此類(lèi)攻擊的黑客的相當(dāng)于網(wǎng)絡(luò)恐怖分子。


  想要避免DDoS攻擊難度比較大,但也可以通過(guò)允許更多用戶加入分布式網(wǎng)絡(luò),以更好地抵御DDoS攻擊,進(jìn)而增強(qiáng)網(wǎng)絡(luò)的安全性。不僅如此,區(qū)塊鏈技術(shù)也允許網(wǎng)絡(luò)用戶出租額外帶寬,以支持那些流量過(guò)載的網(wǎng)絡(luò)。這樣一來(lái),DDoS攻擊的成功率也將顯著降低。


  4.算力攻擊:


  當(dāng)系統(tǒng)中有合作關(guān)系的惡意節(jié)點(diǎn)所控制的算力,超過(guò)誠(chéng)實(shí)節(jié)點(diǎn)所控制的算力,系統(tǒng)就是有被攻擊的風(fēng)險(xiǎn)。這種由惡意節(jié)點(diǎn)控制超過(guò)50%算力所發(fā)起的攻擊,稱為51%算力攻擊。


  通?;赑oW(工作量證明)共識(shí)機(jī)制的加密貨幣,存在51%算力攻擊的威脅較大,比如比特幣、比特現(xiàn)金和目前階段的以太坊等;而非PoW共識(shí)算法的加密貨幣則能較好的避免51%算力攻擊,如基于DPoS(委托權(quán)益證明)共識(shí)機(jī)制的EOS、TRON等。


  安全建議


  智能合約是部署和運(yùn)行在區(qū)塊鏈上的程序。借助區(qū)塊鏈,智能合約可以實(shí)現(xiàn)各類(lèi)去中心化應(yīng)用(DApp)。與傳統(tǒng)程序一樣,智能合約中存在漏洞也在所難免。然而不同的是,智能合約運(yùn)行在更為開(kāi)放的環(huán)境中,并天生帶有金融屬性,且升級(jí)成本極高。這意味著其對(duì)安全的要求更高,任何一點(diǎn)瑕疵都可能帶來(lái)無(wú)法預(yù)估的后果。構(gòu)建智能合約安全體系,我們建議從以下幾個(gè)方面著力。


  1.技術(shù)安全


  智能合約安全本身是一個(gè)系統(tǒng)性和專(zhuān)業(yè)性極強(qiáng)的工程,需要綜合考慮合約平臺(tái)底層安全、合約設(shè)計(jì)與實(shí)現(xiàn)安全、合約生態(tài)工具安全、合約交互與數(shù)據(jù)安全等各方面,任何一個(gè)環(huán)節(jié)出現(xiàn)細(xì)微問(wèn)題都會(huì)留下極大的隱患。


  2.業(yè)務(wù)安全


  作為去中心化應(yīng)用的核心部分,智能合約還需要可靠的設(shè)計(jì)。糟糕的設(shè)計(jì)可能會(huì)引入難以發(fā)現(xiàn)的深層次安全問(wèn)題,這類(lèi)問(wèn)題往往無(wú)法簡(jiǎn)單通過(guò)掃描源代碼發(fā)現(xiàn)。智能合約設(shè)計(jì)者需要綜合考慮業(yè)務(wù)邏輯、多角色權(quán)限和博弈、區(qū)塊鏈共識(shí)等多方面因素。合約業(yè)務(wù)邏輯設(shè)計(jì)與實(shí)現(xiàn)應(yīng)不存在明顯安全問(wèn)題。


  部分智能合約會(huì)受管理員控制,而部分管理員甚至擁有極高的特殊權(quán)限,特定場(chǎng)景下會(huì)威脅合約其他用戶的資產(chǎn)安全。為了智能合約安全,我們一方面需要警惕超級(jí)管理員作惡,另一方面需要考慮管理員身份被盜用所帶來(lái)的后果。接口調(diào)用權(quán)限、管理員權(quán)限等需要?jiǎng)澐智逦?/p>


  3.安全服務(wù)


  作為區(qū)塊鏈平臺(tái)上管理數(shù)字資產(chǎn)的重要組成部分,智能合約的安全性必將受到越來(lái)越多的關(guān)注。智能合約項(xiàng)目方應(yīng)與具有專(zhuān)業(yè)安全能力的服務(wù)商合作,提高智能合約的安全性。


  通付盾區(qū)塊鏈安全團(tuán)隊(duì)為客戶提供高級(jí)別的區(qū)塊鏈安全服務(wù),區(qū)塊鏈安全專(zhuān)家團(tuán)隊(duì)7*24小時(shí)為智能合約提供全生命周期的安全保障,服務(wù)包括:VIP安全審計(jì)服務(wù)、VIP合規(guī)審計(jì)服務(wù)、安全事故應(yīng)急響應(yīng)等,幫助客戶構(gòu)建智能合約安全體系。項(xiàng)目方可參照通付盾區(qū)塊鏈安全團(tuán)隊(duì)的安全建議,完善合約開(kāi)發(fā)和發(fā)布流程,從設(shè)計(jì)、開(kāi)發(fā)、測(cè)試、審計(jì)到部署、監(jiān)控、應(yīng)急響應(yīng),保護(hù)智能合約全生命周期安全。



  轉(zhuǎn)自:通付盾

  【版權(quán)及免責(zé)聲明】凡本網(wǎng)所屬版權(quán)作品,轉(zhuǎn)載時(shí)須獲得授權(quán)并注明來(lái)源“中國(guó)產(chǎn)業(yè)經(jīng)濟(jì)信息網(wǎng)”,違者本網(wǎng)將保留追究其相關(guān)法律責(zé)任的權(quán)力。凡轉(zhuǎn)載文章及企業(yè)宣傳資訊,僅代表作者個(gè)人觀點(diǎn),不代表本網(wǎng)觀點(diǎn)和立場(chǎng)。版權(quán)事宜請(qǐng)聯(lián)系:010-65363056。

延伸閱讀

熱點(diǎn)視頻

“十三五”期間我國(guó)高技術(shù)制造業(yè)增長(zhǎng)迅猛 “十三五”期間我國(guó)高技術(shù)制造業(yè)增長(zhǎng)迅猛

熱點(diǎn)新聞

熱點(diǎn)輿情

?

微信公眾號(hào)

版權(quán)所有:中國(guó)產(chǎn)業(yè)經(jīng)濟(jì)信息網(wǎng)京ICP備11041399號(hào)-2京公網(wǎng)安備11010502035964