Sızma Testi Kontrol Listesi

Sızma testi, bilginin bulunduğu her alanda gerçekleştirilmesi gereken bir dijital güvenlik operasyonudur. Alanında yetkin kişilerce periyodik olarak uygulanması gereken sızma testi İngilizce karşılığı ile penetration test ve pentest olarak da adlandırılmaktadır. Detaylı bir süreç olduğu için atlanılmaması gereken önemli adımları farklı global kaynaklardan ve kendi deneyimlerimden faydalanarak listeledim. Aşağıdaki başlıklar kesinlikle pas geçilmemesi gereken öncelikli maddelerdir. Senaryolar farklılaşsa bile odak olarak web üzerinden yayını bulunan sistemlerin sızma testi operasyonları için kullanılabilir bir listedir. Eklenmesini istediğiniz adımları yorum kısmından belirtebilirsiniz. Kontrol listesi ilerleyen ve gelişen teknoloji ile birlikte sürekli olarak güncellenecektir.

Sunucu ve Domain Keşfi

  1. Detaylı DNS bilgilerinin listelenmesi.
  2. Whois kaydının sorgulanması.
  3. Hizmet sağlayıcı firma ve kurum bilgilerinin edinilmesi.
  4. Başlıca A, MX, NS, SRV, PTR, SOA ve CNAME kayıtlarının incelenmesi.
  5. Geçmişe dönük olarak domain üzerindeki NS ve sahiplik bilgi değişikliklerinin öğrenilmesi.
  6. Gelişmiş IP tarama servisleri ile sistemin ve komşularının ulaşılabilirliğinin kontrolünün sağlanması.
  7. Class IP tarama servisleri ile aynı ve yakın IP adreslerde yayın yapan servislerin keşfedilmesi.
  8. Google Teşhis Sayfası ve farklı kara liste sorgulama sitelerinden sunucu durumunun sorgulanması.
  9. Kullanılan teknolojilerin öğrenilmesi. (Sunucu işletim sistemi, yazılım dili, SSL sertifikası kontrolü vb.)
  10. Acunetix, Nessus ve OpenVAS ile detaylandırılmış taramaların gerçekleştirilmesi.

Port Taraması ve Ağ İzlemeleri

  1. Elde edilen IP blokları ve domainler için traceroute taramalarının gerçekleştirilmesi.
  2. SSH, Telnet ve RDP için kaba kuvvet saldırısı kullanılmadan operasyonel testlerin yapılması.
  3. Yanıt veren kanallar için detaylı port taramalarının gerçekleştirilmesi.
  4. Popüler servislerin standart olarak kullandığı portların kontrollerinin sağlanması.
  5. Veritabanı ve web servisler için standart portların kullanımının kontrol edilmesi.
  6. Ortadaki adam (MITM) saldırıları için akışı dinleyebilecek art niyetlilerin kullanabileceği kapıların keşfi.
  7. Socket yapısı kullanılıyorsa bu uzantıların listelenmesi. (Websocket, Socket IO vb.)
  8. SSL ile yayın yapan sayfaların sertifikalarının geçerliliğinin kontrolü ve portların teşhisi.
  9. HTTPS ile yayın yapan adreslerin sertifikasız yansılarının varlık kontrolü.

Dijital İstihbarat Toplama

  1. Arama motorları üzerinden sitenin indexlenmiş sayfalarının taramasının yapılması.
  2. Sub-domain adreslerinin keşfinin sağlanması. (DNS dumpster, Google araması ve brute force.)
  3. Sistemin çalışma mantığı ile alakalı bilgiler verebilecek sorguların gerçekleştirilmesi. (DORK Query)
  4. Yayın dizininde bulunabilecek site yedeklerinin varlığının kontrol edilmesi.
  5. Edinilen whois bilgilerine göre detaylı olarak farklı sahipliklerin keşfedilmesi.
  6. Yönetici posta adresinin öğrenilmesi ve varyasyonların listelenmesi. (admin, webmaster, info vb.)
  7. Domain ve sunucu hizmeti veren firmaların şifre sıfırlama işlemlerinin denenmesi.
  8. Alan adı ile açık kaynak paylaşımların yapıldığı platformların kontrolü. (GitHub, Google Code vb.)
  9. Sitenin aldığı backlinklerin incelenmesi. (Siteye başka sitelerden verilen bağlantılar.)
  10. Site sahiplerinin dijital bilgilerinin edinilmesi. (Phishing ve yönetici giriş denemeleri için.)
  11. Sitenin daha önce herhangi bir zone kaydının bulunup bulunmadığının öğrenilmesi.

