Sızma Testi



Sızma Testi Nedir ?

En yalın tanımıyla sızma testi, bilgisayar sistemlerinin güvenlik açıklarını ve zafiyetlerini tespit etmek amacıyla bu ortamlar üzerinde gerçekleştirilen çalışmalardır. Sızma testi ayrıca aşağıdaki isimlerle de anılır:

  • Penetrasyon testi (sızma testi)

  • Pentest

  • Etik saldırı (ethical hacking)

  • Beyaz şapka saldırısı (white hat attack)

  • Güvenlik taraması (security checkup)

Sızma testinde, bir saldırganın yararlanacağı güvenlik açıklarını tespit etmek amacıyla bir ağın, bilgisayar sisteminin veya web uygulamasının testleri gerçekleştirilir.

Sızma testleri çeşitli uygulamalar kullanılarak otomatik hale getirilebilir veya elle (manual) gerçekleştirilebilir. Her iki durumda da süreç, hedef hakkında bilgi toplamayı, olası giriş noktalarını belirlemeyi, içeri girmeyi (sızmayı) denemeyi ve bulguları paylaşmayı içerir. Testlerde en iyi yöntem olarak, testlerin birden fazla otomatize edilmiş yazılım ile gerçekleştirilmesi ve sonrasında elle yapılan çalımalar ile sonuçların doğrulanması adımları izlenir.

Sızma testi, bir kuruluşun güvenlik politikasını, uyumluluk gereksinimlerine bağlılığını, çalışanlarının güvenlik farkındalığını ve kuruluşun güvenlik olaylarını tanımlama ve bunlara yanıt verme yeteneğini tespit etmek için de kullanılabilir.

Tipik olarak, sızma testi yoluyla belirlenen ve/veya kötüye kullanılan güvenlik zayıflıkları hakkında toplanan bilgiler kuruluşun yetkililerine sunularak, kurumun stratejik karar alma ve iyileştirme çabalarına öncelik verme olanağı sağlanır.

 

Sızma Testinin Amacı

Sızma testi, bir kurumun bilgi teknolojileri (BT) ortamlarındaki ağlara, sistemlere ve uygulamalara yönelik yapılacak kötü niyetli saldırılara karşı önlem almak amacıyla, ortamlardaki güvenlik açıklarını, tasarım zayıflıklarını ve riskleri ortaya koymak için gerçekleştirilir.

Sızma testinin güvenlik zayıflıklarının belirlenmesi temel hedefinin yanı sıra, bilgi teknolojileri (BT) ortamlarının güvenlik politikasının uygunluğunu denetlemek, personelin güvenlik sorunları konusundaki farkındalığını ortaya çıkarmak ve kuruluşun güvenlik felaketlerine uğrama riskini belirlemektir.

Diğer yandan sızma testleri, bir şirketin güvenlik politikalarındaki zayıflıklarını da ortaya çıkarabilir. Örneğin, güvenlik politikası kuruluşun sistemlerine yönelik bir saldırıyı tespit etmeye ve önlemeye odaklansa da, bu politika bir bilgisayar korsanını etkisiz hale getirme sürecini içermeyebilir.

 

Sızma Testi Süreci 

 

Sızma testi süreci yedi temel adımdan oluşmaktadır:

 
  •  Adım-1: Kapsam Belirleme
  •  Adım-2: Bilgi Toplama / İstihbarat
  •  Adım-3: Zafiyet Tespiti
  •  Adım-4: Bilgi Analizi / Planlama
  •  Adım-5: Sisteme Sızma
  •  Adım-6: Sonuç Analizi / Raporlama
  •  Adım-7: İzlerin Temizlenmesi

                                      

Adım-1: Kapsam Belirleme

Amaç, gerçekleştirilecek olan sızma testinin hedeflerini ve testlerin yapılacağı BT ortamlarını belirlemektir.
Bu aşamada çalışmanın planlanabilmesi amacıyla testin yapılacağı kurumdan gerekli ön bilgiler alınır. Edinilen bilgiler doğrultusunda,  testin niteliği, kapsamı, hedeflenen ortamlar, kurum açısından testin yapılmasının uygun olacağı tarih ve saatler gibi konular belirlenir.
Sızma testi çalışmasının kapsam belirlendikten sonra, testlere geçilmeden önce aşağıdaki adımlar izlenir:

  •  Kurum ve testi yapacak firmadan çalışmaya katılacak ekiplerin ve testlerle ilgili kontak kişiler belirlenir 
  •  Test planı oluşturulur
  •  Kurumdan alınan bilgiler doğrultusunda, çalışmaların yapılacağı tarihler ve saat aralıkları belirlenir
  •  Acil durumların oluşması halinde ulaşım sağlanacak kontak kişiler belirlenir
  •  Hizmet sunulacak kurum ile hizmetin kapsamı, çalışma metodolojisi ve yapılacak testler konularında mutabakat sağlanır
  •  Karşılıklı olarak yasal korumanın sağlanması amacıyla, kurum ile hizmet anlaşması imzalanır

 

