22 Mayıs 2025'te, Sui üzerindeki en büyük yoğunlaştırılmış likidite DEX'i olan Cetus Protocol, birden fazla havuzdaki likiditeyi boşaltan ve tahminen ~223 milyon dolar kayba yol açan yıkıcı bir saldırıya maruz kaldı. Bu olay, 2025'in en büyük DeFi hack'i olarak tarihe geçmiş ve akıllı sözleşme güvenliğindeki kritik açıkları, özellikle sabit noktalı aritmetik konusundaki zafiyetleri gün yüzüne çıkarmıştır.
Saldırı, özel bir taşma önleme fonksiyonu olan checked_shlw()'daki bir açıktan kaynaklandı. Yanlış bir sabit ve karşılaştırma nedeniyle bu fonksiyon, sabit noktalı u256 matematiğinde kullanılan bir sola kaydırma işlemi gerçekleştirilmeden önce güvensiz koşulları tespit edemedi. Bu gözetim, belirli bir likidite için gereken token girişinin belirlenmesi gibi kritik delta hesaplamalarında en anlamlı bitlerin sessizce kesilmesine olanak tanıdı. Saldırgan, likidite miktarı ve tick/fiyat aralığı ayarları gibi parametreleri dikkatli bir şekilde manipüle ederek protokolü esasen 1 birim token gerektiren bir depozito hesaplamaya yönlendirirken aynı anda pozisyonuna muazzam miktarda likidite kaydettirebildi. Bu şişirilmiş pozisyon zincir üzerinde kaydedildiğinde, saldırgan likiditesini çekerek gerçek rezervleri geri aldı ve böylece havuzları etkili bir şekilde boşalttı.
Yoğunlaştırılmış Likiditevi ve Sabit Noktalı Matematiği Anlamak
Cetus Protocol, likidite sağlayıcılarının (LP'lerin) varlıkları yalnızca seçilen bir fiyat aralığında (bir tick aralığı) sunduğu gelişmiş bir yaklaşım olan yoğunlaştırılmış likidite piyasa yapıcı (CLMM) tasarımını kullanır. Likiditesi tekdüze dağıtan geleneksel AMM'lerin aksine, CLMM'ler LP'lerin sermayelerini belirli alt ve üst sınırlar arasında yoğunlaştırmasına olanak tanır. Bu tasarım sermaye verimliliğini önemli ölçüde artırır ancak şunlar arasında dönüşüm için kesin sabit noktalı matematike büyük ölçüde bağımlılık getirir:
- Bir pozisyona kaydedilen likidite miktarı.
- Yatırılması gereken veya çekilebilecek gerçek token miktarları.
Bir kullanıcı likidite eklediğinde, protokol mevcut fiyata ve seçilen aralığa göre token deltalarını (ne kadar temel token gerektiğini) hesaplar. Tersine, likidite kaldırıldığında, ters hesaplama pozisyonun çekme hakkına sahip olduğu varlık miktarını belirler.
Cetus Olayındaki temel güvenlik açığı bu karmaşık ilişkiyi istismar etti: eğer "ne kadar yatırmanız gerekiyor" hesaplaması çok küçük olacak şekilde manipüle edilebilirken pozisyon hâlâ büyük likidite ile kaydediliyorsa, bir saldırgan daha sonra bu kayıtlı likiditesi kaldırarak havuzdan gerçek rezervleri çekebilirdi. Bu, karmaşık matematiksel işlemler içeren DeFi protokollerinde yaygın bir saldırı vektörünü vurgular.
Kritik u256 Kaydırma Güvenlik Açığı
Bu büyük DeFi hack'inin temel nedeni, sabit noktalı u256 aritmetiğinde yaygın bir işlem olan sola kaydırmayı (tipik olarak 2^64 ölçekleme faktörü uygulamak için << 64) güvenli bir şekilde gerçekleştirmek üzere tasarlanmış bir yardımcı fonksiyondaki bir hataydı. Sui gibi Move tabanlı sistemlerde, taşma kontrolleri tüm işlemlerde tekdüze uygulanmaz, bu da bit kaydırma için manuel güvenlik önlemlerini kritik kılar.
Cetus, bir u256 değerinin sola 64 bit kaydırılmasının 256 bit sınırını aşıp aşmayacağını doğrulamak amacıyla checked_shlw() adlı bir taşma önleme yardımcısı uyguladı. Ancak yanlış bir sabit ve karşılaştırma nedeniyle bu kritik kontrol, reddedilmesi gereken belirli büyük girdiler için atlatılabiliyordu.
Özellikle, iki fiyat (sqrt_price_0 ve sqrt_price_1) arasındaki likidite sağlama için gereken temel token (Token A) miktarını hesaplamaktan sorumlu olan get_delta_a fonksiyonu checked_shlw() işlevini çağırır. Burada checked_shlw()'nin amacı, Token A hesaplamasındaki payın kaydırıldığında taşmamasını sağlamaktır.
Hata, checked_shlw()'nin 0xffffffffffffffff << 192 maskesini kullanan taşma kontrolünde yatıyordu (2^256 - 2^192'ye eşdeğer). Bu maske doğru eşik değerinden önemli ölçüde daha büyüktür. Sonuç olarak, 2^192'den büyük ancak bu hatalı maskeden küçük bir girdi değeri, sola kaydırma gerçekten u256 aralığını aşacak olsa bile kontrolü geçebiliyordu. Ardından gerçekleştirilen sola kaydırma sessiz bir kesmeyle sonuçlandı ve yanlış ve önemli ölçüde küçük bir değer üretti.
Aşağıdaki şekil, güvenlik açığı bulunan uygulama ile yamalanmış sürüm arasındaki farkı göstermektedir. Doğru sınır 0xffffffffffffffff << 192 gibi çok daha büyük bir değer değil, 1 << 192 olmalıydı. Saldırgan, minimum miktarda (örneğin 1 wei Token A) yatırım yaparken olağandışı büyük miktarda LP tokeni basmak için bu hatalı kontrolü ustaca istismar etti.

