OrionProtocol'ün Reentrancy Saldırısı Olayı Analizi
2 Şubat 2023'te, Ethereum ve Binance Smart Chain'deki Orion Protocol, sözleşme açığı nedeniyle yeniden giriş saldırısına uğradı ve toplamda yaklaşık 2.9 milyon dolar değerinde varlık kaybı yaşandı. Bu kaybın içinde Ethereum üzerindeki 2,844,766 USDT ve Binance Smart Chain üzerindeki 191,606 BUSD bulunmaktadır.
Saldırı Süreci Analizi
Saldırgan önce özel bir Token sözleşmesi dağıttı ve ilgili transfer ve yetkilendirme işlemlerini gerçekleştirdi, sonraki saldırı için hazırlık yaptı. Ardından, saldırgan Uniswap V2'nin swap fonksiyonunu kullanarak borç aldı ve OrionProtocol'ün ExchangeWithAtomic.swapThroughOrionPool yöntemini çağırarak token takası yaptı.
Değişim yolu [USDC, saldırgan Token, USDT] olarak ayarlandı; burada saldırgan Token geri çağırma işlemlerini gerçekleştirmek için kullanılır. Değişim sürecinde, saldırgan Token sözleşmesinde geri çağırma mantığı bulunduğu için, ExchangeWithAtomic.swapThroughOrionPool yöntemi çalıştırıldığında, Token.Transfer aracılığıyla ExchangeWithAtomic.depositAsset fonksiyonuna geri çağırma yapılır ve böylece yeniden giriş saldırısı gerçekleştirilir. Bu, depozito miktarının tekrar tekrar artırılmasına neden olur ve nihayetinde saldırgan, para çekme işlemiyle kar elde eder.
Fon Akışı
Saldırganın başlangıç sermayesi, büyük bir ticaret platformunun sıcak cüzdanından sağlandı. Saldırıdan elde edilen 1,651 ETH'nin 657.5'i hala saldırganın cüzdan adresinde, geri kalan kısmı ise karıştırma hizmetleri aracılığıyla transfer edildi.
Açık Analizi
Açığın temel sorunu doSwapThroughOrionPool fonksiyonunda ortaya çıkıyor. Bu fonksiyon, transfer işlemi gerçekleştikten sonra curBalance değişkenini güncelleyen _doSwapTokens fonksiyonunu çağırıyor. Saldırgan, özel Token'ın transfer fonksiyonuna eklenen geri çağırma mantığını kullanarak, transfer işlemi sırasında depositAsset fonksiyonunu tekrar çağırıyor ve bu da curBalance değişkeninin yanlış güncellenmesine neden oluyor. Bu, saldırganın hızlı kredi geri ödendikten sonra withdraw fonksiyonu aracılığıyla ek fonları çekmesine olanak tanıyor.
Güvenlik Önerileri
Benzer saldırıları önlemek için proje sahiplerinin aşağıdaki noktalara dikkat etmesi gerekir:
Token değişim işlevini gerçekleştirirken, çeşitli Token türlerinin ve değişim yollarının getirebileceği güvenlik risklerini dikkate almak gerekir.
"Kontroller - Etkiler - Etkileşimler" (Checks-Effects-Interactions) kodlama modeline sıkı bir şekilde uyulmalıdır; yani önce durum kontrolü yapılmalı, ardından sözleşme durumu güncellenmeli ve en son olarak dış sözleşmelerle etkileşim kurulmalıdır.
Yeniden giriş saldırılarının gerçekleşmesini önlemek için yeniden giriş kilidi gibi güvenlik mekanizmaları uygulayın.
Fonların işleyişini etkileyen kritik işlevler için kapsamlı bir güvenlik denetimi ve test yapılmalıdır.
Saldırı zorluğunu artırmak için gecikmeli çekim veya çoklu imza gibi ek güvenlik önlemlerinin uygulanması düşünülmelidir.
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. Web3 ekosisteminde, güvenlik her zaman öncelikli bir unsur olmalıdı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.
8 Likes
Reward
8
5
Share
Comment
0/400
EntryPositionAnalyst
· 14h ago
Yine bir ekip dikkatsiz davrandı, ders almayı öğrendi.
View OriginalReply0
BearMarketSurvivor
· 14h ago
Ana cephe tekrar saldırıya uğradı, kayıplar 290w
View OriginalReply0
PaperHandSister
· 14h ago
Yine Rekt. Neden sürekli sözleşme açıklarını hedef alıyorsunuz?
OrionProtocol, yeniden giriş saldırısına uğradı ve 2.9 milyon dolar değerinde varlık kaybetti.
OrionProtocol'ün Reentrancy Saldırısı Olayı Analizi
2 Şubat 2023'te, Ethereum ve Binance Smart Chain'deki Orion Protocol, sözleşme açığı nedeniyle yeniden giriş saldırısına uğradı ve toplamda yaklaşık 2.9 milyon dolar değerinde varlık kaybı yaşandı. Bu kaybın içinde Ethereum üzerindeki 2,844,766 USDT ve Binance Smart Chain üzerindeki 191,606 BUSD bulunmaktadır.
Saldırı Süreci Analizi
Saldırgan önce özel bir Token sözleşmesi dağıttı ve ilgili transfer ve yetkilendirme işlemlerini gerçekleştirdi, sonraki saldırı için hazırlık yaptı. Ardından, saldırgan Uniswap V2'nin swap fonksiyonunu kullanarak borç aldı ve OrionProtocol'ün ExchangeWithAtomic.swapThroughOrionPool yöntemini çağırarak token takası yaptı.
Değişim yolu [USDC, saldırgan Token, USDT] olarak ayarlandı; burada saldırgan Token geri çağırma işlemlerini gerçekleştirmek için kullanılır. Değişim sürecinde, saldırgan Token sözleşmesinde geri çağırma mantığı bulunduğu için, ExchangeWithAtomic.swapThroughOrionPool yöntemi çalıştırıldığında, Token.Transfer aracılığıyla ExchangeWithAtomic.depositAsset fonksiyonuna geri çağırma yapılır ve böylece yeniden giriş saldırısı gerçekleştirilir. Bu, depozito miktarının tekrar tekrar artırılmasına neden olur ve nihayetinde saldırgan, para çekme işlemiyle kar elde eder.
Fon Akışı
Saldırganın başlangıç sermayesi, büyük bir ticaret platformunun sıcak cüzdanından sağlandı. Saldırıdan elde edilen 1,651 ETH'nin 657.5'i hala saldırganın cüzdan adresinde, geri kalan kısmı ise karıştırma hizmetleri aracılığıyla transfer edildi.
Açık Analizi
Açığın temel sorunu doSwapThroughOrionPool fonksiyonunda ortaya çıkıyor. Bu fonksiyon, transfer işlemi gerçekleştikten sonra curBalance değişkenini güncelleyen _doSwapTokens fonksiyonunu çağırıyor. Saldırgan, özel Token'ın transfer fonksiyonuna eklenen geri çağırma mantığını kullanarak, transfer işlemi sırasında depositAsset fonksiyonunu tekrar çağırıyor ve bu da curBalance değişkeninin yanlış güncellenmesine neden oluyor. Bu, saldırganın hızlı kredi geri ödendikten sonra withdraw fonksiyonu aracılığıyla ek fonları çekmesine olanak tanıyor.
Güvenlik Önerileri
Benzer saldırıları önlemek için proje sahiplerinin aşağıdaki noktalara dikkat etmesi gerekir:
Token değişim işlevini gerçekleştirirken, çeşitli Token türlerinin ve değişim yollarının getirebileceği güvenlik risklerini dikkate almak gerekir.
"Kontroller - Etkiler - Etkileşimler" (Checks-Effects-Interactions) kodlama modeline sıkı bir şekilde uyulmalıdır; yani önce durum kontrolü yapılmalı, ardından sözleşme durumu güncellenmeli ve en son olarak dış sözleşmelerle etkileşim kurulmalıdır.
Yeniden giriş saldırılarının gerçekleşmesini önlemek için yeniden giriş kilidi gibi güvenlik mekanizmaları uygulayın.
Fonların işleyişini etkileyen kritik işlevler için kapsamlı bir güvenlik denetimi ve test yapılmalıdır.
Saldırı zorluğunu artırmak için gecikmeli çekim veya çoklu imza gibi ek güvenlik önlemlerinin uygulanması düşünülmelidir.
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. Web3 ekosisteminde, güvenlik her zaman öncelikli bir unsur olmalıdır.