Adım-2: Bilgi Toplama /İstihbarat 

Bilgi toplama test adımlarındaki en önemli aşamadır ve sızma testi bütünündeki çalışmaların %80-90’ını oluşturmaktadır. Bu aşamada ne kadar doğru ve yeterli bilgiye ulaşılırsa testler de o kadar doğru ve verimli şekilde gerçekleştirilebilir.
Bilgi toplama iki faklı yöntem kullanılarak gerçekleştirilir:

  •  Pasif Bilgi Toplama
  •  Aktif Bilgi Toplama

Pasif bilgi toplamada, bilgi toplama sürecinde hedefin bilgi toplayandan haberdar değildir ve bilgi toplamak için genele açık (public) olan ve aşağıda belirtilen kaynakları da kapsayan bilgi ortamlar kullanılır:

  •  Forumlar
  •  Sözlük siteleri
  •  Topluluk siteleri
  •  Sosyal Medya
  •  Haber siteleri
  •  Arama siteleri

Aktif bilgi toplamda, bilgi toplanırken karşı taraf ile irtibat kurulmakta ve hedefte bu ulaşıma ilişkin kayıtlar oluşmaktadır. Aktif bilgi toplamada genel olarak aşağıdaki kaynaklar kullanılır:

  •  Web siteleri 
  •  Taramalar
    •  Bağlantı noktası (port) taraması
    •  Zafiyet taraması
    •  İşletim sistemi taraması
    •  Servis taraması

Testin amacı ve kapsamı belirlendikten sonra, testin yapılacağı kurum ve sistemleri hakkında bilgi verilmesi durumunda, bilgi toplama aşamasındaki adımlar gerekli olmayacağından, bu süreç daha kısa sürecektir. 

 

Adım-3: Zafiyet Tespiti

İkinci adımda elde edinilen bilgiler doğrultusunda güvenlik açığı tespit etme işlemlerine başlanır. Hedef ortamlarda ne tür zafiyetlerin olduğu, bu zafiyetlerin nasıl kullanılacağı ve ne tür ataklar yapılabileceği, bu ataklara nasıl cevaplar geldiği, sistemin bu ataklara karşı kendini koruyup korumadığı gibi durumları öğrenme konularında çalışmalar yapılır.

Güvenlik açığı tespiti aşamasında yardımcı programlar/araçlar kullanılarak sistem hakkında genel bir tarama yapılır. Bu programlar sayesinde, sistemlerdeki açık port’lar, hangi port’ta hangi servisin çalıştığı, bu servisin hangi versiyonunun kullandığı gibi detay bilgiler öğrenilir ve elde edilen versiyon bilgilerine ait bir güvenlik açığı var ise direkt olarak tespit edilmesini sağlanır.

Adım-4: Bilgi Analizi / Planlama

Bir önceki adımda belirlenen güvenlik açıklarını kullanılarak sisteme sızmak için gerekli araştırma, planlama ve hazırlık çalışmaları gerçekleştirilir.

 

Adım-5: Sisteme Sızma

Bu aşamada, daha önceki adımlarda belirlenmiş olan güvenlik zafiyetleri için istismar girişimlerinde bulunulur. Bu amaçla hazırlanan yardımcı yazılımlar (exploit, payload, vb.) kullanılarak hedef sisteme girilmeye (sızılmaya) çalışılır.
 

Yetki Yükseltme : Eğer sisteme erişim elde edilebiliyorsa, daha fazla alanı kontrol etmek ve daha fazla işlem yapmak hedefiyle sistem içinde yetki seviyesi yükseltilme girişimlerinde bulunulur ancak bu durum her zaman başarılı olarak sonuçlanmayabilir.
 

Yatay Gezinme: Bir makineye sızdıktan sonra, diğer makinelere sıçrama yapılarak erişilip erişilemediği incelenmesi yatay gezinme dolarak adlandırılır. Sızma işlemi sayesinde sistemle kurulan bağlantıyı sürdürmek amacıyla çeşitli yöntemler denenerek açık noktalar (backdoor) tespit edilmeye çalışılır.

 

