Yetki Yükseltme (Privilege Escalation) — Gerçek Dünyadan Teknik Bir İnceleme
Yetki yükseltme, bir saldırganın normal bir kullanıcı (veya kısıtlı yetkili süreç) seviyesinden daha yüksek izinlere (örn. root/Administrator) ulaşmasıdır. Bu yazıda gerçek bir zafiyet senaryosunu laboratuvarda yeniden üretecek şekilde ele alacağım: Linux tarafında setuid / yanlış kullanım ve Windows tarafında unquoted service path / servis izinleri örnekleriyle hem “nasıl çalıştığı” hem “neden tehlikeli olduğu” hem de “nasıl düzeltilir” adımlarını göreceksiniz.
Neden Önemli?
Yetki yükseltme, saldırı zincirinin kritik halkasıdır: bir zafiyet ile sisteme sızan saldırgan, yükseltme ile kalıcılık, veri sızdırma veya ağda hareketlilik (lateral movement) elde eder. Bu, bir güvenlik açığının yalnızca başlangıç aşamasında olduğunun kanıtıdır.
1) Linux: Yanlış Yazılmış setuid Programı (Pratik Senaryo)
Senaryo (özet)
Basit bir yönetim aracı vuln_updater root olarak çalışan ve dışarıdan gelen dosya isimlerini system() ile çalıştıran setuid programı olsun. Girdi doğrulaması yok; dolayısıyla saldırgan yerel dosya/çevresel değişkenler üzerinden kod çalıştırabilir.
Zafiyetin kökü
system() çağrılarında kullanıcı kontrollü argümanların doğrudan kullanılması.
Setuid binary’lerin çevresel değişkenleri yeterince sabitlememesi (PATH, LD_PRELOAD, IFS vb.).
Dosya izinlerinin kötü yapılandırılması.
Laboratuvar Hazırlığı (güvenli ortamda)
İzole bir VM oluştur (ör. Ubuntu VM).
Aşağıdaki gibi bilinçli olarak güvensiz bir program derle (sadece lab için):
// vuln_updater.c - LAB ONLY
#include