Files
CapaKraken/docs/acn-security-compliance-todo.md
T
Hartmut 70ae830623 docs: Accenture Application Security Standard V7.30 compliance ToDo
Gap analysis of CapaKraken against Accenture AppSec Standard V7.30.
23 action items across 3 priority levels.

Critical (before production): MFA, session timeouts, HSTS, CSP,
rate limiting, Sentry DSN, failed auth logging.

High (30 days): AIR registration, security architecture doc,
SAST/DAST, XSS sanitization, login/logout audit.

Already compliant: SQL injection (Prisma), Argon2 hashing, RBAC,
Zod input validation, audit logging, security headers (partial).

Co-Authored-By: claude-flow <ruv@ruv.net>
2026-03-27 13:50:14 +01:00

12 KiB

Accenture Application Security Standard V7.30 — Compliance ToDo

Basierend auf: Application Security Standard V 7.30, Effective Date: February 13, 2026 Analysiert gegen: CapaKraken (Stand: 2026-03-27)


Legende

  • OK = Bereits compliant
  • TODO = Muss implementiert werden
  • PARTIAL = Teilweise compliant, Nacharbeit noetig
  • N/A = Nicht anwendbar

3.1 Governance

# Anforderung Status CapaKraken Stand ToDo
EAPPS.3.1.1 App muss im AIR (Application Information Repository) registriert sein TODO Nicht registriert AIR-ID beantragen

3.2.1 Application Architecture

# Anforderung Status CapaKraken Stand ToDo
3.2.1.01 Architectural document muss vorhanden sein PARTIAL CLAUDE.md + docs/ vorhanden, kein formelles Security Architecture Doc Formelles Security Architecture Document erstellen
3.2.1.03 Kein direkter Internet-Zugang zu Datenbanken OK PostgreSQL nur ueber Docker-Netzwerk, nicht extern exponiert
3.2.1.04 Proaktives Monitoring bei business-kritischen Systemen PARTIAL Health-Endpoints vorhanden, kein externes Monitoring Uptime-Monitoring einrichten (UptimeRobot o.ae.)

3.2.2.1 Identity and Access Management

# Anforderung Status CapaKraken Stand ToDo
3.2.2.1.01 Compliant mit Identification and Authentication Standard PARTIAL Auth.js v5 mit Argon2 Passwort-Hashing, RBAC vorhanden ESO/ADFS Integration pruefen (aktuell eigene Auth)
3.2.2.1.02 OAuth v2.0 fuer APIs/Services TODO Kein OAuth — tRPC mit Session-basierter Auth OAuth 2.0 oder JWT-basierte API Auth evaluieren
3.2.2.1.03 Token Validity: Access Token max 1h, Refresh Token max 24h PARTIAL Auth.js Session-basiert, kein Token-Expiry konfiguriert Session-Timeout konfigurieren (idle + absolute)
3.2.2.1.04 Nur immutable Claims in Tokens OK Auth.js nutzt server-side Sessions, keine JWT-Claims

3.2.2.2 Multi-Factor Authentication (MFA)

# Anforderung Status CapaKraken Stand ToDo
3.2.2.2 MFA muss implementiert sein TODO Keine MFA — nur Email+Passwort MFA via TOTP oder WebAuthn implementieren, oder ESO-Integration

3.2.2.3 Input & Output Validation

# Anforderung Status CapaKraken Stand ToDo
3.2.2.3.01 Input Validation Controls OK Zod-Schemas auf allen tRPC-Inputs, TypeScript strict mode
3.2.2.3.02 Passwort-Felder muessen maskiert sein OK type="password" auf allen Passwort-Inputs
3.2.2.3.03 Laengen-Validierung auf Input-Parametern OK Zod .min() / .max() auf relevanten Feldern
3.2.2.3.04 Numerische Werte Bereichs-Validierung OK Zod .min() / .max() auf Number-Feldern
3.2.2.3.05 Malicious Characters ablehnen/sanitizen PARTIAL Zod validiert Typen, kein explizites XSS-Sanitizing DOMPurify oder aehnliches fuer User-generierte Texte (Kommentare, Descriptions)
3.2.2.3.06 Parameterized SQL (kein SQL Injection) OK Prisma ORM — alle Queries sind parameterized
3.2.2.3.13 HTTP Security Headers auf gesamter Seite PARTIAL Einige Headers via next.config.ts, nicht vollstaendig Siehe HTTP Headers Sektion unten

3.2.2.4 Session Management

