# Sızma testi
Sızma testi, sistemin güvenliğini değerlendirmek üzere bir bilgisayar sistemi üzerinde gerçekleştirilen yetkilendirilmiş temsili bir siber saldırıdır. Test, yetkisiz kişilerin sistem özelliklerine ve verilerine erişme potansiyelini içeren her iki zayıf noktayı (zafiyet olarak da bilinir) ve sistemin güçlü yönlerini belirlemek ve tam bir risk değerlendirmesi sağlamak için yapılır.
Süreç tipik olarak hedef sistemleri ve belirli bir hedefi tanımlar, daha sonra mevcut bilgileri gözden geçirir ve bu hedefe ulaşmak için çeşitli yollar arar. Bir sızma testi hedefi beyaz kutu (arka plan ve sistem bilgisi sağlar) veya kara kutu (sadece temel bilgi sağlar veya şirket adı dışında bilgi sağlamaz) olabilir. Gri kutu sızma testi ise ikisinin bir birleşimidir (hedef hakkındaki sınırlı bilgiyi denetçi ile paylaşır). Sızma testi, bir sistemin savunmalarının yeterli olması durumunda saldırılara açık olup olmadığını veya saldırıların hangi savunmayı aştığını belirlemeye yardımcı olabilir.
Sızma testinin açığa çıkardığı güvenlik sorunları sistem sahibine rapor edilmelidir. Sızma testi raporları ayrıca kurum üzerindeki potansiyel etkileri değerlendirebilir ve riski azaltmak için karşı önlemler önerebilir.
Ulusal Siber Güvenlik Merkezi sızma testini “bir saldırgan ile aynı araç ve teknikleri kullanarak bir BT sisteminin güvenliğinin bir kısmının veya tamamın ihlal edilmeye çalışılmasıyla sistemin güvenliğinin güvence altına alınması” olarak tanımlamaktadır.
Sızma testinin amacı, kötü niyetli bir aktör tarafından sömürülebilecek güvenlik açıklarını bulmak ve bu güvenlik açıklarını müşteriye önerilen azaltma stratejileri ile birlikte sunmak üzerine yapılan sözleşme çeşidine göre değişiklik göstermektedir.
Sızma testleri güvenlik denetimlerinin bir parçasıdır. Örneğin, Ödeme Kartı Sektörü Veri Güvenliği Standardı, düzenli aralıklarla ve sistem değiştikten sonra sızma testi gerektirir.
Hata Hipotezi Metodolojisi bir sistem analizi ve sızma tahmin tekniğidir. Bir yazılım sistemindeki varsayılan hataların listesi, sistem spesifikasyonlarının ve dokümantasyonunun analizi yoluyla derlenir. Varsayılan hataların listesi daha sonra öngörülen hatanın gerçekten var olmasına ve onu kontrol veya uzlaşma derecesinde kullanma kolaylığı olmasına göre önceliklendirir. Öncelikli liste, sistemin gerçek testini yönlendirmek için kullanılır.


