Özet
Platypus Finance, Avalanche blok zinciri üzerinde bir AMM protokolüdür. Aşağıdaki şekilde üç kez saldırıya uğramıştır:
- 17 Şubat 2023'te, hatalı bir ödeme gücü kontrolü nedeniyle yaklaşık 9,05 milyon dolarlık toplam kayıpla bir saldırıya maruz kaldı. Bu miktarın $2,4 milyonu BlockSec'in yardımıyla kurtarıldı. Yaklaşık 380 bin token Aave sözleşmesinde takılı kaldı ve daha sonra iade edildi.
- 12 Temmuz 2023'te, stabilcoinler arasındaki fiyat farkının göz ardı edilmesi nedeniyle yaklaşık 50 bin dolar kayıpla saldırıya uğradı.
- 12 Ekim 2023'te, yaklaşık 2,2 milyon dolar kayıpla fiyat manipülasyonu saldırılarına maruz kaldı. İstismarcıyla müzakere edilmesinin ardından çalınan fonların %90'ı iade edildi.
Proje, tüm bu saldırılardan sağ çıkabildiği için şanslıdır. Bu üç istismarın analizimiz, dikkatli bir denetim veya daha aktif güvenlik önlemleri kullanılsaydı mantıksal açıkların önlenebileceğini göstermektedir.
Birinci Saldırı
Bu güvenlik olayını anlamak için birkaç akıllı sözleşmenin iş akışını anlamak gerekmektedir. Kabaca süreç şu şekildedir:
- Bir kullanıcı, LP olmak ve bir LP token almak için bir havuza token yatırabilir.
- LP token, ödül almak için MasterPlatypus'a stake edilebilir. Bu süreçte LP token, MasterPlatypus sözleşmesine aktarılır.
- LP token, varlık verimliliğini artırmak amacıyla diğer varlıkları ödünç almak için teminat olarak kullanılabilir.
Aşağıdaki şekil etkileşimleri göstermektedir.

Güvenlik Açığı Analizi
Güvenlik açığı, MasterPlatypus sözleşmesindeki emergencyWithdraw adlı bir fonksiyondan kaynaklanmaktadır. Acil durumlarda, bu fonksiyon MasterPlatypus sözleşmesindeki stake edilmiş LP tokenları çekmek için kullanılmalıdır. Bu fonksiyonda sözleşme, çekime izin vermek için kullanıcının Ödeme Gücüne Sahip olup olmadığını kontrol eder. Mantık, kullanıcıların herhangi bir kötü borcu olup olmadığını kontrol eder (yani teminatın borcu ödemek için kullanılıp kullanılamayacağını). Aksi takdirde kullanıcılar stake edilmiş LP tokenları çekebilir.
Ancak bu mantık hatalıdır. Kullanıcının Ödeme Gücüne Sahip olması yalnızca kullanıcının teminatının borcunu karşılayabileceği anlamına gelir. Ancak bu, kullanıcının stake edilmiş tokenları acil olarak çektikten sonra Ödeme Gücüne Sahip olmaya devam edip etmeyeceğini kontrol etmez. Bir saldırgan bu açığı kullanarak varlıkları ödünç alabilir ve ardından stake edilmiş LP tokenları da acil olarak çekebilir (borçları ödemeden). Immunefi'nin Blogundaki ayrıntılı analize bakınız.


Saldırı Analizi
Tüm saldırı sürecini göstermek için örnek olarak bir saldırı işlemi kullanıyoruz.
Adım 1: AAVE'den 44 milyon USDC Flashloan Ödünç Alma

Adım 2: LP-USDC Almak için Havuza 44 milyon USDC Yatırma

Adım 3: MasterPlatypus'a LP-USDC Yatırma

Adım 4: USP Ödünç Almak için LP-USDC'yi Teminat Olarak Kullanma

Adım 5: Saldırıyı Başlatmak için emergencyWithdraw Fonksiyonunu Çalıştırma
Saldırgan, USP borcunu ödemeden LP-USDC'yi ele geçirir.

Adım 6: USDC Almak için Havuzdan LP-USDC Çekme

Adım 7: Kâr Elde Etmek için USP Satma

