以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads

Aave經歷驚魂一刻,這個漏洞差點釀成一場危機_AVE

Author:

Time:1900/1/1 0:00:00

12月3日,知名DeFi借貸協議Aave部署了V2版本,盡管我們并沒有被雇傭來查看其代碼,但在次日,我們還是對其進行了簡單審查。很快,我們就發現了一個影響AaveV1和V2版本合約的漏洞,并報告了該問題。在將我們的分析發送給Aave的一小時內,他們的團隊修復了該漏洞,以減輕潛在影響。如果該漏洞被利用,這一問題將破壞Aave,并影響外部DeFi合約中的資金。據悉,有5家不同的安全公司審查了Aave代碼庫,其中有一些使用了形式化驗證。然而,這個漏洞并沒有被這些公司注意到。這篇文章描述了這一問題,以及“該漏洞是如何逃過檢測”等其它的一些經驗教訓。此外,我們也在開發一種新的Slither檢測器,它可以識別這一漏洞,從而為以太坊社區提高安全性。漏洞

Aave使用了delegatecall代理模式,這一點我們在過去的文章中已經詳細討論過了。簡單來看,每個組件被分成了兩個合約:包含實現的邏輯合約,包含數據并使用delegatecall與邏輯合約進行交互的代理。在邏輯合約上執行代碼時,用戶與代理合約進行交互。這是delegatecall代理模式的簡化表示:

Aave社區發起“將MakerDAO的DSR集成到Aave V3以太坊池中”的溫度檢查:6月2日消息,Aave社區成員MarcZeller發起“將 MakerDAO 的 DSR 集成到 Aave V3 以太坊池中”的溫度檢查提案。此溫度檢查提議將 MakerDAO 的 Dai 儲蓄率 (DSR) 集成到 Aave V3 ETH 池中。這將通過將 sDAI(一種包含 DSR 收益的 ERC-4626 Vault 代幣)集成到 Aave 協議中來實現。通過 sDAI 將 DSR 集成到 Aave 中,就可以讓 Aave 流動性提供者從 DSR 利率中受益,而無需向 Aave DAI 借款人支付額外費用。在協議層面,當用戶存入 DAI 時,協議會將他們的 DAI 以 sDAI 的形式包裝起來,交付給用戶 aDAI。當用戶借入 DAI 時,協議將解包存儲的 sDAI,交付 DAI,并在 DAI 中累積債務金額。[2023/6/2 11:55:03]

Platypus正在制定補償計劃,或將在AAVE治理論壇發布恢復提案:2月19日消息,據官方推特,Platypus宣布正在制定用戶補償計劃,并提醒用戶目前不要進行實現損失等操作,此外,不必擔心清算問題,目前清算是暫停的,攻擊后的穩定費將不計算在內。

此外還表示,“目前,部分資金被困在AAVE中,我們正在探索一種可能收回這筆資金的方法,這將需要我們在AAVE的治理論壇上提出并通過一項恢復提案”。

此外,項目方一直在尋求各方協作,以恢復損失,但需要更多的時間來確認結果。此后,將做出進一步的公告。

此前報道,昨日,Platypus通知社區表示,其原生穩定幣USP遭遇黑客攻擊,正在制定一項全面的恢復計劃,并將及時向社區通報最新情況。[2023/2/19 12:15:57]

在Aave中,LendingPool是使用delegatecall代理的可升級組件。而我們發現的漏洞依賴于這些合約中的兩個功能:可以直接調用邏輯合約的函數,包括初始化函數;借貸池具有其自己的delegatecall功能;初始化可升級合約

Aave上0x57e0開頭巨鯨健康系數已經降至1.01,CRV貸款利率一度飆升至1502%:11月22日,行情數據顯示,CRV 價格已經突破 0.6 美元,24 小時上漲 19.4%,Aave 上 0x57e0 開頭巨鯨健康系數已經降至 1.04,CRV 貸款利率飆升至 1502%。[2022/11/22 7:57:17]

這種可升級模式的一個限制是,代理不能依賴邏輯合約的構造函數進行初始化。因此,狀態變量和初始設置必須在公共初始化函數中執行。在LendingPool中,初始化函數設置提供者地址:

