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.