Yazılım ve Uygulama Güvenliği

  1. Projelerin yayın yaptığı adreslerin tespit edilmesi.
  2. Kullanılan yazılım dilleri ve uygulamaların çalıştığı sistemlerin keşfinin yapılması.
  3. Dosya uzantılarının ve kullanılan teknolojilerin ön teşhislerinin raporlanması.
  4. Sunucu işletim sisteminin ve yönetim yazılımının öğrenilmesi.
  5. Sitenin farklı tipteki sayfalarının döndürdüğü header sonuçlarının incelenmesi.
  6. Veritabanı yönetim sayfalarının tespiti ve uzaktan erişim durumları.
  7. Default kullanıcı isimleri ve kullanıcı kimliklerinin varlık tespiti.
  8. Yazılım popüler bir içerik yönetim sistemi ise versiyonu ile birlikte not edilmesi.
  9. Kullanılan teknolojileri öğrenmek amacıyla dip sayfaların taranması.
  10. Robots.txt dosyasının incelenmesi ve önceki sürümlerinin kayıt altına alınması.
  11. Popüler bir framework ve CMS kullanılıyorsa kritik klasörlerin ulaşılabilirliğinin test edilmesi.
  12. Yönetim ve önemli giriş sayfalarının kaba kuvvet yöntemiyle tespitinin sağlanması.
  13. SSL kullanımı ve HTTPS yayın yapan sayfaların keşfi.
  14. Güncel shell ve backdoor sayfalarının yükleme dizinlerinde taramasının yapılması.
  15. CDN ve alt alan adı kullanımlarının belirlenmesi ve NS kontrolleri.
  16. Dosya yüklemesi yapılabilen formların tespit edilmesi ve tiplerin belirlenmesi.
  17. Form alanlarının döndürdüğü hata mesajlarının anlamlarının detaylandırılması.
  18. Giriş yapılabilen alanlarda standart kullanıcı isimlerinin varlıklarının kontrolü.
  19. Çerez ve oturum dosyaları için yapılacak manipülasyonlara karşı sistemin tepkileri.
  20. Güvenlik ve sms şifresi gibi noktalarda bypass için algoritmanın mantığının anlamlaştırılması.
  21. Giriş ve çıkış sayfalarının çereze olan bağımlılıklarının test edilmesi.
  22. Sistemi kullanmak için herhangi bir IP bağımlılığının olup olmadığının öğrenilmesi.
  23. Kullanıcı senaryolarının tespit edilmesi ve sosyal mühendislik korumalarının kontrolü.
  24. Dinamik olarak istek döndüren ya da AJAX için kullanılan sayfaların tespiti.
  25. GET tipiyle değer alan sayfaların listesinin oluşturulması ve aldığı değerlerin tiplerinin listesi.
  26. POST methoduyla veri gönderimi sağlanabilen sayfalar varsa taşıyabildiği veri tiplerinin listesi.
  27. Web servis yayını yapan bir kanal varsa methodlarının incelenmesi. (REST API, WSDL vb.)
  28. Kritik dosyaların bulanabileceği dizinlerin ulaşılabilirliğinin kontrolü ve kimlik doğrulama testleri.
  29. Yapıyı ve kullanıcı müsaitliğini öğrenebilmek için stres testlerinin gerçekleştirilmesi.
  30. DDOS ve agresif ziyaretçi yönlendirmesi yaparak sistemin döndürdüğü cevapların listelenmesi.
  31. Hata mesajı veren alanların manuel olarak işlenmesi, döndürülen mesajların not edilmesi.
  32. XSS (Cross-Site Scripting) ile alakalı manipülasyon yapabilecek alanlarda kurguya göre betik yazılması.
  33. Teşhis edilen sayfalar üzerinden SQL Injection (Union, Double, Boolean) testlerinin gerçekleştirilmesi.
  34. Operasyonel kurgular haricinde Metasploit ve Havij gibi yazılımlarla vulnerability, exploit, payload testleri.
  35. Dosya yükleme alanlarının keşfi. (Profil fotoğrafı yükleme, metin dosyası kaydetme vb.)
  36. Dosya yükleme alanlarının zehirlenmeye karşı (sistem ve işletim sistemi için) bağışıklıklarının test edilmesi.
  37. Yazı yazılabilen ve herhangi bir sayfada görüntülenebilen yerler için enjeksiyon testlerinin yapılması.
  38. VPN ve cURL gibi istekler ile yapılan işlemlerdeki farklılıklar ve döndürülen mesajların listelenmesi.
  39. Arama motoru ve sosyal medya botlarının user-agent bilgileri taklit edilerek gezinimin sağlanması.
  40. Dosya ve dizinlerin izinlerinin öğrenilmesi ve hassas noktalardaki dosyaların edinilmeye çalışılması.

