docs(security): Threat-Model anlegen, Entscheidung zu geteilten Projekten offen
Some checks are pending
security-baseline / secrets (push) Waiting to run
security-baseline / node (push) Waiting to run
security-baseline / semgrep (push) Waiting to run
security-baseline / trivy (push) Waiting to run

docs/THREATMODEL.md (threat-model-light): System, Assets, Angreifer,
Vertrauensgrenzen, Risiken R1-R14 mit Beleg. R3 (ASVS-light B1/B2) bleibt
offen, bis Julian E1 (Projekte teamweit geteilt) bestaetigt. idorGap-
Kommentar und AGENTS.md verweisen darauf.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Grovy311 2026-10-17 12:40:43 +02:00
parent b0e8161918
commit 1cf406d216
4 changed files with 146 additions and 11 deletions

View file

@ -94,10 +94,13 @@ const config = {
return (await res.json()) as Record<string, unknown>;
},
// OFFENE LÜCKE (bewusst, Entscheidung Julian): Projekte haben keinen Besitzer, jeder
// angemeldete Nutzer sieht und bearbeitet alle Projekte. Die IDOR-Tests laufen trotzdem
// und zeigen den Ist-Zustand, zählen aber als TODO statt als Fehler. Wird Besitz bzw.
// Freigabe pro Projekt eingeführt, diese Zeile entfernen – dann müssen sie grün werden.
// OFFENE LÜCKE: Projekte haben keinen Besitzer, jeder angemeldete Nutzer sieht und
// bearbeitet alle Projekte. Gedacht als teamweit geteilt, die Entscheidung (wer, warum,
// welche Instanz/welches Team) ist aber noch nicht festgehalten: docs/THREATMODEL.md R3
// und offene Entscheidung E1. Bis dahin gilt B1/B2 im pre-release-gate als offen.
// Die IDOR-Tests laufen trotzdem und zeigen den Ist-Zustand, zählen aber als TODO statt
// als Fehler. Wird Besitz bzw. Freigabe pro Projekt eingeführt, diese Zeile entfernen,
// dann müssen sie grün werden.
idorGap: "Projekte sind für alle angemeldeten Nutzer freigegeben (kein Besitz pro Projekt)",
idorCases: [
{ method: "GET", path: "/api/projects/{id}" },