BAS Çözümlerinin Genel Yapısı

BAS (Siber İhlal ve Saldırı Simülasyonu) çözümleri, kuruluşların siber güvenlik zayıflıklarını ve tehditlere karşı ne kadar iyi korunduklarını değerlendiren araçlardır. Bu çözümler, gerçek dünyadaki tehditleri simüle ederek, bir kuruluşun güvenlik altyapısının etkinliğini test eder. BAS sistemleri, sürekli bir saldırı simülasyonu yaparak güvenlik açıklarını tespit eder ve güvenlik kontrollerini iyileştirmek için önerilerde bulunur.

Şimdi bu çözümleri detaylı inceleyelim:

BAS: Genel Yapı

BAS çözümleri, siber saldırıların kuruluş ağları üzerinde simüle edilmesiyle çalışır. Genellikle aşağıdaki temel bileşenlere sahiptir:

Saldırı Senaryoları: Bu senaryolar, gerçek saldırganların kullanabileceği teknikleri simüle eder. Kimlik avı (phishing), ransomware, DDoS saldırıları, ağ taramaları gibi çeşitli tehditler senaryolar dahilindedir.

Raporlama ve Analiz: BAS çözümleri, simülasyonlar sonucunda güvenlik açıklarını rapor eder ve bu açıkları kapatmak için öneriler sunar.

Otomatikleştirme: BAS sistemleri genellikle sürekli simülasyon yapma yeteneğine sahiptir. Bu, manuel insan müdahalesine ihtiyaç duymadan düzenli testlerin yapılmasını sağlar.

Gerçek Zamanlı İzleme: Çözümler, saldırı simülasyonlarını gerçek zamanlı olarak yapar ve ağ üzerindeki güvenlik mekanizmalarının (firewall, IDS/IPS gibi) nasıl yanıt verdiğini izler.

BAS Altyapısının Temel Bileşenleri

BAS çözümlerinin altyapısı, güvenlik zafiyetlerini ortaya çıkarmak ve bu zafiyetlerin bir saldırı altında nasıl tepki verdiğini ölçmek için karmaşık bir yapı içerir. Bu yapıdaki temel bileşenler şunlardır:

Saldırı Motoru: Bu motor, saldırı senaryolarını çalıştıran temel bileşendir. Saldırı motoru, farklı saldırı türlerini simüle edebime yeteneğine sahip olmalıdır.

Tehdit İstihbaratı: Gerçek zamanlı tehdit bilgilerini sağlayarak saldırı senaryolarının güncel tehditlere dayanmasını sağlar.

Entegre Güvenlik Kontrolleri: Firewall, antivirüs, IDS/IPS gibi güvenlik çözümleriyle entegre edilerek, bu çözümlerin saldırılara karşı nasıl tepki verdikleri değerlendirilir.

Zafiyet Yönetim Modülü: Tespit edilen zafiyetleri sınıflandırır ve risk değerlendirmesi yapar. Bu, saldırı simülasyonu sırasında açığa çıkan güvenlik açıklarını anlamak için kullanılır.

Raporlama ve Analitik Araçlar: Simülasyonlar sonrasında, saldırıya uğrayan sistemlerin güvenlik durumu hakkında detaylı raporlar üretir. Bu raporlar, kuruluşların hangi alanlarda zayıf olduğunu ve nasıl iyileştirmeler yapması gerektiğini gösterir.

Burada büyük önem arz eden ve ağır yükün bindiği bölüm “Saldırı Motoru” kısmı olduğunu kabul edebiliriz. Bu çerçevede bu kısma detaylıca değinmek önemlidir.

Saldırı Döngüsünü Anlamak

Bir saldırının gerçekleşme aşamalarını tanımlar. BAS platformları, genellikle Lockheed Martin’in Cyber Kill Chain veya MITRE ATT&CK gibi çerçeveler kullanarak bu döngüyü simüle eder. Bu döngü, saldırganın ilk keşif aşamasından nihai veri sızdırma aşamasına kadar olan tüm adımları içerir. BAS, saldırıyı taklit ederek her adımda savunmalarınızı test eder.

Gerçek Dünya Saldırılarının Simülasyonu