# Anforderung Status CapaKraken Stand ToDo
3.2.2.4.01 Session IDs muessen unpredictable sein, terminiert nach Timeout PARTIAL Auth.js generiert sichere Session-IDs, kein expliziter Timeout Session Idle Timeout (30min) und Absolute Timeout (8h) konfigurieren
3.2.2.4.02 Concurrent Sessions limitieren fuer High-Impact Systeme TODO Keine Session-Limitierung Max 3 concurrent Sessions pro User implementieren
3.2.2.4.04 Nur server-issued Session-IDs verwenden OK Auth.js server-side Sessions
3.2.2.4.05 Idle Timeout konfigurierbar (SaaS) TODO Kein konfigurierbarer Timeout Idle Timeout in SystemSettings aufnehmen

3.2.2.5 Insecure File Upload

# Anforderung Status CapaKraken Stand ToDo
3.2.2.5 Sichere File-Upload Validierung PARTIAL Cover-Art Upload validiert Dateityp + Groesse, XLSX Import parst sicher File-Type Validation verstaerken (Magic Bytes pruefen, nicht nur Extension)

3.2.2.6 Error Handling

# Anforderung Status CapaKraken Stand ToDo
3.2.2.6 Keine technischen Fehlerdetails an User PARTIAL tRPC gibt Error-Codes zurueck, Stack Traces nur in Dev Sentry fuer Production error capturing (installiert, DSN fehlt)

3.2.2.7 Application Security Assessments

# Anforderung Status CapaKraken Stand ToDo
3.2.2.7 Regelmaessige Security Scans TODO Kein SAST/DAST, kein Pen-Test npm audit in CI (Dependabot vorhanden), SAST-Tool evaluieren (SonarQube, Snyk)

3.2.2.8 Other Additional Controls

# Anforderung Status CapaKraken Stand ToDo
3.2.2.8 Secure Development Lifecycle PARTIAL CI/CD vorhanden, Code Review via PR, TypeScript strict Formales SDLC-Dokument erstellen, Security Checklist in PR-Template

3.2.3 Data Protection

# Anforderung Status CapaKraken Stand ToDo
3.2.3.01 Autocomplete=off fuer Passwort-Felder TODO Nicht explizit gesetzt autocomplete="off" oder autocomplete="new-password" auf Passwort-Feldern
3.2.3.02 Source-Code Zugang nur fuer Dev-Team OK Gitea mit User-Authentifizierung
3.2.3.03 Keine Produktionsdaten in Non-Prod OK Seed-Daten sind fiktiv (Marvel-Characters)

3.2.4 Change Management

# Anforderung Status CapaKraken Stand ToDo
3.2.4 Change Management Prozess PARTIAL Git-basiert mit PRs und CI, Activity History vorhanden Formalen Change-Approval-Prozess dokumentieren

3.2.7 Logging and Auditing

# Anforderung Status CapaKraken Stand ToDo
3.2.7.01 Authorization/Access Failures loggen PARTIAL RBAC Fehler werden als tRPC FORBIDDEN zurueckgegeben, nicht explizit geloggt Failed Auth Attempts in Audit-Log aufnehmen
3.2.7.01 Input Validation Failures loggen TODO Zod-Errors werden an Client zurueckgegeben, nicht geloggt Validation Failures an Pino Logger weiterleiten
3.2.7.01 Application Errors loggen OK Pino Structured Logging auf allen tRPC-Procedures
3.2.7.01 Config Changes loggen OK Activity History System audited 29/36 Router
3.2.7.01 High-Risk Functionality (User-Mgmt) loggen OK User Create/Delete/SetPassword/SetPermissions audited
3.2.7.01 API/Third-Party Access loggen PARTIAL AI-Aufrufe (OpenAI, Gemini) nicht explizit geloggt API-Calls an externe Services loggen
3.2.7.03 Access Logs fuer alle User inkl. Vendor PARTIAL Audit-Log vorhanden, kein Login-Log Login/Logout Events loggen

3.3.1.3 HTTP Response Headers

# Anforderung Status CapaKraken Stand ToDo
X-Frame-Options: DENY OK In next.config.ts gesetzt
X-Content-Type-Options: nosniff OK In next.config.ts gesetzt
Referrer-Policy: strict-origin-when-cross-origin OK In next.config.ts gesetzt
Permissions-Policy OK In next.config.ts gesetzt (camera, mic, geo disabled)
Strict-Transport-Security (HSTS) TODO Nicht gesetzt Strict-Transport-Security: max-age=31536000; includeSubDomains hinzufuegen
Content-Security-Policy (CSP) TODO Nicht gesetzt CSP Header definieren (script-src, style-src, img-src etc.)
X-XSS-Protection TODO Nicht gesetzt X-XSS-Protection: 0 (Browser-eigener XSS-Filter, CSP preferred)
Cache-Control fuer sensitive Seiten TODO Nicht gesetzt Cache-Control: no-store fuer Auth-Seiten
Server Header entfernen TODO nginx/openresty zeigt Server-Version server_tokens off in nginx Config
X-Powered-By entfernen OK Next.js entfernt X-Powered-By automatisch