Adım-6: Sonuç Analizi / Raporlama

Sızma testi çalışmasının bu aşamasında, önceki adımlarda gerçekleştirilen çalışmaların sonuçları değerlendirilir. Belirlenen güvenlik açıkları nedeniyle etkilenebilecek sistemler ve oluşabilecek potansiyel zararlar, tespit edilen risklerin ortadan kaldırılması için alınabilecek önlemler raporlanır.

 

Adım-7: İzlerin Temizlenmesi

Sızma testi sırasında sistemlerde herhangi bir değişiklik yapılması durumunda bunlar eski haline döndürülür, örneğin dosya oluşturulduysa veya kullanıcı tanımlandıysa bunlar silinir. 

 

Ne Sıklıkla Sızma Testi Yapılmalı?

Kuruluşlar, daha tutarlı bilgi teknolojileri ortam güvenliği ve yönetimi sağlamak için düzenli olarak -  en geç yılda bir kez veya en iyi pratik olarak 6 ayda bir kez – sızma testi yapmalıdır.

Sızma testleri, yasal (regülatif) düzenlemelerin zorunlu kıldığı analiz ve değerlendirmelerin yanı sıra, aşağıdaki durumlarda da gerçekleştirilebilir:

  •  BT ortamlarına yeni ağ altyapısı, sistem veya uygulamaların eklenmesi sonrasında
  •  Uygulamalarda veya altyapıda önemli yazılım ve donanım değişiklikleri yapılması sonrasında
  •  Güvenlik yamalarının uygulanması sonrasında
  •  Son kullanıcı politikalarının değiştirilmesi sonrasında
  •  Farklı lokasyonlarda yeni çalıma ortamlarının kurulması sonrasında

 

Bununla birlikte, kurumun sızma testine uygunluğu belirlenirken aşağıda yer alan faktörlere göre değerlendirme yapılır:

  •  Şirketin büyüklüğü: İnternette daha fazla varlığa sahip şirketler daha fazla saldırı vektörüne sahiptir ve bu nedenle bilgisayar korsanları için daha çekici hedeflerdir.
  •  Maliyet: Sızma testleri, hedeflenen kapsamın büyüklüğüne bağlı olarak yüksek maliyetli olabilir. Bu nedenle daha küçük bütçeli bir şirket, yasal gerekliliklerin bulunmadığı durumlarda, sızma testlerini yılda birden fazla gerçekleştiremeyebilir. Diğer yandan daha büyük bütçeli bir şirket altı ayda veya yılda bir periyodik olarak veya testin gerekli hale geleceği değişikliklerden sonra sızma testi yapabilir.
  •  Yönetmelikler ve uyumluluk: Belirli sektörlerdeki kuruluşların, yasa gereği sızma testleri de dahil olmak üzere belirli güvenlik görevlerini yerine getirmesi zorunludur.
  •  Bulut ortamının kullanımı: Altyapısı bulutta olan bir şirket için, bulut hizmet sağlayıcısı altyapısının test edilmesine izin verilmeyebilir. Bununla birlikte hizmet sağlayıcı sızma testlerini kendi başına gerçekleştiriyor olabilir.

Sızma testleri, test yapılan kuruluşun faaliyet gösterdiği sektöre olduğu kadar kuruluşa göre de özel olarak uyarlanmalı ve test sonuçları belirlenen güvenlik açıklarını, takip ve değerlendirme görevlerini içermelidir.

 

Sızma Testi Araçları

Sızma testi uzmanları, standart güvenlik açıklarını ortaya çıkarmak için genellikle otomatik araçlar kullanırlar. En iyi pratik olarak aynı ortamlar için birden çok araç ile tarama yapılması, açıkların tespit edilememesi/atlanması riskini en aza indirmektedir. Otomatik araçlarla taramadan sonra elle yapılan taramalar sayesinde, otomatik araçlarla belirlenmiş olan güvenlik zafiyetlerinin teyit edilmesi de önem taşımaktadır.

