Ausfuehrbares Pruefpaket fuer Payment-Terminal-Systeme: 1. Semgrep-Regeln (25 Regeln in 5 Dateien): - Logging: Sensitive Daten, Tokens, Debug-Flags - Crypto: MD5/SHA1/DES/ECB, Hardcoded Secrets, Weak Random, TLS - API: Debug-Routes, Exception Leaks, IDOR, Input Validation - Config: Test-Endpoints, CORS, Cookies, Retry - Data: Telemetrie, Cache, Export, Queue, Testdaten 2. CodeQL Query-Specs (5 Briefings): - Sensitive Data → Logs - Sensitive Data → HTTP Response - Tenant Context Loss - Sensitive Data → Telemetry - Cache/Export Leak 3. State-Machine-Tests (10 Testfaelle): - 11 Zustaende, 15 Events, 8 Invarianten - Duplicate Response, Timeout+Late Success, Decline - Invalid Reversal, Cancel, Backend Timeout - Parallel Reversal, Unknown Response, Reconnect - Late Response after Cancel 4. Finding Schema (JSON Schema): - Einheitliches Format fuer alle Engines - control_id, engine, status, confidence, evidence, verdict_text Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
26 lines
730 B
Markdown
26 lines
730 B
Markdown
# Terminal State Machine Invariants
|
|
|
|
## Invariant 1
|
|
APPROVED darf ohne expliziten Reversal-Pfad nicht in WAITING_FOR_TERMINAL zurueckgehen.
|
|
|
|
## Invariant 2
|
|
DECLINED darf keinen Buchungserfolg oder Success-Report erzeugen.
|
|
|
|
## Invariant 3
|
|
duplicate_response darf keinen zweiten Commit und keine zweite Success-Bestaetigung erzeugen.
|
|
|
|
## Invariant 4
|
|
DESYNC muss Audit-Logging und Klaerungsstatus ausloesen.
|
|
|
|
## Invariant 5
|
|
REVERSAL_PENDING darf nicht mehrfach parallel ausgeloest werden.
|
|
|
|
## Invariant 6
|
|
invalid_command darf nie zu APPROVED fuehren.
|
|
|
|
## Invariant 7
|
|
terminal_timeout darf nie stillschweigend als Erfolg interpretiert werden.
|
|
|
|
## Invariant 8
|
|
Late responses nach finalem Zustand muessen kontrolliert behandelt werden.
|