Saldırgan öncelikle bir borç verme platformundan 3000 adet Dai'lik flaş kredi aldı, ardından iki sözleşme dağıttı: biri borç verme, diğeri tasfiye için.
Saldırgan, ödünç aldığı 20 milyon Dai'yi Euler Protocol sözleşmesine teminat olarak yatırarak yaklaşık 19.5 milyon eDAI elde etti.
Euler Protocol'un 10 kat kaldıraç özelliğini kullanarak, saldırgan 1.956 milyon eDAI ve 2 milyon dDAI borç aldı.
Saldırgan, kalan 10 milyon DAI ile bir kısmını geri ödeyip karşılık gelen dDAI'yi imha eder ve ardından tekrar 195.6 milyon eDAI ve 200 milyon dDAI borç alır.
Anahtar adımlar: Saldırgan donateToReserves fonksiyonunu çağırarak geri ödeme miktarının 10 katı olan 1 milyon eDAI bağışladı. Ardından, saldırgan tasfiye fonksiyonunu tetikleyerek 3.1 milyon dDAI ve 2.5 milyon eDAI elde etti.
Son olarak, saldırgan 38.9 milyon Dai çekti, 30 milyon Flaş Krediler geri ödendi ve sonunda yaklaşık 8.87 milyon Dai kar elde edildi.
Açıkların Nedenlerinin Analizi
Bu saldırının temel sorunu donateToReserves fonksiyonunda yatıyor. Diğer kritik fonksiyonlarla (örneğin mint fonksiyonu) karşılaştırıldığında, donateToReserves fonksiyonu hayati bir adımı atlamış: checkLiquidity.
checkLiquidity fonksiyonunun amacı RiskManager modülünü çağırarak kullanıcıyı kontrol etmektir, böylece Etoken'in Dtoken'den büyük olduğundan emin olunarak kullanıcının likidite durumu güvence altına alınır. Normalde, her işlemde bu kontrol yapılması gerekir. Ancak, donateToReserves fonksiyonu bu adımı atladığı için saldırganlar önce kendilerini tasfiye edilebilir bir duruma getirebilir ve ardından tasfiye işlemini tamamlayabilir.
Güvenlik Önerileri
Bu tür açıklar için, proje sahiplerinin lansman öncesinde kapsamlı bir güvenlik denetimi yapmalarını kesinlikle öneriyoruz, böylece sözleşmenin güvenliğini sağlarız. Özellikle borç verme projeleri için aşağıdaki birkaç noktaya dikkat edilmesi gerekmektedir:
Fon İade Mekanizmasının Bütünlüğü
Likidite Tespiti'nin Kapsamı
Borç Tasfiye Sürecinin Güvenliği
Sadece sıkı güvenlik denetimleri ve kapsamlı risk değerlendirmeleri ile benzer güvenlik olaylarının gerçekleşme olasılığını en aza indirmek ve projelerin ile kullanıcıların fon güvenliğini sağlamak mümkündür.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
15 Likes
Reward
15
3
Share
Comment
0/400
AirdropChaser
· 21h ago
又 insanları enayi yerine koymak又 insanları enayi yerine koymak 天天被割
View OriginalReply0
DefiSecurityGuard
· 21h ago
*of* başka bir gün, başka bir protokol temel donateToReserves açığı ile rekt... bunu aylar önce söyledim aslında. kritik hatırlatma: HER ZAMAN likidite kontrollerini temizleyin lütfen. bu amatör hatalar 9 haneleri kaybettirmeye devam ediyor smh.
Euler Finance, 1.97 milyon dolarlık flaş kredi saldırısı nedeniyle donateToReserves fonksiyonundaki açık bir sorun oldu.
Euler Finance açık güvenlik olayı analizi: Flaş kredi̇ saldirisi 1.97 milyar dolar kayba yol açtı
2023年3月13日,Euler Finance项目遭遇了一次重大安全事件。根据链上监控数据显示,由 dolayıEtoken中的donateToReserves函数存在流动性检查漏洞,项目遭受了 Flaş Krediler saldırısı.攻击者通过多次操作不同币种,最终造成了高达1.97亿美元的巨额损失,涉及6种代币。目前,这笔资金仍然留存在攻击者的账户中。
Saldırı Süreci Analizi
Saldırgan öncelikle bir borç verme platformundan 3000 adet Dai'lik flaş kredi aldı, ardından iki sözleşme dağıttı: biri borç verme, diğeri tasfiye için.
Saldırgan, ödünç aldığı 20 milyon Dai'yi Euler Protocol sözleşmesine teminat olarak yatırarak yaklaşık 19.5 milyon eDAI elde etti.
Euler Protocol'un 10 kat kaldıraç özelliğini kullanarak, saldırgan 1.956 milyon eDAI ve 2 milyon dDAI borç aldı.
Saldırgan, kalan 10 milyon DAI ile bir kısmını geri ödeyip karşılık gelen dDAI'yi imha eder ve ardından tekrar 195.6 milyon eDAI ve 200 milyon dDAI borç alır.
Anahtar adımlar: Saldırgan donateToReserves fonksiyonunu çağırarak geri ödeme miktarının 10 katı olan 1 milyon eDAI bağışladı. Ardından, saldırgan tasfiye fonksiyonunu tetikleyerek 3.1 milyon dDAI ve 2.5 milyon eDAI elde etti.
Son olarak, saldırgan 38.9 milyon Dai çekti, 30 milyon Flaş Krediler geri ödendi ve sonunda yaklaşık 8.87 milyon Dai kar elde edildi.
Açıkların Nedenlerinin Analizi
Bu saldırının temel sorunu donateToReserves fonksiyonunda yatıyor. Diğer kritik fonksiyonlarla (örneğin mint fonksiyonu) karşılaştırıldığında, donateToReserves fonksiyonu hayati bir adımı atlamış: checkLiquidity.
checkLiquidity fonksiyonunun amacı RiskManager modülünü çağırarak kullanıcıyı kontrol etmektir, böylece Etoken'in Dtoken'den büyük olduğundan emin olunarak kullanıcının likidite durumu güvence altına alınır. Normalde, her işlemde bu kontrol yapılması gerekir. Ancak, donateToReserves fonksiyonu bu adımı atladığı için saldırganlar önce kendilerini tasfiye edilebilir bir duruma getirebilir ve ardından tasfiye işlemini tamamlayabilir.
Güvenlik Önerileri
Bu tür açıklar için, proje sahiplerinin lansman öncesinde kapsamlı bir güvenlik denetimi yapmalarını kesinlikle öneriyoruz, böylece sözleşmenin güvenliğini sağlarız. Özellikle borç verme projeleri için aşağıdaki birkaç noktaya dikkat edilmesi gerekmektedir:
Sadece sıkı güvenlik denetimleri ve kapsamlı risk değerlendirmeleri ile benzer güvenlik olaylarının gerçekleşme olasılığını en aza indirmek ve projelerin ile kullanıcıların fon güvenliğini sağlamak mümkündür.