OWASP ve Top 10

OWASP (Open Worldwide Application Security Project), uygulama güvenliği alanında açık ve ücretsiz kaynaklar üreten, kâr amacı gütmeyen bir topluluktur. En bilinen çıktısı olan OWASP Top 10, web uygulamalarındaki en kritik güvenlik risklerini on kategori altında toplayan bir farkındalık belgesidir.

Top 10 bir standart veya eksiksiz bir kontrol listesi değildir; bir başlangıç noktasıdır. Daha ayrıntılı doğrulama gereksinimleri için OWASP ASVS (Application Security Verification Standard), uygulama düzeyinde rehberlik için ise OWASP Cheat Sheet Series kullanılır.

2021 listesi

KodKategoriKısa açıklama
A01Broken Access ControlKullanıcının yetkisi olmayan veri veya işleve erişebilmesi
A02Cryptographic FailuresHassas verinin yetersiz şifrelenmesi veya hatalı kriptografi
A03InjectionGüvenilmeyen verinin komut/sorgu olarak yorumlanması (XSS dahil)
A04Insecure DesignTasarım aşamasında eksik güvenlik kontrolleri
A05Security MisconfigurationHatalı, eksik veya varsayılan yapılandırmalar
A06Vulnerable and Outdated ComponentsBilinen açıkları olan kütüphane ve bileşenler
A07Identification and Authentication FailuresKimlik doğrulama ve oturum yönetimi hataları
A08Software and Data Integrity FailuresDoğrulanmamış güncellemeler, CI/CD ve serileştirme riskleri
A09Security Logging and Monitoring FailuresSaldırıların fark edilmesini engelleyen günlük eksikleri
A10Server-Side Request Forgery (SSRF)Sunucunun saldırganın belirlediği adrese istek göndermesi
OWASP listeyi dönemsel olarak günceller. Projelerinizde en güncel sürümü https://owasp.org/Top10/ adresinden kontrol edin; bu eğitim 2021 sürümünü temel alır.

Risk kavramı

Top 10'daki her kategori bir "zafiyet" değil, bir risk grubudur. Risk; bir açığın istismar edilme olasılığı ile gerçekleştiğinde doğuracağı etkinin birleşimidir. Örneğin yönetici paneline yetkisiz erişim, bir hata mesajında sürüm numarasının görünmesinden çok daha yüksek etkiye sahiptir.

Bu eğitimde nasıl ilerleyeceğiz?

Her kategori için aynı yapıyı izleyeceğiz:

  1. Nedir? Riskin kavramsal açıklaması.
  2. Neden olur? Tipik geliştirme hataları.
  3. Nasıl önlenir? Kod ve yapılandırma örnekleriyle savunma.
  4. Kontrol listesi: Kod incelemesinde sorulacak sorular.

Örnekler saldırı yükü (payload) içermez; amaç güvenli kod yazma alışkanlığı kazanmaktır.

Güvenli geliştirme yaşam döngüsünde Top 10

Top 10'u yalnızca test aşamasında hatırlamak geç kalmak demektir. Etkili kullanım şöyledir:

  • Tasarım: Tehdit modelleme oturumlarında kategorileri kontrol başlığı olarak kullanın.
  • Geliştirme: Ortak kütüphanelerde güvenli varsayılanlar sunun (ör. her sorgu için hazırlanmış ifade).
  • Kod incelemesi: Değişiklikleri erişim kontrolü, girdi işleme ve hassas veri açısından gözden geçirin.
  • CI/CD: Statik analiz (SAST), bağımlılık taraması (SCA) ve gizli anahtar taramasını otomatikleştirin.
  • İşletim: Günlükleri ve alarmları gerçek saldırı senaryolarına göre ayarlayın.
Ekibinizde Top 10'u bir "eğitim başlığı" olarak değil, kod inceleme şablonunun bölümleri olarak kullanmak kalıcı alışkanlık oluşturur.

Kaynaklar

  • OWASP Top 10: https://owasp.org/Top10/
  • OWASP Cheat Sheet Series: https://cheatsheetseries.owasp.org/
  • OWASP ASVS: https://owasp.org/www-project-application-security-verification-standard/