## Tarihçe.
1960'lı yılların ortalarına gelindiğinde, kaynakları iletişim hatları üzerinden erişilebilir kılan zaman paylaşımlı bilgisayar sistemlerinin popülaritesinin artması yeni güvenlik kaygıları yarattı. Bilim adamları Deborah Russell ve G. T. Gangemi, Sr. nin ifade ettiği gibi “1960'lar bilgisayar güvenliği çağının asıl başlangıcına işaret etmektedir.”
Örneğin, Haziran 1965’te, ülkenin önde gelen bilgisayar güvenliği uzmanlarından birkaçı, devlet müteahhidi olan System Development Corporation (SDC) tarafından ev sahipliği yapan, sistem güvenliği konusundaki ilk büyük konferanslardan birini düzenledi.Konferans sırasında bir SDC çalışanının SDC'nin AN / FSQ-32 zaman paylaşımlı bilgisayar sistemine eklenen çeşitli sistem korumalarını baltalayabildiği görüldü. Daha fazla sistem güvenliği çalışmasının faydalı olacağını uman katılımcılar “zaman paylaşımlı sistemde güvenlik korumasının ihlal edilmesi gibi alanlarda çalışmalar yapılmasını” istedi. Başka bir deyişle, konferans katılımcıları, bilgisayar penetrasyonunu sistem güvenliğini incelemek amacıyla bir araç olarak kullanmak için ilk resmi taleplerden birinde bulundu.
1967 baharında, Ortak Bilgisayar Konferansı'nda, birçok önde gelen bilgisayar uzmanı, sistem güvenliği endişelerini tartışmak için bir araya geldi. Bu konferans sırasında, bilgisayar güvenlik uzmanları Willis Ware, Harold Petersen ve RAND Corporation'ın tümü Rein Tern ve Ulusal Güvenlik Ajansı'ndan Bernard Peters (NSA), bir bilgisayar sistemine yönelik bir saldırıyı tanımlamak için "sızma" ifadesini kullandılar. Bir makalede, Ware ordunun uzaktan erişilebilir zaman paylaşımlı sistemlerine atıfta bulundu ve “Bu tür bilgisayar sistemlerine sızma konusunda kasıtlı girişimler beklendiği” uyarısında bulundu. Meslektaşları Petersen ve Turn, çevrimiçi iletişim sistemlerinin "gizliliğe yönelik tehditlere karşı " "kasıtlı sızma" dahil olmak üzere savunmasız olduklarını gözlemleyerek aynı endişeleri paylaştı. NSA'dan Bernard Peters da aynı şekilde, bilgisayar girdi ve çıktılarının bir bilgisayar penetrasyonu konusunda büyük miktarlarda bilgi sağlayacağını dile getirdi. Konferans sırasında bilgisayar penetrasyonu, resmi olarak çevrimiçi bilgisayar sistemlerine karşı büyük bir tehdit olarak tanımlandı.
Bilgisayar penetrasyonunun yarattığı tehdit, 1967 yılının sonlarında ABD Savunma Bakanlığı (DoD) tarafından düzenlenen büyük bir raporda ortaya kondu. DoD yetkilileri, zaman paylaşımlı bilgisayar sistemlerinin güvenliğini resmi olarak değerlendirmek üzere NSA, CIA, DoD, akademi ve sektör uzmanlarından oluşan bir görev gücüne liderlik etmek üzere Willis Ware'e başvurdu.1967 baharında yapılan Ortak Bilgisayar Konferansı sırasında sunulan birçok makaleye dayanarak, görev gücü, bilgisayar nüfuzunun yol açtığı sistem güvenliği tehdidini büyük ölçüde doğruladı. Ware'in raporu başlangıçta gizliydi, ancak ülkenin önde gelen bilgisayar uzmanlarının çoğu çalışmayı hızlı bir şekilde bilgisayar güvenliği konusunda kesin bir belge olarak tanımladı. Charles Babbage Enstitüsü'nden Jeffrey R. Yost, Ware raporunu daha yakın bir zamanda “... zamanının güvenli bilgisayar sistemleri ile ilgili teknik ve operasyonel konulardaki en önemli ve kapsamlı çalışması” olarak tanımladı. Aslına bakılırsa Ware raporu, bilgisayar penetrasyonunun yeni çevrimiçi zaman paylaşımlı bilgisayar sistemlerine karşı yarattığı tehlikeyi tekrar teyit etmiş oldu.
Sistem zayıflıklarını daha iyi anlamak amacıyla, Federal hükümet ve müteahhitleri çok geçmeden, bilgisayar penetrasyonunu kullanarak sistem güvenliğini test etmek için kaplan takımları (tiger teams) olarak bilinen sızma ekiplerini organize etmeye başladılar. Deborah Russell ve G. T. Gangemi Sr. “kaplan takımlarının ilk kez 1970'lerde bilgisayar sahnesinde ortaya çıktığını,devlet ve sektör destekli bu takımların zafiyetleri açığa çıkarmak ve nihayetinde yama yapmak için bilgisayar sistemlerinin savunmasını yıkmayı amaçladıklarını“ belirtti.
Bilgisayar güvenliği tarihinin önde gelen kişilerinden olan Donald MacKenzie, benzer şekilde, “RAND’ın, devlete ait zaman paylaşımlı sistemlere sızmak için bazı çalışmalar yaptığını” ifade etti.Charles Babbage Enstitüsü'nden Jeffrey R. Yost, bilgisayar güvenliği konusundaki kendi çalışmasında, hem RAND Corporation'ın hem de SDC'nin, zaman paylaşımlı sistemlerin zafiyetlerini test etmek için ilk sözde sızma çalışmalarını yürüttüğüne" değindi. Neredeyse tüm bu erken çalışmalarda, kaplan ekipleri, ülkenin zaman paylaşımlı sistemlerinin savunmaları zayıf olduğu için hedeflenen tüm bilgisayar sistemlerine başarıyla girdi.
İlk kaplan takımı eylemlerinin arasında RAND Corporation’ın, penetrasyonun sistem güvenliğinin değerlendirilmesinde bir araç olarak faydasını göstermekteki çabaları yer almıştır. Ek olarak, bazı RAND analistleri sızma testi egzersizlerinin kullanımın devam etmesini haklı kılan bazı faydalar sunduğunu vurguladı. Bir makalede “sistem zafiyet arayışında saldırgan bakış açısı kazanıldığı” belirtildi. Bu ve benzeri nedenlerle, RAND'daki birçok analist, sistem güvenliğinin değerlendirilmesinde penetrasyon tekniklerinin devam etmesini önermiştir.
Belki de sızma testinin şekillendiği bu yıllara yön veren kişi sistem güvenliğini incelemek için NSA, RAND ve diğer devlet kurumları ile birlikte çalışan James P. Anderson'dır. 1971'in başlarında, ABD Hava Kuvvetleri, Pentagon'daki zaman paylaşımlı sisteminin güvenliğini incelemek için Anderson'un özel şirketiyle sözleşme yaptı. Anderson, çalışmasında bilgisayar penetrasyonuna dahil olan bir dizi ana faktörü ortaya koydu. Anderson, genel bir saldırı sırasını şu adımlarla açıkladı:
1. İstismar edilebilir bir zafiyet bulun.
2. Zafiyetin çevresinde bir saldırı tasarlayın.
3. Saldırıyı test edin.
4. Kullanılan bir hattı ele geçirin.
5. Saldırıyı başlatın.
6. İstismar ederek bilgileri ele geçirin.
Zaman içinde Anderson’un genel sızma testi adımları birçok siber güvenlik araştırmacısına yol gösterdi.
İlerleyen yıllarda, güvenlik değerlendirmelerinde bilgisayar penetrasyonunun kullanılması daha incelikli ve karmaşık bir hale geldi. 1980'lerin başlarında, gazeteci William Broad, kaplan ekiplerinin devam eden sistem güvenliğini değerlendirme çabalarını kısaca özetledi. Broad'in bildirdiği gibi, DoD sponsorluğundaki Willis Ware'in raporu, “casusların bilgisayarlara nasıl aktif olarak girebileceğini, elektronik dosyaları çalabileceğini veya kopyalayabileceğini ve normalde çok gizli bilgileri koruyan cihazları altüst edebileceğini gösterdi. Çalışma, on yıldan uzun süredir devlet için çalışan bilgisayar bilimcilerinin hassas bilgisayarlara girmek için yürüttükleri sessiz faaliyetlere de değindi. Bunu her denemelerinde başardılar.”
Bu çeşitli çalışmalar ABD’deki bilgisayar güvenliğinin büyük bir sorun olmaya devam ettiğini ileri sürse de, uzman Edward Hunt daha yakın bir zamanda, bilgisayar penetrasyonunun bir güvenlik aracı olarak kapsamlı bir şekilde araştırılması gerektiği hakkında önemli bir noktaya değindi. Hunt sızma testi tarihi üzerine yazdığı son makalesinde savunma kuruluşlarının detaylı araştırmalar yaparak modern siber savaşta kullanılmak üzere birçok araç geliştirdiğini belirtti.


