Web güvenliği konusunda dünya çapında en çok başvurulan referanslardan biri OWASP Top 10'dur. OWASP (Open Worldwide Application Security Project), kâr amacı gütmeyen bir topluluktur ve düzenli olarak web uygulamalarında en yaygın ve en kritik güvenlik risklerini derleyen bir liste yayınlar. Bu liste, geliştiricilerden güvenlik uzmanlarına, denetçilerden proje yöneticilerine kadar herkesin ortak dili haline gelmiştir.

Bu yazıda OWASP Top 10'daki her başlığı teknik jargon yığını altında boğmadan, sade bir dille açıklayacağız. Amaç, hangi risklerin var olduğunu, neden önemli olduklarını ve uygulamanızı bunlara karşı nasıl koruyacağınızı net biçimde anlamanızı sağlamak. Bu listeyi bir "kontrol paneli" gibi düşünebilirsiniz: uygulamanızın güvenlik durumunu değerlendirirken başvuracağınız temel bir çerçeve.
1. Bozuk Erişim Kontrolü (Broken Access Control)
Son yıllarda listenin zirvesine yerleşen bu risk, kullanıcıların sahip olmamaları gereken verilere veya işlevlere erişebilmesini kapsar. Örneğin sıradan bir kullanıcının URL'deki bir kimlik numarasını değiştirerek başka bir kullanıcının siparişini görebilmesi klasik bir örnektir. Ya da yönetici paneline giden bir bağlantının yetkisiz kullanıcılara da açık olması.
Korunma: Her isteği sunucu tarafında yetkilendirin; "bu kullanıcı bu kaynağa erişebilir mi?" sorusunu her seferinde sorun. Arayüzde bir butonu gizlemek yeterli değildir — asıl kontrol sunucuda olmalıdır. Varsayılan olarak "reddet" ilkesini benimseyin.
2. Kriptografik Hatalar (Cryptographic Failures)
Hassas verilerin yeterince korunmaması bu kategoriye girer. Şifrelerin düz metin saklanması, verinin şifresiz iletilmesi, zayıf veya eski algoritmaların kullanılması bu başlığın örnekleridir.
Korunma: Tüm trafiği HTTPS ile şifreleyin. Şifreleri bcrypt veya Argon2 gibi modern algoritmalarla hash'leyin. Hassas veriyi hem iletim sırasında hem de depoda şifreleyin. Eski ve kırılmış algoritmaları (MD5, SHA1 gibi şifre için) asla kullanmayın.
3. Enjeksiyon (Injection)
SQL Injection'ın da içinde bulunduğu bu kategori, kullanıcı verisinin bir komut olarak yorumlanmasından kaynaklanan tüm açıkları kapsar. SQL, komut satırı ve LDAP enjeksiyonları bu grupta yer alır.
Korunma: Kullanıcı verisini komuttan ayırın. SQL için parametreli sorgular kullanın. İşletim sistemi komutlarına kullanıcı verisi geçirmekten kaçının; zorunluysa sıkı beyaz liste uygulayın. Girdileri doğrulayın ve bağlama uygun kaçış yapın.
4. Güvensiz Tasarım (Insecure Design)
Bu görece yeni kategori, kodlama hatasından çok tasarım aşamasındaki güvenlik eksikliklerine odaklanır. Yani sorun bir hatada değil, uygulamanın temel mantığının güvenliği hiç düşünülmeden kurulmuş olmasındadır.
Korunma: Güvenliği en baştan tasarıma dahil edin. Tehdit modellemesi yapın: "Bu özelliği kim, nasıl kötüye kullanabilir?" sorusunu geliştirme başlamadan sorun. Kritik iş akışlarına hız sınırlama, doğrulama ve kısıtlama kuralları ekleyin.
5. Güvenlik Yanlış Yapılandırması (Security Misconfiguration)
Belki de en yaygın ve en kolay istismar edilen kategoridir. Varsayılan şifrelerin değiştirilmemesi, gereksiz servislerin açık bırakılması, ayrıntılı hata mesajlarının kullanıcıya gösterilmesi, güncellenmemiş yazılımlar bu başlığa girer.
Korunma: Sunucu ve uygulama yapılandırmasını sıkılaştırın. Kullanılmayan özellik ve portları kapatın. Varsayılan hesapları kaldırın veya şifrelerini değiştirin. Üretimde hata ayıklama modunu kapatın ve ayrıntılı hataları gizleyin. Güvenlik başlıklarını doğru ayarlayın.
Güvenlik açıklarının büyük kısmı yeni ve karmaşık saldırılardan değil, basit bir yanlış yapılandırmadan veya unutulmuş bir varsayılan ayardan kaynaklanır. Temizlik, en ucuz savunmadır.
6. Güvenlik Açığı Olan ve Güncel Olmayan Bileşenler
Modern uygulamalar onlarca hatta yüzlerce üçüncü taraf kütüphaneye dayanır. Bu bileşenlerden birinde bilinen bir açık varsa ve siz güncellemediyseniz, uygulamanız da savunmasız kalır. Büyük ihlallerin önemli bir kısmı güncellenmemiş bir kütüphaneden kaynaklanmıştır.
Korunma: Kullandığınız tüm bağımlılıkların envanterini tutun. Bilinen açıkları tarayan araçlar kullanın. Güvenlik güncellemelerini düzenli ve hızlı biçimde uygulayın. Artık bakımı yapılmayan kütüphanelerden uzak durun.
7. Kimlik Doğrulama Hataları (Identification and Authentication Failures)
Zayıf şifre politikaları, kaba kuvvet saldırılarına karşı korumasızlık, güvensiz oturum yönetimi bu kategoriye girer. Saldırganın kullanıcı hesaplarını ele geçirmesine giden en doğrudan yollardan biridir.
Korunma: Güçlü şifre kuralları uygulayın ve çok faktörlü kimlik doğrulamayı (MFA) sunun. Giriş denemelerini sınırlayın (rate limiting). Oturum kimliklerini güvenli üretin, girişte yenileyin ve makul sürede sonlandırın. Bilinen sızmış şifrelere karşı kontrol yapın.

