OWASP Top 10 (2025): En Kritik Web Uygulaması Güvenlik Riskleri
Web uygulamalarının saldırı yüzeyi genişledikçe, bu uygulamalara yönelik güvenlik riskleri de aynı oranda artmaktadır. OWASP Top 10, dünya genelinde en sık karşılaşılan ve en kritik web uygulaması güvenlik zafiyetlerini ele alan, sektör tarafından kabul görmüş bir referans rehberidir.
OWASP Top 10; yalnızca geliştiriciler için değil, aynı zamanda altyapı yöneticileri ve güvenlik ekipleri için de ortak bir güvenlik dili oluşturur. Uygulama güvenliği risklerinin doğru anlaşılması, önceliklendirilmesi ve etkin şekilde yönetilmesi açısından güçlü bir yol haritası sunar.
A01:2025 – Broken Access Control
Broken Access Control, web uygulamalarında en yaygın ve en kritik güvenlik riskidir. OWASP tarafından analiz edilen uygulamaların tamamı, en az bir erişim kontrolü zafiyeti açısından değerlendirilmiştir. Bu durum, erişim kontrolü hatalarının halen en sık istismar edilen zafiyetler arasında yer aldığını açıkça göstermektedir.
Access Control; kullanıcıların yalnızca yetkili oldukları kaynaklara ve işlemlere erişebilmesini sağlamayı amaçlayan güvenlik mekanizmasıdır. Bu kontrollerin eksik, hatalı veya tutarsız uygulanması; yetkisiz veri erişimi, veri değişikliği ve yetki yükseltme gibi ciddi güvenlik ihlallerine yol açabilir.
Gerçek hayatta saldırganlar çoğu zaman karmaşık exploit’ler yerine, doğrudan yetkilendirme kontrollerini atlatmayı hedefler. Özellikle API tabanlı modern uygulamalarda, nesne ve rol bazlı yetkilendirme eksiklikleri kullanıcılar arası veri sızıntılarına neden olabilmektedir.
Yaygın Broken Access Control Zafiyetleri
- En az yetki prensibinin ihlal edilmesi (deny by default uygulanmaması)
- URL veya parametre manipülasyonu ile yetki atlatma
- IDOR (Insecure Direct Object Reference) zafiyetleri
- Eksik API yetkilendirmeleri (POST, PUT, DELETE)
- Yetki yükseltme (Privilege Escalation)
- JWT, cookie veya token manipülasyonu
- Hatalı CORS konfigürasyonları
A02:2025 – Security Misconfiguration
Security Misconfiguration, modern uygulama ve bulut mimarilerinde en sık karşılaşılan güvenlik problemlerinden biridir. OWASP verilerine göre incelenen uygulamaların %100’ünde, en az bir yanlış veya güvensiz yapılandırma tespit edilmiştir. Bu tür hatalar; sistemlerin güvenlik açısından hatalı ya da eksik yapılandırılması sonucu ortaya çıkar ve saldırganlara sistem hakkında fazla bilgi sızmasına, hatta yetkisiz erişim elde edilmesine olanak tanıyabilir. Bu durum, konfigürasyon hatalarının ne kadar yaygın ve kritik olduğunu açıkça ortaya koymaktadır.
Yüksek derecede yapılandırılabilir yazılımlar, framework’ler ve bulut servisleri yaygınlaştıkça; hatalı, eksik veya varsayılan ayarlarla bırakılmış sistemlerin oluşturduğu risklerin artması kaçınılmaz hale gelmiştir. Çoğu durumda bu zafiyetler karmaşık değildir, ancak fark edilmediğinde ciddi saldırı yüzeyleri oluşturur.
Yaygın Security Misconfiguration Örnekleri
- Güvenli varsayılan ayarların uygulanmaması
- Gereksiz servis, port veya özelliklerin açık bırakılması
- Varsayılan hesapların ve parolaların değiştirilmemesi
- Hatalı veya aşırı detaylı hata mesajları (stack trace sızıntıları)
- Güncellenmiş sistemlerde güvenlik özelliklerinin kapalı olması
- Framework, uygulama sunucusu ve veritabanı ayarlarının güvensiz bırakılması
- Security header’ların eksik veya yanlış tanımlanması
- Hatalı bulut yetkilendirmeleri (ör. storage bucket izinleri)
🎯 Kısa Özet
Security Misconfiguration, çoğu zaman basit ama ihmal edilen ayarlardan kaynaklanır. Otomasyon, standartlaşma ve düzenli konfigürasyon kontrolleri uygulanmadığı sürece bu riskin tamamen ortadan kaldırılması mümkün değildir.
A03:2025 – Software Supply Chain Failures
Bu risk, ilk olarak 2013 yılında “Bilinen Zafiyetlere Sahip Bileşenlerin Kullanımı” başlığıyla ortaya çıkmışken; günümüzde yalnızca kullanılan kütüphanelerle sınırlı kalmayıp CI/CD süreçleri, build araçları, paket depoları ve üçüncü parti servislerin tamamını kapsayacak şekilde önemli ölçüde genişlemiştir.
OWASP verilerine göre bu kategori; yazılımın geliştirilmesi, paketlenmesi, dağıtılması veya güncellenmesi süreçlerinin herhangi bir aşamasında ortaya çıkabilen ve çoğunlukla üçüncü parti bileşenler, güncel olmayan kütüphaneler veya güvenliği zayıf geliştirme altyapılarından kaynaklanan zafiyetleri ifade eder.
Bu geniş kapsamlı risk alanı, %5,19 ile en yüksek ortalama görülme oranına sahip olmasıyla, yazılım tedarik zincirinin günümüzde ne kadar kritik bir saldırı yüzeyi haline geldiğini açıkça göstermektedir.
Yaygın Software Supply Chain Failures Örnekleri
- Kullanılan tüm bağımlılıkların (doğrudan ve dolaylı) versiyonlarının takip edilmemesi
- Güncel olmayan veya desteklenmeyen kütüphane ve bileşenlerin kullanılması
- Bileşenler için düzenli zafiyet taraması yapılmaması
- CI/CD, repository ve build süreçlerinde değişikliklerin izlenmemesi
- Geliştirme süreçlerinde yetki ayrımı (separation of duties) bulunmaması
- Güvenilmeyen kaynaklardan kütüphane, container imajı veya artefact indirilmesi
- Güncelleme ve patch süreçleriningecikmeli veya plansız şekilde yürütülmesi
🎯 Kısa Özet
Software Supply Chain Failures, üçüncü parti bileşenler ve CI/CD süreçleri üzerinden dolaylı ama yüksek etkili saldırılara zemin hazırlar. Yeterli görünürlük ve kontrol sağlanmadığında, en güvenli uygulamalar bile savunmasız hale gelebilir.
A04:2025 – Cryptographic Failures
Cryptographic Failures, verilerin yetersiz veya hatalı şekilde şifrelenmesi sonucu ortaya çıkan güvenlik zafiyetlerini kapsar. OWASP tarafından yapılan analizler, bu riskin; zayıf kriptografik algoritmalar, hatalı anahtar yönetimi ve yanlış kriptografi uygulamaları nedeniyle hâlen yaygın şekilde görüldüğünü ortaya koymaktadır.
Özellikle zayıf rastgele sayı üretimi, yetersiz entropy ve kırılmış ya da deprecated algoritmaların kullanımı, bu kategoride öne çıkan temel problemlerdir. Hassas verilerin taşıma sırasında (in transit) veya saklanırken (at rest) yeterince korunmaması; parolaların, kişisel verilerin, finansal bilgilerin ve ticari sırların saldırganlar tarafından ele geçirilmesine neden olabilir.
Yaygın Cryptographic Failures Örnekleri
- Zayıf veya deprecated algoritmaların kullanımı (MD5, SHA1 vb.)
- Yetersiz rastgelelik (entropy) ve tahmin edilebilir anahtarlar
- Anahtarların kod içinde tutulması veya tekrar kullanılması
- TLS/HTTPS’in zorunlu olmaması ya da hatalı yapılandırılması
- Sertifika doğrulama hataları
- ECB gibi güvensiz şifreleme modlarının kullanılması
- Parolaların düz hashlenmesi veya zayıf hashing algoritmaları
- Eksik security header’lar (HSTS vb.)
- Şifreleme mekanizmalarının downgrade veya bypass edilebilmesi
🎯 Kısa Özet
Kriptografi artık bir performans problemi değil, doğru uygulanmadığında ciddi bir güvenlik riskidir. Güçlü algoritmalar kadar doğru konfigürasyon ve anahtar yönetimi de hayati öneme sahiptir.
A05:2025 – Injection
Yüksek frekanslı ancak genellikle daha düşük etkili XSS zafiyetleri ile daha düşük frekanslı fakat yüksek etkili SQL Injection saldırılarını bir arada barındırır. Bu durum, Injection zafiyetlerinin hem son derece yaygın hem de potansiyel etkisi yüksek riskler arasında yer aldığını göstermektedir.
Injection zafiyetleri; saldırganın uygulamaya gönderdiği girdiler aracılığıyla kötü amaçlı kod veya komutları, sistemin bir parçasıymış gibi çalıştırabilmesine imkân tanır. Bu tür açıklar; veri sızıntısı, yetkisiz erişim ve hatta sistemin tamamen ele geçirilmesi gibi ciddi güvenlik ihlallerine yol açabilir.
Ayrıca, yapay zekâ tabanlı uygulamaların yaygınlaşmasıyla birlikte ortaya çıkan Prompt Injection saldırıları, Injection kavramının yeni ve gelişmekte olan bir boyutu olarak OWASP LLM Top 10 kapsamında ayrı bir risk başlığı altında ele alınmaktadır.
Yaygın Injection Türleri
- SQL Injection
- Cross-Site Scripting (XSS)
- NoSQL Injection
- OS Command Injection
- LDAP Injection
- ORM / Expression Language Injection (EL, OGNL)
🎯 Kısa Özet
Injection saldırıları, basit hatalardan doğar ancak etkisi yıkıcıdır. Güvenli kodlama prensipleri ve otomatik testler uygulanmadığı sürece bu risk tamamen ortadan kaldırılamaz.
A06:2025 – Insecure Design
Insecure Design, kodlama hatalarından ziyade uygulamanın tasarım ve mimari aşamasındaki eksikliklere odaklanır. Bu kategori, 2021 yılında OWASP Top 10 listesine girmiş olsa da, hâlen birçok uygulamada temel ve kritik bir problem olmaya devam etmektedir.
Sektörde tehdit modelleme ve güvenli tasarım farkındalığı artmış olsa da, iş mantığı (business logic) ve mimari seviyedeki hatalar ciddi güvenlik riskleri doğurabilmektedir. Insecure Design; uygulamanın, gerekli güvenlik kontrolleri hiç tasarlanmadan hayata geçirilmesi durumunu ifade eder. Bu noktada önemli olan şudur;
Güvensiz bir tasarım, kusursuz bir kodlama ile düzeltilemez.
Bu risk; eksik iş kuralları, hatalı yetkilendirme kurguları veya beklenmeyen durumların (edge-case) tasarım aşamasında hiç ele alınmamasından kaynaklanır.
Yaygın Insecure Design Örnekleri
- İş mantığı (business logic) açıkları
- Yetki ve rol modelinin yanlış tasarlanması
- Tehlikeli dosya yükleme senaryolarının tasarımda düşünülmemesi
- Trust boundary ihlalleri
- Kimlik bilgilerinin yetersiz korunması
- Beklenmeyen durumlar için kontrol mekanizmalarının olmaması
🎯 Kısa Özet;
Insecure Design, teknik bir bug değil; stratejik bir eksikliktir. Güvenlik, kod yazılmadan önce düşünülmezse, sonradan eklenmesi çoğu zaman mümkün olmaz.
A07:2025 – Authentication Failures
Authentication Failures, kullanıcı kimliğinin hatalı veya yetersiz şekilde doğrulanmasından kaynaklanan güvenlik risklerini kapsar. İsim güncellemesine rağmen bu kategori, önceki yıllarda olduğu gibi hâlen yaygın şekilde görülmektedir. OWASP verileri, standart kimlik doğrulama framework’lerinin yaygınlaşmasına rağmen yanlış konfigürasyonlar ve zayıf uygulamaların ciddi güvenlik açıklarına yol açmaya devam ettiğini göstermektedir.
Authentication Failures; saldırganın, geçersiz veya yetkisiz bir kullanıcıyı, sistem tarafından meşru bir kullanıcıymış gibi kabul ettirmesi durumudur. Bu zafiyetler çoğunlukla parola yönetimi, oturum (session) kontrolü ve çok faktörlü kimlik doğrulama (MFA) eksikliklerinden kaynaklanır. Sonuç olarak hesap ele geçirme, yetkisiz erişim ve veri ihlalleri gibi kritik güvenlik olayları meydana gelebilir.
Yaygın Authentication Failures Örnekleri
- Credential stuffing ve password spraying saldırılarına karşı koruma olmaması
- Brute-force denemelerinin engellenmemesi
- Varsayılan veya zayıf parolaların kullanılması
- Daha önce sızdırılmış parolalarla hesap oluşturulabilmesi
- Eksik veya etkisiz MFA (Multi-Factor Authentication)
- Güvensiz parola sıfırlama / kurtarma mekanizmaları
- Session fixation ve hatalı oturum yönetimi
- Oturum veya token’ların logout sonrası geçersiz kılınmaması
🎯 Kısa Özet
Authentication Failures, saldırganlar için en kolay ve en kazançlı giriş noktalarından biridir. Güçlü parola politikaları, MFA ve doğru oturum yönetimi olmadan bu riskin azaltılması mümkün değildir.
A08:2025 – Software or Data Integrity Failures
Software or Data Integrity Failures, yazılımın veya verinin bütünlüğü doğrulanmadan güvenilir kabul edilmesi sonucu ortaya çıkan riskleri kapsar. Bu kategori, OWASP Top 10 kapsamında Software Supply Chain Failures’a kıyasla daha alt seviyede konumlanır ve özellikle integrity (bütünlük) kontrollerinin eksikliğine odaklanır.
Bu risk; uygulamanın kod, güncelleme, eklenti veya verileri gerçekten güvenilir ve değiştirilmemiş olup olmadığını doğrulamadan kabul etmesi durumunda ortaya çıkar. Sonuç olarak saldırganlar, kötü amaçlı kodu veya manipüle edilmiş veriyi, meşru bir bileşen gibi sisteme çalıştırabilir.
Yaygın Software or Data Integrity Failures Örnekleri
- Güvenilmeyen kaynaklardan gelen kütüphane, eklenti veya modüllerin kullanılması
- CI/CD süreçlerinde imza veya bütünlük kontrolü yapılmaması
- Güncellemelerin doğrulama olmadan otomatik olarak uygulanması
- Untrusted deserialization (güvensiz nesne serileştirme)
- Kod veya artefact’lerin yetkisiz şekilde değiştirilmesi
🎯 Kısa Özet
Bütünlüğü doğrulanmamış kod veya veri, doğrudan sistem güvenliğini devre dışı bırakır. “Güven ama doğrula” prensibi uygulanmadığında, otomasyon ve CI/CD süreçleri ciddi bir risk kaynağına dönüşebilir.
A09:2025 – Security Logging & Alerting Failures
Security Logging & Alerting Failures, bir saldırının veya güvenlik ihlalinin zamanında fark edilememesine neden olan kritik bir güvenlik riskidir. Bu kategori, OWASP tarafından özellikle loglama kadar alarm üretiminin de hayati olduğunu vurgulamak amacıyla yeniden adlandırılmıştır.
Bu zafiyetler CVE verilerinde görece az temsil edilse de, olay müdahalesi, forensics ve saldırıların erken tespiti açısından etkisi son derece büyüktür. Güvenlikle ilgili olayların yeterince loglanmaması, izlenmemesi veya alarm üretilmemesi; saldırıların uzun süre fark edilmeden devam etmesine neden olabilir. Loglama olmadan saldırılar tespit edilemez, alarm olmadan ise zamanında aksiyon almak mümkün değildir.
Yaygın Logging & Alerting Failures Örnekleri
- Başarısız login denemeleri veya kritik işlemlerin loglanmaması
- Log’ların tutarsız veya yetersiz olması
- Log bütünlüğünün korunmaması (silinme veya değiştirilme riski)
- Log’ların aktif olarak izlenmemesi
- Alarm eşiklerinin ve escalation süreçlerinin olmaması
- SIEM / SOC ekiplerinin fazla false-positive ile boğulması
- Hassas verilerin (PII, PHI) log’lara yazılması
- Log verilerinin encode edilmemesi (log injection riski)
- Güvenlik testlerinin (DAST, pentest) alarm üretmemesi
🎯 Kısa Özet
Loglama ve alarm mekanizmaları olmayan bir sistem, saldırı altında olduğunu fark edemez. Güvenlik yalnızca engellemek değil; görebilmek ve hızlı tepki verebilmek demektir.
A10:2025 – Mishandling of Exceptional Conditions
Mishandling of Exceptional Conditions, uygulamaların beklenmeyen veya hatalı durumları güvenli şekilde ele alamaması sonucu ortaya çıkan riskleri kapsar. Bu kategori, OWASP Top 10 (2025) kapsamında ilk kez yer almakta olup; hatalı hata yönetimi, mantıksal kusurlar ve özellikle “failing open” senaryolarına odaklanır.
Bu risk; bir uygulamanın olağan dışı durumları önleyememesi, zamanında algılayamaması veya doğru şekilde yanıtlayamaması halinde ortaya çıkar. Bu tür senaryolar, sistemin kararsız, öngörülemez ve saldırılara açık bir hale gelmesine neden olabilir.
Yaygın Exceptional Condition Hataları
- Hassas bilgi içeren hata mesajları (stack trace, sistem detayları)
- Eksik veya hatalı parametrelerin doğru şekilde ele alınmaması
- Yetki yetersizliğinin yanlış yönetilmesi
- NULL pointer ve benzeri runtime hataları
- Hata durumlarında sistemin güvensiz şekilde çalışmaya devam etmesi (fail open)
- İşlemlerin yarım kalmasına rağmen rollback yapılmaması
🎯 Kısa Özet
Beklenmeyen durumlar kaçınılmazdır; önemli olan nasıl yönetildikleridir. Exception’ları doğru ele almayan uygulamalar, en basit hatalarda bile ciddi güvenlik açıkları üretebilir.
Genel Olarak
OWASP Top 10, yazılım güvenliğinin temel taşlarından biridir. Bu listedeki riskleri doğru şekilde anlamak, uygulamalara entegre etmek ve güvenlik süreçlerinde rehber olarak kullanmak; modern saldırı tehditlerine karşı güçlü ve sürdürülebilir bir savunma zemini oluşturur.
Her bir başlık;
- Yazılım ekipleri için daha güvenli bir mimariyi,
- Operasyon ekipleri için daha dayanıklı ve yönetilebilir bir altyapıyı,
- Güvenlik ekipleri için ise daha öngörülebilir ve ölçülebilir bir risk yönetimi sürecini destekler.
OWASP Top 10 (2025), yalnızca bir kontrol listesi olarak değil; güvenli yazılım geliştirme kültürünün oluşturulması ve sürdürülmesi için yol gösterici bir referans olarak ele alınmalıdır.
Kaynak: https://owasp.org/Top10/2025/