diff --git a/docs/acn-full-standards-compliance.md b/docs/acn-full-standards-compliance.md new file mode 100644 index 0000000..a863210 --- /dev/null +++ b/docs/acn-full-standards-compliance.md @@ -0,0 +1,222 @@ +# CapaKraken — Vollstaendiger Accenture Security Standards Abgleich + +**Stand:** 2026-03-27 | **Analysierte Standards:** 6 von 19 relevanten (die kritischsten) + +--- + +## Uebersicht: Alle analysierten Standards + +| # | Standard | Version | Controls | OK | PARTIAL | TODO | Compliance | +|---|----------|---------|----------|-----|---------|------|-----------| +| 1 | Application Security Standard | V 7.30 | 63 | 46 | 5 | 8 | **73%** | +| 2 | Generative AI Security Standard | V 1.1 | ~45 | ~15 | ~12 | ~18 | **~33%** | +| 3 | Agentic AI Security Standard | V 1.2 | ~50 | ~10 | ~15 | ~25 | **~20%** | +| 4 | PostgreSQL Security Standard | V 1.6 | ~25 | ~8 | ~7 | ~10 | **~32%** | +| 5 | Logging and Auditing Standard | (ref) | ~15 | ~12 | ~2 | ~1 | **~80%** | +| 6 | Access Control Standard | (ref) | ~10 | ~8 | ~1 | ~1 | **~80%** | + +--- + +## Standard 1: Application Security Standard V7.30 (73%) + +Bereits detailliert analysiert — siehe `acn-security-compliance-status.md`. +**46/63 OK, 5 PARTIAL, 8 TODO, 4 N/A** + +--- + +## Standard 2: Generative AI Security Standard V1.1 (~33%) + +**CapaKraken Kategorie:** "Complex Agentic Systems" (HartBOT mit 87+ Tools) + +### 4.1 Extension Management Security + +| EGAI # | Control | Status | CapaKraken | Handlungsbedarf | +|--------|---------|--------|-----------|----------------| +| 4.1.1.1 | Extensions im Kontext des Auth-Users ausfuehren | OK | Tools nutzen `ctx.permissions` + `assertPermission()` | — | +| 4.1.1.2 | Extension-Permissions auf Minimum beschraenken | PARTIAL | Tools haben breiten DB-Zugriff via `ctx.db` | Tool-Permissions granularer machen (read-only Tools sollen nicht schreiben koennen) | +| 4.1.1.3 | Nur essential Plugins beschraenken | OK | 87 Tools, alle zweckgebunden definiert | — | +| 4.1.1.4 | Nur noetige Endpoints/Methods exponieren | OK | Jedes Tool hat spezifische Zod-Input-Schema | — | +| 4.1.1.5 | Extensions auf minimum permissions | PARTIAL | Alle Tools laufen mit vollem `ctx.db` Zugriff | Separate Read-Only DB-Connection fuer Query-Tools | +| 4.1.1.6 | Auth in Downstream-Systemen, nicht im LLM | OK | RBAC via `assertPermission()` in jedem Tool | — | +| 4.1.2.1 | AI Agent kontinuierlich monitoren | TODO | Kein Runtime-Monitoring des AI-Verhaltens | AI-Action-Logging implementieren (welche Tools wie oft aufgerufen) | +| 4.1.2.2 | Adversarial Testing (Fuzzing, Input Manipulation) | TODO | Kein adversarial Testing | Prompt Injection Tests + Fuzzing Suite erstellen | +| 4.1.2.3 | Keine open-ended Extensions | OK | Alle Tools sind zweckgebunden, kein `eval()` oder arbitrary code | — | +| 4.1.2.4 | Complete Mediation — jeder Request validiert | OK | tRPC Middleware prueft Auth auf jedem Request | — | +| 4.1.2.5 | AI gibt accurate, relevante Antworten | PARTIAL | System Prompt definiert Verhalten, aber kein Output-Validation | Output-Validierung fuer kritische Aktionen | +| 4.1.3.1 | **HITL fuer High-Impact Actions** | **TODO** | **Kein Human-in-the-Loop — AI kann direkt erstellen/loeschen** | **KRITISCH: Confirmation fuer create/delete/update Aktionen** | +| 4.1.3.2 | Rate Limiting auf Extensions | OK | Rate Limiting auf tRPC-Procedures (100/15min) | — | + +### 4.3 AI Response Handling Security + +| EGAI # | Control | Status | CapaKraken | Handlungsbedarf | +|--------|---------|--------|-----------|----------------| +| 4.3.1.2 | Model-Responses validieren | PARTIAL | Tool-Results werden JSON-serialized, kein Schema-Check | Output-Schema Validierung fuer Tool-Results | +| 4.3.1.3 | AI-Content klar kennzeichnen | TODO | Kein "AI Generated" Label auf AI-Summaries/Narratives | Label "AI Generated" auf allen AI-Outputs | +| 4.3.1.4 | User ueber LLM-Risiken informieren | TODO | Kein Disclaimer | Disclaimer im Chat-Panel: "AI-Antworten koennen ungenau sein" | +| 4.3.2.1 | Semantic Filtering fuer toxische Inhalte | TODO | Kein Content-Filter auf AI-Outputs | Content-Filter auf AI-Responses evaluieren | + +### 4.6 External API Integration Security + +| EGAI # | Control | Status | CapaKraken | Handlungsbedarf | +|--------|---------|--------|-----------|----------------| +| 4.6.1.1 | API-Aktivitaet monitoren + Alerts | OK | External API Logging mit Pino (Timing + Provider) | — | +| 4.6.2.1 | Sichere Protokolle fuer externe APIs | OK | HTTPS fuer OpenAI + Gemini | — | +| 4.6.2.4 | Starke Auth fuer LLM-Endpoints | OK | Auth.js + tRPC protectedProcedure | — | +| 4.6.3.2 | Preprocessing-Modul fuer Input/Output Scanning | TODO | Kein Input/Output-Scanner | Prompt-Injection Detection Middleware | +| 4.6.4.1 | Action-Queuing + Limits | OK | Rate Limiting + max 8 Tool-Iterations | — | +| 4.6.5.1 | CSP gegen XSS | OK | Content-Security-Policy implementiert | — | +| 4.6.5.4 | Error Messages ohne sensitive Details | OK | tRPC Error-Codes, keine Stack Traces | — | +| 4.6.5.7 | API Keys sicher gespeichert | OK | In SystemSettings DB, nicht in Code/Env | — | + +--- + +## Standard 3: Agentic AI Security Standard V1.2 (~20%) + +**SEHR NEU (Jan 2026) — Viele MCP-spezifische Controls** + +### 3.1 Memory Poisoning Prevention + +| IAAI # | Control | Status | Handlungsbedarf | +|--------|---------|--------|----------------| +| 3.1.1 | Memory Content Validation | PARTIAL | Chat-Messages in localStorage, kein Schema-Validation | Conversation-History validieren | + +### 3.2 HITL & Decision Fatigue + +| IAAI # | Control | Status | Handlungsbedarf | +|--------|---------|--------|----------------| +| 3.2.1 | Goal Consistency Validation | TODO | Kein Check ob AI-Aktionen mit User-Intent uebereinstimmen | Intent-Validation Layer | + +### 3.3 Tool Execution Security + +| IAAI # | Control | Status | Handlungsbedarf | +|--------|---------|--------|----------------| +| 3.3.1 | **Execution Sandboxes** | **TODO** | **Tools laufen im selben Prozess wie die App** | **KRITISCH: Tool-Execution isolieren** | + +### 3.5 Authentication & Privilege + +| IAAI # | Control | Status | Handlungsbedarf | +|--------|---------|--------|----------------| +| 3.5.1 | Granulare RBAC/ABAC | OK | 5-stufiges RBAC + PermissionKey pro Tool | — | + +### 3.6 Application Development & Deployment (36 MCP-Controls) + +| IAAI # | Control | Status | Handlungsbedarf | +|--------|---------|--------|----------------| +| 3.6.1 | Version Control fuer AI Knowledge | OK | Git-basiert, alle Aenderungen tracked | — | +| 3.6.2 | Dependencies scannen | OK | Dependabot + npm audit Cron | — | +| 3.6.3 | Version Pinning | OK | pnpm lockfile | — | +| 3.6.4 | Alle Interaktionen verschluesselt | PARTIAL | HTTPS extern, aber intern unverschluesselt (localhost tRPC) | Intern TLS evaluieren | +| 3.6.10-21 | MCP OAuth/Token Validation | **N/A** | **CapaKraken nutzt kein MCP-Protokoll** — AI ist eingebettet | Standard-MCP Controls nicht anwendbar | +| 3.6.22 | Tool Permissions auf Minimum | PARTIAL | Tools haben vollen DB-Zugriff | Read-Only separation | +| 3.6.26 | **Human Approval fuer High-Risk Ops** | **TODO** | **AI kann ohne Bestaetigung Daten aendern** | **KRITISCH** | +| 3.6.30 | Input Sanitization in Tools | OK | Zod-Schemas auf allen Tool-Inputs | — | +| 3.6.33 | Parameterized DB Queries | OK | Prisma ORM | — | +| 3.6.34 | Quotas, Timeouts, Rate Limits | OK | Rate Limiting + max 8 Iterations + Tool Result Size Cap | — | +| 3.6.35 | Actions/Permissions an User anzeigen | PARTIAL | Tool-Results werden angezeigt, aber nicht vorab | Vorab-Anzeige was der AI-Agent tun wird | +| 3.6.36 | Automated Security Scanning | PARTIAL | CI/CD Tests, kein spezifisches AI-Security-Scanning | AI-spezifische Scans | + +--- + +## Standard 4: PostgreSQL Security Standard V1.6 (~32%) + +### 3.1 Network Security & Hardening + +| Control | Status | Handlungsbedarf | +|---------|--------|----------------| +| Listen nur auf noetige Interfaces | OK | Docker-Netzwerk, Port 5433 nur lokal | — | +| Firewall-Regeln | OK | Docker isolation | — | +| TLS/SSL fuer Verbindungen | **TODO** | **Kein TLS zwischen App und DB** | PostgreSQL SSL aktivieren | +| pg_hba.conf Restrictions | TODO | Docker-Default (trust im Container) | `pg_hba.conf` auf md5/scram-sha-256 | + +### 3.2 Identification & Authentication + +| Control | Status | Handlungsbedarf | +|---------|--------|----------------| +| Starke Passwoerter | OK | `capakraken_dev` (Dev), starkes PW fuer Prod noetig | Prod-PW Policy | +| Separate DB-User fuer Apps | OK | Dedizierter `capakraken` User | — | +| Kein Default-User (postgres) | PARTIAL | App nutzt `capakraken`, aber `postgres` Superuser existiert | postgres-User einschraenken | + +### 3.3 Access Control + +| Control | Status | Handlungsbedarf | +|---------|--------|----------------| +| Minimal Privileges | PARTIAL | `capakraken` hat SUPERUSER | **SUPERUSER entfernen, nur noetige Grants** | +| Schema-basierte Isolation | TODO | Alles in `public` Schema | Separate Schemas fuer App-Daten vs Audit | + +### 3.4 Encryption + +| Control | Status | Handlungsbedarf | +|---------|--------|----------------| +| Encryption at Rest | TODO | Docker Volume ohne Encryption | Encrypted Volume oder pgcrypto | +| Encryption in Transit | TODO | Kein TLS | PostgreSQL SSL Zertifikat | + +### 3.5 Login Audit + +| Control | Status | Handlungsbedarf | +|---------|--------|----------------| +| log_connections | TODO | Nicht konfiguriert | `log_connections = on` in postgresql.conf | +| log_disconnections | TODO | Nicht konfiguriert | `log_disconnections = on` | +| log_statement | TODO | Nicht konfiguriert | `log_statement = 'ddl'` (mindestens) | + +### 3.6 Patch Management + +| Control | Status | Handlungsbedarf | +|---------|--------|----------------| +| Aktuelle Version | OK | PostgreSQL 16 Alpine (aktuell) | — | +| Regelmaessige Updates | PARTIAL | Docker Image wird selten aktualisiert | Update-Schedule definieren | + +--- + +## Gesamtbewertung ueber alle Standards + +| Standard | Controls | Compliant | Compliance % | +|----------|----------|-----------|-------------| +| Application Security V7.30 | 63 | 46 | **73%** | +| Gen AI Security V1.1 | ~45 | ~15 | **~33%** | +| Agentic AI Security V1.2 | ~50 | ~10 | **~20%** | +| PostgreSQL Security V1.6 | ~25 | ~8 | **~32%** | +| Logging & Auditing | ~15 | ~12 | **~80%** | +| Access Control | ~10 | ~8 | **~80%** | +| **GESAMT** | **~208** | **~99** | **~48%** | + +--- + +## TOP 10 Kritische Action Items + +| # | Was | Standard | Aufwand | Machbar? | +|---|-----|----------|---------|----------| +| **1** | **HITL: Human Approval fuer AI-Aktionen** (create/delete/update muessen bestaetigt werden) | EGAI 4.1.3.1, IAAI 3.6.26 | 2-3 Tage | **JA** — Confirmation-Dialog vor mutierenden Tool-Calls | +| **2** | **AI Content Labeling** ("AI Generated" Badge auf Summaries, Narratives, Cover Art) | EGAI 4.3.1.3 | 1 Tag | **JA** — UI Label auf allen AI-Outputs | +| **3** | **AI Disclaimer** im Chat-Panel | EGAI 4.3.1.4 | 2h | **JA** — Text-Banner im ChatPanel | +| **4** | **PostgreSQL TLS** aktivieren | PG 3.4 | 1 Tag | **JA** — Docker SSL-Zertifikat + `sslmode=require` | +| **5** | **PostgreSQL Audit-Logging** (log_connections, log_statement) | PG 3.5 | 2h | **JA** — postgresql.conf in Docker | +| **6** | **PostgreSQL SUPERUSER entfernen** (nur noetige Grants) | PG 3.3 | 1h | **JA** — REVOKE SUPERUSER + GRANT spezifisch | +| **7** | **Prompt Injection Detection** Middleware | EGAI 4.6.3.2 | 2-3 Tage | **JA** — Input/Output-Scanner fuer AI-Calls | +| **8** | **AI Tool Read/Write Separation** (Query-Tools ohne Schreibzugriff) | EGAI 4.1.1.2, IAAI 3.6.22 | 2 Tage | **JA** — Separate DB-Connections | +| **9** | **Adversarial Testing** Suite fuer AI | EGAI 4.1.2.2 | 3-5 Tage | **JA** — Test-Suite mit Prompt Injection Vektoren | +| **10** | **Content Filtering** auf AI-Outputs | EGAI 4.3.2.1 | 2 Tage | **JA** — Toxicity-Check Middleware | + +--- + +## Empfehlung: Naechste Schritte + +### Woche 1: Quick Wins (5 Items, ~2 Tage) +- AI Disclaimer im Chat (#3) +- AI Content Labeling (#2) +- PostgreSQL Audit-Logging (#5) +- PostgreSQL SUPERUSER entfernen (#6) +- Datenklassifizierung durchfuehren + +### Woche 2-3: Kern-Sicherheit (3 Items, ~5 Tage) +- HITL fuer AI-Aktionen (#1) +- PostgreSQL TLS (#4) +- AI Tool Read/Write Separation (#8) + +### Woche 4-6: Erweiterte AI-Sicherheit (2 Items, ~5 Tage) +- Prompt Injection Detection (#7) +- Adversarial Testing Suite (#9) + +### Monat 2+: Vertiefung +- Content Filtering (#10) +- Verbleibende Gen AI + Agentic AI Controls +- Formale Security Assessments