## Araçlar.
Ücretsiz test edilebilir yazılım, ücretsiz yazılım ve ticari yazılımlar dahil olmak üzere sızma testlerine yardımcı olmak için çok çeşitli güvenlik değerlendirme araçları bulunmaktadır.


### Özel İşletim Sistemi Dağıtımları.
Birçok işletim sistemi dağıtımı sızma testine yöneliktir. Bu tür dağıtımlar tipik olarak önceden paketlenmiş ve önceden yapılandırılmış araç setleri içerir. Sızma testi uzmanı, derleme hataları, bağımlılık sorunları, konfigürasyon hataları gibi risk komplikasyonlarını artırabilecek her bir aracı aramak zorunda değildir. Ayrıca ilave araçlara sahip olmak mevcut şartlarda pratik olmayabilir.
Önemli sızma testi işletim sistemi örnekleri şunlardır:
  -   BlackArch (Arch Linux temelli)
  -   BackBox (Ubuntu temelli)
  -   Kali Linux (Aralık 2012’de Backtrack’in yerini aldı) (Debian temelli)
  -   Parrot Security OS (Debian temelli)
  -   Pentoo (Gentoo temelli)
  -   WHAX (Slackware temelli)
Her biri belirli bir sızma testi alanına tahsis edilen diğer birçok işletim sistemi de sızma testini kolaylaştırmaktadır.
Hedef olarak kullanılabilecek birçok Linux dağıtımı, bilinen işletim sistemi ve uygulama zafiyetlerini barındırmaktadır. Bu tür sistemler, yeni güvenlik uzmanlarının laboratuvar ortamında en son güvenlik araçlarını denemelerine yardımcı olur. Örnekler arasında Damn Vulnerable Linux (DVL), the OWASP Web Testing Environment (WTW) ve Metasploitable sayılabilir.


