OrionProtocol Yeniden Giriş Saldırısı Olayı Analizi
2023 yılı 2 Şubat öğleden sonra, Ethereum ve Binance zincirindeki OrionProtocol, akıllı sözleşme açığı nedeniyle yeniden giriş saldırısına uğradı ve yaklaşık 2,9 milyon dolar kayba neden oldu. Kesin kayıplar, Ethereum'daki 2.844.766 USDT ve Binance zincirindeki 191.606 BUSD'yi içermektedir.
Saldırı Süreci Analizi
Saldırgan öncelikle bir Token sözleşmesi oluşturdu ve onu transfer ve yetkilendirme işlemlerine tabi tuttu, sonraki saldırı için hazırlık yaptı. Ardından, saldırgan UNI-V2'nin swap yöntemini kullanarak borç aldı ve ExchangeWithAtomic sözleşmesinin swapThroughOrionPool yöntemini çağırarak token değişimi gerçekleştirdi.
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 bir geri çağırma işlevi bulunduğundan, saldırgan Token'ın Transfer yöntemini kullanarak ExchangeWithAtomic sözleşmesinin depositAsset yöntemini geri çağırmaya devam edebildi ve bu da yeniden giriş saldırısının gerçekleştirilmesine neden oldu, böylece depozit miktarı sürekli olarak birikti. Sonunda, saldırgan para çekme işlemi ile kâr elde etti.
Güvenlik Açığı Analizi
Açığın özü, ExchangeWithAtomic sözleşmesindeki doSwapThroughOrionPool fonksiyonundadır. Bu fonksiyon, _doSwapTokens'ı yürütürken aşağıdaki sorunları barındırmaktadır:
Transfer işlemi yapıldıktan sonra curBalance değişkeni güncellenir.
Saldırganlar, sahte Token sözleşmesinin transfer fonksiyonuna geri çağırma işlevi ekleyerek bu açığı kullandılar, böylece transfer sırasında depositAsset fonksiyonunu çağırdı. Bu, curBalance değişkeninin yanlış güncellenmesine neden oldu ve saldırgan, flash kredi geri ödendikten sonra withdraw fonksiyonu üzerinden fazla fonları çekme imkanı buldu.
Fon Akışı
Saldırganın başlangıç sermayesi bir ticaret platformunun sıcak cüzdan hesabından gelmektedir. Elde edilen 1,651 ETH'nin 657.5'i hala saldırganın cüzdan adresinde bulunmaktadır, geri kalanı ise karıştırma hizmeti aracılığıyla transfer edilmiştir.
Önleme Önerileri
Benzer saldırıları önlemek için proje ekibinin dikkat etmesi gereken noktalar şunlardır:
Sözleşme tasarımı sırasında birden fazla Token ve değişim yollarının getirebileceği beklenmedik durumları dikkate almak gerekir.
"Kontrol - Etki - Etkileşim" kodlama standartlarına sıkı sıkıya uyun, önce değerlendirme yapın, ardından durum değişkenlerini güncelleyin, en son olarak dış çağrıları gerçekleştirin.
Fon transferi ile ilgili kritik işlemler için daha sıkı güvenlik kontrolleri ve kısıtlamalar uygulanmalıdır.
Düzenli olarak sözleşme güvenlik denetimleri yapın, potansiyel açıkları zamanında tespit edin ve düzeltin.
Bu olay, akıllı sözleşme geliştirmede güvenliğin son derece önemli olduğunu bir kez daha hatırlatıyor. Proje sahipleri her zaman dikkatli olmalı ve sözleşme risklerini en aza indirmek için çok katmanlı koruma önlemleri almalıdır.
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.
OrionProtocol, yeniden giriş saldırısına uğradı, 2.9 milyon USDT ve BUSD kaybetti.
OrionProtocol Yeniden Giriş Saldırısı Olayı Analizi
2023 yılı 2 Şubat öğleden sonra, Ethereum ve Binance zincirindeki OrionProtocol, akıllı sözleşme açığı nedeniyle yeniden giriş saldırısına uğradı ve yaklaşık 2,9 milyon dolar kayba neden oldu. Kesin kayıplar, Ethereum'daki 2.844.766 USDT ve Binance zincirindeki 191.606 BUSD'yi içermektedir.
Saldırı Süreci Analizi
Saldırgan öncelikle bir Token sözleşmesi oluşturdu ve onu transfer ve yetkilendirme işlemlerine tabi tuttu, sonraki saldırı için hazırlık yaptı. Ardından, saldırgan UNI-V2'nin swap yöntemini kullanarak borç aldı ve ExchangeWithAtomic sözleşmesinin swapThroughOrionPool yöntemini çağırarak token değişimi gerçekleştirdi.
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 bir geri çağırma işlevi bulunduğundan, saldırgan Token'ın Transfer yöntemini kullanarak ExchangeWithAtomic sözleşmesinin depositAsset yöntemini geri çağırmaya devam edebildi ve bu da yeniden giriş saldırısının gerçekleştirilmesine neden oldu, böylece depozit miktarı sürekli olarak birikti. Sonunda, saldırgan para çekme işlemi ile kâr elde etti.
Güvenlik Açığı Analizi
Açığın özü, ExchangeWithAtomic sözleşmesindeki doSwapThroughOrionPool fonksiyonundadır. Bu fonksiyon, _doSwapTokens'ı yürütürken aşağıdaki sorunları barındırmaktadır:
Saldırganlar, sahte Token sözleşmesinin transfer fonksiyonuna geri çağırma işlevi ekleyerek bu açığı kullandılar, böylece transfer sırasında depositAsset fonksiyonunu çağırdı. Bu, curBalance değişkeninin yanlış güncellenmesine neden oldu ve saldırgan, flash kredi geri ödendikten sonra withdraw fonksiyonu üzerinden fazla fonları çekme imkanı buldu.
Fon Akışı
Saldırganın başlangıç sermayesi bir ticaret platformunun sıcak cüzdan hesabından gelmektedir. Elde edilen 1,651 ETH'nin 657.5'i hala saldırganın cüzdan adresinde bulunmaktadır, geri kalanı ise karıştırma hizmeti aracılığıyla transfer edilmiştir.
Önleme Önerileri
Benzer saldırıları önlemek için proje ekibinin dikkat etmesi gereken noktalar şunlardır:
Bu olay, akıllı sözleşme geliştirmede güvenliğin son derece önemli olduğunu bir kez daha hatırlatıyor. Proje sahipleri her zaman dikkatli olmalı ve sözleşme risklerini en aza indirmek için çok katmanlı koruma önlemleri almalıdır.