E-posta Güvenliği

  1. E-posta sisteminin tespiti ve kullanılan versiyonun kontrolü.
  2. SMTP, POP ve IMAP protokollerinin portlarının tespiti.
  3. Mail yönetimi için herhangi bir popüler aracı servisin kullanılıp kullanılmadığını öğrenmek.
  4. Standart mail adreslerinin kaba kuvvet saldırısı ile şifre denemelerinin yapılması.
  5. Sunucunun herhangi bir karalisteye dahil olup olmadığını öğrenmek. (SpamAssassin, ClamAV vb.)
  6. Alan adı uzantısıyla Google’da indexlenmiş olan maillerin tespiti.
  7. Alan adı uzantısı ile üst kimlik göstererek mail gönderiminin kontrol edilmesi.
  8. Mail adreslerine farklı kaynaklardan e-postalar göndererek güvenlik duvarının reaksiyonunu gözlemlemek.
  9. İletiler için SPF güvenilirlik kontrolü ve reddedilenler listesinin teşhisi.
  10. Harici kaynaklardan mailler göndererek ek dosya sınırı, kabul edilen dosya tipleri gibi detayların keşfi.
  11. Kişilere mail ile scriptler ileterek antivirüs, domain grubu ve işletim sisteminin davranışlarını izlemek.
  12. Benzer isim ve domain taklidi ile mail göndererek sosyal mühendislik senaryolarının uygulanması.

Maddeleri dünya çapında akreditasyonu bulunan raporlama biçimleri ve sızma testi yaparken başlıca değinilmesi gereken noktaları baz alarak farklı gruplara ayırdım. Pentest yapılacak sistemin yapısı, uygulamaların bağımlılıkları ve operasyon senaryolarına göre yüzlerce madde daha listeye eklenebilir. Bir web sitesi baz alındığında sunucu bilgilerinin detaylandırılması, domain keşfi, port taraması, ağ izlemeleri, dijital istihbarat araştırması, yazılım güvenliğinin incelenmesi ve e-posta zafiyetleri öncelikli olarak yapılması gereken faaliyetler olmakla birlikte sızma testi kontrol listesinin tamamını kapsamaz. Yeni başlayacak olan arkadaşların rahatlıkla okuyabilmesi için checklist teknik kelimeler ile boğulmadan oluşturuldu. Zaman içerisinde mobil uygulama ve yerel ağ üzerinde yapılması gereken çalışmalar için de başlıkları oluşturarak listeyi genişleteceğim.

Görüşlerini aşağıdaki form ile paylaşabilirsin;