### Yazılım Sistemleri.
  - Burp Suite
  - Metasploit Project
  - Nessus
  - Nmap
  - OWASP ZAP
  - w3af


## Sızma Testi Modelleri.
Siyah Kutu Sızma Testi
Beyaz Kutu Sızma Testi
Gri Kutu Sızma Testi


## Sızma Testi Aşamaları.
Bilgi güvenliği uygulayıcılarından oluşan bir ekip, sızma testini bir standarda kavuşturmak için 2010 yılında "Penetration Testing Execution Standard (PTES)" adı altında 7 aşamadan oluşan bir metodoloji belirlemiştir:
  - Anlaşma öncesi etkileşim: Test ile ilgili tüm bilgilerin beyan edilmesi müşteriye beyan edilmesi.
  - Veri toplama: Testin yapılacağı kurum hakkında stratejik bir saldırı planı oluşturmak için kurum hakkında veri toplanması.
  - Tehdit Modelleme: Hedefleri ve güvenlik açıklarını belirleyerek kuruma yönelik tehditleri önlemek için, karşı önlemleri tanımlanması ve ağ güvenliğinin optimize edilmesi.
  - Güvenlik Açığı Analizi: Saldırganların istismar etmesine neden olacak sistem ve uygulama zafiyetlerinin ortaya çıkarılması.
  - İstismar: Daha önce tespit edilen, doğrulanan güvenlik açıkları kullanılarak kurumun ana giriş noktasının bulunması ve yüksek değerli varlıkların saptanması.
  - İstismar Sonrası: Makinenin barındırdığı bilgilerin değerinin belirlenmesi ve ağdaki diğer hedeflerde kullanılması için kontrolünün sürdürülmesi.
  - Raporlama: Tüm sürecin müşterinin anlayabileceği bir biçimde belgelendirilmesi ve kurumun güvenliğine ilişkin rapor hazırlanması.
Saldırgan bir güvenlik açığından yararlandıktan sonra, diğer makinelere erişebilir, böylece işlem tekrarlanır, yani yeni güvenlik açıkları arar ve bunları kullanmaya çalışır. Bu süreç pivoting olarak adlandırılır.


### Zafiyetler.
Test yapan kişinin yasadışı bir işlem yapmasına izin veren yasal işlemler arasında kaçılmamış SQL komutları, kaynak tarafından görülebilen projelerdeki değişmeyen tuzlar, insan ilişkileri ve eski hash veya şifreleme fonksiyonları bulunur. Tek bir hata kritik bir istismarı sağlamayabilir. Çoğunlukla bilinen birçok hatadan yararlanmak ve payload’u geçerli bir operasyonmuş gibi göstermek gerekmektedir. Metasploit, bilinen görevler için bir ruby kütüphanesi bulundurur ve bilinen istismar kodlarının bulunduğu bir veritabanı içerir.
Bütçe ve zaman kısıtlamaları altında fuzzing, zafiyetleri keşfeden yaygın bir tekniktir. Rastgele girdi yoluyla işlenmemiş bir hata almayı hedefler. Test yapan kişi, daha az kullanılan kod yollarına erişmek için rastgele girdi kullanır. İyi kodlanmış kod yolları genellikle hatasızdır. Hatalar yararlıdır; çünkü HTTP sunucusunun çökmesi veya arabellek taşması gibi bilgileri açık edebilirler.
Bir web sitesinde 100 adet metin giriş kutusu bulunduğunu hayal edin. Bazıları, belirli dizgilerdeki SQL enjeksiyonlarına açıktır. Bu kutulara rastgele dizeleri bir süre göndermek eksik yapılandırılmış kod yolunu izleyebilir. Hata, kendini bir SQL hatası nedeniyle oluşturulmuş, bozuk bir HTML sayfası olarak gösterir. Bu durumda, yalnızca metin kutuları giriş akışları olarak değerlendirilmektedir. Ancak, yazılım sistemlerinin çerez ve oturum verileri, yüklenen dosya akışı, RPC kanalları veya bellek gibi birçok olası giriş akışı vardır. Bu girdi akışlarından herhangi birinde hatalar olabilir. Testin amacı, önce işlenmemiş bir hata elde etmek ve sonra başarısız olan test durumuna dayanarak hatayı anlamaktır. Testi yapan kişiler, hata hakkındaki anlayışlarını doğru olana kadar test etmek için otomatik bir araç yazar. Bundan sonra, hedef sistemin yürütmesini tetiklemesi için payload’un nasıl paketleneceği açıklığa kavuşabilir. Eğer bu mümkün değilse, fuzzer tarafından üretilen başka bir hatanın daha fazla meyve vermesi ümit edilebilir. Bir fuzzer kullanımı, istismarın muhtemel olmadığı durumlarda uygun kod yolunu kontrol etmeden zaman kazandırır.