Sızma test araçları, güvenlik ihlaline neden olabilecek uygulamalardaki kötü amaçlı kodların kimliğini tespit etmek için kodu tarar. Ayrıca veri şifreleme tekniklerini inceler ve sistemdeki güvenlik açıklarını doğrulamak için kullanıcı adları ve parolalar gibi sabit kodlanmış değerleri belirleyebilir.
Sızma testi araçlarında bulunması gereken en temel özellikler şunlardır:

  •  Kurulumu, yapılandırması ve kullanımı kolay olmalıdır
  •  Sistemleri kolayca tarayabilmelidir
  •  Güvenlik açıklarını önem derecesine göre (örneğin Acil, Kritik, Yüksek, Orta, Düşük) sınıflandırabilmelidir
  •  Güvenlik açıklarının doğrulanmasını otomatikleştirme becerisine sahip olmalıdır
  •  Önceki istismarları yeniden doğrulayabilmelidir
  •  Ayrıntılı güvenlik açığı raporları ve günlükleri oluşturabilmelidir

 

Popüler sızma testi araçlarının çoğu ücretsiz veya açık kaynaklı yazılımlardır; bu durum, sızma testi uzmanlarına kodu kendi ihtiyaçlarına göre değiştirme veya uyarlama olanağını verir. En yaygın olarak kullanılan ücretsiz veya açık kaynak sızma testi araçlarından bazıları şunlardır:

  •  Metasploit Projesi: Metasploit yazılımının tam özellikli sürümlerini lisanslayan güvenlik şirketi Rapid7'ye ait açık kaynaklı bir projedir. Sunucularda, çevrimiçi tabanlı uygulamalarda ve ağlarda kullanılabilecek popüler sızma testi araçlarını bünyesinde toplar. Metasploit, güvenlik sorunlarını ortaya çıkarmak, güvenlik açıklarının azaltıldığını veya ortadan kaldırıldığını doğrulamak ve güvenlik süreçlerini yönetmek için kullanılabilir.
  •  Nmap (Network Mapper): "Ağ eşleştiricisi" nin kısaltması olan Nmap, açık bağlantı noktalarındaki güvenlik açıkları için sistemleri ve ağları tarayan bir bağlantı noktası (port) tarayıcısıdır. Nmap, taranacak sistemin veya ağın bulunduğu IP adres(ler)ine yönlendirilir ve bu sistemler kullanıma açık olan bağlantı noktaları için test edilir. Bunun yanı sıra Nmap, sunucu bilgisayarların veya hizmetlerin kesintisiz çalışma sürelerini (uptime) izlemek ve ağ saldırı yüzeylerini haritalamak için de kullanılabilir.
  •  Wireshark: Ağ trafiğini profillemek ve ağ paketlerini analiz etmek için kullanılan bir araçtır. Wireshark, ağlarda gerçekleşen tüm etkinliklerin tüm detaylarıyla görülmesini sağlar. Bu sızma aracı, ağ trafiğindeki güvenlik açıklarını gerçek zamanlı olarak değerlendiren bir ağ çözümleyicisi/ağ algılayıcısı/ağ protokolü çözümleyicisidir. Wireshark genellikle çeşitli düzeylerde ağ trafiğinin ayrıntılarını incelemek için kullanılır.
  •  John the Ripper: Tek bir pakette farklı parola kırıcılarını birleştiren bir yazılımdır. Farklı türdeki parola karmalarını (hash) otomatik olarak tanır ve özelleştirilebilir parola kırıcıyı belirler. Sızma testlerinde bu araç genellikle sistemlerde veya veritabanlarında parola zayıflıklarını bulmak amacıyla saldırılar başlatmak için kullanır.

 

Sızma testi uzmanları, siyah şapkalı (kötü niyetli)  bilgisayar korsanlarının kullandığı araçların çoğunu kullanmaktadır. Bunun nedeni, bu araçların yaygın olarak bulunmasının yanı sıra, sızma testi uzmanlarının bu araçların kuruluşlara karşı nasıl kullanılabileceğini daha iyi anlamalarına yardımcı olmasıdır.

 

Sızma Testi Stratejileri

Herhangi bir sızma testindeki en önemli konu, sızma testi uzmanlarının çalışması gereken kapsamın tanımlanmasıdır. Genellikle kapsam, sızma testinde hangi sistemlerin, lokasyonların, tekniklerin ve araçların kullanılabileceğini tanımlar. Sızma testinin kapsamının iyi belirlenmesi, test ekibi üyelerinin hedefe odaklanmasına yardımcı olmasının yanı sıra, eksiksiz ve tatmin edici sonuçların elde edilmesini de sağlayacaktır.  Örneğin sızma testi yapılırken, bir kurum çalışanın parolasını açık bir şekilde ortama bırakması nedeniyle bir sisteme erişim elde edilirse, bu durum o çalışanın güvenlik politikasını ihlal ettiğini ortaya çıkarır ancak sızma testi ekibine, tehlikeye atılan uygulamanın güvenliği hakkında hiçbir fikir vermez.