BAS platformları, kimlik avı (phishing), fidye yazılımı (ransomware) veya SQL enjeksiyonu gibi yaygın saldırıları simüle eder. Bu simülasyonlar, organizasyonunuzun savunma sistemlerinin bu saldırılara karşı nasıl tepki verdiğini görmek için kullanılır. Gerçek saldırı senaryolarını canlandırarak güvenlik açıklarını bulur ve bunlara karşı proaktif önlemler almanıza olanak tanır.

Otomatik Test ve İzleme

BAS platformlarının en güçlü özelliklerinden biri, saldırı testlerini otomatikleştirme yeteneğidir. Manuel güvenlik testlerinin aksine, BAS platformları belirli aralıklarla otomatik saldırı simülasyonları gerçekleştirir ve bu süreçleri sürekli izler. Bu, organizasyonların güvenlik açıklarını daha hızlı bulmasını ve düzenli olarak test etmesini sağlar.

BAS Platformlarının Ana İşlevleri

Bir BAS platformunun sunduğu ana işlevler, güvenlik altyapınızı daha güçlü hale getirmek için gereken tüm aşamaları kapsar:

Senaryo Tasarımı

Kullanıcılar, BAS platformu üzerinde kendi saldırı senaryolarını tasarlayabilir. Örneğin, kimlik avı saldırılarından ağ üzerindeki güvenlik açığı taramalarına kadar birçok farklı senaryo oluşturulabilir. Bu senaryolar, platform tarafından simüle edilerek güvenlik açıkları tespit edilir.

Ajan Yönetimi ve Orkestrasyonu

BAS platformları, ajanlar kullanarak bu saldırı senaryolarını yürütür. Bu ajanlar, ağa veya sisteme yerleştirilen hafif modüllerdir ve saldırgan gibi davranarak saldırıyı taklit ederler. Platform, bu ajanların saldırı adımlarını yönetir ve sürecin tamamını kontrol eder.

Log Toplama ve Analiz

Saldırı simülasyonu gerçekleştikten sonra, BAS platformu log verilerini toplar ve analiz eder. Bu loglar, saldırı sırasında sistemin nasıl tepki verdiğini gösterir. BAS platformları, hangi saldırıların tespit edildiğini ve hangi adımların başarısız olduğunu analiz eder ve sonuçları raporlar.

Raporlama ve İyileştirme Önerileri

Simülasyon tamamlandığında BAS platformu, saldırının başarısını detaylandıran kapsamlı bir rapor oluşturur. Bu raporda, saldırının hangi adımları başarıya ulaştığı, savunma sistemlerinin hangi bölümlerde yetersiz kaldığı ve güvenliği iyileştirmek için öneriler yer alır. Bu sayede organizasyonlar, güvenlik açıklarını kapatmak için doğrudan aksiyon alabilir.

BAS Platformlarının Geliştirilmesi

Bir BAS platformunu geliştirmek karmaşık bir süreçtir ve birkaç aşamadan geçer. Öncelikle, saldırı senaryolarının tasarımı yapılır, ardından saldırı motorları ve ajanlar kullanılarak simülasyon gerçekleştirilir. Log toplama ve analiz sistemleri, simülasyon sonuçlarını değerlendirir ve rapor oluşturur.

Planlama ve Mimari

Bir BAS platformunun mimarisi genellikle merkezi bir kontrol sistemi, ajanlar ve log toplama modüllerinden oluşur. Merkezi kontrol sistemi, saldırıların yürütülmesini sağlar ve ajanlar saldırgan gibi davranarak sistemlerle etkileşime girer.

Teknoloji Yığını

BAS platformları genellikle Python, Golang veya Java gibi dillerle geliştirilir. Ayrıca, Metasploit, Scapy ve Snort/Suricata gibi güvenlik araçları entegre edilerek, saldırı senaryolarının daha etkili bir şekilde simüle edilmesi sağlanır.

Test ve Dağıtım

Geliştirilen BAS platformu, hem gerçek dünya hem de kontrollü ortamlarda test edilmelidir. Farklı senaryolar üzerinde yapılan bu testler, platformun ne kadar etkili olduğunu değerlendirir.

Saldırı Tiplerini ve Senaryolarını Belirleme

Saldırı simülasyonu oluşturmanın ilk adımı, hangi saldırı türlerini ve vektörlerini test edeceğinizi belirlemektir. Bunlar, gerçek dünyada yaygın olarak kullanılan saldırı tekniklerine dayanır. Aşağıdaki saldırı tipleri yaygın olarak simüle edilir:

Yaygın Saldırı Tipleri:

