{"status":"pass","category":"SEC","severity":"high","evidence":["Dockerfile setzt non-root User mit UID>=10000: groupadd/useradd uid 10001, USER app (Dockerfile Runtime-Stage).","Multi-Stage-Build (builder -> runtime) auf python:3.12-slim, keine Build-Toolchain im Runtime-Image (Dockerfile).","HEALTHCHECK gegen /health-Endpoint definiert (Dockerfile).","Keine Filesystem-Tools exponiert (server.py: alle 18 Tools sind HTTP-read-only) -> keine Pfad-Allow-List/Volume-Mounts noetig (Modus 3 N/A).","docker-compose.yml setzt harte Resource-Limits (mem_limit 256m, cpus 0.5, ulimits nofile) — SCALE-006-Haertung."],"gaps":["Kein Kubernetes-Deployment-Manifest im Repo (nur deploy/network-policy.example.yaml) -> readOnlyRootFilesystem, capabilities.drop:[ALL], seccompProfile RuntimeDefault, runAsNonRoot sind nicht als K8s-SecurityContext gesetzt. Diese Kriterien sind im Katalog 'Bei Kubernetes' konditioniert; Deploy-Ziele sind Render/Docker/Railway, nicht K8s.","docker-compose.yml setzt kein read_only:true / cap_drop:[ALL] als Container-Haertung (Defense-in-Depth-Luecke, nicht kritisch fuer Public-Open-Data-Profil)."],"evaluator_notes":"applies_when erfuellt (deployment includes local-stdio/Render). Kern-Haertung (Dockerfile non-root UID 10001, Multi-Stage, slim) vorhanden; K8s-spezifische Haerteanforderungen sind mangels K8s-Target N/A. Unveraendert pass; empfohlene Ergaenzung: cap_drop/read_only in compose."}
