Questions & Answers

Görevim gereği birden fazla alanla ilgili çalışmalar yürütmekteyim. Bu nedenle burayı genel olarak çalışma notlarım olarak düşünebilirsiniz. Üzerinde çalıştığım ve uğraştığım her şey burada yer alacaktır.

author image

Written by

Furkan İbiş

Published on

Aug 28

Questions & Answers

Bu Yazı Hakkında Genel Özet

Görevim gereği birden fazla alanla ilgili çalışmalar yürütmekteyim. Bu nedenle burayı genel olarak çalışma notlarım olarak düşünebilirsiniz.

Çalışma metodum ise şu şekilde ilerliyor: Takip ettiğim bir kursu veya üzerinde çalıştığım bir konuyu incelerken, o konuyla alakalı soruları not alıyorum. Amacım, bu soruları başlıklar altında toplayıp yanıtlayarak düzenli notlar oluşturmak.

Bu soruları üç ana başlık altında ele alıyorum:

  1. Problem

    • Üzerinde çalıştığım konu hangi probleme çözüm olması amacıyla geliştirilmiş?
    • Bu bölümde konunun ortaya çıkış amacını ve çözmeye çalıştığı temel sorunu açıklıyorum.
  2. Çözüm

    • Bu probleme nasıl bir çözüm bulunmuş?
    • Çözüm süreci nasıl tasarlanmış, hangi yöntem veya yaklaşımlar kullanılmış?
    • Burada daha çok konuya dair net ve teknik ifadeler yer alıyor.
  3. Çözümün Getirdiği Problem

    • Uygulanan çözüm yeni hangi problemleri doğurabilir?
    • Amacım, sadece çözümü anlamak değil; aynı zamanda çözümün doğurabileceği riskleri ve yan etkileri de analiz etmek.
    • "Ne sorun çıkabilir?" sorusunu, öğrendiğim her konuya yöneltmeye çalışıyorum.

Penetration Testing Sürecini Kafanda Canlandırabiliyor musun?

  1. Problem: Sızma testi süreçleri doğru şekilde yönetilmediği takdirde, testin kapsamına ve büyüklüğüne bağlı olarak yüksek düzeyde karmaşıklık ortaya çıkabilir.

  2. Çözüm: Bu karmaşıklığı önlemek amacıyla, çeşitli organizasyonlar tarafından sızma testlerinin nasıl yürütülmesi gerektiğine dair bir yol haritası hazırlanmıştır. Bu sayede uygulanacak süreçler belirli bir standarta kavuşturulmuş ve testlerin daha düzenli, yönetilebilir ve karşılaştırılabilir olması sağlanmıştır.

  3. Çözümün Getirdiği Problem: Katı süreçler; yeni bakış açılarını, yaratıcı teknikleri veya henüz literatüre girmemiş saldırı yöntemlerini uygulama konusunda kısıtlamalar yaratabilir. Bu da testin, gerçek saldırganların kullanabileceği sıra dışı yöntemleri gözden kaçırmasına sebep olabilir.

Pre-Engagement Nedir?

  1. Problem: Sızma testi öncesinde, yapılacak ve yapılmayacak işlemler sözleşmeler ve anlaşmalar ile net bir şekilde belirlenmezse, süreç ciddi bir karmaşıklığa yol açabilir. Bu durum hem testin verimliliğini düşürür hem de taraflar arasında yanlış anlaşılmalara sebep olabilir.

  2. Çözüm: Sızma testi öncesinde çeşitli sözleşmeler imzalanır ve iki taraf da yapılacak ya da yapılmayacak işlemleri net bir şekilde sözleşmeler ve anketler aracılığıyla birbirine bildirir. Bu aşama genel olarak üç alt bölüme ayrılır:

    1. Scoping Questionnaire: Türkçeye “Kapsam Anketi” olarak çevrilebilir. Amacı, testi yapacak olan firmanın, testin gerçekleşeceği ortamda hangi işlemlerin yapılmasını istediğini netleştirmektir. Müşterinin ihtiyacı, üretim ortamı gibi parametreler bu anket üzerinden belirlenir.
    2. Pre-Engagement Meeting: Genellikle çevrim içi (online) olarak yapılan bir toplantıdır. Sızma testini gerçekleştirecek firma ile hizmeti alacak olan firma arasında yapılır. Burada dikkat edilmesi gereken en önemli nokta, hizmeti alacak firmadan yalnızca yetkili kişilerin toplantıya katılması gerektiğidir. Çünkü sosyal mühendislik (social engineering) riskleri sebebiyle, tüm personelin bu toplantıya dahil edilmesi güvenlik açısından doğru değildir.
    3. Kick-off Meeting: Yüz yüze yapılan, daha çok sembolik nitelikte bir toplantıdır. Hizmeti veren firma ile hizmeti alan firma arasında gerçekleştirilebilir. Zorunlu değildir, ancak taraflar arasındaki iletişimi güçlendirmesi açısından faydalı olabilir. Türkiye'de çok da yapıldığını zannetmediğim bir işlem bu :)
  3. Problem: Genel olarak bir problem göremiyorum; aksine her sızma testinde yer alması gereken kritik bir süreçtir.

