Ana Sayfa
AI AI
Flaş
Derinlik
Etkinlikler
BlockBeats Pro
Daha Fazla
Finans
Özel
Blok Zinciri Ekosistemi
Giriş
Podkastlar
Veri
OPRR
#
BTC
$96,000
5.73%
ETH
$3,521.91
3.97%
HTX
$0.{5}2273
5.23%
SOL
$198.17
3.05%
BNB
$710
3.05%
lang
简体中文
繁體中文
English
Tiếng Việt
한국어
日本語
ภาษาไทย
Türkçe

SlowMist: Cetus hırsızlığının analizi, 1 token 230 milyon ABD doları kaldıraç sağladı

Bu makaleyi okumak için 17 Dakika
Bu son derece karmaşık bir matematiksel saldırıdır. Saldırgan, hassas hesaplamalar yoluyla belirli parametreleri seçti ve checked_shlw fonksiyonundaki açığı kullanarak 1 token karşılığında milyarlarca dolar değerinde likidite elde etti.
Orijinal başlık: "SlowMist: Cetus'tan 230 milyon dolarlık hırsızlığın analizi"
Orijinal yazar: Victory, Lisa, SlowMist Technology


Arka plan


22 Mayıs'ta, topluluk haberlerine göre, SUI ekosistemindeki likidite sağlayıcısı olan Cetus'un saldırıya uğradığından şüphelenildi, likidite havuzunun derinliği önemli ölçüde düştü ve Cetus'taki birden fazla token ticaret çifti düştü. Tahmini zarar tutarının 230 milyon doları aştığı belirtiliyor. Daha sonra Cetus, "Protokolümüzde bir olay tespit edildi. Güvenlik nedeniyle akıllı sözleşme geçici olarak askıya alındı. Şu anda ekip olayı araştırıyor. Yakında daha detaylı bir araştırma bildirisi yayınlayacağız." şeklinde bir duyuru yayınladı.


Olayın ardından SlowMist güvenlik ekibi analize müdahale ederek güvenlik uyarısı yayınladı. Aşağıda saldırı yöntemleri ve para transferlerine ilişkin detaylı analiz yer almaktadır.