3.3.1.6 Cookies & Attributes

# Anforderung Status CapaKraken Stand ToDo
HttpOnly Flag OK Auth.js Session-Cookie ist HttpOnly
Secure Flag PARTIAL In Production ja (HTTPS), in Dev nein (HTTP) Sicherstellen dass Secure Flag in Prod immer gesetzt
SameSite Attribute PARTIAL Auth.js setzt SameSite=Lax Pruefen ob Strict moeglich
Cookie-Prefix (__Host- oder __Secure-) TODO Keine Cookie-Prefixe __Host- Prefix fuer Session-Cookie evaluieren

3.3.1.12 API Management

# Anforderung Status CapaKraken Stand ToDo
Rate Limiting TODO Kein Rate Limiting Rate Limiting auf tRPC-Endpoints implementieren (z.B. express-rate-limit oder nginx level)
API Versioning N/A Internes Tool, kein oeffentliches API
API Authentication OK Alle tRPC-Procedures hinter protectedProcedure
API Input Validation OK Zod-Schemas auf allen Inputs

Priorisierte ToDo-Liste

Prioritaet 1: KRITISCH (muss vor Production)

  1. [ ] MFA implementieren — TOTP oder WebAuthn, oder ESO/ADFS Integration
  2. [ ] Session Timeouts — Idle (30min) + Absolute (8h) konfigurieren
  3. [ ] HTTP Security Headers vervollstaendigen:
    • Strict-Transport-Security: max-age=31536000; includeSubDomains
    • Content-Security-Policy definieren
    • Cache-Control: no-store fuer Auth-Seiten
  4. [ ] Rate Limiting auf API-Endpoints (Brute-Force Schutz)
  5. [ ] Sentry DSN konfigurieren fuer Production Error Tracking
  6. [ ] Failed Auth Attempts loggen (Audit-Log oder separater Security-Log)

Prioritaet 2: HOCH (innerhalb 30 Tage)

  1. [ ] AIR Registration — Application Information Repository Eintrag
  2. [ ] Security Architecture Document erstellen
  3. [ ] SAST/DAST Tool evaluieren und in CI integrieren (Snyk, SonarQube)
  4. [ ] XSS Sanitization — DOMPurify fuer User-generierte Texte
  5. [ ] Autocomplete="new-password" auf allen Passwort-Feldern
  6. [ ] Login/Logout Events im Audit-Log erfassen
  7. [ ] External API Calls loggen (OpenAI, Gemini Aufrufe)
  8. [ ] nginx Server-Header entfernen (server_tokens off)
  9. [ ] Concurrent Session Limit (max 3 pro User)

Prioritaet 3: MITTEL (innerhalb 90 Tage)

  1. [ ] Cookie Prefix (__Host-) evaluieren
  2. [ ] SameSite=Strict evaluieren (statt Lax)
  3. [ ] File Upload Magic Bytes Validierung
  4. [ ] Input Validation Failures an Logger weiterleiten
  5. [ ] Change Management Prozess formell dokumentieren
  6. [ ] Security Checklist in PR-Template aufnehmen
  7. [ ] Session Idle Timeout in Admin-Settings konfigurierbar machen
  8. [ ] Formaler SDLC dokumentieren

Bereits Compliant (kein Handlungsbedarf)

Bereich Standard-Anforderung CapaKraken Feature
SQL Injection Prevention Parameterized Queries Prisma ORM
Password Hashing Sichere Hash-Funktion Argon2 via @node-rs/argon2
RBAC Rollenbasierte Zugriffskontrolle 5-stufiges RBAC (USER→ADMIN) + Per-User Overrides
Input Validation Alle Inputs validiert Zod-Schemas auf allen tRPC-Procedures
Audit Logging Aenderungen nachvollziehbar Activity History System (29/36 Router)
Data Masking Passwort-Felder maskiert type="password" durchgehend
Source Code Access Nur Dev-Team Gitea mit Auth
No Prod Data in Dev Fiktive Testdaten Marvel-Character Seed
X-Frame-Options Clickjacking-Schutz DENY in next.config.ts
X-Content-Type-Options MIME-Sniffing Schutz nosniff in next.config.ts
API Auth Alle Endpoints geschuetzt protectedProcedure Middleware