legal contact rss
 

Die Idee

Die Idee ist, eine AI für die Zuweisung der passenden Iindex- und Sourcetype-Definitionen einer zu gernerierenden Splunk Suche zu nutzen.

Damit soll/wird es möglich sein, aus einer einfachen Aufstellung aller index und sourcetype von Slpunk, die passenden Werte einer zu konvertierenden SIGMA-Regel zuweisen zu können. Damit wird ein maximaler Automatismus in der Konvertierung von beliebigen Sigma-Regeln nach Splunk erreicht.

https://github.com/icepaule/sigma2splunk

Hier meine Fassung aus dem (noch privaten) GitHUB.

Sigma2Splunk

Update vom 2025-02-28

Sigma2Splunk ist eine automatisierte Lösung zur Umwandlung von SIGMA-Regeln in Splunk-Suchen (SPL). Zusätzlich nutzt das System AI, um für jede SIGMA-Regel die passende Technologie zu bestimmen und mit den korrekten index und sourcetype aus index_mapping.csv zu versehen.


📌 Installation

1️⃣ Docker & Docker-Compose installieren (falls noch nicht vorhanden)

apt update && apt install -y docker.io docker-compose git
systemctl enable docker --now

2️⃣ Repository klonen & in das Verzeichnis wechseln

git clone https://github.com/icepaule/sigma2splunk.git
cd sigma2splunk

3️⃣ AI-Modell herunterladen (falls nicht vorhanden)

Speichere das Mistral-9B-Instruct-Modell in den Ordner models/:

mkdir -p models
wget -O models/mistral-9b-instruct.gguf https://huggingface.co/RichardErkhov/cloudyu_-_Mistral-9B-Instruct-gguf/resolve/main/Mistral-9B-Instruct.Q8_0.gguf

4️⃣ Docker-Container bauen und starten

docker-compose up --build -d

🏗 Docker-Setup

Docker-Compose Konfiguration (docker-compose.yml)

services:
  sigma2splunk:
    build: .
    container_name: sigma2splunk
    ports:
      - "5005:5005"
    volumes:
      - ./sigma_rules:/app/sigma_rules
      - ./converted_rules:/app/converted_rules
      - ./models:/app/models
      - ./index_mapping.csv:/app/index_mapping.csv
      - ./trailing_footer.txt:/app/trailing_footer.txt
    environment:
      - PYTHONUNBUFFERED=1
      - PATH=/root/.local/bin:$PATH
    shm_size: '6gb'
    restart: unless-stopped

Dockerfile (Dockerfile)

FROM python:3.10-slim

WORKDIR /app

RUN apt-get update && apt-get install -y     git     build-essential     cmake     python3-dev     wget     && rm -rf /var/lib/apt/lists/*

COPY requirements.txt .
RUN pip install --upgrade pip && pip install --no-cache-dir -r requirements.txt

RUN sigma plugin install splunk

COPY models /app/models
RUN chmod 644 /app/models/*

COPY . .

EXPOSE 5005

CMD ["python", "sigma2splunk.py"]

Funktionalitäten

🔄 Automatische SIGMA-Konvertierung

  • Alle SIGMA-Regeln aus sigma_rules/ werden automatisch verarbeitet und in Splunk-Queries (.spl) konvertiert.
  • Die konvertierten Regeln werden in converted_rules/ gespeichert.

🤖 AI-gestützte Technologieerkennung

  • Die AI (Mistral-9B) analysiert die SIGMA-Regel und bestimmt die passende Technologie.
  • Basierend auf dieser Technologie wird in index_mapping.csv die beste index/sourcetype-Kombination gewählt.

📊 Index- und Sourcetype-Zuordnung

  • Falls die AI keine passende Technologie findet, werden Standardwerte index=* sourcetype=* verwendet.

🛠 Manuelle Konvertierung einer SIGMA-Regel

Falls eine Regel nicht automatisch verarbeitet wird, kann sie auch manuell konvertiert werden:

docker exec -it sigma2splunk sigma convert /app/sigma_rules/rule.yml --target splunk --without-pipeline > /app/converted_rules/rule.spl

🛠 Fehlersuche & Monitoring

🚀 Docker-Logs anzeigen

docker-compose logs -f sigma2splunk

🐳 Container neustarten

docker-compose restart sigma2splunk

🛠 Prüfen, ob die AI funktioniert

Falls AI-Probleme auftreten, kann das Modell direkt getestet werden:

docker exec -it sigma2splunk python3 -c 'from llama_cpp import Llama; model = Llama(model_path="/app/models/mistral-9b-instruct.gguf"); print(model("Welche Technologie für Windows-Security-Logs?"))'

📥 Index-Mapping (index_mapping.csv)

Diese Datei enthält die bekannten index / sourcetype-Kombinationen. Falls nötig, können weitere hinzugefügt werden.

Beispiel:

index,sourcetype,technology
windows_security,WinEventLog:Security,windows
linux_syslog,syslog,linux
firewall_logs,cisco:firewall,network

Falls die AI eine neue Technologie erkennt, wird diese hier ergänzt.


🚀 Repository aktualisieren & Änderungen pushen

Falls Anpassungen gemacht wurden, können diese mit folgendem Skript hochgeladen werden:

./git_push_update.sh

Alternativ manuell:

git add .
git commit -m "Update vom $(date +%Y%m%d)"
git push origin main

🚀 Zukunftspläne & Erweiterungen

  • 🔄 Verbesserte AI-Erkennung für noch genauere Zuordnungen.
  • 📊 Mehr Logging & Monitoring für bessere Fehleranalyse.
  • 📁 Automatische Aktualisierung von index_mapping.csv mit neuen Erkennungen.

📞 Support & Feedback

Falls Probleme auftreten oder Ideen für Verbesserungen bestehen, einfach eine Issue auf GitHub erstellen.


📝 Lizenz & Danksagung

Dieses Projekt basiert auf der Sigma-CLI und nutzt das Mistral-9B-Instruct-Modell zur Technologieerkennung.

🔹 Lizenz: MIT
🔹 Ersteller: icepaule
🔹 Special Thanks an die SigmaHQ & HuggingFace Community 🚀