OrionProtocol'ün Reentrancy Saldırısı Olayı Analizi
2023 yılının 2 Şubat'ında, Ethereum ve Binance Akıllı Zincirindeki OrionProtocol projesi, sözleşme açığı nedeniyle yeniden giriş saldırısına uğradı. Saldırgan, Ethereum zincirinden yaklaşık 2.84 milyon USDT çaldı ve Binance Akıllı Zincirinden yaklaşık 190 bin BUSD çaldı, toplam kayıp değeri yaklaşık 2.9 milyon dolar.
Saldırı Süreci Analizi
Saldırgan önce özel bir Token sözleşmesi kurdu ve bir dizi hazırlık yaptı. Ardından, saldırgan bir DEX'in takas işlevi aracılığıyla borç aldı ve OrionProtocol'ün ExchangeWithAtomic.swapThroughOrionPool yöntemini kullanarak token değişimi gerçekleştirdi. Değişim yolunda, saldırganın oluşturduğu Token sözleşmesi adresi yer alıyordu.
Değişim sürecinde, saldırganlar özelleştirilmiş Token sözleşmesinin geri çağırma işlevini kullanarak ExchangeWithAtomic.depositAsset yöntemini tekrar tekrar çağırdılar ve bu da yatırılan miktarın birden fazla kez artmasına neden oldu. Sonunda, saldırganlar çekim işlemiyle kâr elde ettiler.
Fon Akışı
Takip edilen bilgilere göre, saldırganın başlangıç sermayesi bir borsa platformunun sıcak cüzdanından gelmektedir. Saldırılardan elde edilen 1651 ETH'nin yaklaşık 657.5'i, saldırganın cüzdan adresinde kalırken, geri kalanı karıştırma hizmeti aracılığıyla transfer edilmiştir.
Açık Analizi
Temel sorun, ExchangeWithAtomic sözleşmesinin doSwapThroughOrionPool fonksiyonunda yatıyor. Bu fonksiyon, token transferini gerçekleştirdikten sonra curBalance değişkenini güncelliyor, bu da saldırganlar için yeniden giriş fırsatı yaratıyor. Saldırganlar, özelleştirilmiş Token'ın transfer fonksiyonuna geri çağırma mantığı ekleyerek, depositAsset fonksiyonunu tekrar tekrar çağırıyor ve bu da curBalance'ın yanlış güncellenmesine neden oluyor.
Saldırganlar, bu açığı kullanarak flash kredi ödemesinden sonra fazla fonları başarıyla çektiler.
Saldırı Yeniden Üretimi
Araştırmacılar, saldırı sürecini simüle eden bazı PoC kodları sağladı. Kod, özel Token oluşturma, likidite havuzu kurma, yetkilendirme işlemleri ve saldırıyı gerçekleştirme gibi adımları içeriyor. Test sonuçları, saldırının başarılı bir şekilde tekrarlandığını ve gerçek saldırının çağrı yığını sonuçlarıyla tutarlı olduğunu gösteriyor.
Güvenlik Önerileri
Sözleşme tasarımında, çeşitli Token'ların ve değişim yollarının getirebileceği güvenlik riskleri dikkate alınmalıdır.
"Kontroller-Etkiler-Etkileşimler" (Checks-Effects-Interactions) kodlama modeline uymak, yani önce koşulları kontrol etmek, sonra durum değişkenlerini güncellemek ve en son dış sözleşmelerle etkileşimde bulunmak.
Harici çağrılar işlenirken özellikle para transferi ile ilgili işlemlerde son derece dikkatli olunmalıdır.
Düzenli olarak güvenlik denetimleri yapın, potansiyel açıkları zamanında tespit edin ve düzeltin.
Tek seferlik saldırıların neden olabileceği kayıpları azaltmak için makul bir yetki kontrolü ve kota mekanizması uygulayın.
Bu olay, Web3 proje geliştirme ekiplerine yenilik peşinde koşarken akıllı sözleşmelerin güvenliğine de önem vermeleri gerektiğini bir kez daha hatırlatıyor. Sadece daha güvenli ve güvenilir bir altyapı inşa ederek, tüm sektörün sağlıklı bir şekilde gelişmesini sağlayabiliriz.
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
8
Repost
Share
Comment
0/400
ShadowStaker
· 07-08 21:29
bir gün daha, bir defi istismarı daha... geliştiriciler ne zaman reentrancy kontrol etmeyi öğrenecek smh
View OriginalReply0
TokenTherapist
· 07-07 15:54
Bir diğeri gitti.
View OriginalReply0
GasWaster
· 07-06 14:26
Yine çalındı.
View OriginalReply0
SigmaBrain
· 07-05 22:13
Yine bir tekrar saldırısı, bu durum savunmayı kırdı.
View OriginalReply0
ponzi_poet
· 07-05 22:13
Güvenlik nerede? Nereye gitti?
View OriginalReply0
GetRichLeek
· 07-05 22:13
Ön sırada kavun yiyenler, sözleşme denetimlerini bile yapamıyor, çok büyük zarar.
View OriginalReply0
BearMarketGardener
· 07-05 22:07
Sözleşme yine patladı, ah.
View OriginalReply0
DaoGovernanceOfficer
· 07-05 22:00
*sigh* deneysel olarak konuşursak, bu hacklerin %99'u temel durum yönetimi hatalarından kaynaklanıyor...
OrionProtocol yeniden giriş saldırısına uğradı, 2.9 milyon dolar kayıp derinlikte incelendi.
OrionProtocol'ün Reentrancy Saldırısı Olayı Analizi
2023 yılının 2 Şubat'ında, Ethereum ve Binance Akıllı Zincirindeki OrionProtocol projesi, sözleşme açığı nedeniyle yeniden giriş saldırısına uğradı. Saldırgan, Ethereum zincirinden yaklaşık 2.84 milyon USDT çaldı ve Binance Akıllı Zincirinden yaklaşık 190 bin BUSD çaldı, toplam kayıp değeri yaklaşık 2.9 milyon dolar.
Saldırı Süreci Analizi
Saldırgan önce özel bir Token sözleşmesi kurdu ve bir dizi hazırlık yaptı. Ardından, saldırgan bir DEX'in takas işlevi aracılığıyla borç aldı ve OrionProtocol'ün ExchangeWithAtomic.swapThroughOrionPool yöntemini kullanarak token değişimi gerçekleştirdi. Değişim yolunda, saldırganın oluşturduğu Token sözleşmesi adresi yer alıyordu.
Değişim sürecinde, saldırganlar özelleştirilmiş Token sözleşmesinin geri çağırma işlevini kullanarak ExchangeWithAtomic.depositAsset yöntemini tekrar tekrar çağırdılar ve bu da yatırılan miktarın birden fazla kez artmasına neden oldu. Sonunda, saldırganlar çekim işlemiyle kâr elde ettiler.
Fon Akışı
Takip edilen bilgilere göre, saldırganın başlangıç sermayesi bir borsa platformunun sıcak cüzdanından gelmektedir. Saldırılardan elde edilen 1651 ETH'nin yaklaşık 657.5'i, saldırganın cüzdan adresinde kalırken, geri kalanı karıştırma hizmeti aracılığıyla transfer edilmiştir.
Açık Analizi
Temel sorun, ExchangeWithAtomic sözleşmesinin doSwapThroughOrionPool fonksiyonunda yatıyor. Bu fonksiyon, token transferini gerçekleştirdikten sonra curBalance değişkenini güncelliyor, bu da saldırganlar için yeniden giriş fırsatı yaratıyor. Saldırganlar, özelleştirilmiş Token'ın transfer fonksiyonuna geri çağırma mantığı ekleyerek, depositAsset fonksiyonunu tekrar tekrar çağırıyor ve bu da curBalance'ın yanlış güncellenmesine neden oluyor.
Saldırganlar, bu açığı kullanarak flash kredi ödemesinden sonra fazla fonları başarıyla çektiler.
Saldırı Yeniden Üretimi
Araştırmacılar, saldırı sürecini simüle eden bazı PoC kodları sağladı. Kod, özel Token oluşturma, likidite havuzu kurma, yetkilendirme işlemleri ve saldırıyı gerçekleştirme gibi adımları içeriyor. Test sonuçları, saldırının başarılı bir şekilde tekrarlandığını ve gerçek saldırının çağrı yığını sonuçlarıyla tutarlı olduğunu gösteriyor.
Güvenlik Önerileri
Sözleşme tasarımında, çeşitli Token'ların ve değişim yollarının getirebileceği güvenlik riskleri dikkate alınmalıdır.
"Kontroller-Etkiler-Etkileşimler" (Checks-Effects-Interactions) kodlama modeline uymak, yani önce koşulları kontrol etmek, sonra durum değişkenlerini güncellemek ve en son dış sözleşmelerle etkileşimde bulunmak.
Harici çağrılar işlenirken özellikle para transferi ile ilgili işlemlerde son derece dikkatli olunmalıdır.
Düzenli olarak güvenlik denetimleri yapın, potansiyel açıkları zamanında tespit edin ve düzeltin.
Tek seferlik saldırıların neden olabileceği kayıpları azaltmak için makul bir yetki kontrolü ve kota mekanizması uygulayın.
Bu olay, Web3 proje geliştirme ekiplerine yenilik peşinde koşarken akıllı sözleşmelerin güvenliğine de önem vermeleri gerektiğini bir kez daha hatırlatıyor. Sadece daha güvenli ve güvenilir bir altyapı inşa ederek, tüm sektörün sağlıklı bir şekilde gelişmesini sağlayabiliriz.