Poolz, sayısal taşma açığı saldırısına uğradı, yaklaşık 66.5 bin dolar kaybetti
Son zamanlarda, Poolz'a yönelik bir saldırı olayı kripto para topluluğunun geniş dikkatini çekti. Zincir üzerindeki izleme verilerine göre, saldırı 15 Mart 2023'te gerçekleşti ve Ethereum, BNB Chain ve Polygon gibi birden fazla zinciri kapsadı. Bu saldırı, çeşitli tokenlerin kaybına neden oldu ve toplam değeri yaklaşık 66.5 milyon dolar.
Saldırganlar, Poolz akıllı sözleşmesindeki bir aritmetik taşma açığını kullandı. Özellikle, sorun CreateMassPools fonksiyonundaki getArraySum fonksiyonunda ortaya çıkıyor. Bu fonksiyon, token miktarını hesaplarken taşma problemi nedeniyle, gerçek olarak yatırılan token miktarının kaydedilen miktarla uyuşmamasına neden oluyor.
Saldırı süreci büyük ölçüde aşağıdaki gibidir:
Saldırgan önce bir merkeziyetsiz borsada bazı MNZ tokenlerini değiştirdi.
Ardından CreateMassPools fonksiyonu çağrıldı. Bu fonksiyon, kullanıcıların toplu olarak likidite havuzları oluşturmasına ve başlangıç likiditesi sağlamasına izin vermeliydi.
CreatePool sürecinde, getArraySum fonksiyonunun taşma problemi nedeniyle, saldırgan yalnızca 1 token aktararak, sistemin gerçekteki değerden çok daha büyük bir değeri kaydetmesine neden olabiliyor.
Son olarak, saldırgan withdraw fonksiyonu aracılığıyla gerçekte yatırdığı miktardan çok daha fazla token çekerek saldırıyı tamamladı.
Bu olay, akıllı sözleşmelerdeki aritmetik işlemlerin önemini ve potansiyel risklerini bir kez daha vurgulamaktadır. Benzer sorunların önlenmesi için geliştiricilerin, taşma kontrolü otomatik olarak gerçekleştiren daha yeni bir Solidity derleyici sürümü kullanmayı düşünmeleri gerekmektedir. Daha eski sürüm Solidity kullanan projeler için, taşma riskinden kaçınmak amacıyla OpenZeppelin'in SafeMath kütüphanesinin kullanılmasını öneririz.
Bu olay, blok zinciri ve akıllı sözleşme geliştirmede güvenliğin her zaman öncelikli bir endişe olması gerektiğini hatırlatıyor. Düzenli kod denetimleri, doğrulanmış kütüphanelerin kullanılması ve kapsamlı güvenlik önlemlerinin alınması, kullanıcı varlıklarını korumak ve projenin itibarını sürdürmek için son derece önemlidir.
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.
5 Likes
Reward
5
2
Share
Comment
0/400
GweiTooHigh
· 13h ago
Yine taşma. Şimdi hala projelerin bu basit hatayı yaptığını görüyoruz.
Poolz, aritmetik taşma saldırısına uğradı ve 66.5 bin dolar kaybetti.
Poolz, sayısal taşma açığı saldırısına uğradı, yaklaşık 66.5 bin dolar kaybetti
Son zamanlarda, Poolz'a yönelik bir saldırı olayı kripto para topluluğunun geniş dikkatini çekti. Zincir üzerindeki izleme verilerine göre, saldırı 15 Mart 2023'te gerçekleşti ve Ethereum, BNB Chain ve Polygon gibi birden fazla zinciri kapsadı. Bu saldırı, çeşitli tokenlerin kaybına neden oldu ve toplam değeri yaklaşık 66.5 milyon dolar.
Saldırganlar, Poolz akıllı sözleşmesindeki bir aritmetik taşma açığını kullandı. Özellikle, sorun CreateMassPools fonksiyonundaki getArraySum fonksiyonunda ortaya çıkıyor. Bu fonksiyon, token miktarını hesaplarken taşma problemi nedeniyle, gerçek olarak yatırılan token miktarının kaydedilen miktarla uyuşmamasına neden oluyor.
Saldırı süreci büyük ölçüde aşağıdaki gibidir:
Saldırgan önce bir merkeziyetsiz borsada bazı MNZ tokenlerini değiştirdi.
Ardından CreateMassPools fonksiyonu çağrıldı. Bu fonksiyon, kullanıcıların toplu olarak likidite havuzları oluşturmasına ve başlangıç likiditesi sağlamasına izin vermeliydi.
CreatePool sürecinde, getArraySum fonksiyonunun taşma problemi nedeniyle, saldırgan yalnızca 1 token aktararak, sistemin gerçekteki değerden çok daha büyük bir değeri kaydetmesine neden olabiliyor.
Son olarak, saldırgan withdraw fonksiyonu aracılığıyla gerçekte yatırdığı miktardan çok daha fazla token çekerek saldırıyı tamamladı.
Bu olay, akıllı sözleşmelerdeki aritmetik işlemlerin önemini ve potansiyel risklerini bir kez daha vurgulamaktadır. Benzer sorunların önlenmesi için geliştiricilerin, taşma kontrolü otomatik olarak gerçekleştiren daha yeni bir Solidity derleyici sürümü kullanmayı düşünmeleri gerekmektedir. Daha eski sürüm Solidity kullanan projeler için, taşma riskinden kaçınmak amacıyla OpenZeppelin'in SafeMath kütüphanesinin kullanılmasını öneririz.
Bu olay, blok zinciri ve akıllı sözleşme geliştirmede güvenliğin her zaman öncelikli bir endişe olması gerektiğini hatırlatıyor. Düzenli kod denetimleri, doğrulanmış kütüphanelerin kullanılması ve kapsamlı güvenlik önlemlerinin alınması, kullanıcı varlıklarını korumak ve projenin itibarını sürdürmek için son derece önemlidir.