OWASP Top 10 listesi dört yıl aradan sonra 2025 sonunda güncellendi. Web uygulaması geliştiren, sızma testi raporu okuyan ya da güvenlik denetiminden geçen herkesin referans aldığı bu liste, bizim için de proje teslim kontrol listelerinin bel kemiği. Peki 2021'e göre ne değişti ve bu değişiklikler sizin projeniz için ne anlama geliyor? Bu yazıda listeyi akademik bir özet olarak değil, gerçek projelerde karşılığını gördüğümüz haliyle, saha notlarımızla birlikte ele alıyoruz.
Öne çıkan değişiklikler
Listenin zirvesinde yine Broken Access Control var; yani yetki kontrolü hataları hâlâ bir numaralı dert. Bizim sızma testi deneyimlerimizde de en sık bulunan zafiyet bu: URL'deki ID'yi değiştirince başkasının siparişini görebilmek gibi basit ama yıkıcı hatalar. 2025 listesinde dikkat çeken diğer başlıklar:
- Güvenlik yapılandırması hataları (misconfiguration) üst sıralara tırmandı; bulut ve container çağında yanlış yapılandırılmış bir S3 bucket ya da açık unutulmuş debug modu, kod hatasından daha sık veri sızdırıyor.
- Tedarik zinciri güvenliği ayrı bir kategori olarak güçlendi; artık sadece sizin kodunuz değil, çektiğiniz paketin bağımlılığının bağımlılığı da saldırı yüzeyi.
- SSRF ayrı kategori olmaktan çıkıp daha geniş bir başlığın altına alındı; injection ve kriptografik hatalar listedeki yerini koruyor.
16 yıllık sahadan: teori ile pratik farkı
OWASP listesi harita, ama arazi her projede farklı. 2010'dan beri devraldığımız onlarca projede gördüğümüz tablo şu: zafiyetlerin çoğu egzotik saldırılardan değil, aceleyle yazılmış yetki kontrollerinden, güncellenmeyen bağımlılıklardan ve "sonra bakarız" denilen yapılandırmalardan çıkıyor. Bir e-ticaret projesinde ödeme sağlayıcısı entegrasyonu kusursuzken, admin panelinin varsayılan şifreyle yayında olduğunu gördük. Liste değişse de insan faktörü değişmiyor.
Projeniz için pratik kontrol listesi
Bu hafta ekibinizle 30 dakika ayırıp şunlara bakın:
- Her endpoint'te "bu kaydı bu kullanıcı görebilir mi?" kontrolü var mı, yoksa sadece giriş yapmış olmak yetiyor mu?
- composer audit / npm audit çıktınız temiz mi, kritik CVE içeren bağımlılık var mı?
- Üretim ortamında debug modu, örnek hesaplar, açık kalan test endpoint'leri var mı?
- Hata mesajları stack trace veya SQL detayı sızdırıyor mu?
Sızma testi mi, kod denetimi mi?
Sık gelen bir soru bu. İkisi rakip değil, tamamlayıcıdır. Sızma testi dışarıdan bakar: saldırganın göreceğini görür, istismar edilebilir açıkları kanıtlar. Kod denetimi içeriden bakar: sızma testinin süre kısıtı nedeniyle atlayabileceği yapısal sorunları, tehlikeli desenleri ve bir sonraki zafiyetin doğacağı zemini yakalar. Bütçe kısıtlıysa önceliği şöyle koyuyoruz: internete açık ve para/veri hareketi olan sistemlerde önce sızma testi; kurumsal iç uygulamalarda ve uzun ömürlü ürünlerde önce kod denetimi ve statik analiz altyapısının kurulması. İdeal düzen ise yılda bir bağımsız sızma testi, her sürümde otomatik statik tarama ve kritik değişikliklerde hedefli kod incelemesidir. Bir de unutulmasın: rapor almak iş bitirmez. Bulguların kapatıldığını doğrulayan yeniden test, sürecin en çok atlanan ve en kritik adımıdır.
Bu dört soruya net cevap veremiyorsanız, denetim zamanı gelmiş demektir. Rich Design olarak mevcut web ve mobil projelerinize OWASP Top 10 2025 eksenli güvenlik değerlendirmesi yapıyoruz; tespitten kapatmaya kadar tüm süreci yönetiyoruz. Detaylar için bizimle iletişime geçin.