# 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
