藉著Euler黑客事件聊聊DeFi的安全審計和安全

大的DeFi 協議基本上都經過多輪審計,我們前前後後5次審計費用百萬刀級別大的協議常規審計每年都百萬刀,但藍籌DeFi沒哪個沒被黑過?這裡原因很簡單,簡單的數學問題從攻防來看,所有靜態審計的輸入(安全投入)和輸出(發現bug) 都是有限的。

除了常規審計,Euler還用了Certora做形式化驗證,這個我們之前也用過,形式化驗證能幫助窮盡“已知”路徑的覆蓋範圍,但是無法窮盡“未知的未知”。
DeFi是一個開放系統,對於黑客(攻方)來說,它的輸入是無限的,輸出也是無限的。假設把安全攻防看成挖礦,你守方用三五台機器算哈希挖礦攻方無數機器時刻在算哈希,只要算對一次就贏了;這個輸贏面對比是明顯的。靜態的安全審計,由於輸入輸出固定,無法覆蓋已知的未知,更無法覆蓋未知之未知。

所以出現另一種審計,叫開發式競爭型審計,如Code4rena,審計獎金池固定,但是輸入在一定時間內是彈性的,所有人都可以參加,誰發現bug按照嚴重程度,分獎金,這個方式是讓審計師/白帽去卷,可以擴大覆蓋面,但總體輸入依然固定,遠遠不夠。
最後是完全開放的模式,那就是賞金網絡,DeFi裡最出名的Immunefy,雲集最多DeFi白帽高手的平台,我建議每個DeFi在上面發bounty,親測效果十分明顯。
Immunefy的獎金項目方會給非常高。比如最高已支付的是Warmhole的千萬美金(就是被黑了兩億美金的那個bridge,又給敲了一大筆bounty)。這次出事的Euler也曾放出100w 刀賞金,但依舊沒發現這次的漏洞。賞金模式在輸入輸出上也是開放式的,這個類似於黑客的攻擊模式。

但兩者激勵模式很大區別。假如把兩者當成是抽獎,同樣1000w 獎金池,賞金模式獎金一般都會在10w-30w刀封頂,黑客模式是100%獎金全拿走。這兩種模式,同等投入,同樣中獎概率,假設沒有犯罪成本,毫無疑問黑客池輸入/輸出會跑贏。賞金模式就算加到10%,也跑不贏黑客池,除非把犯罪成本加入等式,有人建議把賞金比例和TVL掛鉤,比如10%,是否會激勵更多黑客轉白帽?

首先,沒哪個defi協議能支付10% TVL的賞金,其次,遇到真黑客,他大概率還是願意一黑到底而不會止步要10%。 DeFi的安全更複雜問題在於除了代碼層面,還有可組合風險(如這次Euler波及多個整合協議)攻擊面上,DeFi本身隨著整合增加,攻擊面是四維增長的,定期靜態安全審計加長期賞金,也無法覆蓋不斷擴大的攻擊面DeFi安全是無限遊戲,唯一靠譜的是在協議上減少外部依賴(資產/oracle/第三方協議),最小化攻擊面,盡量待在“自己的舒適區”,不亂做擴展。對開放系統來說,安全代價就是自由的代價

Total
0
Shares
Related Posts