Cetus DeFi Hack'inin Anatomisi
Saldırgan aynı tekniği birden fazla havuzda uygulasa da temel saldırı akışı tutarlı kaldı. Bu karmaşık blok zinciri güvenlik ihlaline dahil olan adımları anlamak için belirli bir işlemi inceleyelim.
1. Flaş Kredi ile Havuz Fiyatını Manipüle Etme
Saldırı, saldırganın bir flaş kredi kullanarak hızla 10.024.321,28 haSUI edinmesiyle başladı. Ardından havuz fiyatını kasıtlı olarak 18.956.530.795.606.879.104'ten 18.425.720.184.762.886'ya düşürerek 5.765.124,79 SUI takas etti. Bu stratejik fiyat hareketi kritik öneme sahipti; zira saldırganın yoğunlaştırılmış likidite tasarımlarında doğal olan "tek taraflı / neredeyse tek token" likidite davranışından yararlanarak yalnızca minimal miktarda bir token gerektiren bir CLMM pozisyonu açmasına olanak tanıdı.

2. "Neredeyse Ücretsiz" Depozito ile Likidite Ekleme
Ardından saldırgan çok dar bir tick aralığı seçti (örn. 300000–300200) ve hedef likidityi tam olarak ayarladı. CLMM sistemlerinde token delta hesaplamaları aralık sınırlarındaki karekök fiyatlara büyük ölçüde bağlıdır ve dar aralıklar belirli ara değerleri küçük değişikliklere karşı son derece hassas kılabilir.
Bu parametreleri dikkatli bir şekilde ayarlayan saldırgan, dahili bir çarpmanın bir u256 ara değeri üretmesine neden oldu. Bu değer sola kaydırıldığında taşması gerekirdi, ancak hatalı checked_shlw() kontrolünü başarıyla geçti. Güvensiz kaydırma kaynaklı kesmenin doğrudan bir sonucu olarak, protokol gereken Token A miktarını etkili biçimde 1 birim olarak hesaplarken aynı anda pozisyonu muazzam miktarda likidite (yani 10.365.647.984.364.446.732.462.244.378.333.008) ile basıp kaydetti.

