Reentrancy Saldırısı Nedir?
Diğer adları: Reentrancy Attack, Yeniden Giriş Saldırısı, Reentrancy
Kısaca
Reentrancy saldırısı (yeniden giriş saldırısı), bir akıllı sözleşmenin dış bir adrese çağrı yaptığı anda, ilk işlem tamamlanmadan saldırgan sözleşmenin aynı fonksiyonu tekrar tekrar çağırarak fonları boşalttığı bir güvenlik açığı türüdür.
Saldırı, sözleşmenin adımları yanlış sırayla yapmasından yararlanır. Örneğin bir para çekme fonksiyonu önce kullanıcıya ETH gönderip ardından bakiyesini sıfırlıyorsa, saldırganın sözleşmesi ETH'yi aldığı anda tetiklenen kodla çekme fonksiyonunu yeniden çağırır. Bakiye henüz sıfırlanmadığı için sözleşme ödemeyi tekrar yapar ve döngü, fonlar bitene veya gas tükenene kadar sürer.
Bu açığın en ünlü örneği 2016'daki The DAO saldırısıdır. Saldırgan, merkeziyetsiz yatırım fonu The DAO'nun sözleşmesindeki bu hatayı kullanarak büyük miktarda ETH'yi kendi kontrolündeki bir alt sözleşmeye aktardı. Olayın ardından Ethereum topluluğu fonları geri almak için bir hard fork yaptı; değişikliği kabul etmeyen zincir Ethereum Classic olarak devam etti.
Korunmak için 'kontroller-etkiler-etkileşimler' (checks-effects-interactions) deseni kullanılır: önce koşullar kontrol edilir, sonra bakiye gibi durum değişiklikleri yapılır ve dış çağrı en sona bırakılır. OpenZeppelin'in ReentrancyGuard gibi kilit mekanizmaları da aynı fonksiyona tekrar girilmesini engeller. Reentrancy farklı fonksiyonlar veya sözleşmeler arasında da gerçekleşebildiği için güvenlik denetimlerinde öncelikli olarak incelenir.
Son güncelleme: · Bu içerik bilgilendirme amaçlıdır, yatırım tavsiyesi değildir.