Kimlik Avı (Phishing): Kötü amaçlı bir e-posta ile kimlik bilgilerini çalmayı amaçlayan sosyal mühendislik saldırıları.

SQL Enjeksiyonu: Web uygulamalarında veri tabanına zararlı sorgular göndererek veri çalma veya manipülasyon yapma.

Dosya Yükleme Saldırıları: Zararlı dosyaların web sunucusuna yüklenmesi ve çalıştırılması.

XSS (Cross-Site Scripting): Web uygulamalarında kötü amaçlı JavaScript kodu çalıştırma.

Ransomware (Fidye Yazılımı): Dosyaları şifreleyerek kullanıcılardan fidye talep etme.

DDoS (Distributed Denial of Service): Sistemleri çökertmek için yüksek miktarda trafik gönderme.

Saldırı Motorunun Yapısı

Bir saldırı motoru, komut dosyaları (scripts) aracılığıyla çalışır. Her saldırı tipi için bir komut dosyası yazılır ve saldırı motoru bu dosyaları sırayla çalıştırır.

Komut Dosyası Örnekleri:

Kimlik Avı Simülasyonu:

def send_phishing_email(to_address):
    msg = MIMEText("This is a phishing test. Click the link below.")
    msg['Subject'] = 'Urgent: Your account has been compromised!'
    msg['From'] = '[email protected]'
    msg['To'] = to_address

    with smtplib.SMTP('smtp.fakeemail.com', 587) as server:
        server.starttls()
        server.login('[email protected]', 'password123')
        server.sendmail('[email protected]', to_address, msg.as_string())

send_phishing_email('[email protected]')

SQL Enjeksiyonu Simülasyonu:

import requests

def sql_injection_test(url):
    payload = "' OR '1'='1'; -- "
    data = {'username': payload, 'password': 'password'}
    response = requests.post(url, data=data)

    if 'Welcome' in response.text:
        print('SQL Injection Successful')
    else:
        print('SQL Injection Failed')

sql_injection_test("http://targetwebsite.com/login")

Otomasyon ve İş Zamanlayıcıları

Saldırılar, manuel müdahale olmadan otomatik olarak belirli zaman aralıklarında gerçekleştirilebilmelidir. Bunun için bir iş zamanlayıcı kullanmanız gerekir. Linux’ta cron job veya Python’da Celery gibi araçları kullanarak saldırıları otomatik hale getirebilirsiniz.

Exploit Kullanımı ve Güvenlik Test Araçları

Saldırıları daha karmaşık hale getirmek için Metasploit Framework gibi araçları entegre edebilirsiniz. Metasploit, çeşitli saldırı senaryolarını (exploits) kolayca kullanmanıza olanak tanır.

msfconsole
use exploit/windows/smb/ms17_010_eternalblue
set RHOSTS target_ip
exploit

Ağ ve Sistem İzleme

Simülasyonun saldırıları gerçekleştirdikten sonra, sistemin nasıl tepki verdiğini izlemelisiniz. Bunun için IDS/IPS (Intrusion Detection/Prevention System) ve SIEM (Security Information and Event Management) sistemlerinden veri toplayabilirsiniz.

Güvenlik Olaylarının İzlenmesi

Simülasyon sırasında oluşan güvenlik olaylarını toplamak ve analiz etmek için saldırı simülasyonu sırasında aşağıdaki araçlardan yararlanabilirsiniz:

  • Wireshark: Ağ trafiğini izler ve saldırı sırasında hangi paketlerin gönderildiğini kaydeder.
  • ELK Stack (Elasticsearch, Logstash, Kibana): Ağ log’larını analiz eder ve görselleştirir.
  • Snort veya Suricata: Ağ üzerindeki anormal trafik aktivitelerini tespit etmek için kullanılır.
snort -A console -q -c /etc/snort/snort.conf -i eth0

Saldırı Başarı Durumunu Değerlendirme

Her saldırı simülasyonu, belirli kriterler üzerinden değerlendirilmeli ve raporlanmalıdır:

  • Saldırı başarılı oldu mu? (Başarı kriterleri nelerdir?)
  • Hangi güvenlik açıkları kullanıldı?
  • Güvenlik sistemleri bu saldırıyı tespit edebildi mi?
  • Saldırıya karşı alınan önlemler (Firewall, IDS, antivirüs) başarılı oldu mu?

Raporlama

