Risikobewertung-Modul¶
Das Risikobewertung-Modul bietet strukturierte Risikoanalysen nach vier etablierten Frameworks: Financial Impact, STRIDE, CVSS und OCTAVE. Ein KI-Assistent (Ollama) unterstützt bei der Risikobeschreibung.
Verzeichnisstruktur¶
risikobewertung/
├── __init__.py
├── __main__.py
├── config.py # Ollama-Konfiguration
├── db.py # SQLite-Schema
├── frameworks.py # Scoring-Frameworks (FI, STRIDE, CVSS, OCTAVE)
├── prompts.py # Ollama-Prompt-Generierung
├── io_xlsx.py # Excel-Import/-Export
├── report_export.py # Berichte (XLSX, DOCX, JSON)
└── gui_module.py # Tkinter-GUI (RisikobewertungModuleFrame)
Konfiguration¶
Datei: risikobewertung.config.json (Defaults in risikobewertung/config.py)
| Einstellung | Standard | Beschreibung |
|---|---|---|
| Ollama URL | http://localhost:11434 |
Lokaler LLM-Endpunkt |
| Ollama Modell | llama3.1 |
Verwendetes Modell |
| DB-Pfad | data/db/risikobewertung.sqlite |
Datenbank |
Export: JSON + Markdown¶
Im Bericht-Panel kann ein diff-freundlicher Export erzeugt werden:
out/risikobewertung/exports/<projekt>/risk-export.jsonout/risikobewertung/exports/<projekt>/risk-export.md
Schema: ai-compliance-suite/risk-export/v1 (siehe risikobewertung/risk_export.py).
Publishing nach GitHub/GitLab¶
Im Bericht-Panel gibt es Publishing-Funktionen:
- Einstellungen…: Provider/Repo/Branch/Path; für GitLab zusätzlich
base_url+token_env. - Senden: Upload via GitHub (
gh api) oder GitLab REST API.
Persistenz pro Projekt: rb_projekte.meta_json.vcs_publish.
Scoring-Frameworks¶
risikobewertung/frameworks.py
Financial Impact (FI)¶
Berechnet den Risikoscore aus Wahrscheinlichkeit × Schaden:
| Niedrig (1) | Mittel (2) | Hoch (3) | Kritisch (4) | |
|---|---|---|---|---|
| Unwahrscheinlich (1) | 1 – Niedrig | 2 – Niedrig | 3 – Mittel | 4 – Mittel |
| Möglich (2) | 2 – Niedrig | 4 – Mittel | 6 – Hoch | 8 – Hoch |
| Wahrscheinlich (3) | 3 – Mittel | 6 – Hoch | 9 – Hoch | 12 – Kritisch |
| Sicher (4) | 4 – Mittel | 8 – Hoch | 12 – Kritisch | 16 – Kritisch |
STRIDE¶
Bewertet Bedrohungen nach sechs Kategorien:
| Kategorie | Beschreibung |
|---|---|
| Spoofing | Identitätsvortäuschung |
| Tampering | Manipulation von Daten |
| Repudiation | Abstreitbarkeit von Aktionen |
| Information Disclosure | Informationspreisgabe |
| Denial of Service | Dienstverweigerung |
| Elevation of Privilege | Rechteeskalation |
Jede Kategorie wird mit Wahrscheinlichkeit (1–5) × Auswirkung (1–5) bewertet.
CVSS (Common Vulnerability Scoring System)¶
Berechnet einen Score 0–10 aus:
| Metrik | Optionen |
|---|---|
| Angriffvektor | Netzwerk / Benachbart / Lokal / Physisch |
| Angriffskomplexität | Niedrig / Hoch |
| Benötigte Rechte | Keine / Niedrig / Hoch |
| Benutzerinteraktion | Keine / Erforderlich |
| Umfang | Unverändert / Verändert |
| Vertraulichkeit | Keine / Niedrig / Hoch |
| Integrität | Keine / Niedrig / Hoch |
| Verfügbarkeit | Keine / Niedrig / Hoch |
Score-Interpretation: - 0.0 – Kein Risiko - 0.1–3.9 – Niedrig - 4.0–6.9 – Mittel - 7.0–8.9 – Hoch - 9.0–10.0 – Kritisch
OCTAVE (Operationally Critical Threat, Asset, and Vulnerability Evaluation)¶
Bewertet Bedrohungsszenarien nach:
| Faktor | Beschreibung |
|---|---|
| Akteur | Intern / Extern / Partner |
| Motiv | Finanziell / Ideologisch / Zufällig |
| Zugang | Direkter Zugang / Indirekt / Physisch |
| Wahrscheinlichkeit | 1–5 (Likert-Skala) |
| Auswirkung | 1–5 (Likert-Skala) |
Framework-API¶
def framework_felder(fw: str) -> list[dict]:
"""Gibt Eingabefeld-Definitionen für ein Framework zurück.
Jedes dict enthält: key, label, type, options (bei Auswahl)
"""
def berechne_risiko(fw: str, d: dict) -> tuple[int, str, str]:
"""Berechnet Risikoscore.
Returns:
(score: int, label: str, detail: str)
z.B. (9, "Hoch", "Wahrscheinlichkeit: 3, Auswirkung: 3")
"""
KI-Assistent¶
risikobewertung/_AssistentDialog (in gui_module.py)
Ein modaler Dialog, der: 1. Risikobeschreibung vom Benutzer entgegennimmt 2. Strukturierten Prompt an Ollama sendet 3. Ollamas Antwort als vorausgefüllte Felder in das Hauptformular überträgt
Export-Formate¶
risikobewertung/report_export.py
| Format | Inhalt |
|---|---|
| XLSX | Strukturierte Tabelle mit allen Risiken und Scores |
| DOCX | Formatierter Bericht mit Risikomatrix-Diagramm |
| JSON | Maschinenlesbarer Export aller Bewertungsdaten |
DOCX-Bericht enthält:¶
- Deckblatt
- Zusammenfassung (höchste Risiken)
- Framework-Erläuterungen
- Detailtabellen je Risiko
- Scoring-Legende
GUI-Funktionen¶
| Funktion | Beschreibung |
|---|---|
| Neue Bewertung | Leeres Formular für neue Risikoerfassung |
| KI-Assistent | Öffnet _AssistentDialog für Ollama-Unterstützung |
| Framework wechseln | Wechselt zwischen FI / STRIDE / CVSS / OCTAVE |
| Navigation | Vor/Zurück zwischen gespeicherten Risiken |
| Exportieren | Wählt Format (XLSX / DOCX / JSON) |
Voraussetzungen¶
Ollama muss laufen. Das Modul versucht beim Start Ollama zu erkennen und zeigt ggf. einen Hinweis.