2023 yılı 2 Şubat öğleden sonra, Ethereum ve Binance Akıllı Zinciri'ndeki OrionProtocol sözleşmesi bir güvenlik açığı nedeniyle yeniden giriş saldırısına uğradı. Saldırgan, Ethereum zincirinde 2,844,766 USDT, Binance Akıllı Zinciri'nde ise 191,606 BUSD kazanç elde etti ve toplamda yaklaşık 2.9 milyon dolar kazandı.
Saldırı Süreci Analizi
Saldırgan önce özel bir Token sözleşmesi kurdu ve ilgili hazırlıkları yaptı. Ardından, saldırgan bir DEX'in swap işlevi aracılığıyla borç aldı ve token takası için OrionProtocol'ün swapThroughOrionPool yöntemini çağırdı. Takas yolunda saldırganın oluşturduğu Token sözleşme adresi yer alıyordu, bu da sonraki geri çağırma saldırısı için bir zemin hazırladı.
swapThroughOrionPool yöntemini gerçekleştirirken, saldırganın Token sözleşmesinde geri çağırma mantığı bulunduğundan, transfer sürecinde reentrancy saldırısı tetiklendi. Saldırgan, Token.Transfer yöntemini kullanarak ExchangeWithAtomic.depositAsset fonksiyonunu tekrar tekrar çağırarak, yatırılan miktarın sürekli artmasına sebep oldu. Sonunda, saldırgan para çekme işlemi ile kâr elde etti.
Fon Akışı
Saldırganın başlangıç fonları bir ticaret platformunun sıcak cüzdanından gelmektedir. Saldırıda elde edilen 1,651 ETH'nin 657.5'i hala saldırganın cüzdan adresinde, geri kalan kısmı ise karıştırma hizmeti aracılığıyla transfer edilmiştir.
Açık Analizi
Ana sorun, doSwapThroughOrionPool fonksiyonunda ortaya çıkmaktadır. Bu fonksiyon, _doSwapTokens işlemini gerçekleştirirken, mantıksal bir hata içermektedir. Özellikle, sözleşme transfer tamamlandıktan sonra curBalance değişkenini güncellemektedir, bu da saldırganlara bir fırsat tanımaktadır. Saldırganlar, özel Token’ın transfer fonksiyonuna geri çağırma mantığı ekleyerek, depositAsset fonksiyonunu tekrar tekrar çağırmakta ve bu da curBalance’ın hatalı güncellenmesine neden olmaktadır. Sonuç olarak, saldırgan, flaş kredi geri ödemesinden sonra, fazladan fonları başarıyla çekmiştir.
Önleme Önerileri
Benzer saldırılardan kaçınmak için, proje ekibi sözleşmeyi tasarlarken aşağıdaki noktalara dikkat etmelidir:
Gerçek para değişim özelliğini uygularken, çeşitli Token türleri ve değişim yollarının getirebileceği güvenlik risklerini kapsamlı bir şekilde değerlendirmek gerekir.
"Kontroller-Etkiler-Etkileşimler" (Checks-Effects-Interactions) kodlama standartlarına sıkı bir şekilde uyulmalıdır; yani öncelikle durum kontrolü yapılmalı, ardından sözleşme durumu güncellenmeli ve en son olarak dış çağrılar gerçekleştirilmelidir.
Anahtar işlemlerde reentrancy kilidi uygulamak, yeniden giriş saldırılarının gerçekleşmesini önlemek için.
Düzenli olarak kod denetimi yapın, potansiyel güvenlik açıklarını zamanında tespit edin ve düzeltin.
Anormal işlemler için insan müdahalesi fırsatı sağlamak amacıyla gecikmeli çekim mekanizmasının getirilmesi düşünülmelidir.
Bu önlemleri alarak, akıllı sözleşmelerin güvenliğini büyük ölçüde artırabilir ve saldırı riskiyi azaltabilirsiniz. Web3 ekosisteminde güvenlik her zaman öncelikli bir faktördür.
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
8
Share
Comment
0/400
LidoStakeAddict
· 07-17 03:22
Bir domuz daha oldu.
View OriginalReply0
NervousFingers
· 07-14 05:42
Yine bir proje Klip Kuponlar ile soyuldu...
View OriginalReply0
TokenUnlocker
· 07-14 04:00
Başka bir kilitlenmemiş yeniden giriş açığı mı?
View OriginalReply0
GasSavingMaster
· 07-14 03:59
Mevcut teknoloji pek iyi değil.
View OriginalReply0
PanicSeller69
· 07-14 03:58
Yine patladı, ne iyi bir şey!
View OriginalReply0
PortfolioAlert
· 07-14 03:37
Sözleşme açığına bir kurban daha...
View OriginalReply0
SerumSqueezer
· 07-14 03:36
Bu kaçıncı kez böyle delik ve sızıntılı?
View OriginalReply0
ForkTongue
· 07-14 03:33
Yine bir reentrancy saldırısı, bu projeler hala ders almıyor mu?
OrionProtocol yeniden giriş saldırısına uğradı, 2.9 milyon dolar fon çalındı.
OrionProtocol Yeniden Giriş Saldırısı Analizi
2023 yılı 2 Şubat öğleden sonra, Ethereum ve Binance Akıllı Zinciri'ndeki OrionProtocol sözleşmesi bir güvenlik açığı nedeniyle yeniden giriş saldırısına uğradı. Saldırgan, Ethereum zincirinde 2,844,766 USDT, Binance Akıllı Zinciri'nde ise 191,606 BUSD kazanç elde etti ve toplamda yaklaşık 2.9 milyon dolar kazandı.
Saldırı Süreci Analizi
Saldırgan önce özel bir Token sözleşmesi kurdu ve ilgili hazırlıkları yaptı. Ardından, saldırgan bir DEX'in swap işlevi aracılığıyla borç aldı ve token takası için OrionProtocol'ün swapThroughOrionPool yöntemini çağırdı. Takas yolunda saldırganın oluşturduğu Token sözleşme adresi yer alıyordu, bu da sonraki geri çağırma saldırısı için bir zemin hazırladı.
swapThroughOrionPool yöntemini gerçekleştirirken, saldırganın Token sözleşmesinde geri çağırma mantığı bulunduğundan, transfer sürecinde reentrancy saldırısı tetiklendi. Saldırgan, Token.Transfer yöntemini kullanarak ExchangeWithAtomic.depositAsset fonksiyonunu tekrar tekrar çağırarak, yatırılan miktarın sürekli artmasına sebep oldu. Sonunda, saldırgan para çekme işlemi ile kâr elde etti.
Fon Akışı
Saldırganın başlangıç fonları bir ticaret platformunun sıcak cüzdanından gelmektedir. Saldırıda elde edilen 1,651 ETH'nin 657.5'i hala saldırganın cüzdan adresinde, geri kalan kısmı ise karıştırma hizmeti aracılığıyla transfer edilmiştir.
Açık Analizi
Ana sorun, doSwapThroughOrionPool fonksiyonunda ortaya çıkmaktadır. Bu fonksiyon, _doSwapTokens işlemini gerçekleştirirken, mantıksal bir hata içermektedir. Özellikle, sözleşme transfer tamamlandıktan sonra curBalance değişkenini güncellemektedir, bu da saldırganlara bir fırsat tanımaktadır. Saldırganlar, özel Token’ın transfer fonksiyonuna geri çağırma mantığı ekleyerek, depositAsset fonksiyonunu tekrar tekrar çağırmakta ve bu da curBalance’ın hatalı güncellenmesine neden olmaktadır. Sonuç olarak, saldırgan, flaş kredi geri ödemesinden sonra, fazladan fonları başarıyla çekmiştir.
Önleme Önerileri
Benzer saldırılardan kaçınmak için, proje ekibi sözleşmeyi tasarlarken aşağıdaki noktalara dikkat etmelidir:
Gerçek para değişim özelliğini uygularken, çeşitli Token türleri ve değişim yollarının getirebileceği güvenlik risklerini kapsamlı bir şekilde değerlendirmek gerekir.
"Kontroller-Etkiler-Etkileşimler" (Checks-Effects-Interactions) kodlama standartlarına sıkı bir şekilde uyulmalıdır; yani öncelikle durum kontrolü yapılmalı, ardından sözleşme durumu güncellenmeli ve en son olarak dış çağrılar gerçekleştirilmelidir.
Anahtar işlemlerde reentrancy kilidi uygulamak, yeniden giriş saldırılarının gerçekleşmesini önlemek için.
Düzenli olarak kod denetimi yapın, potansiyel güvenlik açıklarını zamanında tespit edin ve düzeltin.
Anormal işlemler için insan müdahalesi fırsatı sağlamak amacıyla gecikmeli çekim mekanizmasının getirilmesi düşünülmelidir.
Bu önlemleri alarak, akıllı sözleşmelerin güvenliğini büyük ölçüde artırabilir ve saldırı riskiyi azaltabilirsiniz. Web3 ekosisteminde güvenlik her zaman öncelikli bir faktördür.