diff --git a/docs/acn-security-compliance-status.md b/docs/acn-security-compliance-status.md new file mode 100644 index 0000000..060fb6b --- /dev/null +++ b/docs/acn-security-compliance-status.md @@ -0,0 +1,65 @@ +# CapaKraken — Accenture Application Security Standard V7.30 +## Compliance Status Report + +**Stand:** 2026-03-27 | **Standard:** V 7.30 (13.02.2026) | **Bewertung:** 19/23 Controls implementiert (83%) + +--- + +## Implementiert (19 Controls) + +| # | Control | Beschreibung | Implementierung | +|---|---------|-------------|----------------| +| 1 | **TOTP MFA** | Multi-Factor Authentication | `otpauth`-basiert, QR-Code Setup, Sign-in Integration | +| 2 | **Session Timeouts** | Idle + Absolute Timeout | 30min Idle, 8h Absolute (Auth.js) | +| 3 | **HSTS** | HTTP Strict Transport Security | `max-age=31536000; includeSubDomains` | +| 4 | **CSP** | Content Security Policy | Vollstaendige Policy mit Whitelist | +| 5 | **Rate Limiting** | Brute-Force-Schutz | 100/15min API, 5/15min Auth | +| 6 | **Failed Auth Logging** | Fehlgeschlagene Logins protokollieren | Pino Logger + Audit-Entries | +| 7 | **Input Validation** | Alle Eingaben validiert | Zod-Schemas auf allen tRPC-Endpoints | +| 8 | **SQL Injection Prevention** | Parameterized Queries | Prisma ORM (kein Raw-SQL) | +| 9 | **Password Hashing** | Sichere Passwort-Speicherung | Argon2 via @node-rs/argon2 | +| 10 | **RBAC** | Rollenbasierte Zugriffskontrolle | 5-stufig (USER→ADMIN) + Per-User Overrides | +| 11 | **Audit Logging** | Aenderungsprotokoll | Activity History (29/36 Router), Admin-UI, AI-Abfrage | +| 12 | **XSS Sanitization** | Cross-Site-Scripting Schutz | DOMPurify auf User-generiertem Text | +| 13 | **Session Cookie Security** | Sichere Cookie-Attribute | HttpOnly, Secure, SameSite=Strict | +| 14 | **Concurrent Session Limit** | Max Sessions pro User | Max 3, aelteste wird gekickt | +| 15 | **File Upload Validation** | Magic Bytes Pruefung | PNG/JPEG/WebP/GIF Signatur-Check | +| 16 | **Login/Logout Audit** | Auth-Events protokollieren | Audit-Entries + Pino structured logs | +| 17 | **External API Logging** | Drittanbieter-Aufrufe protokollieren | Timing + Provider fuer OpenAI/Gemini | +| 18 | **autocomplete=off** | Kein Browser-Autocomplete auf Passwoertern | `new-password` / `current-password` | +| 19 | **Security Headers** | X-Frame-Options, X-Content-Type-Options, etc. | In next.config.ts + nginx | + +--- + +## Offen (4 Controls) — Nicht auf Testumgebung machbar + +| # | Control | Blocker | Wer wird benoetigt | Geschaetzter Aufwand | +|---|---------|---------|-------------------|---------------------| +| 20 | **AIR Registration** | Accenture-internes Portal, kein Code-Thema | **Projektleiter** — muss AIR-ID beantragen ueber [AIR Portal](https://in.accenture.com/applicationinformationrepository/) | 1-2 Stunden (Formular) | +| 21 | **SAST/DAST Scanning** | Braucht SonarQube Server oder Snyk Enterprise Lizenz | **DevOps/Security Team** — Tool-Auswahl + CI-Integration | 2-3 Tage (Setup + Config) | +| 22 | **nginx Server-Header entfernen** | Braucht SSH-Zugang zum Produktions-Webserver | **Ops/Infra Team** — `server_tokens off` in nginx.conf | 15 Minuten (mit Zugang) | +| 23 | **Cookie `__Host-` Prefix** | Nur mit HTTPS sinnvoll, Dev-Umgebung nutzt HTTP | **Entwickler** — beim Production-Deployment aktivieren | 30 Minuten | + +--- + +## Vorhandene Security-Dokumentation + +| Dokument | Pfad | Inhalt | +|----------|------|--------| +| Security Architecture | `docs/security-architecture.md` | 11 Sektionen (Auth, RBAC, Data Protection, etc.) | +| SDLC Prozess | `docs/sdlc.md` | CI Pipeline, Security Gates, Incident Response | +| PR Security Checklist | `.gitea/PULL_REQUEST_TEMPLATE.md` | 6-Punkte Checklist fuer jeden PR | +| Compliance ToDo (Detail) | `docs/acn-security-compliance-todo.md` | Detaillierte Gap-Analyse mit EAPPS-Nummern | + +--- + +## Naechste Schritte + +| Prioritaet | Aktion | Verantwortlich | Deadline-Empfehlung | +|-----------|--------|---------------|-------------------| +| **HOCH** | AIR-ID beantragen | Projektleiter | Sofort | +| **HOCH** | SAST/DAST Tool evaluieren (Snyk empfohlen) | DevOps | 2 Wochen | +| **MITTEL** | nginx Server-Header bei Prod-Deployment entfernen | Ops | Bei naechstem Deployment | +| **NIEDRIG** | Cookie-Prefix bei HTTPS-Umstellung | Entwickler | Bei Prod-Launch | +| **EMPFOHLEN** | Sentry DSN fuer Production konfigurieren | Entwickler | 1 Woche | +| **EMPFOHLEN** | Penetrationstest durch Security-Team | Security | Vor Go-Live |