PUDA Explained: Understanding Use-After-Free-Style Bugs
PUDA (Premature Use / Dangling Access) tarzı bellek hatalarının net bir açıklaması, nasıl oluştukları ve savunmacıların bunları nasıl tespit edip önledikleri.
Bellek bozulması hataları sistem yazılımında en ısrarcı güvenlik açığı sınıflarından birini oluşturmaya devam etmektedir ve bunların mekaniklerini anlamak, güvenlik açığı araştırması, güvenli kodlama veya exploit azaltma alanında çalışan herkesin için gereklidir. "PUDA", bazı güvenlik toplulukları tarafından Premature Use of Dangling Access (Dangling Access'in Erken Kullanımı) tanımlamak için gayri resmi olarak kullanılan bir terimdir — bir program, o bellek serbest bırakıldıktan, yeniden tahsis edildikten veya başka şekilde geçersiz kılındıktan sonra belleğe (bir gösterici, işleyici veya nesne başvurusu) başvurduğu hataların bir kategorisidir. Bu, use-after-free (UAF) ve dangling pointer sorunlarıyla yakından ilişkilidir ve genellikle onlarla eşanlamlı olarak kullanılır. PUDA terimini bir CTF yazısında, bir araştırma makalesinde veya dahili bir hata izleyicide karşılaşıyor olursanız da, altta yatan konsept aynıdır: eski bir başvurunun hala geçerli gibi kullanılması.
Bir PUDA Durumuna Ne Neden Olur
Temeliyle, bir PUDA hatası, bir nesnenin gerçek yaşam süresi ile onu referans alan kodun varsaydığı yaşam süresi arasında bir uyuşmazlıktan kaynaklanır. Yaygın kök nedenler şunları içerir:
- Free sonrası null-out eksikliği: bir gösterici serbest bırakılır ancak
NULLolarak ayarlanmaz, bu da onu dangling durumda bırakır ve yanlışlıkla yeniden kullanılabilir hale getirir. - Yarış koşulları: çok iş parçacıklı kodda, bir iş parçacığı bir nesneyi serbest bırakırken başka bir iş parçacığı hala buna bir başvuru tutar ve kullanır (klasik bir TOCTOU-benzeri senaryo).
- Geri çağırma ve olay odaklı mantık: bir nesne geri çağırma sırasında yok edilir ancak çağıran kod geri çağırma döndükten sonra üzerinde işlem yapmaya devam eder.
- Başvuru sayımı hataları: bir nesnenin başvuru sayısı yanlış olarak azaltılır ve bu da nesnenin hala
AI yardımıyla yazıldı, Michal Pilch (CISSP), Korra Studio tarafından incelendi ve yayınlandı.
Bu, Korra Studio bilgi tabanından bir nottur — platform her konuyu 1-to-1 mentoring ile eşleştirir.
Ücretsiz başlaarrow_forward