21 Haziran'da, Ethereum ağı üzerindeki en aktif MEV Botlarından biri olan Jaredfromsubway.eth, dikkatle planlanmış bir "balık tuzağı saldırısı" (honeypot attack) ile karşılaştı ve 7,5 milyon doların üzerinde kripto varlık kaybetti. Beosin Güvenlik Ekibi'nin bu saldırıya dair analizi ve çalınan fonların akış izlemesi aşağıda yer almaktadır.
Saldırı süreci analizi
Saldırı sözleşmesi ailesi
- Koordinatör sözleşmesi (0xb84db016324e8f2bfdd8dd9c260338aee0a8df52): Geçerli bloğun armed durumunda olup olmadığını kaydeder ve son aşamada alt sözleşmeleri çağırarak fonları çeker. - Tetikleyici sözleşmesi (0x4de8c729a064ff6087cc84a4152969349e4feb98): Aynı blok içinde sahte trading çifti durumunu ayarlayarak arbitraj yollarının yürütülebilir gibi görünmesini sağlar. - Alt sözleşmeler / Sahte token sözleşmeleri: Gerçek yetkilendirmeleri elde etmek için normal ERC-20 tokenler gibi görünen sözleşmeler. - Hub sözleşmesi: MEV Bot’ların karlı göründüğü küçük gerçek kazançları öder. - Ring V2 çifti: Sahte Uniswap v2 trading çifti. - Sahte ara token sözleşmeleri: fCAP, fUSDC gibi çok basamaklı arbitraj yolları oluşturmak için kullanılır.
Anahtar saldırı: İzin yanıltma
Zincir üzerindeki işlemler analiz edilerek saldırgan, birden fazla tuzağa düşürücü işlem oluşturdu:
- Büyük USDC: Robot yaklaşık 36,997120 USDC kâr etti, ancak 20 USDC yetki bıraktı. - Büyük USDT: Robot yaklaşık 37,053440 USDT kâr etti, ancak 20 USDT yetki bıraktı. - Büyük WETH: Robot yaklaşık 0,0179 WETH kâr etti, ancak 16 WETH yetki bıraktı. - Küçük işlemler normal şekilde çalıştı; yetkiler, şüpheleri azaltmak amacıyla aynı işlem içinde tüketildi.
Küçük işlemlerde, robot gerçek token miktarını yetkilendirdikten sonra alt sözleşmeler hemen gerçek tokenleri aktarır, yetki tüketilir ve tamamen normal görünür.
Büyük işlemlerde, alt sözleşmeler gerçek token'ları transferFrom ile transfer etmez, aksine sahte işlemler aracılığıyla sahte token'lar çıkarır. Bot, normal bir swap ön adımını tamamladığını düşünür, ancak gerçek token yetkisi hala korunur.
Bu, tüm saldırıların çekirdeğidir: küçük tutarlı işlemler yetkiyi normal şekilde tüketir, büyük tutarlı işlemler yetkiyi korur.
Saldırı süreci
USDC'ye yönelik saldırı işlemlerine örnek olarak:
(1) Saldırgan, koordinatörü çağırarak mevcut bloğu armed olarak ayarlar. (2) Saldırgan, tetikleyiciyi çağırarak birden fazla sahte Ring V2 çiftinin durumunu günceller. (3) MEV Botu arbitraj fırsatını tespit eder ve işlem yapar.
MEV Bot işleminin içeriği şu şekildedir:
(1) MEV Bot sözleşmesi, bir alt sözleşmeye büyük bir USDC limiti verdi. (2) MEV Bot, alt sözleşmenin wrapTo/wrap fonksiyonunu çağırdı. (3) Alt sözleşme, şu anki durumu armed olduğu için gerçek USDC harcamadı; bunun yerine çift için sahte tokenler yarattı ve USDC yetkisi korundu. (4) MEV Bot, sahte çiftin swap işlemine devam etti. (5) İkinci geçiş çifti, tokenleri MEV Bot'a gönderdi. (6) Hub sözleşmesi, MEV Bot'a küçük bir gerçek USDC kârı ödedi.

onay örneği
tx hash: 0x0121e07a916c06eea3e7daf11893f3f0b95b9e1684124545ae14c32aee6029bb
MEV Bot'un gözlemlediği sonuç: Gerçek bir USDC kârı elde eden başarılı bir arbitraj işlemi. Ancak USDC'nin yetkilendirmesi alt sözleşmeler tarafından korundu. Bu süreç, USDC, USDT ve WETH için ayrı ayrı tekrarlandı ve nihayetinde büyük miktarda yetki oluşturdu.
Saldırı işlem hash'i:
0x2be8704f5a59b69e0b71f64aefdb99eb0e8ae9fb3926147c581910d71bcf3e65
Saldırgan, koordinatör sözleşmesini drain döngüsü çağırarak, calldata'da 66 alt sözleşme adresini ve MEV Bot sözleşmesi adresini içerir. MEV Bot sözleşmesi daha önce alt sözleşmelere kota yetkisi verdiyse, alt sözleşmeler doğrudan ilgili gerçek tokenleri saldırgana aktarabilir.
Sonuç:
- 20 adet USDC büyük yetkilendirmesi tamamen tüketildi - 16 adet WETH büyük yetkilendirmesi tamamen tüketildi - USDT için kısmi yetkilendirme hala mevcut, ancak USDT bakiyesi yetersiz
Borsa Akış Analizi
Saldırı başarıyla tamamlandıktan sonra, saldırgan adresi (0x3e37f4A10d771Ba9dE44b6d301410b1BEdeA65d0), $2,87M USDC, $2,04M USDT ve 1.474 WETH aldı. Daha sonra saldırgan, stabilite para birimlerini ETH'ye dönüştürdü ve aşağıdaki 4 adrese transfer etti:
- 0xe3Da36E4bd1a5738fa5D6Ef4F0e4dF40bDeB5f17 (yaklaşık 1.000 ETH) - 0x74Dc5b93586D248D5Aec64b3586736FF0A0D0e65 (1.001 ETH) - 0xd8C125efCBc99408eC8723E9BBd81d1E8D39D845 (1.001 ETH) - 0x71d4416A7A85e08a5Fe7227Ca3B44Fc639e94e97 (1.423 ETH)
0xe3Da3, 1.000 ETH'yi Tornado Cash'e transfer etti, diğer üç adresin ETH'si daha fazla transfer edilmedi. Fon akışı şöyledir:

Sonuç
Bu saldırı, saldırganın doğrudan sözleşme koduna değil, MEV Bot'un iş mantığına dayanarak uygun arbitraj senaryoları oluşturarak MEV Bot'u görünürde sorunsuz bir yetki verme davranışına yönlendirip ardından varlıklarını aktaracağı şekilde tasarlanmış yüksek düzeyde karmaşık bir saldırı yöntemini göstermektedir. Arbitraj robotları ve MEV Botları için, sadece simüle edilen getirilere dayanarak rota güvenliğini değerlendirmek yeterli değildir; özellikle arbitraj yollarında bilinmeyen sözleşmeler, sahte tokenlar veya özelleştirilmiş wrapper'lar varsa, dikkatli olunmalı ve işlem sonrası allowance değişiklikleri için zorunlu kontrol düşünülmelidir.

