PurpleLab: Saldırı Simülasyonu ve Tespit Test Laboratuvarı

· #lab · #security · #detection-engineering

Contents
PurpleLab logosu: mor sıvılı bir deney şişesi

PurpleLab (GitHub), algılama kurallarını test etmek, Atomic Red Team ile saldırı simülasyonları yürütmek ve malware detonation süreçlerini izole bir ortamda incelemek için tasarlanmış web tabanlı bir purple teaming platformudur.

Platform mimarisi temel olarak şu bileşenlerden oluşur:

  • Saldırı simülasyonu, malware yükleme ve kural yönetimini sağlayan web arayüzü ve Flask backend
  • Telemetri üreten ve adli analiz araçları (Forensictools) kurulu Windows 10 sandbox VM (VirtualBox)
  • Log toplama ve analiz için Elasticsearch ve Kibana (ELK) altyapısı

Ortam varsayılan kimlik bilgileriyle çalışır ve hardening yapılmamıştır. Laboratuvarı mutlaka izole bir sanal ağda (Host-Only / Internal) barındırın.

Sistem Gereksinimleri

Platformu barındıracak ana sunucu (Ubuntu Server 22.04 LTS) için önerilen minimum kaynaklar:

  • 200 GB disk alanı
  • 8 vCPU
  • 13 GB RAM

Ubuntu VM üzerinde VirtualBox ile Windows sandbox çalıştırılacağı için hipervizörde Nested Virtualization (VT-x/AMD-V) etkinleştirilmelidir.

VirtualBox VM ayarlarında System > Processor sekmesi, Nested VT-x/AMD-V seçeneği

Şekil 1: VirtualBox VM ayarlarında Nested Virtualization etkinleştirmesi.

VMware Workstation kullanıyorsanız: VM Ayarları -> İşlemciler -> Sanallaştırma Motoru sekmesinden “Virtualize Intel VT-x/EPT or AMD-V/RVI” seçeneğini aktif edin.

Kurulum

Depoyu klonlayıp kurulum betiğini çalıştırın:

Bash
git clone https://github.com/Krook9d/PurpleLab.git
cd PurpleLab
sudo bash install.sh

Kurulum sırasında varsayılan ELK SIEM’in kurulup kurulmayacağı sorulur. Arayüzün hazır panolarla tam entegre çalışması için ELK kurulumunu onaylayarak devam edin. Kurulum tamamlandığında yönetici hesabı bilgileri ev dizinindeki admin.txt dosyasına yazılır.

Analist Hesabı

PurpleLab giriş ekranı

Şekil 2: PurpleLab web yönetim arayüzü analist giriş ekranı.

Kurulumun ardından tarayıcıdan sunucu IP adresine gidip Register düğmesi üzerinden analist hesabınızı tanımlayın. Giriş sonrası ilk ekranda log akışı henüz başlamadığı için uyarılar görünebilir; sonraki adımda VM telemetrisini bağlayacağız.

ELK Entegrasyonu

  1. admin.txt dosyasındaki enrollment token’ı kopyalayın. Web arayüzünde “Hunting” sayfasına giderek ELK ekranında token’ı girin.
  2. Doğrulama kodunu almak için sunucuda şu komutu çalıştırın:
Bash
sudo /usr/share/kibana/bin/kibana-verification-code

Token süresi dolarsa yeniden oluşturabilirsiniz:

Bash
sudo /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token --scope kibana

Windows Sandbox ve Winlogbeat Yapılandırması

Sandbox VM’den SIEM’e telemetri akışını sağlamak için winlogbeat.yml yapılandırmasını tamamlayacağız.

  1. VM’nin IP adresini Health sayfasından veya ana makinede CLI üzerinden öğrenin:
sudo VBoxManage guestproperty get sandbox "/VirtualBox/GuestInfo/Net/0/V4/IP"
  1. VM içerisinde yönetici PowerShell oturumu açarak Winlogbeat dizinine gidin:
cd 'C:\Program Files\winlogbeat'
  1. winlogbeat.yml dosyasını düzenleyin:
    • password: alanına admin.txt içindeki Elastic şifresini yazın.
    • IP adresini ELK sunucunuzun adresiyle güncelleyin.
    • ca_trusted_fingerprint değerini PurpleLab sunucusunda şu komutla alıp ekleyin:
Bash
sudo openssl x509 -fingerprint -sha256 -in /etc/elasticsearch/certs/http_ca.crt | awk -F '=' '/Fingerprint/{print $2}' | tr -d ':'
  1. Yapılandırmayı doğrulayıp Kibana ingest pipeline’larını kurun:
PowerShell
& "C:\Program Files\Winlogbeat\winlogbeat.exe" test config -c "C:\Program Files\Winlogbeat\winlogbeat.yml" -e
.\winlogbeat.exe setup -e

Loaded Ingest pipelines çıktısını gördükten sonra VM’yi yeniden başlatın.

Temiz Durum Snapshot’ı (Baseline)