initializer調節器防止多次調用initialize,它要求滿足以下條件為true:

孫宇晨從Aave借貸池中提取價值數十億美元的加密貨幣:根據區塊鏈數據,波場創始人孫宇晨已從DeFi借貸平臺Aave的借貸池中提取了價值數十億美元的加密貨幣。這導致大量流動性從該平臺移除,引發了更高的利率。此次撤出可能是由于對Yearn社區成員與Aave社區成員之間的對峙推文表示擔憂。此前,Yearn社區成員暗示Aave容易受到潛在攻擊。Yearn創始人Andre Cronje周五早些時候在推特上表示:“Aave很容易受到與周三影響Cream Finance的相同的攻擊”。(TheBlock)[2021/10/30 6:20:35]

以下:初始化允許在相同交易中多次調用調節器;isConstructor是代理執行代碼所需的;revision>lastInitializedRevision允許在合約升級時再次調用初始化函數;雖然它通過代理,預期可正常工作,但是也允許任何人直接在邏輯合約上調用initialize函數。一旦邏輯合約被部署:revision將為0x2(LendingPool.sol#L56);lastInitializedRevision將為0x0;而漏洞是:任何人都可以在LendingPool邏輯合約中設置_addressesProvider。任意delegatecall

AAVE突破450美元關口 日內跌幅為1.1%:火幣全球站數據顯示,AAVE短線上漲,突破450美元關口,現報450.0518美元,日內跌幅達到1.1%,行情波動較大,請做好風險控制。[2021/5/5 21:26:02]

LendingPool.liquidationCall直接委托調用由_addressProvider返回的地址:

這允許任何人啟動LendingPool邏輯合約,設置受控地址提供者,并執行任意代碼,包括selfdestruct。利用漏洞的場景:任何人都可以破壞借貸池邏輯合約。下面是一個簡化的視覺表示:

缺乏存在檢查

就問題本身而言,已經是很嚴重了,因為任何人都可以破壞邏輯合約,并阻止代理執行借貸池代碼。然而,在代理合約中使用OpenZeppelin會加劇這一問題的嚴重性。我們在2018年撰寫的一篇博客文章中強調,沒有代碼的合約委托調用能在不執行任何代碼的情況下返回成功。盡管我們最初發出警告,但OpenZeppelin并未在其代理合約中修復回退函數:

如果代理委托調用了一個已破壞的借貸池邏輯合約,則代理將返回成功,而不會執行任何代碼。由于Aave可以更新代理以指向另一個邏輯合約,因此這種漏洞利用不會持久。但在可利用此漏洞的時間范圍內,任何調用該借貸池的第三方合約,都將表現為某些代碼已被執行,但實際卻并未執行。這將打破很多外部合約的基本邏輯。受影響的合約

所有AToken:AToken.redeem調用pool.redeemUnderlying的代碼庫(MyV2CreditDelegation.sol);如果我們發現的問題被利用,則Aave之外的很多合約都會受到各種方式的影響。確定一份完整的名單是困難的,我們沒有試圖這樣做。這一事件凸顯了DeFi可組合性的潛在風險,以下是我們找到的一些受影響的合約:DefiSaverv1(AaveSaverProxy.sol)DefiSaverv2(AaveSaverProxyV2.sol)PieDao–pieoven(InterestingRecipe.sol#L66)修復及建議

幸運的是,在我們報告這個漏洞之前,還沒有人利用它。Aave對其兩個版本的借貸池調用了initialize函數,從而保證了合約的安全:LendingPoolV1:0x017788dded30fdd859d295b90d4e41a19393f423修復時間:2020年12月4日07:34:26PM+UTCLendingPoolV2:0x987115c38fd9fd2aa2c6f1718451d167c13a3186修復時間:2020年12月4日07:53:00PM+UTC長期而言,合約部署者應:在所有邏輯合約中添加一個構造函數以使initialize函數無效;檢查delegatecall代理fallback函數中是否存在合約;仔細檢查delegatecall陷阱,并使用slither-check-upgradeability;形式化驗證合約并不是防彈的

Aave的代碼庫經過了形式化驗證,區塊鏈領域的一個趨勢是,人們會認為安全特性是圣杯。用戶可能會嘗試根據這些特性的存在與否,對各種合約的安全性進行排序。我們認為這是危險的,它會導致錯誤的安全感。Aave形式化驗證報告列出了LendingPool視圖函數以及池操作的屬性。例如,已驗證的屬性之一是:

然而,如果邏輯合約遭到破壞,則該屬性可能會被破壞。那如何才能對此進行驗證?雖然我們無法訪問定理證明或所使用的設置,但很可能證明proof沒有考慮可升級性,或者prover不支持復雜的合約交互。這在代碼驗證中是很常見的。你可以通過對整體行為的假設來證明目標組件中的行為,但是在多合約設置中證明屬性是具有挑戰性和耗時的,因此必須進行權衡。形式化驗證技術很棒,但是用戶必須意識到它們覆蓋范圍很小,并且可能會錯過攻擊媒介。另一方面,自動化工具和人工審查可幫助開發人員以較少的資源來提升代碼庫的安全性。了解每種解決方案的優點和局限性,對開發人員和用戶而言都至關重要。當前的問題就是一個很好的例子,Slither可以在幾秒鐘內發現這個問題,受過訓練的專家可能會很快指出它,而要用安全特性來檢測,則需要付出很大的精力。總結

Aave做出了積極反應,并在發現問題后迅速修復了該漏洞。危機避免了,但最近遭受黑客攻擊的其他受害者卻沒有那么幸運。在部署代碼并將其暴露于對抗性環境之前,我們建議開發者:查看這里的檢查表和訓練;將Slither添加到你的持續集成管道中并調查其所有報告;給安全公司適當的時間來審查你的系統;請注意可升級性,至少請審查合約升級反模式,合約遷移的工作方式,以及使用OpenZeppelin的可升級性;我們希望通過分享此信息以及與此問題相關的Slither檢測器來防止類似的錯誤。

Tags:AVEAAVEDAIINGarweave幣價格預測aave幣價格今日行情DAIN Tokenhotcoinglobal交易所下載2022

比特幣最新價格
盤點:2020年加密貨幣領域的黑客攻擊、漏洞攻擊和盜竊事件_EFI

編者按:本文來自Cointelegraph中文,作者:MARTINYOUNG,Odaily星球日報經授權轉載.

1900/1/1 0:00:00
行情分析:BCH獨立上漲,行情分化_BTC

本文來自:哈希派,作者:哈希派分析團隊,星球日報經授權轉發。金色財經合約行情分析 | 市場行情低迷,日K多條均線粘合:據火幣BTC永續合約行情顯示,截至今日19:00(GMT+8),BTC價格暫.

1900/1/1 0:00:00
門頭溝又“狼來了”?但市場已經不是從前的那個市場_比特幣

12月15日又是門頭溝清算賠償提案到期的日子,門頭溝交易所中14.2萬枚BTC預計將分配給2014年受損失的用戶.

1900/1/1 0:00:00
Uniswap總交易量突破500億美元,創始人預估8年內或可沖擊1萬億美元_UNI

編者按:本文來自區塊律動BlockBeats,Odaily星球日報經授權轉載。12月15日,Uniswap創始人HaydenAdams在推特上表示,Uniswap歷史交易總量上周突破了500億美.

1900/1/1 0:00:00
?Warp Finance發生閃電貸攻擊了?黑客還沒撈著錢_SHIELD

今日上午6時34分,流動性LP代幣抵押借DeFi借貸協議WarpFinance遭遇閃電貸攻擊,被盜約780萬美元.

1900/1/1 0:00:00
OKEx重新定義交易,解讀統一賬戶的三種模式_okex

近期,OKEx憑借著多項利好接連釋放的強勢姿態,成為年底聲量最大的頭部交易平臺:先是全新的快樂星期五上線,每周五發放平臺當周合約手續費的20%,刷新了業內活動的回饋力度.

1900/1/1 0:00:00
ads