Information Gathering Nedir?

  1. Problem: Sızma Sızma testi sözleşmeleri yapıldığında, hedef sistem ile alakalı black box bir sızma testi gerçekleşecekse elimizde çok fazla bilgi bulunmayacaktır. Peki bilgileri nasıl elde edeceğiz?

  2. Çözüm: Information Gathering ile hedef sistemle alakalı olabilecek tüm bilgiler toplanmaya çalışılır. Sızma testi süreçlerini bir bulmaca gibi görmeyi seviyorum. Bir bulmacada sonucu bulacaksak, sonuçla ilgili tüm bilgiler işimize yarayacaktır. Bu sebeple Information Gathering aşaması sızma testinin en kıymetli aşamalarından biridir. Hedef sistemle alakalı olabildiğince çok veri toplanmaya çalışılır. Genel olarak aldığım eğitimlerde 4 ana başlık altında toplandığını görüyorum:

    1. Open Source Intelligence (OSINT): Hedef sistemle alakalı internette açık kaynak şeklinde bulunabilecek tüm bilgilerin toplanma aşamasıdır.
    2. Infrastructure Enumeration: Burada mantık aslında dışarıdan OSINT ve çeşitli araçları kullanarak hedef firmanın internet ve intranetteki konumunu bulmaya çalışmak ve hedef ağın bir haritasını ortaya çıkarmaktır. Altyapının nasıl yapılandırıldığına dair bir fikir sahibi olmak için DNS gibi servisleri kullanabilirsin. Name server, mail server ve web server gibi işlemleri de içerir. Bu aşamada kısaca ağda ne olduğunu anlamaya çalışırsın, ağın bir topolojisini çıkarır ve belirli IP’lere sahip hostların kapsam içerisinde olup olmadıklarına bakarsın. Kendi elimizde bulunan sözleşme içerisinde olup olmadıklarını kontrol ederek işlemlerimize devam ederiz. Bu sayede hedefin ne olacağı daha netleşir. Bu aşamada şirketin güvenlik önlemleri de belirlenmeye çalışılır. Örneğin hangi WAF gibi güvenlik duvarlarının bulunduğunu tespit ederek, yapacağımız hangi işlemin hedef sistemde bir alarmı tetikleyeceğini ve bu alarmı önlemek için hangi tekniklerin kullanılacağını belirlemek için çok iyi bir anlayış sağlar.
    3. Service Enumeration: Bu aşamada hedef ağda bir host ile iletişim kurmamıza olanak sağlayan servislerle ilgili bilgi toplamaya başlarız. “Bu servis hangi uygulamayı çalıştırıyor? Neden burada? Kullandığı uygulamanın versiyon bilgisi nedir?” gibi soruları yönelttiğimiz aşamadır. Bir servisin neden orada olduğunu anlamak, bu servisin ağ içerisinde neden kullanıldığını ve diğer hostlarla nasıl iletişime geçtiğini anlamamız için çok önemli olacaktır. Çünkü bu aşama bize ağ içerisindeki sistemlerle ilgili mantıklı çıkarımlar yapmamızı sağlar.
    4. Host Enumeration: Hedef sistemde servisi sağlayan host ile ilgili bilgi edinmeye başladığımız aşamadır. Burada amaç, hedef sistemde hangi işletim sisteminin çalıştığını ve bu işletim sisteminin versiyon bilgilerini öğrenmektir.
  3. Çözümün Getirdiği Problem: Bilgi güçtür, ancak burada en önemli sorunlardan biri elde edilen bilgilerin doğru analiz edilmesidir. Eğer analiz kısmında doğru çıkarımlar yapılamazsa, toplanan bilgilerin çok da bir önemi olmayacaktır.

Open-Source Intelligence (OSINT) Nedir?

  1. Problem: Hedef sistemde henüz dış ağdayken nasıl bilgi toplayabiliriz?

  2. Çözüm: Hedef sistem ile alakalı OSINT aşamasında internet üzerindeki kaynaklardan bilgi edinilebilir. Bu aşamada ağ içerisinde olmadığımız için bu tarz kaynaklardan elde edilen bilgiler, hedef ağdaki işleyiş hakkında fikir sahibi olmamızı sağlayabilir. Bunun için yapılabilecek çeşitli işlemler şunlardır:

    1. Google, Bing, Yandex gibi arama motorları kullanılarak şirket adı, çalışan bilgileri, sosyal medya paylaşımları gibi bilgiler toplanabilir. Özellikle Google Dorks kullanılarak site:example.com filetype:pdf gibi operatörlerle doğrudan domain içerisindeki dosyalar bulunabilir.

    2. Whois ve domain kayıtlarıyla, domain sahibinin kim olduğu ve hangi DNS sunucularının kullanıldığı öğrenilebilir.

    Kullanılabilecek araçlara örnek vermem gerekirse:

    1. Google Dorks
    2. OSINT Framework
    3. dig
    4. nslookup
  3. Çözümün Getirdiği Problem: Bu aşamada elde edilen bilgiler, sistemle alakalı net bilgi sağlamak yerine çıkarım yapmamızı sağlayacak ipuçları verecektir. Bu nedenle bu bilgilerin analizi doğru ve dikkatli yapılmalıdır.