Saldırı sonuçlarını anlaşılır bir rapora dökmek için Grafana veya Kibana gibi görselleştirme araçlarını kullanabilirsiniz. Raporlar şu bilgileri içermelidir:

  • Saldırı türü ve vektörü.
  • Saldırıya uğrayan sistem bileşenleri.
  • Güvenlik açıkları ve tavsiyeler.
import matplotlib.pyplot as plt

def generate_report(success_rate, detected_rate):
    labels = ['Successful Attacks', 'Detected Attacks']
    sizes = [success_rate, detected_rate]

    fig1, ax1 = plt.subplots()
    ax1.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)
    ax1.axis('equal')
    plt.title("Saldırı Simülasyonu Sonuçları")
    plt.show()

generate_report(70, 30)

Security Control Validation (SCV) Nedir?

SCV, yukarıda belirttiğimiz gibi, güvenlik kontrollerinin etkinliğini ve doğruluğunu doğrulamak için kullanılan bir süreçtir. Organizasyonlar, uyguladıkları güvenlik kontrollerinin (güvenlik duvarları, IDS/IPS sistemleri, antivirüsler, vb.) planlandığı şekilde çalıştığını ve bilinen tehditlere karşı savunma sağladığını doğrulamak için SCV süreçlerini uygular. Bu süreç genellikle düzenli olarak yürütülür ve tehdit simülasyonları ya da penetrasyon testleri gibi yöntemlerle yapılır.

SCV ve BAS İlişkisi

SCV ve BAS, aynı amaca hizmet eden ancak farklı yaklaşımlar sunan güvenlik süreçleridir.

Sürekli Güvenlik Testi: SCV ve BAS, bir organizasyonun güvenlik kontrollerini sürekli olarak test etmeye odaklanır. Ancak BAS daha otomatik ve sürekli bir çözüm sunarken, SCV daha manuel ve durumsal olabilir.

Proaktif Güvenlik: SCV, genellikle periyodik olarak yapılan kontrollerle güvenlik savunmalarını test ederken, BAS araçları sürekli olarak otomatik saldırı simülasyonları gerçekleştirir. Bu, BAS’in güvenlik kontrollerinin daha dinamik bir şekilde test edilmesini sağlar.

Simülasyonlar: BAS araçları, gerçek dünyadaki saldırılara benzeyen senaryoları sürekli olarak simüle ederken, SCV ise belirli güvenlik kontrollerinin planlandığı gibi çalıştığını test eder. BAS daha geniş bir simülasyon yelpazesi sunar.

Sonuçların Kullanımı: BAS, güvenlik ekiplerine sürekli geri bildirim sağladığı için, SCV’nin statik testlerinden daha esnek ve sürekli bir kontrol sağlar. Ancak SCV, düzenli ve manuel denetimler veya tehdit modellemeleri ile güvenlik kontrollerinin doğruluğunu daha detaylı inceleyebilir.

SCV ve BAS birlikte kullanıldığında, organizasyonlar hem sürekli saldırı simülasyonları (BAS) ile güvenlik kontrollerini test edebilir hem de manuel denetimler ve testlerle (SCV) daha detaylı analiz yapabilir. Bu da organizasyonların güvenlik duruşunu optimize etmelerini ve olası güvenlik açıklarını proaktif olarak tespit etmelerini sağlar.

Sonuç olarak:

  • SCV, güvenlik kontrollerinin genel işleyişini doğrulamak için manuel testler ve denetimler içerir.
  • BAS, sürekli ve otomatik simülasyonlar ile güvenlik zafiyetlerini dinamik olarak bulmaya odaklanır.

KAYNAKÇA

Çelik, M. (2021). Siber güvenlik simülasyon araçları: BAS çözümleri ve tehdit istihbaratı. Siber Güvenlik Akademisi Yayınları.

Johnson, T. (2020). Understanding BAS and SCV in cybersecurity: A comprehensive guide. TechDefender Publications.

Lockheed Martin. (2015). Cyber Kill Chain framework overview. Retrieved from https://www.lockheedmartin.com/en-us/capabilities/cyber/cyber-kill-chain.html

MITRE Corporation. (2018). ATT&CK framework overview. Retrieved from https://attack.mitre.org/

Smith, J., & Lee, P. (2019). Automated breach and attack simulations: A modern approach to cybersecurity. Cyber Defense Journal, 12(3), 45-67.