Web uygulama güvenliği tek seferlik bir onay kutusu değildir — sürekli bir disiplindir. Körfez, Türkiye ve Avrupa'daki kurumsal müşteriler için yürüttüğümüz sızma testlerinin ardından, OSCP sertifikalı ekibimiz iyi bütçelenmiş mühendislik ekiplerinde bile gözden kaçan zafiyetlerde tutarlı kalıplar belirledi. Bu rehber, projelerimizin %70'inden fazlasında karşılaştığımız beş OWASP Top 10 bulgusunu ve her biri için somut iyileştirme adımlarını ele alıyor.
1. OWASP Top 10 Neden Hâlâ Sektör Standardı?
OWASP Top 10, olası her web zafiyetinin tam listesi değildir. Web uygulamalarının karşılaştığı en kritik riskleri temsil eden, dünyanın dört bir yanındaki güvenlik profesyonelleri tarafından güncellenen bir mutabakat belgesidir. Yürüttüğümüz her ciddi sızma testinde minimum temel olarak işlev görür — ve deneyimimize göre bu temel bile rutin olarak atlanır.
Injection zafiyetleri en tehlikeli kategori olmaya devam ediyor — SQL, NoSQL, OS ve LDAP injection saldırganlara tek bir özenle hazırlanmış istekle tüm veri tabanını çıkarma veya sistem komutları çalıştırma imkânı verebilir.
Bozuk kimlik doğrulama; hesap ele geçirme, oturum hijack'leme ve endüstriyel ölçekte credential stuffing'e olanak sağlar — çoğunlukla hiçbir izleme uyarısı tetiklenmeden.
Cross-Site Scripting (XSS), saldırganların kurbanların tarayıcılarında zararlı script'ler çalıştırmasına, oturum token'larını çalmasına, kullanıcıları yönlendirmesine veya tuş vuruşlarını sessizce yakalamasına olanak verir.
Insecure Direct Object References (IDOR), iç uygulama mantığını açığa çıkararak kimliği doğrulanmış herhangi bir kullanıcının ID'leri manipüle ederek diğer kullanıcıların verilerine erişmesine, değiştirmesine veya silmesine olanak verir.
Güvenlik yapılandırma hataları — açıkta kalmış admin panelleri, varsayılan kimlik bilgileri, ayrıntılı hata mesajları, açık bulut depolama bucket'ları — şirket büyüklüğünden bağımsız olarak test ettiğimiz neredeyse her uygulamada görülür.
2. En Sık Raporladığımız 3 Bulgu
SaaS platformları, fintech uygulamaları, e-ticaret sistemleri ve dahili kurumsal araçlardan oluşan müşteri tabanımızda — bu üç zafiyet teknoloji yığınından veya ekip büyüklüğünden bağımsız olarak en yüksek sıklıkta ortaya çıkar. Bu kalıbı 35'ten fazla uluslararası projede doğruladık.
Arama ve filtre endpoint'lerinde SQL Injection: geliştiriciler login formlarını çoğu zaman doğru şekilde parametreleştirirken ürün araması, rapor filtreleri veya admin dashboard'larını parametresiz bırakır.
' OR 1=1--gibi tek bir payload tüm veri tabanını açığa çıkarabilir. İlişkisel veri tabanı kullanan uygulamaların yaklaşık %60'ında bunu buluyoruz.Kimlik doğrulama endpoint'lerinde rate limiting eksikliği: brute force koruması olmadan login sayfaları, parola sıfırlama akışları ve OTP giriş alanları otomatik saldırılara açıktır. Kontrollü testlerde, standart araçları kullanarak korumasız bir login formuna 10 dakikadan kısa sürede 10.000 kimlik bilgisi rutin olarak deniyoruz.
REST API rotalarında Insecure Direct Object References: her istekte yetki kontrolü olmadan sayısal sıralı ID'ler açan API'ler (örn.
/api/invoices/1042,/api/users/58), kimliği doğrulanmış herhangi bir kullanıcının yalnızca numarayı değiştirerek başka bir kullanıcının verilerine erişmesine olanak verir. Modern web uygulamalarındaki en hafife alınan zafiyettir.
3. Profesyonel Bir İyileştirme Raporu Neler İçerir?
Bir sızma testi ancak kendisinden sonra gelen rapor kadar değerlidir. Belirsiz bulgular geliştiricide kafa karışıklığı yaratır ve kurumları savunmasız bırakır. Raporlarımızı, hem teknik hem de iş kitlesine hizmet edecek şekilde üç katmanda yapılandırıyoruz.
Yönetici Özeti: risk seviyelerinin (Kritik / Yüksek / Orta / Düşük) teknik olmayan genel görünümü, her bulgu için tahmini iş etkisi ve önceliklendirilmiş iyileştirme yol haritası — CTO'lar ve teknik olmayan karar vericiler için tasarlandı.
Teknik Kanıt: her bulgu için tam yeniden üretim adımları; ham HTTP istek ve cevap yakalamaları, proof-of-concept payload'lar ve ekran görüntüleri dahil — geliştiricilerin her sorunu kendileri yeniden üretip doğrulayabilmesi için tasarlandı.
İyileştirme Rehberliği: tam teknoloji yığınınız için spesifik kod düzeyi veya yapılandırma düzeyi çözümler. Genel tavsiyeler değil. PostgreSQL ile Node.js kullanıyorsanız çözüm pg'de parametreleştirilmiş query kullanır. Django kullanıyorsanız ORM'ye yönlendirir.
Yeniden Test Doğrulaması: ekibiniz bulguları giderdikten sonra, rapor teslim tarihinden itibaren 30 gün içinde ücretsiz bir takip oturumunda düzeltmeleri doğrularız.
4. Uygulamanızı Pentest'e Nasıl Hazırlarsınız?
En etkili sızma testleri müşteri hazırlıklı geldiğinde gerçekleşir. Herhangi bir engagement başlamadan önce önerdiklerimiz şunlar — bu adımları izlemek genellikle yanlış pozitifleri azaltır ve süreyi %20–30 kısaltır.
Scope'u kesin tanımlayın: scope içindeki her domain, subdomain, API endpoint ve kimlik doğrulama akışını listeleyin. Scope dışındakileri açıkça belirtin. Scope'taki belirsizlik kapsama boşluğu yaratır.
Birden fazla yetki seviyesinde test hesabı sağlayın: standart kullanıcı, admin ve uygulamanız varsa ideal olarak farklı abonelik kademeleri veya rol tipleri. Yalnızca tek bir hesap seviyesiyle test yetki yükseltme zafiyetlerini kaçırır.
Mümkün olduğunda staging ortamı kullanın: prodüksiyon verilerinin açığa çıkmasını önler ve rate limiting veya alarm tetikleyebilecek daha agresif test tekniklerine olanak tanır.
Test sırasında temas noktası olarak bir geliştirici atayın: hızlı iletişim gerçek zamanlı bulgu doğrulamasına olanak verir ve yanlış pozitifleri dramatik biçimde azaltır.
Gerçekçi zaman çizelgeleri belirleyin: standart bir web uygulaması sızma testi scope'a bağlı olarak 5 ila 10 iş günü sürer. Güvenlik uyum denetimleri (ISO 27001, SOC 2) 2 ila 4 hafta gerektirir. Bir pentest'i acele etmek daha az kapsamlı bir rapor üretir.

