İçeriğe geç
NetDevOps
7 dk okuma Güvenlik

TheHive 5 ve Cortex ile SOC Olay Müdahale Platformu Kurulumu

Olay müdahalesi ekiplerinin ortak derdi aynı anda beş sekme açık gezmekten ibaret değildir asla ama çoğu zaman buna indirgenir.SIEM'de alert, ticketing'de kayıt, Excel'de IOC listesi, mail grubunda analiz notları. TheHive bu dağınıklığı tek yerde toplayan, açık kaynak kökenli bir Security Incident Response Platform. Vaka yönetimi, görev ataması, observable takibi ve ekip içi iş birliği aynı arayüzde döner. Yanına Cortex'i koyduğunuzda observable analizi otomatikleşir: VirusTotal sorgusu, hash kontrolü, Shodan taraması gibi işler analistin elinden alınıp makineye verilir. İkisi birlikte kullanıldığında ortaya küçük bir SOC'un ihtiyaç duyduğu çekirdek yığın çıkıyor.

Neden TheHive ve mimari nasıl işliyor

TheHive'in 4.x serisi AGPL lisanslıydı ve GitHub'da açık kaynak olarak geliştiriliyordu. 5.x serisiyle proje StrangeBee şirketine geçti; binary dağıtımlar ücretsiz ama kapalı kaynak lisansla sunuluyor, çok node küme kurulumları ve destek ticari lisansa tabi. Tek sunucuda community lisansıyla çalıştırmak için ödeme yapmanız gerekmiyor. Bu ayrımı baştan bilmek lazım, çünkü internetteki eski rehberlerin çoğu 4.x döneminden kalma ve artık geçerli değil.

Mimari üç katmandan oluşuyor. TheHive uygulaması kendi başına bir şey saklamaz; kalıcı veri Apache Cassandra'da, arama ve indexleme Elasticsearch'te, dosya storage'ı ise local filesystem ya da S3/MinIO üzerinde tutulur. Cortex aynı şekilde Elasticsearch'e yaslanır. Yani "TheHive kuruyorum" dediğinizde aslında dört beş bileşeni birlikte ayağa kaldırıyorsunuz. Docker Compose bu yüzden en az zahmetli yol.

Concept olarak ikisi net şekilde ayrılır: TheHive vaka yönetimidir, Cortex analiz motorudur. TheHive bir observable'a (IP, domain, hash, url, mail adresi) tıkladığınızda arkada Cortex'e job gönderir, Cortex de ilgili analyzer'ı Docker container'ı olarak çalıştırıp sonucu geri getirir. Analyzer'lar intelligence toplar, responder'lar ise aksiyon alır: proxy'de IP bloklamak, ticket açmak, phishing sitesini indirtmek gibi.

Tek komutla sunucu kurulumu

StrangeBee'nin resmi dokümantasyonunda paket kurulumu, Docker, Kubernetes ve tek komutluk installer dört ayrı yöntem olarak sunuluyor. Homelab ya da küçük production denemeleri için tek komutluk script en hızlısı:

wget -q -O /tmp/install_script.sh https://scripts.download.strangebee.com/latest/sh/install_script.sh
sudo -v
bash /tmp/install_script.sh

Script interaktif menü açar, Install TheHive seçeneğini işaretlediğinizde sistem paketlerini, Java'yı, Cassandra'yı, Elasticsearch'i ve TheHive'in kendisini kurup servisleri ayağa kaldırır. Kurulum bitince systemctl status thehive ile durumu kontrol edebilir, tarayıcıdan 9000 portuna giderek ilk admin kullanıcısını oluşturabilirsiniz. Uyarı: script Cassandra ve Elasticsearch için kimlik doğrulama ayarlamıyor, bu yüzden üretim ortamında elle sertleştirmeniz gerekir.

Docker Compose tercih edenler için

Konteyner taraflı ekipler için StrangeBeeCorp'ın GitHub'daki docker deposu hazır profillerle geliyor. Depoyu klonladıktan sonra uygun profil dizinine girip init script'ini çalıştırmanız yeterli:

git clone https://github.com/StrangeBeeCorp/docker.git
cd docker
cd prod1  # veya diğer profiller
bash ./scripts/init.sh
docker compose up -d

