Visor.fiannce
Visor Finance 是用于流動性挖掘的智能保險庫蠕搜,同時鑄造 NFT右蹦,借此可以同時在多個協(xié)議上進(jìn)行流動性挖礦∽叫龋總的來說氓拼,Visor算是NFT的一個另類應(yīng)用,與DeFi深度結(jié)合抵碟。對于Uniswap v3來說桃漾,Visor.finance是一個很好的補(bǔ)充應(yīng)用。
因?yàn)樵赨niswap v3中拟逮,用戶存入資金池后不再得到LP token撬统,取而代之的是一個NFT代幣。這使得之前大量集成LP token的DeFi項(xiàng)目無法直接與V3集成唱歧。如果沒有第三方代理程序來做NFT的拆解和轉(zhuǎn)換宪摧,DeFi項(xiàng)目只有自己來做這個事,開發(fā)上會帶來更多不便颅崩,通用性會降低。而Visor的NFT智能托管程序蕊苗,可以成為一個通用的V3管理代理沿后,所有DeFi項(xiàng)目都可以利用這個NFT金庫來集成挖礦。
事情始末
6月19日朽砰,星期六尖滚。
Visor Finance團(tuán)隊(duì)發(fā)現(xiàn)合約被進(jìn)行權(quán)限攻擊喉刘,獲取了Hypervisor admin functions的賬戶管理功能權(quán)限。攻擊者可以從尚未存入LP頭寸的存款中提取資金漆弄。300萬美金的TVL有大概50萬美金的頭寸可以被提取睦裳。發(fā)現(xiàn)了權(quán)限攻擊之后,團(tuán)隊(duì)就啟動了緊急資金轉(zhuǎn)移的腳本/方案撼唾,成功保住了大部分的資產(chǎn)廉邑。
Visor.fianance的團(tuán)隊(duì)也很快動用了treasury funds(國庫資金)填補(bǔ)了這50萬美金。用戶的position沒有收到絲毫的影響倒谷。
權(quán)限攻擊
這個事件的發(fā)生原因其實(shí)就是攻擊者獲取了私鑰了蛛蒙,再加上團(tuán)隊(duì)并沒有為 Hypervisor 的所有管理功能使用多重簽名帳戶,導(dǎo)致了這個事情的發(fā)生渤愁。好在團(tuán)隊(duì)有一個緊急提款功能牵祟,作為需要拯救資金的安全保障。
報(bào)告的原話是這樣的:
The reason behind this initial design decision was because we thought that it was not practical to have multiple people sign for managing frequent rebalancing on multiple pairs every time a rebalance was needed
或者說抖格,技術(shù)團(tuán)隊(duì)認(rèn)為在Hypervisor Managerment如此頻繁的rebalancing函數(shù)里使用多簽是不太切合實(shí)際事情诺苹,用戶體驗(yàn)會很差。
但雹拄,現(xiàn)在已經(jīng)改成多簽了收奔。我感覺就是技術(shù)團(tuán)隊(duì)?wèi)辛?/strong>
最后,Visor團(tuán)隊(duì)說办桨,“我們意識到權(quán)限管理的重要性筹淫,現(xiàn)在和將來只會采用行業(yè)標(biāo)準(zhǔn)和最佳實(shí)踐。 我們認(rèn)識到這是一個特別復(fù)雜的設(shè)計(jì)空間呢撞,因?yàn)樗瑫r涉及資金的主動管理和安全损姜。 隨著我們主動管理架構(gòu)的推進(jìn),我們打算為這個領(lǐng)域做出貢獻(xiàn)殊霞〈菰模”
個人總結(jié)
在傳統(tǒng)領(lǐng)域上,應(yīng)用一般都是在防火墻 or 內(nèi)網(wǎng)內(nèi)绷蹲,代碼絕對都是黑盒棒卷。研發(fā)人員一般不會考慮過分的安全防御。但是在Defi上祝钢,協(xié)議是開源的比规,服務(wù)器是可以trace的。對于頂級黑客來說拦英,相當(dāng)于看到獵物裸體在大海里游泳蜒什。所以,對于研發(fā)人員來說疤估,要對TVL負(fù)責(zé)灾常,就要考慮一切可能被攻擊的可能性霎冯。雖然合約一般都有很明確的權(quán)限約束,但是一旦被私鑰被竊取钞瀑,那么這些約束也將形同虛設(shè)沈撞。PS: 私鑰安全防御本來就是在傳統(tǒng)的網(wǎng)絡(luò)安全里很重要的一環(huán)。
這例子的經(jīng)驗(yàn)是:
- 重要函數(shù)要采取多簽雕什。
- 要非常重視傳統(tǒng)的網(wǎng)絡(luò)安全技術(shù)缠俺,保護(hù)好私鑰。
參考資料
【1】https://medium.com/visorfinance/visor-beta-incident-report-1b2521b9266