Giriş
JaredFromSubway MEV botu, Ethereum blockchain üzerinde Maximal Extractable Value (MEV) stratejileri uygulayan otomatik ticaret botlarından biridir. MEV, blok zincirindeki boşlukları (arbitraj fırsatları, likidite değişimleri vb.) değerlendirerek kâr elde etme stratejisidir. Ancak, 2023 yılında gerçekleşen saldırıda bot, 15 milyon dolarlık kayıp yaşadı. Bu saldırının temelinde, saldırganların botun fırsat algılama mantığını manipüle etmeleri yatıyordu. Bu makalede, saldırının teknik detaylarını, botun nasıl hedef alındığını ve gelecekte benzer saldırılardan nasıl korunabileceğinizi adım adım inceleyeceğiz.
Saldırının Teknik Detayları
Saldırının Arka Planı
MEV botları, Ethereum ağındaki blok üreticileri (validatörler) tarafından oluşturulan bloklardaki gizli fırsatları tespit eder. Bu fırsatlar genellikle:
- Arbitraj: Farklı borsalardaki fiyat farklarından yararlanma.
- Likidite Değişimleri: Uniswap gibi DEX'lerdeki likidite havuzlarındaki fiyat değişiklikleri.
- Sandviç Saldırıları: Bir işlemi, fiyatı manipüle ederek avantajlı konuma getirme.
JaredFromSubway botu da bu fırsatları otomatik olarak tespit edip işlem yapıyordu. Ancak saldırganlar, botun algılama mantığını sahte fırsatlar oluşturarak manipüle ettiler. Bu sahte fırsatlar, botun gerçek olmayan işlemler yapmasına neden oldu ve sonuçta 15 milyon dolarlık kayıp yaşandı.
Saldırının Adım Adım İşleyişi
-
Sahte Fırsatların Oluşturulması:
Saldırganlar, Ethereum ağında önceden hazırlanmış sahte likidite havuzları oluşturdu. Bu havuzlar, gerçek piyasa koşullarını taklit eden fiyat değişiklikleriyle dolduruldu. Örneğin, bir tokenin fiyatı gerçekte 1 DAI iken, saldırganlar tarafından 1.1 DAI olarak gösterildi.
-
Botun Algılama Mantığının Manipüle Edilmesi:
JaredFromSubway botu, fırsatları tespit etmek için fiyat değişikliklerini ve likidite değişikliklerini analiz eden bir algoritma kullanıyordu. Saldırganlar, bu algoritmanın yanlış pozitif sonuçlar üretmesine neden oldular. Bot, sahte fırsatları gerçek fırsatlar olarak algıladı ve işlem yapmaya başladı.
-
Botun Sahte İşlemler Yapması:
Bot, sahte fırsatları değerlendirmek için gerçek kriptoparalarını harcayarak işlemler yaptı. Bu işlemler, Ethereum ağında onaylandı ve sonuçta botun cüzdanından 15 milyon dolar değerinde kriptopara çalındı. Saldırganlar, bu parayı doğrudan kendi cüzdanlarına aktardılar.
Saldırının Sonuçları
Bu saldırı, MEV botlarının ne kadar savunmasız olabileceğini gösterdi. JaredFromSubway botu, sadece birkaç saat içinde büyük bir kayıp yaşadı ve bu durum, Ethereum ekosistemindeki güvenlik açıklarını yeniden gündeme getirdi. Ayrıca, saldırı sonrasında botun geliştiricileri, sistemlerini kapatmak zorunda kaldılar ve kullanıcılardan gelen güven kaybı nedeniyle projeye olan ilgi azaldı.
Neden Bu Saldırı Mümkün Oldu?
Botun Tasarımındaki Zayıflıklar
JaredFromSubway botunun saldırıya uğramasının temel nedenleri şunlardır:
-
Güvensiz Fırsat Algılama:
Bot, fırsatları tespit etmek için yalnızca fiyat değişikliklerine ve likidite değişikliklerine dayanıyordu. Bu yaklaşım, sahte fırsatların tespit edilmesini zorlaştırıyordu. Gerçek bir fırsatla sahte bir fırsat arasındaki farkı ayırt etmek için daha gelişmiş algoritmalar gerekliydi.
-
İşlem Onay Sürecindeki Güvenlik Eksiklikleri:
Bot, işlemleri onaylamadan önce çift doğrulama mekanizmaları kullanmıyordu. Bu durum, saldırganların botun işlemlerini manipüle etmelerini kolaylaştırdı.
-
Merkezi Olmayan Doğrulama Eksikliği:
Bot, Ethereum ağındaki diğer düğümlerden (nodes) bağımsız olarak çalışıyordu. Bu durum, saldırganların botun işlemlerini gizlice değiştirmelerine olanak tanıdı.
Ethereum Ağındaki Güvenlik Açıkları
Ethereum ağındaki bazı temel özellikler de bu saldırının mümkün olmasına katkıda bulundu:
-
Önceden Tahmin Edilebilir Blok Üretimi:
Ethereum ağında blok üretimi, önceden tahmin edilebilir bir şekilde gerçekleşir. Bu durum, saldırganların botun işlemlerini manipüle etmelerini kolaylaştırdı.
-
MEV Koruma Mekanizmalarının Eksikliği:
Ethereum ağında, MEV botlarının saldırılara karşı korunmasını sağlayacak standart koruma mekanizmaları bulunmamaktadır. Bu durum, botların savunmasız kalmasına neden oldu.
Çözüm Adımları: Benzer Saldırılardan Nasıl Korunabilirsiniz?
1. Gelişmiş Fırsat Algılama Algoritmaları Kullanın
Botunuzun fırsatları tespit etmek için kullandığı algoritmaları güncelleyin. Örneğin:
-
Çoklu Veri Kaynaklarını Kullanın:
Fırsatları tespit etmek için yalnızca bir kaynağa güvenmek yerine, birden fazla DEX ve CEX'ten gelen verileri kullanın. Bu sayede sahte fırsatların tespit edilmesi kolaylaşır.
-
Makine Öğrenimi Modelleri Kullanın:
Botunuzun fırsatları tespit etmek için makine öğrenimi modelleri kullanmasını sağlayın. Bu modeller, gerçek ve sahte fırsatlar arasındaki farkı daha iyi ayırt edebilir.
// Örnek: Makine öğrenimi modeli ile fırsat tespiti import pandas as pd from sklearn.ensemble import RandomForestClassifier # Veri setini yükle data = pd.read_csv('mev_opportunities.csv') # Modeli eğit model = RandomForestClassifier() model.fit(data[['price_change', 'liquidity_change', 'volume']], data['is_real']) # Yeni bir fırsatın gerçek olup olmadığını tahmin et new_opportunity = [[0.5, 1000, 5000]] # Örnek: %50 fiyat değişikliği, 1000 likidite değişikliği, 5000 hacim prediction = model.predict(new_opportunity) print("Fırsat gerçek mi?", "Evet" if prediction[0] == 1 else "Hayır")
2. Çift Doğrulama Mekanizmaları Uygulayın
Botunuzun her işleminden önce çift doğrulama mekanizmaları kullanın. Örneğin:
-
İnsan Onayı:
Önemli işlemler için bir yönetici veya geliştiricinin onayını gerektirin.
-
Çoklu İmza Cüzdanları:
Botunuzun fonlarını yönetmek için çoklu imza cüzdanları kullanın. Bu sayede, herhangi bir işlem yalnızca birden fazla kişinin onayıyla gerçekleşebilir.
// Örnek: Çoklu imza cüzdanı kullanımı (Gnosis Safe) const { Safe } = require('@gnosis.pm/safe-core-sdk'); // Güvenli cüzdan oluştur const safe = await Safe.create({ ethAdapter, safeAddress }); // İşlemi imzala const tx = await safe.createTransaction({ to: '0x...', value: '1000000000000000000', // 1 ETH data: '0x...', }); // İşlemi onayla (minimum 2/3 imza gerekiyor) await safe.approveTransaction(tx);
3. Ağı Dinleyin ve Gerçek Zamanlı Koruma Sağlayın
Botunuzun Ethereum ağındaki olaylara gerçek zamanlı olarak yanıt vermesini sağlayın. Örneğin:
-
Blok Dinleyicileri Kullanın:
Ethereum ağındaki yeni blokları dinleyerek, gerçek fırsatları tespit edin. Bu sayede sahte fırsatları filtreleyebilirsiniz.
// Örnek: Web3.js ile blok dinleyici oluşturma const Web3 = require('web3'); const web3 = new Web3('https://mainnet.infura.io/v3/YOUR_INFURA_KEY'); // Yeni bloklar için dinleyici oluştur web3.eth.subscribe('newBlockHeaders', (error, blockHeader) => { if (error) { console.error(error); return; } console.log('Yeni blok bulundu:', blockHeader.number); // Bloktaki işlemleri analiz et web3.eth.getBlock(blockHeader.number, true).then(block => { block.transactions.forEach(tx => { console.log('İşlem:', tx.hash); // İşlemleri analiz et ve fırsatları tespit et }); }); }); -
Gerçek Zamanlı Fiyat Kontrolleri:
Fırsatları tespit ederken, gerçek zamanlı fiyat kontrolleri uygulayın. Örneğin, bir tokenin fiyatını birden fazla DEX'te karşılaştırın ve tutarsızlıkları tespit edin.
4. Güvenlik Testleri ve Denetimler Yapın
Botunuzun güvenliğini sağlamak için düzenli olarak güvenlik testleri ve denetimler yapın. Örneğin:
-
Penetrasyon Testleri:
Botunuzu etik hackerlar aracılığıyla test edin. Bu sayede, saldırganların kullanabileceği zayıflıkları tespit edebilirsiniz.
-
Kod Denetimleri:
Botunuzun kodunu güvenlik uzmanları tarafından denetlettirin. Özellikle, fırsat algılama algoritmalarını ve işlem onay süreçlerini inceleyin.
-
Simülasyon Testleri:
Botunuzu simüle edilmiş saldırılar altında test edin. Örneğin, sahte fırsatlar oluşturarak botun nasıl tepki verdiğini gözlemleyin.
5. Topluluk ve Geliştirici Geri Bildirimlerini Takip Edin
Ethereum ekosistemindeki geliştirici toplulukları ve forumları takip edin. Örneğin:
-
MEV Research:
ethresear.ch gibi platformlarda MEV ile ilgili en son gelişmeleri takip edin.
-
Güvenlik Uyarıları:
Ethereum Foundation ve diğer güvenlik kuruluşlarının yayınladığı güvenlik uyarılarını takip edin. Örneğin, ConsenSys Diligence tarafından yayınlanan raporları inceleyin.
Özet ve Öneriler
Önemli Uyarı: MEV botları, Ethereum ekosisteminde önemli bir rol oynasa da, güvenlik açıkları nedeniyle büyük kayıplara yol açabilir. Bu nedenle, bot geliştirirken ve kullanırken güvenlik önlemlerine maksimum özen gösterilmelidir.
JaredFromSubway MEV botuna yapılan saldırı, sahte fırsatların tespit edilmesinin ne kadar zor olabileceğini gösterdi. Benzer saldırılardan korunmak için:
- Botunuzun fırsat algılama algoritmalarını gelişmiş yöntemlerle güncelleyin.
- Çift doğrulama mekanizmaları ve çoklu imza cüzdanları kullanın.
- Ethereum ağındaki olayları gerçek zamanlı olarak izleyin ve anında yanıt verin.
- Düzenli olarak güvenlik testleri ve denetimler yapın.
Sonuç olarak, MEV botları Ethereum ekosisteminde kazançlı bir strateji olsa da, güvenlik riskleri de beraberinde getirir. Bu riskleri minimize etmek için teknik ve operasyonel önlemleri uygulamak şarttır.