(https://x.com/CetusProtocol/status/1925515662346404024)


İlgili bilgiler


Saldırı işlemlerinden biri:https://suiscan.xyz/mainnet/tx/DVMG3B2kocLEnVMDuQzTYRgjwuuFSfciawPvXXheB3x



Saldırı Analizi


Bu olayın özü, saldırganın taşmaya neden olacak ancak algılamayı atlatacak parametreleri dikkatlice oluşturması ve nihayetinde çok az miktarda token kullanarak çok büyük miktarda likit varlıkla takas etmesidir. Aşağıda belirli adımların bir analizi yer almaktadır:


(Saldırı sırası diyagramı)


1. Saldırgan ilk olarak flaş kredi yoluyla 10.024.321,28 haSUI ödünç aldı ve havuz fiyatının 18.956.530.795.606.879.104'ten 18.425.720.184762886'ya düşmesine, yani %99,90 oranında bir fiyat düşüşüne neden oldu.



2. Saldırgan, likidite pozisyonu açmak için son derece dar bir fiyat aralığını dikkatlice seçmiştir:


Tick alt limiti: 300000 (fiyat: 60.257.519.765.924.248.467.716.150)

Tick üst limiti: 300200 (fiyat: 60.863.087.478.126.617.965.993.239)

Fiyat aralığı genişliği: sadece %1,00496621


3. Daha sonra saldırının özü geliyor. Saldırgan 10.365.647.984.364.446.732.462.244.378.333.008 birim büyük likidite eklediğini iddia ediyor, ancak bir açık nedeniyle sistem yalnızca 1 token A topladı.



Saldırganın 1 token ile büyük likiditeyi nasıl değiştirebildiğini analiz edelim. Temel sebep, check_shlw'deki get_delta_a fonksiyonunda bir taşma algılama atlama güvenlik açığının bulunmasıdır. Saldırgan bunu fırsat bilip, sistemin aslında ne kadar haSUI eklenmesi gerektiği hesaplamasında ciddi bir sapmaya sebep oldu. Taşma tespit edilemediği için sistem gereken haSUI miktarını yanlış hesapladı ve saldırganın çok az sayıda token ile büyük miktarda likit varlığı ele geçirerek saldırıyı gerçekleştirmesine olanak tanıdı.


Sistem, bu kadar büyük bir likidite eklemek için ne kadar haSUI'ye ihtiyaç olduğunu hesapladığında:



Buradaki anahtar nokta, checked_shlw fonksiyonunun uygulanmasının ciddi şekilde hatalı olmasıdır. Aslında, 0xffffffffffffffff <<192'den küçük herhangi bir giriş değeri taşma kontrolünü atlayacaktır. Ancak bu değerler 64 bit sola kaydırıldığında, sonuç u256 gösterim aralığını aşmakta ve yüksek dereceli veriler kesilerek teorik değerden çok daha küçük bir sonuç elde edilmektedir. Bu durum sistemin sonraki hesaplamalarda ihtiyaç duyacağı haSUI miktarını olduğundan düşük tahmin etmesine neden olur.



· Yanlış maske: 0xffffffffffffffff << 192 = çok büyük sayı (yaklaşık 2^256-2^192)

· Neredeyse tüm girdiler bu maskeden daha küçüktür ve taşma algılamasını atlar

· Gerçek sorun: n >= 2^192 olduğunda, n<< 64, u256 aralığını aşacak ve kesilecektir


Saldırganın ara değer likiditesi * sqrt_price_diff = 6277101735386680763835789423207666908085499738337898853712:


· Hata maskesinden daha az, taşma algılamayı atlayarak

· Ancak, 64 bit sola kaydırıldıktan sonra, u256'nın maksimum değerini aşacak ve fazlalık kısmın kesilmesine neden olacaktır

· Son hesaplama sonucu yaklaşık olarak 1'den küçüktür, ancak yukarı yuvarlandığı için bölüm 1'e eşittir



4. Son olarak saldırgan likiditeyi kaldırdı ve büyük miktarda token geliri elde etti:


· İlk kaldırma: 10.024.321,28 haSUI

· İkinci kaldırma: 1 haSUI

· Üçüncü kaldırma: 10.024.321,28 haSUI



5. Saldırgan flash krediyi iade ederek yaklaşık 10.024.321,28 haSUI ve 5.765.124,79 SUI net kar elde etti ve saldırı tamamlandı.


Proje ekibinin onarım çalışmaları


Saldırının ardından Cetus bir onarım yaması yayınladı. Belirli onarım kodu için lütfen şuraya bakın: https://github.com/CetusProtocol/integer-mate/pull/7/files#diff-c04eb6ebebbabb80342cd953bc63925e1c1cdc7ae1fb572f4aad240288a69409.


Onarılan checked_shlw işlevi aşağıdaki gibidir:



Onarım talimatları: Hatalı maske düzeltildi 0xffffffffffffffff << 192 doğru eşiğe 1 << 192 n > değerinden yargı koşulu düzeltildi mask to n >= mask 64 bit'lik sola kaydırmanın taşmaya neden olabileceği durumlarda taşma bayrağının doğru bir şekilde algılanıp döndürülebildiğinden emin olun


MistTrack analizi


Analize göre saldırgan 0xe28b50cef1d633ea43d3296a3f6b67ff0312a5f1a99f0af753c85b8b5de8ff06, SUI, vSUI, USDC ve diğer varlıklar dahil olmak üzere yaklaşık 230 milyon ABD doları kar elde etti.



Saldırganın Gaz Ücretini iki gün önce hazırladığını ve ardından saldırıdan önce bir girişimde bulunduğunu ancak başarısız olduğunu tespit ettik:



Kâr elde ettikten sonra saldırgan, USDC, SOL ve suiETH gibi fonların bir kısmını Sui Bridge, Circle, Wormhole ve Mayan gibi çapraz zincir köprüleri aracılığıyla 0x89012a55cd6b88e407c9d4ae9b3425f55924919b EVM adresine aktardı:



Bunlardan 5.2341 WBNB, BSC adresine aktarıldı 0x89012a55cd6b88e407c9d4ae9b3425f55924919b: Saldırgan daha sonra Suilend'e 10 milyon dolar değerinde varlık yatırdı: Saldırgan ayrıca 24.022.896 SUI'yi henüz dışarı aktarılmamış olan 0xcd8962dad278d8b50fa0f9eb0186bfa4cbdecc6d59377214c88d0286a0ac9562 adlı yeni bir adrese aktardı: Neyse ki Cetus'a göre, SUI Vakfı ve diğer ekosistem üyeleriyle işbirliği içinde, SUI'de çalınan 162 milyon dolarlık fon başarıyla donduruldu.


(https://x.com/CetusProtocol/status/1925567348586815622)


Daha sonra, zincir üstü kara para aklama önleme ve izleme aracı MistTrack'i kullanarak, zincirler arası fon alan EVM'deki 0x89012a55cd6b88e407c9d4ae9b3425f55924919b adresini analiz ediyoruz. Bu adres BSC'de 5.2319 BNB aldı ve henüz transfer etmedi: Bu adres Ethereum'da 3.000 USDT, 40.88 milyon USDC, 1.771 SOL ve 8.130.4 ETH aldı. Bunlardan USDT, USDC ve SOL, coW Swap, ParaSwap vb. aracılığıyla ETH ile değiştirildi: Ardından adres, henüz dışarı aktarılmamış olan 0x0251536bfcf144b88e1afa8fe60184ffdb4caf16 adresine 20.000 ETH aktardı: Bu adresin Ethereum'daki mevcut bakiyesi 3.244 ETH: MistTrack, yukarıda belirtilen adresleri kötü amaçlı adres kütüphanesine ekledi. Aynı zamanda adres bakiyelerini de izlemeye devam edeceğiz.


Özet


Bu saldırı, matematik taşma güvenlik açıklarının gücünü göstermektedir. Saldırgan, hassas hesaplamalar yoluyla belirli parametreleri seçti ve checked_shlw fonksiyonundaki açığı kullanarak 1 token karşılığında milyarlarca dolar değerinde likidite elde etti. Bu son derece karmaşık bir matematiksel saldırıdır. SlowMist güvenlik ekibi, geliştiricilerin akıllı sözleşme geliştirme sürecinde tüm matematiksel fonksiyonların sınır koşullarını sıkı bir şekilde doğrulamasını öneriyor.


Orijinal bağlantı


BlockBeats Resmi Topluluğuna Katılın:

Telegram Abonelik Grubu: https://t.me/theblockbeats

Telegram Sohbet Grubu: https://t.me/BlockBeats_App

Twitter Resmi Hesabı: https://twitter.com/BlockBeatsAsia

举报 Düzeltme/Rapor
Kütüphane Seç
Kütüphane Ekle
İptal
Tamamla
Kütüphane Ekle
Sadece kendime görünür
Herkese Açık
Kaydet
Düzeltme/Rapor
Gönder