Euler Finans Olayı Otopsi
Bu makale, 13 Mart 08:50 UTC civarında meydana gelen Euler Finance olayını tarafsız bir şekilde analiz etmek ve temel nedeni belirlemek içindir.
Güvenlik Açığı Analizi
İstismar edilen güvenlik açığı, Euler Finance'in bağışların uygun bir hesap sağlık kontrolü yapılmadan gerçekleştirilmesine nasıl izin verdiğinden kaynaklanmaktadır.
Güvenlik açığı bulunan kod , Euler Ekosistemi boyunca birden çok değişiklik getiren eIP-14 ¹'de tanıtıldı . Kusur, uygulamada gerçekleştirilen ilk değişiklikte yatmaktadır EToken( EToken::donateToReservesözellik ²).
Modül içindeki mantık, Liquidationihlal edenin tüm borcunu geri ödemeye çalışacaktır, ancak sahip oldukları teminat beklenen geri ödeme getirisini karşılamıyorsa, sistem kullanıcının sahip olduğu teminatı ³ olarak kabul eder.
Bu kod bloğunun varsayımı, bir borçlunun mevcut teminatının yalnızca aşağıdaki durumlarda yetersiz olacağını belirtir:
Bu durum, borçlunun birden fazla teminatı olduğu ve bunların tümüne el konulması, ihlal edeni ödeme gücüne geri getirmediği zaman gerçekleşebilir.
ETokenBu güvenlik garantisi, kullanıcının bakiyelerini⁴ etkilemeden birimlerini bağışlayarak teminatlandırılmayan kaldıraç şeklinde “kötü borç” oluşturmasına izin veren bağış mekanizması tarafından desteklenmez DToken.
Çekirdek Problem
Euler Finance protokolü, kullanıcılarının aynı işlemde varlıkları basıp yatırarak yapay kaldıraç oluşturmasına izin verir EToken::mint. Bu mekanizma, Euler Finance protokolünün kendisi tarafından tutulan teminatı aşan belirteçlerin basılmasına izin verir.
Euler Finance tarafından eIP-14 ¹ ( ) ile tanıtılan bağış mekanizması, EToken::donateToReservesbir kullanıcının bakiyesini reserveBalanceişlem yaptıkları jetona bağışlamasına izin verir. Buradaki kusur, bağışı yapan hesapta herhangi bir sağlık kontrolü yapmamasıdır.
Bağış, kullanıcının DTokenözkaynak ( ) bakiyesi azalırken borcunun ( ) değişmemesine neden olacağından EToken, hesabının tasfiyesi, DTokenbirimlerin bir kısmının kullanıcıda kalmasına ve dolayısıyla şüpheli alacak oluşmasına neden olacaktır.
Yukarıdaki kusur, saldırganın aşırı kaldıraçlı bir pozisyon oluşturmasına ve yapay olarak "su altına" girmesine neden olarak aynı blokta kendisini tasfiye etmesine izin verir.
Kendi kendilerini tasfiye ettiklerinde , birimlerin önemli bir kısmının iskontolu olarak tahakkuk etmesine violatorneden olacak , “su üstünde” olacaklarını ve yalnızca alacakları teminatla eşleşen borca yüklenebileceklerini garanti eden yüzdeye dayalı bir indirim uygulanır. .liquidatorEToken
Nihai sonuç, Euler Protokolünün sahip olduğu yüzdeye dayalı tasfiye teşvikleri ⁵ nedeniyle, violatorönemli miktarda "kötü borç" ( DToken) ve liquidatorborçlarının aşırı teminatlandırılması ( DToken> ) ile a'dır. İşlemin kendisinde kanıtlandığı gibi⁶, saldırının tasfiyesi sırasında maksimum %20 indirim uygulandı.EToken
Saldırı Senaryosu
Saldırganın kendini tasfiye edebilmesi için, güvenlik açığından yararlanmak üzere en az iki sözleşme dağıtması gerekiyordu. Yaklaşık 2023–02–01 06:29:18 UTC'de gönderilen saldırı işlemi ⁶, daha önceki bir işlemde⁷ dağıtılan bir sözleşmeyi başlatır.
Bu sözleşme, saldırı işleminin yürütülmesi sırasında aşağıdaki adımları gerçekleştirir:
A. Birincil Sözleşme:
- AAVE V2'den 30 milyon DAI flaş kredisi alın
- Saldırı için iki sözleşmeyi (
violator⁸& ) devreye alınliquidator⁹ - 30 milyon DAI kredi bakiyesinin tamamını şuraya aktarın:
violator
ETokenEuler Finance DAI'sine 20 milyon DAI yatırın ve ~19,56 milyoneDAItoken alıneDAI~195,68meDAIve 200mdDAIbasan 200m yapay kaldıraç oluşturunviolatorviolatorkonumunda 10 dakika DAI ödeyerekdDAIbakiyelerinin 190 metreye çıkmasına neden oluneDAI~195,68meDAIve 200mdDAIdarp ederek başka bir 200m yapay kaldıraç oluşturunviolatoreDAIRezervine 100m bağış yapınEToken
eDAI: ~310,93mdDAI: 390m
Daha önce de belirtildiği gibi modül, kullanıcının teminat bakiyesine kadarLiquidation tasfiye edilecektir . Böylece , ~310,93m bakiyesinin tamamını , ancak bakiyesinin yalnızca bir kısmını alarak , Euler Finance⁵ tasfiye indirimi ile daha da kötüleşen .liquidatorviolatoreDAIdDAI
Sağlık seviyesinin ne kadar düşük olması nedeniyle bu pozisyona maksimum indirim uygulanacağından, token başına dönüşüm oranıyla liquidator~310,93 milyon bakiyeye tabi olacaktır . Bu sonuçta ~259,31 milyon sonrası ücret bakiyesi olarak değerlendirilecektir .eDAI1.25 eDAIdDAIdDAI
liquidatorSözleşme:
eDAI~310,93 milyon token ve ~259,31 milyondDAItoken alarak pozisyonu tasfiye edin- İlgili belirteçleri
DAIyakarak tüm belirteç rezervini geri çekineDAI
eDAIBu nedenle, itfa için kabaca başına 0,97'lik bir döviz kuru DAIkullanılır. Kullanıcı, tasfiye sırasında uygulanan maksimum %20 tasfiye indirimi nedeniyle zaten "su üstünde" olduğundan, sözleşme tarafından tutulan eDAI~38,9m'yi serbest bırakmak için gereken ~38m'yi "yakabilir".DAI
Sonuç olarak, saldırgan, işlemlerinin yürütülmesinden sonra aşağıdaki varlıkları elinde tutmayı başardı:
+~8,877,507 DAI=~8,779,854.423 USD
Varlığın mali etkisini değerlendirebilir ve kabaca 2023-03-13 12:42:00 UTC itibarıyla DAItahmini karı hesaplayabiliriz .~8,779,854.423 USD
Saldırı, diğer birçok varlığa kopyalandı. Bu nedenle, para yatırma uyarısı aşağıdaki ETokenvarlıklar için geçerlidir : DAI,WETH
Güvenlik Denetimi
Omniscia, Euler Finance protokolünün birden çok güvenlik denetimini gerçekleştirdi. Ancak söz konusu değişiklikler eIP-14'te tanıtıldı . Mesaj panosunun kendisinde kanıtlandığı gibi, Omniscia yalnızca burada halka açık olan Chainlink entegrasyon bileşeninin denetimini gerçekleştirdi .
EToken::donateToReserveBu güvenlik açığının temelinde yer alan özellik, Omniscia tarafından gerçekleştirilen herhangi bir denetim kapsamında değildi . Bu nedenle, güvenlik açığına neden olan kod, ekibimiz tarafından gerçekleştirilen herhangi bir denetim kapsamında olmamıştır.
donateToReserves işlevi, Temmuz 2022'de Sherlock ekibi tarafından denetlendi . Euler Finance ve Sherlock, istismar anında Euler'in Sherlock ile aktif bir kapsama politikası olduğunu doğruladı.
Çözüm
Saldırı, nihayetinde yanlış bir bağış mekanizmasından kaynaklandı ve bağışçının borç sağlığını hesaba katmadı, bu da onların DTokenasla tasfiye edilmeyecek, karşılıksız bir borç yaratmalarına izin verdi.
kaynaklar
- Euler İyileştirme Önerisi 14:https://forum.euler.finance/t/eip-14-contract-upgrades/305
- Euler İyileştirme Önerisi 14 Delta:https://euler-xyz.github.io/euler-contracts-upgrade-diffs/eip14/EToken.html
- Euler
LiquidatorTeminatı Varsayılan Mantığı:https://github.com/euler-xyz/euler-contracts/blob/fa9398728165676a5666939d8c34a7578d8e1919/contracts/modules/Liquidation.sol#L139-L151 - Euler
ETokenHatalı Bağış Mekanizması:https://github.com/euler-xyz/euler-contracts/blob/fa9398728165676a5666939d8c34a7578d8e1919/contracts/modules/EToken.sol#L356-L386 - Euler Tasfiye İndirimi:https://docs.euler.finance/euler-protocol/eulers-default-parameters#maximum-liquidation-discount
- Etherscan Saldırısı İşlem Bağlantısı:https://etherscan.io/tx/0xc310a0affe2169d1f6feec1c63dbc7f7c62a887fa48795d327d4d2da2d6b111d
- Birincil Sözleşmenin Etherscan Adresi:https://etherscan.io/address/0xebc29199c817dc47ba12e3f86102564d640cbf99
- İhlal Eden Sözleşmenin Etherscan Adresi:https://etherscan.io/address/0x583c21631c48d442b5c0e605d624f54a0b366c72
- Tasfiye Sözleşmesinin Etherscan Adresi:https://etherscan.io/address/0xa0b3ee897f233f385e5d61086c32685257d4f12b
- Euler
BaseLogicDöviz Kuru Hesaplaması:https://github.com/euler-xyz/euler-contracts/blob/fa9398728165676a5666939d8c34a7578d8e1919/contracts/BaseLogic.sol#L292-L296
2021'in başında blockchain siber güvenlik uzmanları tarafından kurulan omniscia.io , akıllı sözleşmeleri ve karmaşık merkezi olmayan protokolleri güvence altına almak için yılların deneyimini kullanan, tescilli araçlar ve denenmiş ve test edilmiş bir yaklaşım geliştiren Web3 güvenliğinde bir öncüdür. Aave, YFI, Lien, 1inch, Fetch, Compound, Synthetix ve diğerlerini sever.
Müşterilerimiz, ortaklarımız ve destekçilerimiz arasında L'Oréal, Polygon, AvaLabs, Morpho, Euler, CLabs, Olympus DAO, Fetch.ai, LimitBreak ve çok daha fazlası gibi önde gelen ekosistem oyuncuları yer alır.
Sosyal medyalarımızı takip ettiğinizden ve daha fazla güncelleme için bültenimize abone olduğunuzdan emin olun:
Twitter / LinkedIn / Bülten

![Bağlantılı Liste Nedir? [Bölüm 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































