OrionProtocol, 2.9 milyon dolar kayba neden olan bir re-entrancy saldırısı ile karşı karşıya kaldı.
2 Şubat 2023'te, OrionProtocol Ethereum ve Binance Akıllı Zinciri üzerinde bir sözleşme açığı nedeniyle yeniden giriş saldırısına uğradı ve toplamda yaklaşık 2.9 milyon dolar kaybedildi. Saldırganlar, kendi oluşturdukları Token sözleşmesini kullanarak geri çağırma işlemi gerçekleştirdi ve sözleşmenin güvenlik mekanizmasını başarıyla aştı.
Saldırı Süreci Analizi
Saldırgan önce özel bir Token sözleşmesi oluşturarak bir dizi hazırlık yaptı. Ardından, saldırgan bir DEX'in swap yöntemini kullanarak borç alır ve OrionProtocol'ün swapThroughOrionPool yöntemini çağırarak token değişimi gerçekleştirir. Değişim yolunda saldırganın oluşturduğu Token sözleşmesi adresi bulunmaktadır.
Değişim sürecinde, saldırgan kendi yarattığı Token'ın transfer yöntemini kullanarak geri çağrım tetikliyor ve tekrar OrionProtocol'ün depositAsset yöntemini çağırıyor. Bu, yatırılan miktarın tekrar hesaplanmasına neden oluyor ve böylece saldırganın gerçekte yatırılan miktardan daha fazla fon çekmesine olanak tanıyor.
Fon Akışı
Saldırganın başlangıç sermayesi bir işlem platformunun sıcak cüzdanından gelmektedir. Saldırıdan elde edilen 1651 ETH'den 657.5'i saldırganın cüzdan adresinde kalmış, geri kalanı ise karıştırma hizmeti aracılığıyla transfer edilmiştir.
Açık Analizi
Açığın temelinde doSwapThroughOrionPool ve _doSwapTokens fonksiyonları bulunmaktadır. Sözleşme, transfer işlemini gerçekleştirdikten sonra curBalance değişkenini güncellediğinden, bu durum saldırganlara yeniden giriş saldırısını kullanma fırsatı tanımaktadır. Saldırgan, özel Token'ın transfer fonksiyonuna geri çağırma mantığı ekleyerek curBalance'ın yanlış güncellenmesine neden olur ve nihayetinde fazla çekim gerçekleştirir.
Saldırı Tekrarı
Araştırmacılar, bu açığı kullanarak saldırı gerçekleştirmenin nasıl mümkün olduğunu gösteren bazı POC kodları sağladı. Test sonuçları, gerçek saldırının çağrı yığınıyla tutarlıdır ve açığın varlığını ve kullanılabilirliğini doğrulamaktadır.
Güvenlik Önerileri
Token değişim fonksiyonuna sahip akıllı sözleşmeler için geliştiricilerin, birden fazla Token ve değişim yollarının getirebileceği güvenlik risklerini dikkate alması gerekmektedir. Sözleşmenin güvenliğini ve istikrarını artırmak için "önce kontrol et, sonra değişkenleri yaz, ardından dış çağrı yap" kodlama standartlarını (Checks-Effects-Interactions modeli) takip etmeleri önerilir.
Bu olay, akıllı sözleşme geliştirmede güvenliğe verilen önemin önemini bir kez daha vurgulamaktadır, özellikle de fon akışını işlerken. Proje ekipleri, kod denetimlerini güçlendirmeli ve potansiyel riskleri en aza indirmek için profesyonel bir blockchain güvenlik ekibi ile kapsamlı bir değerlendirme yapmayı düşünmelidir.
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.
10 Likes
Reward
10
3
Repost
Share
Comment
0/400
ZeroRushCaptain
· 10h ago
Bir başka çekim kartı, bana savaş alanından geri çekilmeyi öğretti.
View OriginalReply0
AirdropChaser
· 10h ago
Yine mi bir tane?
View OriginalReply0
ForkLibertarian
· 10h ago
Elde edilmeliydi, kimse bu kadar cüretkâr davranmamalı.
OrionProtocol yeniden giriş saldırısına uğradı, 2.9 milyon dolar kaybetti.
OrionProtocol, 2.9 milyon dolar kayba neden olan bir re-entrancy saldırısı ile karşı karşıya kaldı.
2 Şubat 2023'te, OrionProtocol Ethereum ve Binance Akıllı Zinciri üzerinde bir sözleşme açığı nedeniyle yeniden giriş saldırısına uğradı ve toplamda yaklaşık 2.9 milyon dolar kaybedildi. Saldırganlar, kendi oluşturdukları Token sözleşmesini kullanarak geri çağırma işlemi gerçekleştirdi ve sözleşmenin güvenlik mekanizmasını başarıyla aştı.
Saldırı Süreci Analizi
Saldırgan önce özel bir Token sözleşmesi oluşturarak bir dizi hazırlık yaptı. Ardından, saldırgan bir DEX'in swap yöntemini kullanarak borç alır ve OrionProtocol'ün swapThroughOrionPool yöntemini çağırarak token değişimi gerçekleştirir. Değişim yolunda saldırganın oluşturduğu Token sözleşmesi adresi bulunmaktadır.
Değişim sürecinde, saldırgan kendi yarattığı Token'ın transfer yöntemini kullanarak geri çağrım tetikliyor ve tekrar OrionProtocol'ün depositAsset yöntemini çağırıyor. Bu, yatırılan miktarın tekrar hesaplanmasına neden oluyor ve böylece saldırganın gerçekte yatırılan miktardan daha fazla fon çekmesine olanak tanıyor.
Fon Akışı
Saldırganın başlangıç sermayesi bir işlem platformunun sıcak cüzdanından gelmektedir. Saldırıdan elde edilen 1651 ETH'den 657.5'i saldırganın cüzdan adresinde kalmış, geri kalanı ise karıştırma hizmeti aracılığıyla transfer edilmiştir.
Açık Analizi
Açığın temelinde doSwapThroughOrionPool ve _doSwapTokens fonksiyonları bulunmaktadır. Sözleşme, transfer işlemini gerçekleştirdikten sonra curBalance değişkenini güncellediğinden, bu durum saldırganlara yeniden giriş saldırısını kullanma fırsatı tanımaktadır. Saldırgan, özel Token'ın transfer fonksiyonuna geri çağırma mantığı ekleyerek curBalance'ın yanlış güncellenmesine neden olur ve nihayetinde fazla çekim gerçekleştirir.
Saldırı Tekrarı
Araştırmacılar, bu açığı kullanarak saldırı gerçekleştirmenin nasıl mümkün olduğunu gösteren bazı POC kodları sağladı. Test sonuçları, gerçek saldırının çağrı yığınıyla tutarlıdır ve açığın varlığını ve kullanılabilirliğini doğrulamaktadır.
Güvenlik Önerileri
Token değişim fonksiyonuna sahip akıllı sözleşmeler için geliştiricilerin, birden fazla Token ve değişim yollarının getirebileceği güvenlik risklerini dikkate alması gerekmektedir. Sözleşmenin güvenliğini ve istikrarını artırmak için "önce kontrol et, sonra değişkenleri yaz, ardından dış çağrı yap" kodlama standartlarını (Checks-Effects-Interactions modeli) takip etmeleri önerilir.
Bu olay, akıllı sözleşme geliştirmede güvenliğe verilen önemin önemini bir kez daha vurgulamaktadır, özellikle de fon akışını işlerken. Proje ekipleri, kod denetimlerini güçlendirmeli ve potansiyel riskleri en aza indirmek için profesyonel bir blockchain güvenlik ekibi ile kapsamlı bir değerlendirme yapmayı düşünmelidir.