OWASP Top 10 Nedir? Web Uygulama Güvenliği Rehberi (2021)
OWASP Top 10, web uygulamalarındaki en yüksek riskli on güvenlik açığı kategorisini sıralayan ücretsiz uluslararası referanstır. 2021 listesinin tamamı, her kategorinin açılımı ve savunması, Broken Access Control neden birinci sırada, OWASP Top 10 nasıl kullanılır ve uyum standartlarıyla ilişkisi.
Hızlı cevap: OWASP Top 10, web uygulamalarında en sık görülen ve en yüksek riskli on güvenlik açığı kategorisini sıralayan, ücretsiz ve uluslararası kabul görmüş bir referanstır. Open Worldwide Application Security Project (OWASP) tarafından birkaç yılda bir gerçek verilere dayanarak güncellenir. En güncel sürüm 2021'dir ve listenin başında Broken Access Control (kırık erişim kontrolü) yer alır. OWASP Top 10 bir denetim listesi değil, bir farkındalık belgesidir: bir uygulamanın güvenli olduğunu kanıtlamaz, ama bu on kategoriyi kapatmadan güvenli olamayacağını gösterir. Sızma testi kapsamının ve güvenli geliştirme eğitiminin de temel çerçevesidir.
Bir web uygulamasının güvenliği sorulduğunda cevap neredeyse her zaman OWASP Top 10 ile başlar. Sebebi basittir: gerçek dünyada uygulamaların ele geçirilme yollarının büyük çoğunluğu bu on kategoriye girer. Bu yazı, OWASP Top 10 2021 listesini, her kategorinin ne olduğunu ve nasıl kapatılacağını anlatıyor.
OWASP Top 10 nedir, ne değildir
OWASP kâr amacı gütmeyen bir topluluktur ve uygulama güvenliği alanında ücretsiz araçlar, kılavuzlar ve standartlar üretir. Top 10, bunların en bilinenidir.
Önemli bir ayrım: OWASP Top 10 bir uyum standardı değildir. "Top 10'u geçtik, uygulamamız güvenli" denemez. Liste, en yaygın risk kategorilerini gösterir. Bir uygulama bu on kategoriyi kapatsa bile başka açıklar barındırabilir. Buna karşılık, Top 10'daki kategorilerden birini bile açık bırakmak ciddi risk demektir. Yani Top 10 bir alt sınırdır, üst sınır değil.
Liste birkaç yılda bir güncellenir çünkü tehdit manzarası değişir. 2021 sürümü, gerçek uygulamalardan toplanan veri ve topluluk anketiyle oluşturuldu.
OWASP Top 10 (2021)
| Sıra | Kategori | Kısaca |
|---|---|---|
| A01 | Broken Access Control | Kullanıcının yetkisi olmayan veriye veya işleve erişmesi |
| A02 | Cryptographic Failures | Zayıf ya da eksik şifreleme, açıkta kalan hassas veri |
| A03 | Injection | SQL, komut, LDAP enjeksiyonu; XSS de bu başlıkta |
| A04 | Insecure Design | Tasarım aşamasındaki güvenlik eksikliği |
| A05 | Security Misconfiguration | Varsayılan ayar, açık hata mesajı, gereksiz servis |
| A06 | Vulnerable and Outdated Components | Yamasız kütüphane ve bağımlılık |
| A07 | Identification and Authentication Failures | Zayıf oturum ve kimlik doğrulama |
| A08 | Software and Data Integrity Failures | Doğrulanmamış güncelleme ve tedarik zinciri |
| A09 | Security Logging and Monitoring Failures | Yetersiz kayıt ve izleme |
| A10 | Server Side Request Forgery (SSRF) | Sunucunun kandırılıp iç kaynaklara istek atması |
Kategorilerin açılımı ve savunması
A01 Broken Access Control
2021'de birinci sıraya yükseldi çünkü en yaygın ve en etkili açık. Bir kullanıcı, URL'deki bir kimlik numarasını değiştirerek başkasının verisine ulaşabiliyorsa (IDOR), ya da normal bir kullanıcı yönetici işlevlerini çağırabiliyorsa erişim kontrolü kırıktır. Savunma: her istek sunucu tarafında yeniden yetkilendirilmeli, kararlar istemciye asla bırakılmamalı, varsayılan olarak reddet ilkesi uygulanmalıdır. Bu, Sıfır Güven mimarisi yaklaşımının uygulama düzeyindeki karşılığıdır.
A02 Cryptographic Failures
Hassas verinin şifresiz saklanması ya da iletilmesi, zayıf algoritma kullanımı, sabit kodlanmış anahtarlar. Savunma: her yerde güncel TLS, hassas veriyi güçlü ve modern algoritmalarla şifreleme, anahtarları koddan ayırma ve gizli yönetim sistemi kullanma.
A03 Injection
Kullanıcı girdisinin sorguya ya da komuta doğrudan karışması. En bilineni SQL enjeksiyonudur, ayrıntısı için SQL injection nedir ve nasıl korunulur yazımıza bakın. Cross Site Scripting (XSS) de bu başlığa girer, o da ayrı bir yazıda ele alındı. Savunma: parametreli sorgular, girdi doğrulama ve çıktı kodlama.
A04 Insecure Design
Kodun değil, tasarımın hatası. İş mantığı açıkları, eksik hız sınırlaması, kötüye kullanıma açık akışlar buraya girer. Savunma: tasarım aşamasında tehdit modellemesi, güvenli tasarım desenleri ve kötüye kullanım senaryolarının önceden düşünülmesi.
A05 Security Misconfiguration
Varsayılan parolalar, açık dizin listeleme, ayrıntılı hata mesajları, gereksiz açık portlar. Savunma: sıkılaştırma standartları, gereksiz her şeyi kapatma, otomatik yapılandırma denetimi.
A06 Vulnerable and Outdated Components
Uygulamanın kullandığı bir kütüphanede bilinen açık bulunması. Modern uygulamaların büyük kısmı üçüncü taraf koddan oluşur. Savunma: bağımlılık envanteri (SBOM), sürekli zafiyet taraması ve düzenli güncelleme. Tedarik zinciri boyutu için tedarik zinciri güvenliği yazımıza bakabilirsiniz.
A07 Identification and Authentication Failures
Zayıf parola politikası, kaba kuvvete açık giriş, kötü oturum yönetimi. Savunma: çok faktörlü doğrulama, kimlik avına dayanıklı yöntemler ve güvenli oturum yönetimi. Ayrıntı için passkey ve MFA bypass yazımıza bakın.
A08 Software and Data Integrity Failures
Doğrulanmamış güncellemeler, güvenli olmayan seri hale getirme (deserialization), kurcalanmış tedarik zinciri. Savunma: imzalı güncellemeler, bütünlük doğrulama ve güvenilir kaynak kontrolü.
A09 Security Logging and Monitoring Failures
Bir saldırının fark edilememesi çoğu zaman kod açığından değil, kayıt ve izleme eksikliğinden kaynaklanır. Savunma: merkezi kayıt, anlamlı olay üretimi ve gerçek zamanlı izleme. Bu, SIEM ve SOC kurmanın temelidir.
A10 Server Side Request Forgery (SSRF)
Saldırganın, sunucuyu kandırıp iç ağdaki kaynaklara ya da bulut meta veri servisine istek atmasını sağlaması. Bulut ortamlarında ciddi bir yükseltme yolu. Savunma: giden isteklerin doğrulanması, iç adreslere erişimin kısıtlanması ve izin listesi yaklaşımı.
OWASP Top 10'u nasıl kullanmalı
- Geliştirici eğitimi. Ekip her kategoriyi kod düzeyinde tanımalı. Farkındalık, güvenli kodun ilk adımıdır.
- Sızma testi kapsamı. Yetkili bir sızma testi bu on kategoriyi hedef alarak başlar. Süreç için sızma testi süreci ve kapsamı yazımıza bakabilirsiniz.
- Kod incelemesi ve otomatik tarama. Statik ve dinamik analiz araçları bu kategorileri arayacak biçimde ayarlanmalı.
- Kabul kriteri. Yeni bir özellik yayına alınmadan önce ilgili Top 10 kontrollerinden geçmeli.
OWASP ayrıca API'lere özel bir liste yayınlar. Uygulamanız API ağırlıklıysa, OWASP API Security Top 10 ayrı olarak incelenmelidir.
Sık sorulan sorular
OWASP Top 10'u geçen uygulama güvenli mi? Hayır. Top 10 en yaygın riskleri gösterir, tam güvenlik garantisi vermez. Bir alt sınırdır, uygulamada başka açıklar da olabilir.
OWASP Top 10 ne sıklıkla güncellenir? Birkaç yılda bir. En güncel sürüm 2021'dir ve yeni sürüm çalışmaları topluluk tarafından yürütülür.
OWASP ücretsiz mi? Evet. OWASP kâr amacı gütmez ve Top 10 dahil tüm belgeleri ücretsizdir.
XSS neden ayrı bir madde değil? 2021 sürümünde XSS, Injection (A03) kategorisi altında değerlendirilir. Yine de kendine özgü savunma teknikleri vardır.
Küçük bir sitenin OWASP Top 10'a ihtiyacı var mı? Evet. Saldırılar çoğunlukla otomatiktir ve site büyüklüğüne bakmaz. Küçük sitelerin en sık düştüğü tuzaklar da bu listedendir.
OWASP Top 10 ile uyum standartları arasında ilişki var mı? Doğrudan bir uyum standardı değildir, ancak ISO 27001, PCI DSS ve NIS2 gibi çerçevelerin uygulama güvenliği beklentileriyle büyük ölçüde örtüşür.
Kaynaklar
- OWASP Top 10 resmi sayfası: https://owasp.org/www-project-top-ten/
- OWASP API Security Top 10: https://owasp.org/API-Security/
- OWASP Application Security Verification Standard (ASVS): https://owasp.org/www-project-application-security-verification-standard/
- MITRE CWE, yaygın zafiyet sınıflandırması: https://cwe.mitre.org
- NIST Secure Software Development Framework: https://csrc.nist.gov/projects/ssdf
Uygulamanızın OWASP Top 10 karşısında gerçekten dayanıklı olup olmadığını ölçmek isterseniz DSET ile iletişime geçin. Ankara Hacettepe Teknokent laboratuvarımızdan sızma testi, güvenli kod incelemesi ve geliştirici eğitimi hizmeti veriyoruz.
Kimliğinizi doğrulayın
Yetkilendirilmiş erişim alanı. Tüm giriş denemeleri kayıt altına alınır.