init.sh sizden Nginx sertifikasına girecek sunucu adını ister, secret.conf ve index.conf dosyalarını üretir, sertifika yoksa self-signed oluşturur, Elasticsearch için rastgele şifre üretir ve dizin izinlerini düzeltir. Stack ayağa kalktığında elinizde Cassandra, Elasticsearch, TheHive ve önlerinde HTTPS terminasyonu yapan Nginx olur. Cortex için aynı depoda ayrı profiller var, yapı orada Elasticsearch + Cortex + Nginx üçlüsüne dönüşüyor. Docker Engine 23.0.15 ve Compose plugin 2.20.2 sürümleri dokümanda minimum olarak geçiyor.

Cortex tarafı ve Docker soketi meselesi

Cortex'in kritik bir özelliği var: analyzer ve responder'ları Docker container olarak çalıştırır. Yani Cortex'in kendisi de Docker'a erişmek zorunda. İki yol var. İlki host'un Docker servisini paylaşmak, bu önerilen yöntem:

docker run \
  --volume /var/run/docker.sock:/var/run/docker.sock \
  --volume /var/run/cortex/jobs:/tmp/cortex-jobs \
  thehiveproject/cortex:latest \
  --job-directory /tmp/cortex-jobs \
  --docker-job-directory /var/run/cortex/jobs

Docker soketini container'a bağlamak geniş yetki anlamına gelir, Cortex'in web arayüzü ele geçirilirse hostteki Docker dolayısıyla host kendisi riske girer. Cortex'i izole bir VM'de ya da konteynerde tutmak bu yüzden tercih edilen pratik. İkinci yol Docker-in-Docker: --start-docker parametresiyle container içinde ayrı bir Docker daemon başlatılır, privileged mod gerektirir, job dizini bağlamaya gerek kalmaz.

Cortex ayağa kalktıktan sonra tarayıcıdan 9001 portuna girilir. İlk açılışta sırayla superAdmin hesabı, sonra gerçek bir organizasyon, ardından orgAdmin rolünde kullanıcı oluşturursunuz. Default gelen cortex organizasyonu analitik işler için kullanılamaz, mutlaka yeni bir org açın. Org içine girdiğinizde Analyzers sekmesinde Refresh analyzers dediğinizde GitHub'daki Cortex-Analyzers kataloğu çekilir; buradan VirusTotal_GetReport, AbuseIPDB, Shodan_Host, MISP_2_1 gibi istediğiniz analyzer'ları enable edip API anahtarlarını aynı ekrandan girersiniz.

İki tarafı birbirine bağlamak

Bağlantı TheHive tarafından kurulur. Cortex'te TheHive için ayrı bir kullanıcı açıp API key'ini almanız, sonra TheHive'da admin olarak Cortex Integration bölümüne gitmeniz gerekir. Sunucu adı, Cortex URL'si ve API key girildikten sonra Test server connection butonu bağlantıyı doğrular. 5.5 sürümünden itibaren Cortex 3.1.5 ve öncesi desteklenmiyor, yeni kurulumda güncel Cortex kullanın. Birden fazla Cortex sunucusu bağlamak paid lisans gerektiriyor.

Bağlantı kurulunca TheHive'da bir vakanın observable'ına Analyze dediğinizde analyzer listesi Cortex'ten gelir ve sonuçlar observable'ın altında rapor olarak görünür. Analyzer bazında TLP seviyesi kısıtı da koyabilirsiniz; TLP RED işaretli observable'ın dış servislere gitmesini engellemek isteyen ekipler bunu analyzer konfigürasyonunda ayarlıyor.

Ekosistem ve besleme hatları

TheHive tek başına duran bir ada değil. MISP entegrasyonu ile threat intelligence platformunuzdaki event'ler TheHive vakalarına observable olarak aktarılabilir. CrowdSec'in Cortex analyzer'ı 3.2.0 sürümünden beri katalogda, IP tipindeki observable'lar üzerinde CTI API sorgusu çalıştırıyor. Alert feeder mekanizmasıyla Splunk, Wazuh, Exchange mail trafiği gibi kaynaklardan gelen sinyaller TheHive'da alert olarak düşer; analist bunları inceleyip vakaya dönüştürür ya da çöpe atar. TheHive4py ve thehive4go istemci kütüphaneleri de REST API üzerinden otomasyon yazmak isteyenler için duruyor.

