Bir Güvenlik Operasyon Merkezi (SOC) için gerçek zamanlı alarm triyaj motoru. Sensörlerden (IDS, güvenlik duvarı, kimlik doğrulama, EDR, DNS) gelen güvenlik alarmları bir akışa düşer; triyaj motoru her alarmı varlık kritikliği × sensör önemi × tehdit istihbaratı (IOC) × MITRE ATT&CK teknik ciddiyeti × korelasyon ile skorlar, P1–P4 önceliği üretir, ilişkili alarmları olaya (incident) bağlar ve analiste "önce şuna bak" der. Dashboard her alarmın neden o önceliği aldığını açıklanabilir dökümle gösterir.
Öğrenme/portföy projesidir. Tamamen sentetik alarm verisiyle çalışır; gerçek kişi, sistem veya ağ verisi işlemez.
SOC ekiplerinin en büyük derdi alarm yorgunluğu: günde binlerce alarm gelir, çoğu gürültüdür, ama içlerindeki birkaç kritik olay kaçarsa felaket olur. Bu proje, ham alarmları önceliklendirip zenginleştirerek analistin dikkatini doğru yere yöneltir — SIEM/SOAR dünyasının çekirdek problemi.
flowchart LR
SEN["Sensörler<br/>IDS · FW · AUTH · EDR · DNS"] -->|POST /api/simulate| API["API · FastAPI"]
API -->|XADD| S1[("Redis Stream<br/>alerts.raw")]
S1 -->|consumer group| ENG["Triyaj Motoru<br/>skorlama + korelasyon"]
ENG -->|XADD| S2[("Redis Stream<br/>alerts.scored")]
ENG <-->|varlık · IOC · korelasyon| ST[("Redis<br/>durum + olaylar")]
ENG -.->|ui:events pub/sub| API
API -.->|WebSocket| UI["Dashboard · nginx"]
classDef stream fill:#0B2E52,stroke:#0B2E52,color:#fff;
class S1,S2,ST stream;
| Servis | Rol | Teknoloji | Host portu |
|---|---|---|---|
| frontend | Kurumsal dashboard (öncelik göstergesi + MITRE) | nginx | tek açılan port |
| api | Alarm üretici + WebSocket köprüsü + istatistik | FastAPI + asyncio | (iç) |
| engine | Triyaj + korelasyon tüketicisi | asyncio + Redis Streams | (iç) |
| redis | Akış + durum + olay kaydı | Redis 7.2 | (iç) |
Port çakışması yok: yalnızca dashboard bir host portu açar (SOC_PORT,
varsayılan 8097). Diğer servisler tamamen iç ağdadır.
Skor 0–100 birikir; öncelik bantları: ≥80 P1 (Kritik) · ≥55 P2 (Yüksek) · ≥30 P3 (Orta) · <30 P4 (Düşük).
| Faktör | Ne yakalar | Katkı |
|---|---|---|
| Sensör önem derecesi | Sensörün ham önem (1–4) | +8…65 |
| Varlık kritikliği | Kritik varlık / sunucu / iş istasyonu | +4…25 |
| MITRE teknik ciddiyeti | ATT&CK tekniğinin ağırlığı | +7…22 |
| Tehdit istihbaratı (IOC) | Kaynak/hedef bilinen zararlı IP | +18 |
| Başarılı saldırı | Erişim gerçekten sağlandı | +15 |
| Korelasyon | Aynı kaynaktan ≥3 ilişkili alarm → olay | +15 |
| Güven | Sensör güven yüzdesi (ölçekleyici) | ×0.6–1.0 |
Her alarm ayrıca MITRE ATT&CK tekniğine ve taktiğine eşlenir (ör. T1041 · C2 Kanalıyla Sızdırma → Sızdırma), böylece analist saldırının hangi aşamada
olduğunu görür.
| Senaryo | MITRE | Beklenen |
|---|---|---|
| Kaba Kuvvet → Başarılı Giriş (kritik DB) | T1110 | P1 |
| Veri Sızıntısı (C2'ye exfiltration) | T1041 | P1 |
| Fidye Yazılımı Şüphesi | T1486 | P1 |
| Yatay Hareket (SMB, korelasyon) | T1021.002 | P1 |
| Bilinen Zararlı IP Teması (C2) | T1071 | P2 |
| Şüpheli PowerShell (LOLBin) | T1059.001 | P2 |
| Port Tarama | T1046 | P3 |
| Kaba Kuvvet (düşük) | T1110 | P4 |
git clone https://github.com/sayha2304/soc-triage.git
cd soc-triage
cp .env.example .envPort boş mu bak (doluysa .env'de SOC_PORT değiştir):
ss -tlnp | grep ":8097 " || echo "8097 boş"Ardından:
docker compose up -d --buildDashboard: http://SUNUCU_IP:8097 → senaryo seç → Alarm Üret. Öncelik
göstergesi, MITRE eşlemesi, neden dökümü ve alarm kuyruğu güncellenir.
Sağlık: curl http://SUNUCU_IP:8097/api/stats · Durdurma: docker compose down
Triyaj motorunu ölçeklemek için (consumer group otomatik dağıtır):
docker compose up -d --scale engine=3Triyaj motoru bağımlılıksız ve birim testlidir (her faktör, öncelik bandı, MITRE eşlemesi, korelasyon):
python3 -m unittest triage.test_triage -vsoc-triage/
├── triage/ # triyaj motoru (bağımlılıksız, testli)
│ ├── alerts.py # Alarm modeli, varlık envanteri, IOC, senaryolar
│ ├── mitre.py # MITRE ATT&CK teknik/taktik kataloğu
│ ├── rules.py # ağırlıklı skorlama → P1-P4 + neden + MITRE
│ └── test_triage.py # birim testler
├── engine/ # Redis Streams tüketicisi (korelasyon + olay)
├── api/ # FastAPI üretici + WebSocket köprüsü
├── frontend/ # kurumsal dashboard (gauge + MITRE + döküm)
├── docker-compose.yml
└── .env.example
Bu sistem savunma amaçlıdır ve yalnızca sentetik alarm verisiyle çalışır; gerçek kişi/sistem izlemez veya veri toplamaz. Amaç, SOC triyaj ve MITRE ATT&CK eşleme akışını uçtan uca göstermektir.
Tüm Hakları Saklıdır. Kod görüntülenebilir ancak izinsiz kullanılamaz, kopyalanamaz veya dağıtılamaz. Ayrıntılar için LICENSE.
Sayha Kılıç · güvenlik operasyonları & ödeme sistemleri — sayha.cloud