鏈上項目以及NTF源代碼安全審計能給企業(yè)帶來的好處
鏈上項目以及ntf源代碼安全審計能給企業(yè)帶來的好處
現(xiàn)在大部分客戶130對于軟9370件開發(fā)的6165安全考量基本集中在軟件開發(fā)的后期,在測試階段引入。常用的軟件風(fēng)險評估、漏洞掃描、滲透測試等都是在軟件開發(fā)完成后進(jìn)行。通常這個階段預(yù)留的時間非常少,不僅的難度高測試的成本高,而且存在大量的漏洞錯報和誤報的情況。后期的測試手段也無法地測試出代碼漏洞的具體位置。當(dāng)通過后期測試發(fā)現(xiàn)問題后,人工進(jìn)行代碼審查去查找漏洞所在代碼位置時,我們經(jīng)常會發(fā)現(xiàn)過程中存在效率低、準(zhǔn)確率低、無法定位具體問題代碼行等問題。而這些問題導(dǎo)致了客戶后期發(fā)現(xiàn)系統(tǒng)漏洞時,無法進(jìn)行快速、準(zhǔn)確地客戶只能讓系統(tǒng)攜帶漏洞上線.
智能合約art coact領(lǐng)域人士想必都不會陌生。智能合約就是將現(xiàn)實合約條款的執(zhí)行過程電子化并實現(xiàn)量化交易的一種協(xié)議,它就是通過一套以數(shù)字形式定義的承諾(commitment),讓合約參與方可以在上面執(zhí)行這些承諾。數(shù)字形式就意味著所有的智能合約不得不寫入計算機(jī)可讀的代碼中。智能合約是基于技術(shù),它的出現(xiàn)滿足了許多常見的合約條件(如支付條款,留置權(quán)性,以及執(zhí)行等),以及地減少惡意和偶然地異常地減少對可信中介的依賴
智能合約為何要通過代碼審計
但這項新技術(shù)并非沒有挑戰(zhàn),安全問題就是的一環(huán)。據(jù)統(tǒng)計,在過去的5年間,frenner智能合約代碼審計機(jī)構(gòu)在審查過的近1000個智能合約項目中有超過25%的存在嚴(yán)重漏洞,有過半項目至少存在一個安全隱患,而這些安全隱患和漏洞將會給惡意攻擊者帶來機(jī)會,惡意項目資產(chǎn)。例如,2016年6月,the daoether的漏洞就造成了5000萬美元的損失。當(dāng)然,項目的安全問題除了能給項目造成直接的巨額經(jīng)濟(jì)損失外,還會嚴(yán)重?fù)p害項目的品牌聲譽(yù),導(dǎo)致項目無法正常運營甚至“”。
frenner智能合約代碼審計機(jī)構(gòu)建議廣大智能合約項目方,在項目上鏈之前,務(wù)必通過進(jìn)行嚴(yán)格的代碼審計,以確保項目不存在安全問題,讓所有合約得到執(zhí)行。那么,項目方是否可以內(nèi)部進(jìn)行代碼審計呢?理論上講這個是可行的,至少可以為項目節(jié)省一筆審計費用,但項目方內(nèi)部審計存在很明顯的缺陷,首先,項目方作為項目運營方,自己的項目自己審計存在“不可信”的問題,缺乏有效的品牌背書,無法讓合約參與者信服。其次,項目方此前從來沒有接觸過智能合約的審計,復(fù)雜的審計流程會給項目的帶來巨大挑戰(zhàn)。
正所謂的事情必須的人來做,如果項目方內(nèi)部進(jìn)行審計,就很容易忽略不該忽略的漏洞或安全隱患,這樣一旦上鏈,項目就處于非常不安全狀態(tài),很大幾率遭受惡意攻擊而蒙受巨經(jīng)濟(jì)損失和嚴(yán)重名譽(yù)損失。因此,項目方是找第三方智能合約代碼審計機(jī)構(gòu)進(jìn)行代碼審計,雖然由專門從事智能合約審計的第三方對智能合約代碼進(jìn)行審計也不能萬無一失,但至少能發(fā)現(xiàn)代碼中的絕大部分錯誤漏洞,可以大大提升項目的安全性。
智能合約如何進(jìn)行代碼審計
智能合約代碼審計一般都會圍繞項目的三個方面進(jìn)行,包括常見的錯誤(包括堆棧問題,編譯和代碼重入錯誤)、智能合約代碼中可能存在的已知錯誤和安全漏洞以及對智能合約進(jìn)行各種模擬攻擊測試等,例如,為盡可能的找到智能合約中的安全問題,frenner智能合約代碼審計機(jī)構(gòu)一般都會測試各類攻擊,如重入攻擊(reeancy attack)、數(shù)值溢出(over and under flows)、重放攻擊(replay attack)、重排攻擊(reordering attack)、短地址攻擊(short address attack)。
一般智能合約代碼審計有兩種基本方法:手動和自動代碼分析。手動代碼分析比較容易理解,就是由代碼審計工程師逐行審查每一行代碼,仔細(xì)查看代碼的編譯、重入錯誤和安全等問題,其中安全問題為重要,它能直接影響智能合約是否能長期穩(wěn)定的運行。自動代碼分析就借助各種審計工具對代碼進(jìn)行掃描,它的好處就是在檢查代碼時可以節(jié)約大量的人力和時間,還可以進(jìn)行多條件復(fù)雜的滲透測試,有助于快速發(fā)現(xiàn)漏洞。
當(dāng)然,目前所有的代碼審計機(jī)構(gòu)都是手動和自動代碼分析相結(jié)合,frenner智能合約代碼審計機(jī)構(gòu)也不例外。首先通過自動代碼分析工具對智能合約的代碼進(jìn)行深度掃描,找到各種已知的漏洞和安全隱患,然后再通過代碼審計工程師進(jìn)行一次的人工代碼審查,確保上述自動分析不會存在漏報或誤報的問題,讓智能合約保持在一個比較安全的狀態(tài)。