Notification tarafı zengin: mail, webhook, Mattermost, Slack, Teams, hatta Kafka ve Redis'e bildirim push edebiliyorsunuz. RunAnalyzer ve RunResponder notifier'ları olay tetiklendiğinde otomatik analiz ya da aksiyon başlatıyor. SLA kuralları tanımlayıp vakaların belirli sürelerde kapanmasını takip etmek de mümkün.

Resource planlaması

Cassandra + Elasticsearch + TheHive + Cortex aynı makinede dönerse 8 GB RAM altında daralma yaşanıyor, analist sayısı arttıkça JVM heap'leri büyütmeniz gerekir. StrangeBee dokümantasyonunda index refresh interval ve JVM memory ayarları için ayrı performans sayfaları var. Elasticsearch 7.x sürümlerinde disk watermark %85'e vurunca index'ler read-only'a düşer, uzun ömürlü kurulumda disk headroom'unu baştan planlayın. Yedekleme tarafında Cassandra snapshot + Elasticsearch snapshot ikilisi üzerinden gitmek standart yaklaşım.

Homelab ölçeğinde tek VM üzerinde bu stack'i çalıştırıp alert'ten vaka açmaya, analyzer'dan rapor okumaya kadar tüm zinciri görmek bir öğleden sonranızı alır. Production'a taşırken lisans sınırlarını, Cassandra şifrelemesini ve Cortex'in Docker erişimini sınırlamayı masaya koyun.

Laravel-NDFirewall

Laravel için geliştirilmiş; panelsiz, route tabanlı ve hafif bir WAF (Web Application Firewall) kütüphanesidir. RCE, SQLi, XSS ve SSRF saldırılarını tespit eder; girdileri asla çalıştırmaz ve olası ha…

PHP

ctCertWatch

SSL sertifika yayınlarını gerçek zamanlı takip eden bir izleme servisi. Regex filtreleme, DNS çözümleme ve webhook uyarıları ile phishing domainlerini, marka taklidini ve yetkisiz sertifikaları anında…

Rust

ipReconary

IP aralıkları, alt ağlar ve ASN bilgilerine dayalı olarak host, domain ve servis keşfi yapan bir ağ keşif (recon) aracı. Güvenlik uzmanları ve OSINT araştırmacıları için ağ altyapısını hızlı ve güveni…

Rust

Wireguard-Server-Panel

Web arayüzüne sahip, kendi sunucunuzda barındırılan bir WireGuard VPN servisi. İstemci yönetimi, mobil bağlantı için QR kod desteği, gerçek zamanlı trafik istatistikleri ve bağlantı kayıtları sunar. T…

LoadAlertTracker

Sistem yükünü neredeyse hiç kaynak tüketmeden izleyen, hafif bir servis. Belirlenen eşikler aşıldığında Telegram, Discord ve Mattermost gibi platformlara gerçek zamanlı uyarı gönderir.

Rust

Trustsslroot

Tek komutla eksiksiz bir özel PKI yapısı (Kök CA → Ara CA → sunucu ve istemci sertifikaları) oluşturan araç. Farklı formatlarda (p12/bks/jks) paketler üretir ve kullanıma hazır çıktı klasörleri sunar.

Go

DDNS-FW

Değişken IP adresini DDNS üzerinden gerçek zamanlı takip eden, hafif ve güvenilir bir araç. İzin verilen IP listelerini otomatik güncelleyerek kesintisiz erişim ve güvenlik sağlar. Tek dosyadan çalışı…

Rust

Cloudfiltred

Sunucu üzerinde 80/443 portlarına erişimi yalnızca Cloudflare IP aralıklarıyla sınırlandıran, tek dosyadan çalışan bir Linux servisi. Kendini kurar, sistem servisi olarak çalışır ve IP listelerini düz…

Rust

node_exporter

Linux için geliştirilmiş, hafif ve tek dosyadan çalışan, güvenli erişim kontrollü bir sistem metrikleri servisi.

Rust