Testler, malware detonation ve saldırı simülasyonları sonrasında sandbox ortamını saniyeler içinde temiz haline döndürebilmek için baseline snapshot’ını alın:

Bash
sudo VBoxManage snapshot "sandbox" take "Snapshot1" --description "baseline clean state"

Kibana Discover sekmesinde Windows event loglarının aktığını doğruladıktan sonra ortam kullanıma hazırdır.

Kullanım ve Modüller

Flask backend servisini başlatmak için:

Bash
sudo python3 /home/$(logname)/app.py

Sandbox VM’nin çalıştığını kontrol edip gerekirse headless modda başlatabilirsiniz:

sudo VBoxManage showvminfo sandbox --machinereadable | grep "VMState=" | awk -F'"' '{print $2}'
sudo VBoxManage startvm sandbox --type headless

Windows 10 Sandbox Ortamı

Forensictools logosu

Şekil 3: Sandbox VM üzerinde yüklü gelen Forensictools adli analiz araç seti.

Windows 10 Sandbox VM üzerinde Atomic Red Team modülleri ve adli bilişim incelemelerinde kullanılan Forensictools araç seti hazır olarak gelir.

Home Paneli

PurpleLab ana sayfası genel telemetri metrikleri

Şekil 4: Elasticsearch üzerinden toplanan genel telemetri metrikleri.

Elasticsearch üzerinden toplanan telemetrileri özetler: toplam Windows event log sayısı, gözlemlenen tekil IP adresleri, tetiklenen MITRE ATT&CK teknikleri ve log türlerinin dağılımı gerçek zamanlı izlenebilir.

Hunting

Kibana Discover paneline doğrudan geçiş sağlar. Sandbox VM olayları ve simüle edilen trafik burada KQL sorgularıyla filtrelenebilir.

MITRE ATT&CK Simülasyonu

MITRE ATT&CK sayfası ve teknik arama

Şekil 5: MITRE ATT&CK matrisi ve Atomic Red Team simülasyon arayüzü.

MITRE ATT&CK matrisindeki teknikleri listeler ve Invoke-Atomic altyapısı üzerinden ilişkili test payload’larını sandbox VM üzerinde yürütür. Arama kutusuna teknik ID’si (örneğin T1070) girilerek ilgili teknik seçilir ve simülasyon başlatılır.

Malware Detonation

Malware indirme ve çalıştırma arayüzü

Şekil 6: Zararlı örnek indirme ve analiz ortamına yükleme paneli.

İki temel işlev sunar:

  • Malware Downloader: Abuse.ch MalwareBazaar üzerinden etiket bazlı (örneğin Trojan) güncel zararlı örneklerini indirir ve VM’ye aktarır. CSV listesi üzerinden örnekler tek tıkla çalıştırılabilir.
  • Malware Uploader: Analiz edilmek istenen özel çalıştırılabilir dosyaları, betikleri veya DLL’leri (.exe, .dll, .bin, .py, .ps1) doğrudan sandbox ortamına yükler.

Log Simülasyonu

Sentetik log simülasyon paneli

Şekil 7: Tespit kurallarını test etmek için sentetik log enjeksiyon paneli.

Tespit kurallarını meşru trafik gürültüsü içinde test etmek amacıyla sentetik loglar üretir. Güvenlik duvarı logları için rastgele IP adresleri, Accept/Deny aksiyonları ve zaman damgaları tanımlanarak SIEM’e aktarılır.

Use Case Senaryoları

Önceden tanımlı saldırı senaryosu

Şekil 8: Uçtan uca tanımlanmış gerçek dünya saldırı senaryoları.

Gerçek dünya ihlallerini taklit eden uçtan uca saldırı senaryolarını çalıştırır. Her senaryo, adım adım saldırı akışını, çalıştırılan komutları ve beklenen IOC’leri içerir.

Sigma Kural Gezgini

Sigma kuralları ve arama ekranı

Şekil 9: Sigma kuralları ve Splunk/Elasticsearch sözdizim dönüştürücüsü.

Teknik ID veya anahtar kelimeye göre Sigma kurallarını listeler. Seçilen kuralı tek tıkla Splunk SPL veya Elasticsearch Lucene sorgu sözdizimine dönüştürür.

Sistem ve Sağlık Takibi

Sistem bileşenleri ve VM sağlık paneli

Şekil 10: ELK servisleri ve sanal makine kaynak tüketim göstergeleri.

ELK servisleri, VirtualBox durumu ve Flask backend kaynak tüketimini gösterir. Sandbox VM’nin durumu ve snapshot geri yükleme aksiyonları da bu panelden yönetilebilir.

Splunk Entegrasyonu ve API

Splunk üzerinde analiz yapmak isteyenler için PurpleLab Integration App for Splunk eklentisi mevcuttur. Dış araçlar ve CI/CD otomasyonları ile entegrasyon için PurpleLab REST API kullanılabilir.

← All writing