OrionProtocol yeniden giriş saldırısına uğradı, yaklaşık 2.9 milyon dolar kayıp.

robot
Abstract generation in progress

OrionProtocol Yeniden Giriş Saldırısı Olayı Analizi

2 Şubat 2023'te, Ethereum ve Binance Akıllı Zinciri'ndeki OrionProtocol projesi, sözleşme açığı nedeniyle yeniden giriş saldırısına uğradı. Saldırganlar toplamda yaklaşık 2.9 milyon dolar kazanç elde etti, bunlar arasında Ethereum zincirindeki 2.844.766 USDT ve Binance Akıllı Zinciri'ndeki 191.606 BUSD bulunmaktadır.

Saldırı Süreci Analizi

Saldırgan önce özel bir Token sözleşmesi kurdu ve ardından sonraki saldırıya hazırlık olarak bir dizi transfer ve yetkilendirme işlemi gerçekleştirdi. Daha sonra, saldırgan belirli bir DEX'in takas işlevi aracılığıyla borç aldı ve token takası yapmak için OrionProtocol'un ExchangeWithAtomic.swapThroughOrionPool yöntemini çağırdı. Takas yolu [USDC, saldırganToken, USDT] olarak ayarlandı.

swapThroughOrionPool yöntemini gerçekleştirirken, saldırganın Token sözleşmesinde geri çağırma işlevi bulunduğundan, transfer işlemi sırasında reentrancy saldırısı tetiklendi. Saldırgan, Token.Transfer yöntemini kullanarak ExchangeWithAtomic.depositAsset fonksiyonunu tekrar tekrar çağırdı ve yatırılan miktar sürekli olarak birikmeye başladı. Sonunda, saldırgan çekim işlemi ile kar elde etti.

OrionProtocol Yeniden Giriş Saldırısı Analizi Ek PoC

Fon Akışı

On-chain verilerine göre, saldırganın başlangıç sermayesi bir borsa platformunun sıcak cüzdanından geliyor. Elde edilen 1,651 ETH'nin 657.5'i saldırganın cüzdan adresinde kalırken, geri kalanı karıştırma hizmetleri aracılığıyla transfer edilmiştir.

OrionProtocol yeniden giriş saldırısı analizi ile PoC

Açık Analizi

Açığın temeli, ExchangeWithAtomic sözleşmesinin doSwapThroughOrionPool fonksiyonundadır. Bu fonksiyon, _doSwapTokens işlemini gerçekleştirirken mantıksal bir hataya sahiptir. Özellikle, kod transferi gerçekleştirdikten sonra curBalance değişkenini güncelliyor, bu da yeniden giriş saldırıları için bir zemin hazırlıyor.

Saldırgan, özelleştirilmiş Token'ın transfer fonksiyonuna geri çağırma mantığı ekleyerek, depositAsset fonksiyonunu tekrar tekrar çağırdı ve bu da curBalance'ın yanlış güncellenmesine neden oldu. Sonunda, saldırgan, flash kredi geri ödendikten sonra withdraw fonksiyonunu çağırarak fazla fonları çekti.

OrionProtocol Reentrancy Attack Analysis with PoC

OrionProtocol Yeniden Giriş Saldırısı Analizi ile PoC

OrionProtocol yeniden giriş saldırısı analizi ile PoC

OrionProtocol Yeniden Giriş Saldırısı Analizi ile PoC

OrionProtocol Yeniden Giriş Saldırısı Analizi ve PoC

OrionProtocol yeniden giriş saldırısı analizi ekli PoC

OrionProtocol yeniden giriş saldırısı analizi ile PoC

OrionProtocol yeniden giriş saldırısı analizi ile PoC

OrionProtocol Yeniden Giriş Saldırısı Analizi ile PoC

Önleme Önerileri

Benzer saldırıları önlemek için proje ekiplerinin aşağıdaki noktalara dikkat etmesi gerekmektedir:

  1. Token değişim işlevini gerçekleştirirken, çeşitli Token türleri ve değişim yollarının getirebileceği güvenlik risklerini kapsamlı bir şekilde değerlendirmek gerekmektedir.

  2. "Kontrol-Etkiler-Etkileşimler"(Checks-Effects-Interactions) kodlama modeline sıkı bir şekilde uyulmalıdır; yani önce koşul kontrolü yapılmalı, ardından durum değişkenleri güncellenmeli ve en son olarak dış çağrılar gerçekleştirilmelidir.

  3. Kullanıcı tanımlı Token'ları işlerken, özellikle dış çağrıların güvenlik kontrolünü artırın.

  4. Düzenli olarak kod denetimleri ve güvenlik testleri yaparak potansiyel açıkları zamanında tespit edip düzeltin.

  5. OpenZeppelin'in SafeERC20 gibi olgun güvenlik kütüphaneleri ve en iyi uygulamaları kullanın.

Bu önlemleri alarak, akıllı sözleşmelerin saldırıya uğrama riskini önemli ölçüde azaltabilir ve projenin genel güvenliğini artırabilirsiniz.

TOKEN0.45%
View Original
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.
  • Reward
  • 6
  • Repost
  • Share
Comment
0/400
ser_ngmivip
· 18h ago
Yine param kalmadı.
View OriginalReply0
PretendingToReadDocsvip
· 18h ago
Her gün sorun çıkıyor, ne yapmalıyız?
View OriginalReply0
LiquidityWizardvip
· 18h ago
Rug Pull önceden belirlenmiş~
View OriginalReply0
degenonymousvip
· 18h ago
enayiler yine insanları enayi yerine koymak
View OriginalReply0
CountdownToBrokevip
· 18h ago
Bir başka patladı.
View OriginalReply0
BoredApeResistancevip
· 18h ago
Yine bir sözleşme açığı var, fazla yedim.
View OriginalReply0
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate app
Community
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)