OrionProtocol'un Reentrancy Saldırısı Olayı Analizi
2023 yılının 2 Şubat'ında, Ethereum ve Binance zincirindeki OrionProtocol sözleşmeleri bir açık nedeniyle reentrancy saldırısına uğradı. Saldırgan, yaklaşık 2.9 milyon dolar değerinde fon çalmayı başardı; bu miktarın içinde Ethereum'da 2,844,766 USDT ve BSC'de 191,606 BUSD bulunuyor.
Saldırı Süreci Analizi
Saldırgan önce özel bir Token sözleşmesi oluşturdu ve bunu devretti ve yetkilendirme işlemleri gerçekleştirdi, böylece sonraki saldırıya hazır hale geldi. Ardından, saldırgan UNI-V2'nin swap yöntemini kullanarak borç aldı ve ExchangeWithAtomic sözleşmesinin swapThroughOrionPool yöntemini çağırarak token takası yaptı.
Değişim yolu [USDC, saldırgan tarafından oluşturulan Token, USDT] olarak ayarlandı. Değişim sürecinde, saldırgan tarafından oluşturulan Token sözleşmesinde geri çağırma işlevi bulunduğundan, ExchangeWithAtomic.swapThroughOrionPool yönteminin çalıştırılması sırasında yeniden giriş saldırısı tetiklendi. Saldırgan, Token.Transfer ile ExchangeWithAtomic.depositAsset yöntemini geri çağırmaya devam ederek, depozit miktarının sürekli artmasına neden oldu ve nihayetinde çekim işlemi ile kâr elde etti.
Fon Akışı
Saldırganın başlangıç sermayesi, bir işlem platformunun sıcak cüzdan hesabından geliyor. Saldırıdan elde edilen 1,651 ETH'nin 657.5'i hala saldırganın cüzdan adresinde bulunuyor, geri kalan kısmı ise karışık coin hizmeti aracılığıyla transfer edildi.
Açık Analizi
Açığın temel sorunu doSwapThroughOrionPool fonksiyonunda ortaya çıkmaktadır. Bu fonksiyon, token transferi gerçekleştirdikten sonra curBalance değişkenini günceller, bu da saldırgan için bir fırsat yaratır. Saldırgan, kendi oluşturduğu Token sözleşmesinin transfer fonksiyonuna bir geri çağırma işlevi ekler; bu geri çağırma, depositAsset fonksiyonunu tekrar çağırır. Bu, curBalance değişkeninin yanlış güncellenmesine neden olur ve saldırganın flash loan'ı geri ödedikten sonra withdraw fonksiyonu aracılığıyla ek fonları çekmesine olanak tanır.
Saldırı Yeniden Üretimi
Araştırmacılar, saldırı sürecini simüle eden bazı POC kodlarını sağladılar. Test sonuçları, saldırganın sözleşme açığını başarıyla kullanarak ek USDT elde ettiğini gösteriyor.
Güvenlik Önerileri
Bu tür saldırılar için, proje ekiplerinin sözleşmeyi tasarlarken aşağıdaki hususları dikkate alması önerilir:
Farklı Token'ların ve değişim yollarının getirebileceği güvenlik risklerini kapsamlı bir şekilde değerlendirin.
"Önce değerlendirme, sonra değişkenlere yazma, daha sonra dış çağrılar yapma" kodlama standartlarına (Checks-Effects-Interactions modeli) uyun.
Token değişim işlevini gerçekleştirirken, özellikle reentrancy saldırılarına karşı dikkatli olun.
Düzenli olarak kod denetimleri yapın, potansiyel açıkları zamanında tespit edin ve düzeltin.
İşlem tutarı sınırlamaları veya diğer risk kontrol önlemleri uygulanmasını düşünün.
Bu olay, akıllı sözleşmelerin güvenliğinin önemini bir kez daha vurgulamaktadır. Proje sahipleri, sözleşme güvenliğine sürekli olarak dikkat etmeli ve kullanıcı varlıklarını korumak için aktif önlemler almalıdır, böylece tüm Web3 ekosisteminin sağlıklı gelişimini sürdürebiliriz.
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
16 Likes
Reward
16
6
Share
Comment
0/400
SybilSlayer
· 07-28 15:34
Yine re-entrancy, gerçekten sıkıcı.
View OriginalReply0
CantAffordPancake
· 07-28 11:05
Yine bir sözleşme açığı, pes ettim.
View OriginalReply0
GateUser-26d7f434
· 07-25 18:03
Rug Pull olmalı~
View OriginalReply0
OvertimeSquid
· 07-25 17:55
Yine kontrat Klip Kuponlar ile alındı, gözlerim karardı.
View OriginalReply0
BrokenYield
· 07-25 17:55
başka bir gün, başka bir defi hack... protokol açıkları asla uyumaz
OrionProtocol tekrar giriş saldırısına uğradı, yaklaşık 3 milyon dolar fon çalındı.
OrionProtocol'un Reentrancy Saldırısı Olayı Analizi
2023 yılının 2 Şubat'ında, Ethereum ve Binance zincirindeki OrionProtocol sözleşmeleri bir açık nedeniyle reentrancy saldırısına uğradı. Saldırgan, yaklaşık 2.9 milyon dolar değerinde fon çalmayı başardı; bu miktarın içinde Ethereum'da 2,844,766 USDT ve BSC'de 191,606 BUSD bulunuyor.
Saldırı Süreci Analizi
Saldırgan önce özel bir Token sözleşmesi oluşturdu ve bunu devretti ve yetkilendirme işlemleri gerçekleştirdi, böylece sonraki saldırıya hazır hale geldi. Ardından, saldırgan UNI-V2'nin swap yöntemini kullanarak borç aldı ve ExchangeWithAtomic sözleşmesinin swapThroughOrionPool yöntemini çağırarak token takası yaptı.
Değişim yolu [USDC, saldırgan tarafından oluşturulan Token, USDT] olarak ayarlandı. Değişim sürecinde, saldırgan tarafından oluşturulan Token sözleşmesinde geri çağırma işlevi bulunduğundan, ExchangeWithAtomic.swapThroughOrionPool yönteminin çalıştırılması sırasında yeniden giriş saldırısı tetiklendi. Saldırgan, Token.Transfer ile ExchangeWithAtomic.depositAsset yöntemini geri çağırmaya devam ederek, depozit miktarının sürekli artmasına neden oldu ve nihayetinde çekim işlemi ile kâr elde etti.
Fon Akışı
Saldırganın başlangıç sermayesi, bir işlem platformunun sıcak cüzdan hesabından geliyor. Saldırıdan elde edilen 1,651 ETH'nin 657.5'i hala saldırganın cüzdan adresinde bulunuyor, geri kalan kısmı ise karışık coin hizmeti aracılığıyla transfer edildi.
Açık Analizi
Açığın temel sorunu doSwapThroughOrionPool fonksiyonunda ortaya çıkmaktadır. Bu fonksiyon, token transferi gerçekleştirdikten sonra curBalance değişkenini günceller, bu da saldırgan için bir fırsat yaratır. Saldırgan, kendi oluşturduğu Token sözleşmesinin transfer fonksiyonuna bir geri çağırma işlevi ekler; bu geri çağırma, depositAsset fonksiyonunu tekrar çağırır. Bu, curBalance değişkeninin yanlış güncellenmesine neden olur ve saldırganın flash loan'ı geri ödedikten sonra withdraw fonksiyonu aracılığıyla ek fonları çekmesine olanak tanır.
Saldırı Yeniden Üretimi
Araştırmacılar, saldırı sürecini simüle eden bazı POC kodlarını sağladılar. Test sonuçları, saldırganın sözleşme açığını başarıyla kullanarak ek USDT elde ettiğini gösteriyor.
Güvenlik Önerileri
Bu tür saldırılar için, proje ekiplerinin sözleşmeyi tasarlarken aşağıdaki hususları dikkate alması önerilir:
Bu olay, akıllı sözleşmelerin güvenliğinin önemini bir kez daha vurgulamaktadır. Proje sahipleri, sözleşme güvenliğine sürekli olarak dikkat etmeli ve kullanıcı varlıklarını korumak için aktif önlemler almalıdır, böylece tüm Web3 ekosisteminin sağlıklı gelişimini sürdürebiliriz.