Ancak kârlar saldırı sözleşmesinin içinde kalmaktadır. Aslında saldırgan, kâr elde etmek için takas işlemi için yeni bir alıcı adresi belirleyebilirdi.
BlockSec'in Kurtarma Operasyonu
Saldırganın kârları saldırı sözleşmesinin içinde bıraktığını fark ettik. Bunun yanı sıra saldırı sözleşmesinin içinde varlıkları çekmek için herhangi bir mantık bulunmuyordu. Ancak sözleşmenin içindeki varlıkların bir kısmını çekmek için kullanılabilecek saldırı sözleşmesinde bir güvenlik açığı tespit ettik.
Özellikle, flashloan geri çağırma fonksiyonunda erişim kontrolü bulunmaktadır; bu da herkesin bu geri çağırma fonksiyonunu çağırabileceği anlamına gelir. Bu aynı zamanda pek çok MEV botunun saldırıya uğramasının temel nedenidir.
Bunun yanı sıra, geri çağırma fonksiyonunun içinde saldırgan sözleşmesi USDC tokenını Platypus finance havuz sözleşmesine onaylamaktadır. Ve bu havuz sözleşmesi yükseltilebilir niteliktedir!

Önceki iki unsuru birleştirerek saldırı sözleşmesindeki USDC'yi şu yöntemle kurtarabildik:
- Platypus finance havuz sözleşmesini, sözleşme içindeki USDC'yi çekme mantığını içerecek şekilde yükseltme
- Saldırı sözleşmesinin geri çağırmasını, USDC'yi havuz sözleşmesine onaylamak için çalıştırma
- Havuz sözleşmesinin herhangi bir fonksiyonun yerini alabilmesi (saldırı sözleşmesi tarafından yürütülecek olan) ile USDC'yi saldırı sözleşmesinden aktarma (saldırı sözleşmesi USDC'yi havuz sözleşmesine onayladığından).
İşte 2,4 milyon USDC'yi kurtaran işlem.

Diğer İki Saldırı
Diğer iki saldırı hakkında daha fazla ayrıntı için aşağıdaki bağlantılara bakınız.
-
Saldırı-II: 11 Temmuz 2023, Protokol USDC ile USDT arasındaki oranın 1:1 olduğunu varsaymaktadır; bu durum piyasa dalgalanmalarından saparak hatalı bir çekme mantığına yol açmaktadır. Bir saldırı işlemine bağlantı. Birkaç tane daha vardır.
-
Saldırı-III: 12 Ekim 2023, takas fiyatını etkileyen manipüle edilmiş
cashveliabilitynedeniyle. [Birinci saldırı işlemi | İkinci saldırı işlemi]
Özet
Üç saldırı, protokoldeki farklı güvenlik açıklarından yararlandı. Bazı diğer satıcılar protokolü denetlemiş olsa da saldırgan yine de açığı buldu ve protokolü başarıyla istismar etti. Neyse ki bazı varlıklar kurtarıldı, ancak her zaman şanslı olmayı bekleyemeyiz. Protokolü ve kullanıcı varlıklarını güvence altına almak için saldırı izleme ve otomatik müdahale dahil olmak üzere daha fazla güvenlik önlemi benimsenmelidir.
Bu serideki diğer makaleleri okuyun:
- Giriş: 2023'ün En İyi On "Müthiş" Güvenlik Olayı
- #1: Flashbots Relay'deki Güvenlik Açıklarını İstismar Ederek MEV Botlarını Ele Geçirme
- #2: Euler Finance Olayı: 2023'ün En Büyük Saldırısı
- #3: KyberSwap Olayı: Son Derece İnce Hesaplamalarla Yuvarlama Hatalarının Ustalıklı İstismarı
- #4: Curve Olayı: Derleyici Hatası Masum Kaynak Koddan Hatalı Bytecode Üretiyor
- #6: Hundred Finance Olayı: Savunmasız Çatallanmış Protokollerde Hassasiyetle İlgili İstismarlar Dalgasını Hızlandırma
- #7: ParaSpace Olayı: Sektörün En Kritik Saldırısını Engellemek için Zamana Karşı Yarış
- #8: SushiSwap Olayı: Beceriksiz Bir Kurtarma Girişimi Bir Dizi Taklitçi Saldırıya Yol Açıyor
- #9: MEV Bot 0xd61492: Dahiyane Bir İstismarda Avcıdan Avya Dönüşüm
- #10: ThirdWeb Olayı: Güvenilir Modüller Arasındaki Uyumsuzluk Güvenlik Açığını Ortaya Çıkarıyor



