Sızma Testi (Penetration Test) Nedir?
Kısa tanım
Sızma testi (penetration test, pentest), yetkilendirilmiş uzmanların bir sistemin, web uygulamasının veya ağın güvenlik açıklarını, gerçek bir saldırganın kullanabileceği yöntemlerle ve önceden yazılı olarak belirlenmiş kapsam içinde aramasıdır. Amaç açıkları bulmak, istismar edilebilirliklerini ve etkilerini göstermek ve düzeltme önerileriyle raporlamaktır. Otomatik zafiyet taramasından farkı, bulguları elle doğrulaması ve birbirine zincirlemesidir.
Diğer adları: penetration test, pentest, penetrasyon testi, pen test, güvenlik testi

Zafiyet taramasıyla aynı şey değil
| Zafiyet taraması | Sızma testi | |
|---|---|---|
| Yöntem | Otomatik araçlar | Araçlar + uzmanın elle analizi |
| Odak | Genişlik: bilinen açık imzaları | Derinlik: iş mantığı, yetki, zincirleme |
| Yanlış pozitif | Sık | Bulgular doğrulanarak raporlanır |
| Sıklık | Sürekli veya haftalık | Dönemsel ve büyük değişikliklerden sonra |
Tarayıcı, eski bir kütüphane sürümünü veya eksik bir başlığı hızla bulur. Ama “A kullanıcısı, URL'deki sipariş numarasını değiştirerek B kullanıcısının faturasını görebiliyor” gibi bir yetkilendirme hatasını, uygulamanın ne yapması gerektiğini anlayan bir insan bulur. Sızma testinin değeri, tek başına düşük önemde görünen birkaç bulgunun birleştiğinde ciddi bir etkiye dönüştüğünü gösterebilmesindedir.
Kapsam ve yazılı yetki
Sızma testini saldırıdan ayıran şey yetkidir. Sistem sahibinin yazılı izni olmadan yapılan erişim denemeleri, niyet ne olursa olsun Türk Ceza Kanunu'ndaki bilişim suçları dahil pek çok ülkede suç oluşturabilir. Bu yüzden test başlamadan önce bir angajman kuralları (rules of engagement) belgesi hazırlanır:
- Kapsamdaki alan adları, IP adresleri, uygulamalar ve API'ler; kapsam dışı bırakılanlar
- Test ortamı mı canlı ortam mı, hangi saatlerde test yapılacağı
- Hizmet engelleme veya sosyal mühendislik gibi yöntemlere izin verilip verilmediği
- Kritik bir açık bulunduğunda kime, nasıl haber verileceği
- Test sırasında görülecek kişisel ve gizli verilerin nasıl ele alınacağı
Barındırma, CDN veya bulut sağlayıcıların da kendi test politikaları vardır; altyapı üçüncü bir tarafa aitse onların kuralları da kapsamı belirler.
Ne kadar bilgiyle başlanır?
- Black box: Test ekibi yalnızca adresi bilir; dışarıdan gelen bir saldırganı taklit eder ama zamanın bir kısmı keşfe gider.
- Grey box: Farklı rollerde test hesapları ve temel dokümantasyon verilir; web uygulamaları için en verimli denge genellikle budur.
- White box: Kaynak kod, mimari ve yapılandırmalara erişim vardır; aynı sürede en fazla kapsamı sağlar.
Web uygulama testlerinde yöntem olarak çoğunlukla OWASP Web Security Testing Guide izlenir, bulgular da sıklıkla OWASP Top 10 kategorileriyle eşleştirilir.
İyi bir raporda neler olmalı?
- Teknik olmayan okuyucular için yönetici özeti: genel risk düzeyi ve en önemli üç bulgu.
- Her bulgu için açıklama, etkilenen adres veya bileşen, önem derecesi (çoğu zaman CVSS ile) ve iş etkisi.
- Bulgunun tekrar üretilebilmesi için yeterli kanıt: istek ve yanıt örnekleri, ekran görüntüleri.
- Somut düzeltme önerisi; “girdiyi doğrulayın” gibi genel bir cümle değil.
- Düzeltmelerden sonra yapılan yeniden testin (retest) sonucu.
Raporun asıl çıktısı düzeltilmiş güvenlik açıklarıdır. Bulgular bir iş takip sistemine aktarılıp sahiplendirilmezse test bir belge olarak kalır.
Ne zaman ve ne sıklıkla?
Yeni bir ürünün canlıya çıkışından önce, ödeme veya kimlik doğrulama gibi kritik akışlar değiştiğinde ve düzenli aralıklarla yapılması yaygındır. Kart verisi işleyen sistemler için PCI DSS gibi standartlar düzenli sızma testini bir gereklilik olarak tanımlar. Sızma testi bir anın fotoğrafıdır: ertesi gün yayımlanan bir kod değişikliği yeni bir açık getirebilir. Bu yüzden güvenli kodlama pratikleri, bağımlılık takibi ve sürekli taramayla birlikte düşünülmelidir.

