3 Ocak'ta Radiant Capital projesi ciddi bir flaş kredi saldırısına maruz kaldı ve bunun sonucunda 1.900 ETH (yaklaşık 4,5 milyon dolar) kaybedildi. Radiant Capital, kullanıcıların farklı blok zincirlere çeşitli varlıkları yatırmasına ve ödünç vermesine olanak tanıyan, likidite silolarını ortadan kaldıran, merkezi olmayan bir zincirler arası borç verme protokolüdür.
Zincir içi verilere göre bilgisayar korsanı, yeni piyasa aktivasyonu için bir zaman aralığından ve Compound/Aave kod tabanındaki yuvarlama sorunundan yararlanarak flaş kredi saldırısı gerçekleştirdi. Bu saldırı yöntemi, büyük miktarda fon ödünç almayı, bir blok içinde bir dizi işlemi tamamlamayı ve ardından fonları blok bitmeden kar elde etmek için iade etmeyi ifade eder.
Güvenlik açığı saldırısı kısaca
PeckShield ve PeckShield'ın raporlarına göre saldırganlar, Radiant Capital'deki bir bilgi işlem güvenlik açığından yararlanarak, hassasiyeti ve yuvarlamayı kontrol ederek büyük miktarlarda USDC'yi düşük fiyatlarla çekmelerine olanak sağladı. USDC, değeri ABD dolarına sabitlenen istikrarlı bir para birimidir ve merkezi olmayan finansal protokollerde yaygın olarak kullanılan varlıklardan biridir.
Saldırganın saldırı süreci şu şekildedir:
1. Saldırgan, saldırı için başlangıç fonu olarak kullanmak üzere ilk olarak AAVE flaş kredisi aracılığıyla 3 milyon USDC borç aldı. Flaş krediler, büyük miktarda fon borçlanması, bir blok içerisinde bir dizi işlemin tamamlanması ve ardından blok bitmeden fonların kar elde etmek amacıyla iade edilmesi anlamına gelir.
2. Saldırgan, Radiant sözleşmesine 2 milyon USDC taahhüt etti ve 2 milyon rUSDCn sertifika tokeni elde etti.
3. Saldırgan, Radiant sözleşmesi aracılığıyla flash kredi gerçekleştirir, 2 milyon USDC borç alır, geri arama işlevinde 2 milyon USDC'yi iade eder ve ikinci adımda taahhüt edilen USDC'yi çeker. Son olarak flash kredi işlevi, transferfrom işlevini çağırır. Faizi saldırganın USDC'sini sözleşmeye aktarın. Şu anda 9/10000 işlem ücreti tahsil edilecek ve toplanan işlem ücreti havuzun likiditesine dönüşecek.
4. Saldırgan, 3. adımı birçok kez tekrarlayarak, LiquidityIndex'in çok büyük olmasını, LiquidityIndex=271800000000999999999999998631966035920 olmasını kontrol eder. LiquidityIndex, Radiant sözleşmesinde likidite artışını kaydetmek için kullanılan bir değişkendir. Zaman ve faiz birikimiyle artacaktır.
5. Daha sonra, saldırgan yeni bir sözleşme oluşturur ve buna 543.600 USDC koyar, çünkü 5436 (USDC değeri), 4. adımdaki 2718'in (liquidityIndex değeri) tam olarak iki katıdır ve yuvarlama ile kolayca kontrol edilebilir.
6. Saldırgan, 543.600 USDC'nin tamamını Radiant sözleşmesine ipotek ettirdi ve aynı miktarda rUSDCn elde etti.
7. Saldırgan, 407.700 rUSDCn'yi yok etmesi gereken 407.700 USDC'yi çıkardı ancak yukarıda belirtildiği gibi yakma işlevi hassas genişletme ve yuvarlama hesaplamaları gerçekleştirdi. 407700000000000000000000000000000000000/271800000000999999999999998631966035920=1,49999999 ve yuvarlama sonucu 1'dir, bu da sonucun 1/3 daha küçük olmasına neden olur. Aşağıdaki resimde görüldüğü gibi 407.700 USDC'nin imha edilmesi gerekiyordu ancak 271.800 USDC kaldı, bu da yalnızca 271.800 USDC'nin imha edildiğini ve saldırganın 407.700 USDC'yi geri çektiğini gösteriyor.
8. Saldırgan, rehin geri çekme işlemini tekrarlamak için 7. adımdaki güvenlik açığından yararlanır ve para çekme işlemi her zaman taahhüt edilen miktardan 1/3 daha fazla olur ve son olarak havuzdaki tüm USDC'yi değiştirir.
Fonlar şu anda risk altında değil
Radiant Capital, resmi gönderisinde konuyu kabul etti ve Arbitrum'daki borç verme piyasasını askıya aldığını ve olayın nedenini ve etkisini araştırdığını söyledi. Arbitrum, Ethereum'da işlem hızını artıran ve maliyetleri azaltan ikinci katman ölçeklendirme çözümüdür. Radiant Capital ayrıca şu anda hiçbir kullanıcı fonunun risk altında olmadığını ve sorun çözüldükten sonra bir tespit raporu yayınlayıp operasyonlara devam etmeyi planladığını da belirtti.
Çözüm:
Bu olay bize, merkezi olmayan finans protokollerinin güvenliğinin kritik öneme sahip olduğunu ve olası güvenlik açıklarını ve saldırıları önlemek için sürekli olarak denetlenmesi ve test edilmesi gerektiğini bir kez daha hatırlatıyor. Kullanıcılar ayrıca risklerin farkında olmalı ve yalnızca güvenilir platformlarda borç verme ve yatırım yapma işlemlerine katılmalıdır. Radiant Capital, ağır kayıplar yaşamasına rağmen, aynı zamanda olumlu bir tutum ve sorumluluk duygusu da göstererek, en kısa sürede toparlanıp protokolünün güvenliğini ve istikrarını iyileştirebileceğini umuyordu. Aynı zamanda diğer merkezi olmayan finansal protokollerin de bu olaydan ders alıp kendi güvenlik önlemlerini güçlendirerek kullanıcılara daha iyi hizmet ve deneyimler sunmasını umuyorum. #RadiantCapital #黑客攻击