3. Gerçek Rezervleri Çıkarmak için Likiditeyii Kaldırma
Zincir üzerinde yanlış biçimde şişirilmiş likidite barındırıyor gibi görünen bir pozisyonla saldırgan, pozisyonun usulüne uygun finanse edilmiş gibi likiditesini kaldırıp varlıklarını çekmeye devam etti. Bu kritik adım, havuzun gerçek rezervlerinin sistematik olarak boşaltıldığı ve 223 milyon dolarlık büyük kayba yol açılan noktadır.
4. Birden Fazla Havuzda Tekrarlama
Saldırı unsurunun başarıyla doğrulanmasının ardından saldırgan, aynı iş akışını birden fazla havuzda hızla tekrarlayarak toplam kayıpları katlayıp bugüne kadarki en büyük DeFi hack'lerinden birini gerçekleştirdi.
Web3 için En İyi Güvenlik Denetçisi
Lansmandan önce tasarımı, kodu ve iş mantığını doğrulayın
Temel Çıkarımlar ve Blok Zinciri Güvenliği Dersleri
Cetus Olayı, özellikle karmaşık DeFi protokollerinde blok zinciri güvenliğinin ne denli çetrefilli zorluklar barındırdığının çarpıcı bir hatırlatıcısı olarak karşımıza çıkmaktadır. Temel neden, sabit noktalı matematik yolundaki bir u256 sola kaydırma etrafındaki hatalı bir taşma kontrolüydü. Bu durum, taşmış bir kaydırmanın yüksek bitleri sessizce kesmesine izin verdi; gerekli depozitoyu neredeyse sıfır gösterirken bir LP pozisyonunu devasa likidite ile kredilendirdi ve nihayetinde rezerv çıkarımını mümkün kıldı.
Akıllı Sözleşme Güvenliği için Öğrenilen Dersler:
- Aritmetikte Titizlik: Sabit noktalı aritmetikte kaydırmalar, ölçekleme faktörleri, yuvarlama ve sınır koşullarıyla uğraşırken son derece titiz olun. Bunlar kritik güvenlik açıklarının yaygın kaynaklarıdır.
- Kanıtlanmış Temel Unsurlar: Geçici yardımcı fonksiyonlar geliştirmek yerine kanıtlanmış güvenli matematik temel unsurlarının veya resmileştirilmiş değişmezlerin kullanımına öncelik verin. Özel yardımcılar gerekiyorsa, sabitlerini ve eşik değerlerini son derece dikkatli biçimde doğrulayın.
- Kapsamlı Test: Maksimum değerleri, sınır ticklerini ve düşmanca parametre kombinasyonlarını kapsayan kapsamlı uç durum ve özellik tabanlı testler uygulayın. Bu proaktif yaklaşım, dağıtımdan önce ince hataları ortaya çıkarabilir.
- Sürekli İzleme: Güçlü denetimlerle bile gerçek zamanlı izleme çözümleri kritik öneme sahiptir. BlockSec'in Phalcon Security gibi araçlar, şüpheli zincir üzeri aktiviteleri ve devam eden potansiyel saldırıları tespit edebilir; hayati bir son savunma hattı sunabilir.
Cetus Olayı, karmaşık DeFi hack'lerine karşı koruma sağlamak için titiz kod incelemesi, gelişmiş test metodolojileri ve sürekli zincir üzeri izlemeyi bir araya getiren çok katmanlı bir blok zinciri güvenliği yaklaşımının önemini bir kez daha gözler önüne sermektedir.
Referans
BlockSec Hakkında
BlockSec, tam kapsamlı bir blok zinciri güvenliği ve kripto uyum sağlayıcısıdır. Müşterilerin kod denetimi (akıllı sözleşmeler, blok zinciri ve cüzdanlar dahil) yapmasına, saldırıları gerçek zamanlı olarak engellemeye, olayları analiz etmeye, yasadışı fonları izlemeye ve protokoller ile platformların tam yaşam döngüsü boyunca AML/CFT yükümlülüklerini yerine getirmelerine yardımcı olan ürün ve hizmetler geliştirmektedir.
BlockSec, prestijli konferanslarda birden fazla blok zinciri güvenliği makalesi yayımlamış, DeFi uygulamalarının çeşitli sıfır gün saldırılarını raporlamış, 20 milyonun üzerinde doları kurtarmak için birden fazla hack'i engellemiş ve milyarlarca dolarlık kripto parayı güvence altına almıştır.
- Resmi web sitesi: https://blocksec.com/
- Resmi Twitter hesabı: https://twitter.com/BlockSecTeam