8. Yazılım ve Veri Bütünlüğü Hataları
Bu kategori, doğrulanmamış kaynaklardan gelen kod veya verinin güvenilerek kullanılmasını kapsar. Güvensiz serileştirme (deserialization) ve güvenilmeyen kaynaktan otomatik güncelleme bu grupta yer alır.
Korunma: Yazılım güncellemelerini ve kritik verileri dijital imzayla doğrulayın. Güvenilmeyen kaynaktan gelen veriyi asla kör biçimde deserialize etmeyin. CI/CD hattınızın güvenliğini ciddiye alın; kötü niyetli bir bağımlılık tüm zincire bulaşabilir.
9. Güvenlik Kayıt ve İzleme Eksiklikleri
Bir saldırıyı önlemek kadar onu fark etmek de önemlidir. Yeterli loglama ve izleme yoksa, bir ihlal aylarca fark edilmeden sürebilir. Birçok kurum, saldırıya uğradığını ancak veriler karanlık pazarda satışa çıktığında öğrenir.
Korunma: Başarısız giriş denemeleri, yetki hataları ve kritik işlemler gibi güvenlik olaylarını loglayın. Logları merkezi ve güvenli biçimde saklayın. Anormal davranışları tespit eden uyarı mekanizmaları kurun. Bir olay müdahale planınız olsun.
10. Sunucu Taraflı İstek Sahteciliği (SSRF)
SSRF, saldırganın sunucuyu kandırarak kendi seçtiği bir adrese istek yaptırmasıdır. Bu, saldırganın normalde erişemeyeceği iç ağ kaynaklarına ulaşmasına yol açabilir. Bulut altyapılarının yaygınlaşmasıyla bu risk ciddi biçimde arttı.
Korunma: Kullanıcının verdiği URL'lere sunucudan istek yaparken sıkı beyaz liste uygulayın. İç ağ adreslerine erişimi engelleyin. Gereksiz yönlendirmelere izin vermeyin ve sunucunun dış isteklerini ağ düzeyinde kısıtlayın.
OWASP Top 10'u Nasıl Kullanmalı?
OWASP Top 10 bir "yapılacaklar listesi" değil, bir farkındalık ve öncelik çerçevesidir. Amaç, en yaygın ve en yıkıcı risklere dikkat çekmek ve ekiplerin bunları göz ardı etmemesini sağlamaktır. Bu listeyi geliştirme sürecinize entegre etmenin pratik yolları vardır:
- Yeni bir özellik geliştirirken listeyi bir kontrol noktası olarak kullanın.
- Kod incelemelerinde bu risklere özel dikkat gösterin.
- Ekibinizi bu başlıklar üzerinde düzenli eğitin; güvenlik bir kültür meselesidir.
- Yayına almadan önce bu listedeki her maddeyi bir kontrol listesi gibi gözden geçirin.
Türkiye Bağlamı: KVKK ve Sorumluluk
Türkiye'de kişisel veri işleyen her uygulama, KVKK kapsamında "makul teknik ve idari tedbirleri" almakla yükümlüdür. OWASP Top 10, bu makul tedbirlerin ne olması gerektiği konusunda güçlü bir referanstır. Bir veri ihlali yaşandığında, bu listedeki temel önlemleri almamış olmak sorumluluğunuzu ağırlaştırır. Dolayısıyla OWASP Top 10'a uyum, yalnızca teknik değil aynı zamanda yasal bir korumadır.
Hızlı Kontrol Listesi
- Erişim kontrolü her istekte sunucu tarafında doğrulanıyor mu?
- Tüm trafik HTTPS ile şifreli ve şifreler güçlü biçimde hash'leniyor mu?
- Tüm sorgular parametreli ve girdiler doğrulanıyor mu?
- Sunucu ve uygulama sıkılaştırılmış, varsayılanlar temizlenmiş mi?
- Bağımlılıklar güncel ve bilinen açıklara karşı taranıyor mu?
- Güçlü kimlik doğrulama, MFA ve giriş sınırlaması var mı?
- Güvenlik olayları loglanıp izleniyor mu?
Sık Sorulan Sorular
OWASP Top 10'a uyarsam tamamen güvende miyim? Hayır, ama çok daha güvendesiniz. Bu liste en yaygın riskleri kapsar; her uygulamanın kendine özgü ek riskleri olabilir. Top 10 bir başlangıç noktasıdır, bitiş noktası değil.
Liste ne sıklıkla güncelleniyor? OWASP listeyi periyodik olarak, gerçek dünya verilerine dayanarak günceller. Kategoriler zamanla yeniden düzenlenir; bu yüzden güncel sürümü takip etmek önemlidir.
Küçük bir projede de geçerli mi? Kesinlikle. Saldırganların çoğu otomatik araçlarla çalışır ve proje büyüklüğüne bakmaz. Küçük bir sitede de aynı temel önlemler geçerlidir.
Sonuç
OWASP Top 10, web güvenliğine sistematik bir bakış getirmenin en pratik yoludur. Her başlık, dünya çapında sayısız ihlalin kök nedenini temsil eder; dolayısıyla bu listeyi ciddiye almak, aynı hataları tekrarlamaktan kaçınmak demektir. Güvenlik bir kerelik bir görev değil, geliştirme kültürünün ayrılmaz bir parçası olmalıdır.
Uygulamanızı OWASP Top 10 çerçevesinde denetlemek, açıkları tespit etmek ve kalıcı bir güvenlik altyapısı kurmak için bizimle iletişime geçin. Riskleri saldırgandan önce görmek, her zaman en akıllı yatırımdır.
Bir sonraki projeniz için hazır mısınız?
Okuduklarınızı işinize uygulamak veya dijital dönüşümünüzü konuşmak isterseniz, ekibimiz bir mesaj uzağınızda.

Yorum Yap