### Payload.
İllegal operasyon veya Metasploit terminolojisiyle payload tuş vuruşlarını kaydetmek, ekran görüntüleri almak, reklam yazılımı yüklemek, kimlik bilgilerini çalmak, kabuk kodunu kullanarak arka kapı oluşturmak veya verileri değiştirmek için işlevleri içerebilir. Bazı şirketler bilinen açıklardan oluşan büyük veritabanlarını tutar ve hedef sistemleri güvenlik açıkları için otomatik olarak test eden ürünler sunar:
  - Metasploit
  - Nessus
  - Nmap
  - OpenVAS
  - W3af


## Standartlaştırılmış Devlet Sızma Testi Hizmetleri.
Genel Hizmetler İdaresi (GSA), "sızma testi" hizmetini, önlenebilir bir destek hizmeti olarak, olası güvenlik açıklarını hızla ele almak ve rakipleri ABD federal, eyalet ve yerel yönetimlerini etkilemeden önce durdurmak için standartlaştırdı. Bu hizmetler genellikle Yüksek Uyarlamalı Siber Güvenlik Hizmetleri (HACS) olarak adlandırılır ve ABD GSA Advantage web sitesinde listelenmiştir.
Bu çaba, teknik olarak gözden geçirilmiş ve bu gelişmiş penetrasyon hizmetlerini sunmak için onaylanan kilit servis sağlayıcıları belirlemiştir. Bu GSA hizmeti, bu hizmetlerin hızlı sipariş ve dağıtımını iyileştirmek, ABD devlet sözleşmesi yinelemesini azaltmak ve ABD altyapısını daha zamanında ve verimli bir şekilde korumak ve desteklemek amacıyla hazırlanmıştır.
132-45A Sızma Testi, hizmet değerlendiricilerin bir uygulamanın, sistemin veya ağın güvenlik özelliklerini atlatma yöntemlerini tanımlamak için gerçek dünya saldırılarını taklit ettiği güvenlik testidir. HACS Sızma Test Servisleri tipik olarak organizasyonun varlıkları ve verileri korumak için kullanılan önleyici ve tanımlayıcı güvenlik önlemlerinin etkinliğini stratejik olarak test eder. Bu hizmetin bir parçası olarak, sertifikalı etik bilgisayar korsanları tipik olarak güvenlik zayıflıklarını arayarak bir sisteme, sistemlere, uygulamalara veya çevrede bulunan başka bir hedefe yönelik simüle bir saldırı gerçekleştirir. Testten sonra, tipik olarak hangi savunmanın etkili olduğunu ve hangi zafiyetlerin istismar edilebileceğini ana hatlarıyla belgeleyeceklerdir. Ayrıca, tipik olarak keşfedilen zayıflıkları gidermek için önerilen iyileştirme planlarını sağlarlar.
İngiltere'de sızma testi hizmetleri, Ulusal Siber Güvenlik Merkezi ile birlikte çalışan profesyonel kuruluşlar tarafından standardize edilmiştir.
Türkiye’de ise sızma testi yapan firmalara TSE tarafından onay verilmektedir. Aynı zamanda BDDK ve SPK da kapsam dahilindeki kuruluşlara sızma testi yaptırma yükümlülüğü getirmiştir.