OrionProtocol'ün Reentrancy Saldırısı Olayı Analizi
2023 yılının 2 Şubat öğleden sonra, Ethereum ve Binance Akıllı Zinciri üzerindeki OrionProtocol akıllı sözleşmesi bir güvenlik açığı nedeniyle yeniden giriş saldırısına uğradı, yaklaşık 2,9 milyon dolar kaybedildi, bunun içinde Ethereum zincirinde 2,844,766 USDT ve BSC zincirinde 191,606 BUSD bulunmaktadır.
Saldırı Süreci Analizi
Saldırgan önce özel bir Token sözleşmesi oluşturdu ve bir dizi hazırlık yaptı. Ardından, saldırgan bir DEX'in takas işlevini kullanarak borç aldı ve token takası yapmak için OrionProtocol'ün swapThroughOrionPool yöntemini çağırdı. Takas yolu, saldırganın oluşturduğu Token sözleşme adresini içeriyor; bu, sonraki geri çağırma saldırısı için zemin hazırlıyor.
Dönüşüm sürecinde, saldırganın Token sözleşmesi Transfer fonksiyonu aracılığıyla geri çağrıyı tetikler ve OrionProtocol'ün depositAsset fonksiyonunu tekrar tekrar çağırarak, yatırılan miktarın sürekli olarak artmasına neden olur. Sonunda, saldırgan çekim işlemi ile kar elde etmiştir.
Fon Akışı
Saldırganın başlangıç sermayesi, bir işlem platformunun sıcak cüzdan hesabından gelmektedir. Kazanılan 1,651 ETH'ye, 657.5'i hala saldırganın cüzdan adresinde kalırken, geri kalanları karıştırma hizmeti aracılığıyla transfer edilmiştir.
Açık Analizi
Açığın merkezi doSwapThroughOrionPool ve _doSwapTokens fonksiyonlarının uygulanmasındadır. Sözleşme, transfer işlemi sonrasında curBalance değişkenini günceller, bu da yeniden giriş saldırısı için koşullar yaratır. Saldırgan, özel Token'ın transfer fonksiyonuna geri çağırma mantığı ekleyerek curBalance'ın yanlış güncellenmesine neden olur ve nihayetinde saldırgana, flaş krediyi geri ödedikten sonra ek fonları çekme izni verir.
Saldırı Yeniden Üretimi
Araştırmacılar, saldırı sürecini simüle eden bazı POC kodları sağladı. Test sonuçları, saldırganların açıkları kullanarak ek USDT elde etmeyi başardığını gösterdi.
Güvenlik Tavsiyeleri
Sözleşme tasarımı sırasında çeşitli Token'ların ve değişim yollarının neden olabileceği beklenmedik durumlar dikkate alınmalıdır.
"Önce kontrol et, sonra değişkenlere yaz, ardından dış çağrılar yap" kodlama standartlarına (Checks-Effects-Interactions modeli) uyun.
Dış çağrılar üzerindeki kısıtlamaların ve kontrollerin güçlendirilmesi, özellikle fon transferi ile ilgili işlemler için.
Güvenlik denetimlerini düzenli olarak gerçekleştirin, potansiyel açıkları zamanında tespit edin ve düzeltin.
Tek nokta arızasını önlemek için çoklu imza gibi ek güvenlik önlemleri uygulayın.
Bu olay, DeFi projelerinin karşılaştığı güvenlik zorluklarını bir kez daha vurgulamaktadır. Geliştiriciler her zaman dikkatli olmalı ve sürekli olarak sözleşme güvenliğini geliştirmelidir, böylece kullanıcı varlıklarını ve proje itibarını koruyabilirler.
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.
13 Likes
Reward
13
4
Share
Comment
0/400
SatoshiHeir
· 21h ago
Şunu belirtmek gerekir ki, akıllı sözleşmelerin reentrancy riski Solidity ders kitabının ilk sayfasında belirtilmiştir, anlaşılan bir başka proje ekibi ödevini yapmamış...
View OriginalReply0
SnapshotDayLaborer
· 21h ago
insanları enayi yerine koymak ba割吧~
View OriginalReply0
ChainComedian
· 21h ago
Yine 290w, Emiciler Tarafından Oyuna Getirilmek, hemen koş!
OrionProtocol, yeniden giriş saldırısına uğradı ve 2,9 milyon dolar kaybetti.
OrionProtocol'ün Reentrancy Saldırısı Olayı Analizi
2023 yılının 2 Şubat öğleden sonra, Ethereum ve Binance Akıllı Zinciri üzerindeki OrionProtocol akıllı sözleşmesi bir güvenlik açığı nedeniyle yeniden giriş saldırısına uğradı, yaklaşık 2,9 milyon dolar kaybedildi, bunun içinde Ethereum zincirinde 2,844,766 USDT ve BSC zincirinde 191,606 BUSD bulunmaktadır.
Saldırı Süreci Analizi
Saldırgan önce özel bir Token sözleşmesi oluşturdu ve bir dizi hazırlık yaptı. Ardından, saldırgan bir DEX'in takas işlevini kullanarak borç aldı ve token takası yapmak için OrionProtocol'ün swapThroughOrionPool yöntemini çağırdı. Takas yolu, saldırganın oluşturduğu Token sözleşme adresini içeriyor; bu, sonraki geri çağırma saldırısı için zemin hazırlıyor.
Dönüşüm sürecinde, saldırganın Token sözleşmesi Transfer fonksiyonu aracılığıyla geri çağrıyı tetikler ve OrionProtocol'ün depositAsset fonksiyonunu tekrar tekrar çağırarak, yatırılan miktarın sürekli olarak artmasına neden olur. Sonunda, saldırgan çekim işlemi ile kar elde etmiştir.
Fon Akışı
Saldırganın başlangıç sermayesi, bir işlem platformunun sıcak cüzdan hesabından gelmektedir. Kazanılan 1,651 ETH'ye, 657.5'i hala saldırganın cüzdan adresinde kalırken, geri kalanları karıştırma hizmeti aracılığıyla transfer edilmiştir.
Açık Analizi
Açığın merkezi doSwapThroughOrionPool ve _doSwapTokens fonksiyonlarının uygulanmasındadır. Sözleşme, transfer işlemi sonrasında curBalance değişkenini günceller, bu da yeniden giriş saldırısı için koşullar yaratır. Saldırgan, özel Token'ın transfer fonksiyonuna geri çağırma mantığı ekleyerek curBalance'ın yanlış güncellenmesine neden olur ve nihayetinde saldırgana, flaş krediyi geri ödedikten sonra ek fonları çekme izni verir.
Saldırı Yeniden Üretimi
Araştırmacılar, saldırı sürecini simüle eden bazı POC kodları sağladı. Test sonuçları, saldırganların açıkları kullanarak ek USDT elde etmeyi başardığını gösterdi.
Güvenlik Tavsiyeleri
Bu olay, DeFi projelerinin karşılaştığı güvenlik zorluklarını bir kez daha vurgulamaktadır. Geliştiriciler her zaman dikkatli olmalı ve sürekli olarak sözleşme güvenliğini geliştirmelidir, böylece kullanıcı varlıklarını ve proje itibarını koruyabilirler.