GOV-06: Prompt-Injection-Schutz #235

Merged
patrick merged 1 commits from feature/gov-06-prompt-injection-schutz into main 2026-09-28 02:05:11 +02:00
Owner

Zusammenfassung

  • Neues Paket ai/internal/promptguard: trennt Dokument-/Mailinhalt strukturell (Marker + Systemhinweis) von der Systemanweisung im Prompt-Aufbau, erkennt auffaellige Instruktions-Muster vor der Verarbeitung (extract, classify, summarize, docchat, invoiceextract).
  • extract.go validiert zusaetzlich das deklarierte Feldformat (Datum/Betrag) statt jeden gemeldeten Wert stillschweigend zu uebernehmen (FormatInvalid-Markierung).
  • Kein neuer Automatik-Codepfad: keine Freigabe-/Loesch-/Statusaenderungs-Aktion haengt an einem KI-Ergebnis; residency.Approve bleibt an einen menschlichen approvedBy gebunden.

Durchgefuehrte Pruefungen (Ergebnis)

  1. Dokument mit eingebetteter Anweisung ("ignoriere vorherige Anweisung...") -> Verarbeitung folgt der eigentlichen Aufgabe, Muster wird erkannt: bestanden (Unit-Tests je Paket + real gegen office.sysops.de:11435 gpt-oss:20b, 100% Klassifizierungsgenauigkeit am gelabelten Set unveraendert).
  2. Extraktionsergebnis ausserhalb des erwarteten Schemas/Formats wird abgelehnt/markiert, nicht stillschweigend uebernommen: bestanden (TestExtract_FieldOutsideExpectedFormat_RejectedAndMarked, zusaetzlich real reproduziert im Ollama-Testlauf).
  3. Keine sicherheitsrelevante Aktion ohne menschliche Bestaetigung ausgeloest: bestanden (TestClassifyWithSchemaAudited_MaliciousDocument_OnlyLogsNoAutoAction, strukturell keine Automatik-Codepfade vorhanden).

Details, Zielwerte und vollstaendige Testausfuehrung: ai/docs/GOV-06-PRUEFPROTOKOLL.md

Bekannter, unabhaengiger Punkt: docchat_real_test.go TestAsk_Real_BelegAntwortZuordnungUndAntwortzeit ist bei Serverlast latenzbedingt flaky (vorbestehend, ausserhalb des Ticket-Scopes, nicht behoben).

🤖 Generated with Claude Code

## Zusammenfassung - Neues Paket ai/internal/promptguard: trennt Dokument-/Mailinhalt strukturell (Marker + Systemhinweis) von der Systemanweisung im Prompt-Aufbau, erkennt auffaellige Instruktions-Muster vor der Verarbeitung (extract, classify, summarize, docchat, invoiceextract). - extract.go validiert zusaetzlich das deklarierte Feldformat (Datum/Betrag) statt jeden gemeldeten Wert stillschweigend zu uebernehmen (FormatInvalid-Markierung). - Kein neuer Automatik-Codepfad: keine Freigabe-/Loesch-/Statusaenderungs-Aktion haengt an einem KI-Ergebnis; residency.Approve bleibt an einen menschlichen approvedBy gebunden. ## Durchgefuehrte Pruefungen (Ergebnis) 1. Dokument mit eingebetteter Anweisung ("ignoriere vorherige Anweisung...") -> Verarbeitung folgt der eigentlichen Aufgabe, Muster wird erkannt: bestanden (Unit-Tests je Paket + real gegen office.sysops.de:11435 gpt-oss:20b, 100% Klassifizierungsgenauigkeit am gelabelten Set unveraendert). 2. Extraktionsergebnis ausserhalb des erwarteten Schemas/Formats wird abgelehnt/markiert, nicht stillschweigend uebernommen: bestanden (TestExtract_FieldOutsideExpectedFormat_RejectedAndMarked, zusaetzlich real reproduziert im Ollama-Testlauf). 3. Keine sicherheitsrelevante Aktion ohne menschliche Bestaetigung ausgeloest: bestanden (TestClassifyWithSchemaAudited_MaliciousDocument_OnlyLogsNoAutoAction, strukturell keine Automatik-Codepfade vorhanden). Details, Zielwerte und vollstaendige Testausfuehrung: ai/docs/GOV-06-PRUEFPROTOKOLL.md Bekannter, unabhaengiger Punkt: docchat_real_test.go TestAsk_Real_BelegAntwortZuordnungUndAntwortzeit ist bei Serverlast latenzbedingt flaky (vorbestehend, ausserhalb des Ticket-Scopes, nicht behoben). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
patrick added 1 commit 2026-09-28 01:41:30 +02:00
GOV-06: prompt-injection-schutz
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (push) Canceled after 0s
AI-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
af2e44cca2
Neues Paket ai/internal/promptguard trennt Dokument-/Mailinhalt strukturell
(Marker + Systemhinweis) von der Aufgabenbeschreibung im Prompt-Aufbau und
erkennt auffaellige Instruktions-Muster vor der Verarbeitung. Eingebunden in
extract, classify, summarize, docchat und invoiceextract. extract.go prueft
zusaetzlich das deklarierte Feldformat (Datum/Betrag) statt jeden vom Modell
gemeldeten Wert stillschweigend zu uebernehmen.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
patrick merged commit 3970f3c939 into main 2026-09-28 02:05:11 +02:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: scripte/nexarch#235