Poolz, aritmetik taşma açığı saldırısı nedeniyle yaklaşık 66.5 bin dolar kaybetti
15 Mart 2023'te, Poolz Ethereum, BNB Chain ve Polygon ağlarında bir saldırıya uğradı ve çeşitli token varlıkları kaybedildi, toplam değeri yaklaşık 665.000 dolar. Saldırganlar, akıllı sözleşmedeki aritmetik taşma açığından yararlanarak, fon transferi kısıtlamalarını başarıyla aştılar.
Zincir üzerindeki veri izlemeye göre, bu saldırı MEE, ESNC, DON, ASW, KMON, POOLZ gibi birden fazla token'i kapsamaktadır. Saldırgan, elde ettiği bazı token'leri BNB'ye dönüştürdü, ancak şu anda bu fonlar henüz transfer edilmedi.
Saldırı süreci üç ana adıma ayrılır:
Saldırgan önce bir DEX üzerinden az miktarda MNZ token'ı değiştirdi.
Ardından, Poolz sözleşmesindeki CreateMassPools fonksiyonu çağrıldı. Bu fonksiyon, likidite havuzlarını toplu olarak oluşturmak ve başlangıç likiditesi sağlamak için kullanılmalıydı, ancak burada kritik bir açık bulunuyordu.
Açık, getArraySum fonksiyonunda ortaya çıkmıştır. Bu fonksiyon, _StartAmount dizisini dolaşarak toplam yapmaktadır, ancak taşma durumunu göz önünde bulundurmamaktadır. Saldırgan, uint256 taşmasına neden olan bir dizi dikkatlice oluşturmuştur, böylece fonksiyonun döndürdüğü değer 1 olurken, gerçekte kaydedilen _StartAmount büyük bir sayıdır.
Son olarak, saldırgan withdraw fonksiyonunu çağırarak fonları çekti ve tüm saldırı sürecini tamamladı.
Bu olay, akıllı sözleşmelerdeki aritmetik taşma sorunlarının tehlikesini bir kez daha vurgulamıştır. Benzer saldırılardan korunmak için geliştiriciler aşağıdaki önerileri dikkate almalıdır:
Daha yeni bir Solidity derleyici sürümünü kullanın, bu sürümde taşma kontrol mekanizması bulunmaktadır.
Düşük versiyonlu Solidity'de, tamsayı işlemlerini gerçekleştirmek için OpenZeppelin'in SafeMath gibi üçüncü taraf güvenlik kütüphaneleri kullanılabilir.
Matematik hesaplamaları içeren kısımlara özellikle dikkat ederek kapsamlı bir kod denetimi yapılmalıdır.
Anahtar işlemler için koruma katmanı eklemek amacıyla çoklu imza gibi ek güvenlik önlemleri uygulayın.
Bu olay, bize blok zinciri ekosisteminde kodun hukukun kendisi olduğunu bir kez daha hatırlatıyor. Geliştirme ekipleri, kullanıcı varlıklarını ve proje itibarı korumak için her zaman dikkatli olmalı ve güvenlik uygulamalarını sürekli olarak geliştirmelidir.
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.
Poolz, aritmetik taşma saldırısına uğradı, 66.5 bin dolar kaybetti, çok zincirli varlıklar etkilendi.
Poolz, aritmetik taşma açığı saldırısı nedeniyle yaklaşık 66.5 bin dolar kaybetti
15 Mart 2023'te, Poolz Ethereum, BNB Chain ve Polygon ağlarında bir saldırıya uğradı ve çeşitli token varlıkları kaybedildi, toplam değeri yaklaşık 665.000 dolar. Saldırganlar, akıllı sözleşmedeki aritmetik taşma açığından yararlanarak, fon transferi kısıtlamalarını başarıyla aştılar.
Zincir üzerindeki veri izlemeye göre, bu saldırı MEE, ESNC, DON, ASW, KMON, POOLZ gibi birden fazla token'i kapsamaktadır. Saldırgan, elde ettiği bazı token'leri BNB'ye dönüştürdü, ancak şu anda bu fonlar henüz transfer edilmedi.
Saldırı süreci üç ana adıma ayrılır:
Saldırgan önce bir DEX üzerinden az miktarda MNZ token'ı değiştirdi.
Ardından, Poolz sözleşmesindeki CreateMassPools fonksiyonu çağrıldı. Bu fonksiyon, likidite havuzlarını toplu olarak oluşturmak ve başlangıç likiditesi sağlamak için kullanılmalıydı, ancak burada kritik bir açık bulunuyordu.
Açık, getArraySum fonksiyonunda ortaya çıkmıştır. Bu fonksiyon, _StartAmount dizisini dolaşarak toplam yapmaktadır, ancak taşma durumunu göz önünde bulundurmamaktadır. Saldırgan, uint256 taşmasına neden olan bir dizi dikkatlice oluşturmuştur, böylece fonksiyonun döndürdüğü değer 1 olurken, gerçekte kaydedilen _StartAmount büyük bir sayıdır.
Son olarak, saldırgan withdraw fonksiyonunu çağırarak fonları çekti ve tüm saldırı sürecini tamamladı.
Bu olay, akıllı sözleşmelerdeki aritmetik taşma sorunlarının tehlikesini bir kez daha vurgulamıştır. Benzer saldırılardan korunmak için geliştiriciler aşağıdaki önerileri dikkate almalıdır:
Daha yeni bir Solidity derleyici sürümünü kullanın, bu sürümde taşma kontrol mekanizması bulunmaktadır.
Düşük versiyonlu Solidity'de, tamsayı işlemlerini gerçekleştirmek için OpenZeppelin'in SafeMath gibi üçüncü taraf güvenlik kütüphaneleri kullanılabilir.
Matematik hesaplamaları içeren kısımlara özellikle dikkat ederek kapsamlı bir kod denetimi yapılmalıdır.
Anahtar işlemler için koruma katmanı eklemek amacıyla çoklu imza gibi ek güvenlik önlemleri uygulayın.
Bu olay, bize blok zinciri ekosisteminde kodun hukukun kendisi olduğunu bir kez daha hatırlatıyor. Geliştirme ekipleri, kullanıcı varlıklarını ve proje itibarı korumak için her zaman dikkatli olmalı ve güvenlik uygulamalarını sürekli olarak geliştirmelidir.