Farklı sızma testi stratejilerinin kullanılması, sızma testlerini gerçekleştiren ekiplerin istenen sistemlere odaklanmasına ve en tehdit edici saldırı türleri hakkında fikir edinmesine yardımcı olur.

Güvenlik uzmanları tarafından kullanılan ana sızma testi stratejilerinden bazıları şunlardır:

 

  •  Hedeflenen test (Targeted testing): Testler kuruluşun BT ekibi ve birlikte çalışan sızma testi ekibi tarafından gerçekleştirilir ve herkes testin yapılmakta olduğunu görebilir.
  •  Harici test (External testing): Bir şirketin harici olarak görünen ve internet ortamından ulaşılabilen cihazlarını ve sistemlerini kapsar. Harici sızma testi, alan adı sunucuları, e-posta sunucuları, web sunucuları veya güvenlik duvarları cihazlarını hedefler. Bu testin amacı, bir saldırganın dışarıdan içeri girip giremeyeceğini ve erişim kazandıktan sonra, bu güvenlik açığını kullanarak ne kadar ileri gidebileceğini bulmaktır.
  •  Dahili test (Internal testing): Bu test, standart erişim haklarına sahip kurum içindeki bir kullanıcının güvenlik duvarının arkasındaki dahili (kurum içi) saldırısını taklit eder. Dahili testler, hoşnutsuz çalışanların bilgi teknolojileri ortamlarına ne kadar zarar verebileceğini tahmin etmek için yararlıdır.
  •  Kör test (Blind testing): Testi gerçekleştiren kişiye veya takıma önceden verilen bilgileri ciddi şekilde sınırlandırarak gerçek bir saldırganın eylemleri simüle edilir. Tipik olarak, sızma testi uzmanlarına yalnızca şirketin adı verilir. Bu tür bir test, keşif için önemli miktarda zaman gerektirebileceğinden uzun zaman alabilir ve maliyetli olabilir.
  •  Çift kör test (Double-blind testing): Bu tür bir sızma testinde, kuruluştan yalnızca bir veya iki kişi testin yapıldığından haberdar olabilir. Çift kör testler, bir kuruluşun güvenlik izleme ve ihlal olayının tanımlamasının yanı sıra müdahale prosedürlerini test etmek için de yararlı olabilir.
  •  Kara kutu testi (Black-box testing): Temelde kör testle aynıdır, ancak test uzmanı testi gerçekleşmeden önce hiçbir bilgi almaz. Aksine, sızma testi yapanlar sistemlere ulaşmak için kendi yollarını bulurlar.
  •  Beyaz kutu testi (White-box testing):  Penetrasyon testi uzmanlarına, çalışmalarına başlamadan önce hedef ağ hakkında bilgi sağlar. Bu bilgiler, IP adresleri, ağ altyapı şemaları ve kullanılan protokoller ile kaynak kodu gibi ayrıntıları içerebilir.
  •  Hizmet Olarak Sızma Testi (PTaaS – Pen Testing as a Service): Geleneksel sızma testleri ile bir kurumun teknik altyapısı, testin gerçekleştirdiği zaman dilimindeki durumu itibarıyla değerlendirilir. Bundan bir adım ileri giden PTaaS, testlerin i sürekli olarak gerçekleştirilmesine olanak sağlar. Bu test yönteminde potansiyel güvenlik zafiyetlerinin belirlemesi amacıyla bilgi teknolojileri altyapısına, bilgisayar sistemlerine ve uygulamalara sürekli olarak sızma testi yapılır. Sürekli tarama yönteminin kullanılması sayesinde güvenlik açıklarının tespiti ve giderilmesi daha hızlı yapılabilir. Sürekli güvenlik yönetimi kapsamında PTaaS hizmet sağlayıcıları, genellikle bir işletmenin tüm teknik altyapısını kapsayan yıllık abonelik yöntemi ile çalışırlar. Diğer yandan birçok hizmet sağlayıcı, müşterilerinin günlük, haftalık, iki haftalık, aylık, üç aylık, vb. sıklıklarda düzenli güvenlik açığı tarama raporları oluşturması ve istenildiği zaman canlı taramalar yapması hizmetini sunmaktadır.