Files
breakpilot-compliance/developer-portal/app/development/docs/_components/MultiTenancyLlmAuditSection.tsx
Sharang Parnerkar 9ec72ed681 refactor(developer-portal): split iace, docs, byoeh pages
Extract each page into colocated _components/ sections to bring
page.tsx files from 1008/891/769 LOC down to 57/23/21 LOC,
well within the 500-line hard cap.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-18 08:45:13 +02:00

130 lines
7.4 KiB
TypeScript

import { CodeBlock, InfoBox } from '@/components/DevPortalLayout'
export function MultiTenancyLlmAuditSection() {
return (
<>
<h2 id="multi-tenancy">9. Multi-Tenancy und Zugriffskontrolle</h2>
<p>
Das System ist <strong>mandantenfaehig</strong> (Multi-Tenant): Mehrere Organisationen
koennen es gleichzeitig nutzen, ohne dass sie gegenseitig auf ihre Daten zugreifen koennen.
</p>
<h3>9.1 Rollenbasierte Zugriffskontrolle (RBAC)</h3>
<div className="not-prose my-4 overflow-x-auto">
<table className="min-w-full divide-y divide-gray-200 text-sm">
<thead className="bg-gray-50">
<tr>
<th className="px-4 py-3 text-left font-medium text-gray-500">Rolle</th>
<th className="px-4 py-3 text-left font-medium text-gray-500">Darf</th>
</tr>
</thead>
<tbody className="divide-y divide-gray-200">
<tr><td className="px-4 py-3 font-medium">Mitarbeiter</td><td className="px-4 py-3">Anwendungsfaelle einreichen, eigene Bewertungen einsehen</td></tr>
<tr><td className="px-4 py-3 font-medium">Teamleiter</td><td className="px-4 py-3">E1-Eskalationen pruefen, Team-Assessments einsehen</td></tr>
<tr><td className="px-4 py-3 font-medium">DSB (Datenschutzbeauftragter)</td><td className="px-4 py-3">E2/E3-Eskalationen pruefen, alle Assessments einsehen, Policies aendern</td></tr>
<tr><td className="px-4 py-3 font-medium">Rechtsabteilung</td><td className="px-4 py-3">E3-Eskalationen pruefen, Grundsatzentscheidungen</td></tr>
<tr><td className="px-4 py-3 font-medium">Administrator</td><td className="px-4 py-3">System konfigurieren, Nutzer verwalten, LLM-Policies festlegen</td></tr>
</tbody>
</table>
</div>
<h3>9.2 PII-Erkennung und -Schutz</h3>
<p>
Bevor Texte an ein Sprachmodell gesendet werden, durchlaufen sie eine automatische
<strong> PII-Erkennung</strong>. Das System erkennt ueber 20 Arten personenbezogener Daten
(E-Mail-Adressen, Telefonnummern, Namen, IP-Adressen, etc.).
Je nach Konfiguration werden erkannte PII-Daten <strong>geschwuerzt</strong>, <strong>maskiert</strong>
oder nur im Audit-Log <strong>markiert</strong>.
</p>
<h2 id="llm-nutzung">10. Wie das System KI nutzt (und wie nicht)</h2>
<div className="not-prose my-6 overflow-x-auto">
<table className="min-w-full divide-y divide-gray-200 text-sm">
<thead className="bg-gray-50">
<tr>
<th className="px-4 py-3 text-left font-medium text-gray-500">Aufgabe</th>
<th className="px-4 py-3 text-left font-medium text-gray-500">Entschieden von</th>
<th className="px-4 py-3 text-left font-medium text-gray-500">Rolle der KI</th>
</tr>
</thead>
<tbody className="divide-y divide-gray-200">
<tr><td className="px-4 py-3">Machbarkeit (YES/CONDITIONAL/NO)</td><td className="px-4 py-3 font-medium">Deterministische Regeln</td><td className="px-4 py-3 text-gray-400">Keine</td></tr>
<tr><td className="px-4 py-3">Risikoscore berechnen</td><td className="px-4 py-3 font-medium">Regelbasierte Berechnung</td><td className="px-4 py-3 text-gray-400">Keine</td></tr>
<tr><td className="px-4 py-3">Eskalation ausloesen</td><td className="px-4 py-3 font-medium">Schwellenwerte + Regellogik</td><td className="px-4 py-3 text-gray-400">Keine</td></tr>
<tr className="bg-blue-50"><td className="px-4 py-3">Ergebnis erklaeren</td><td className="px-4 py-3 text-gray-400">--</td><td className="px-4 py-3 font-medium text-blue-800">LLM + RAG-Kontext</td></tr>
<tr className="bg-blue-50"><td className="px-4 py-3">Rechtsfragen beantworten</td><td className="px-4 py-3 text-gray-400">--</td><td className="px-4 py-3 font-medium text-blue-800">LLM + RAG (Rechtskorpus)</td></tr>
<tr className="bg-blue-50"><td className="px-4 py-3">Dokumente generieren (DSFA, TOM, VVT)</td><td className="px-4 py-3 text-gray-400">--</td><td className="px-4 py-3 font-medium text-blue-800">LLM + Vorlagen</td></tr>
</tbody>
</table>
</div>
<h3>LLM-Provider und Fallback</h3>
<ol>
<li><strong>Primaer: Ollama (lokal)</strong> -- Qwen 2.5 32B bzw. Mistral, laeuft direkt auf dem Server. Keine Daten verlassen das lokale Netzwerk.</li>
<li><strong>Fallback: Anthropic Claude</strong> -- Wird nur aktiviert, wenn das lokale Modell nicht verfuegbar ist.</li>
</ol>
<h2 id="audit-trail">11. Audit-Trail: Alles wird protokolliert</h2>
<p>Saemtliche Aktionen im System werden revisionssicher protokolliert:</p>
<ul>
<li>Jede Compliance-Bewertung mit allen Ein- und Ausgaben</li>
<li>Jede Eskalationsentscheidung mit Begruendung</li>
<li>Jeder LLM-Aufruf (wer hat was wann gefragt, welches Modell wurde verwendet)</li>
<li>Jede Aenderung an Controls, Evidence und Policies</li>
<li>Jeder Login und Daten-Export</li>
</ul>
<InfoBox type="info" title="Datenschutz des Audit-Trails">
Der Use-Case-Text wird <strong>nur mit Einwilligung des Nutzers</strong> gespeichert.
Standardmaessig wird nur ein SHA-256-Hash des Textes gespeichert.
</InfoBox>
<h2 id="security">12. Security Scanner: Technische Sicherheitspruefung</h2>
<ul>
<li><strong>Container-Scanning (Trivy):</strong> Prueft Docker-Images auf bekannte Schwachstellen (CVEs)</li>
<li><strong>Statische Code-Analyse (Semgrep):</strong> Sucht im Quellcode nach Sicherheitsluecken</li>
<li><strong>Secret Detection (Gitleaks):</strong> Findet versehentlich eingecheckte Passwoerter, API-Keys und Tokens</li>
<li><strong>SBOM-Generierung:</strong> Erstellt eine vollstaendige Liste aller verwendeten Bibliotheken und deren Lizenzen</li>
</ul>
<h2 id="zusammenfassung">13. Zusammenfassung: Der komplette Datenfluss</h2>
<CodeBlock language="text" filename="Der komplette Compliance-Workflow">
{`SCHRITT 1: FAKTEN SAMMELN
Nutzer fuellt Fragebogen aus: Welche Daten? Welcher Zweck? Welche Branche? Wo gehostet?
SCHRITT 2: ANWENDBARKEIT PRUEFEN
Obligations Framework: DSGVO? AI Act? NIS2?
SCHRITT 3: REGELN PRUEFEN (45+ Regeln)
R-001 (WARN): Personenbezogene Daten +10 Risiko
R-060 (WARN): KI-Transparenz fehlt +15 Risiko
→ Gesamt-Risikoscore: 35/100 (LOW), Machbarkeit: CONDITIONAL
SCHRITT 4: CONTROLS ZUORDNEN
C_EXPLICIT_CONSENT, C_TRANSPARENCY, C_DATA_MINIMIZATION
SCHRITT 5: ESKALATION (bei Bedarf)
Score 35 → Stufe E1 → Teamleiter, SLA 24h
SCHRITT 6: ERKLAERUNG GENERIEREN
LLM + RAG: Gesetzesartikel suchen, Erklaerungstext generieren
SCHRITT 7: DOKUMENTATION
DSFA, TOM, VVT, Compliance-Report (PDF/ZIP/JSON)
SCHRITT 8: MONITORING
Controls regelmaessig pruefen, Nachweise auf Ablauf ueberwachen`}
</CodeBlock>
<InfoBox type="success" title="Das Wichtigste in einem Satz">
Der Compliance Hub nimmt die Beschreibung eines KI-Vorhabens entgegen, prueft es gegen
ueber 45 deterministische Regeln und 400+ Gesetzesartikel, berechnet ein Risiko, ordnet
Massnahmen zu, eskaliert bei Bedarf an menschliche Pruefer und dokumentiert alles
revisionssicher -- wobei die KI nur fuer Erklaerungen und Zusammenfassungen eingesetzt wird,
niemals fuer die eigentliche Compliance-Entscheidung.
</InfoBox>
</>
)
}