K0NSULT // ai-truth/ipIII
k0nsult.cloud / ai-truth / ipIII / evidence / prompt-injection-pack

Prompt Injection Evidence Pack — struktura pakietu dowodowego

Gdy incydent AI dotyczy prompt injection, potrzebna jest jedna, powtarzalna struktura zapisu dowodu: co się stało, skąd przyszła instrukcja, jaki model i tool-call zadziałał, co ucierpiało i jak to zamknięto testem regresji. Ta strona opisuje POLA takiego pakietu — wyłącznie defensywnie. Nie publikujemy treści payloadów ataku; opis pól ma pomóc zespołowi blue udokumentować i zamknąć incydent.

Zakres i etyka. Materiał wyłącznie defensywny (blue / GRC). Opisujemy strukturę pól pakietu dowodowego, aby zespół obrony mógł spójnie udokumentować incydent — nie udostępniamy gotowych instrukcji ataku, payloadów ani technik obejścia. Wszystkie przykłady w polach są syntetyczne (placeholdery). Praca z realnym systemem — w tym odtwarzanie incydentu w retest — wyłącznie w granicach pisemnych Rules of Engagement.
9 pól. Jeden powtarzalny zapis dowodu incydentu prompt injection.

Pakiet ma prostą zasadę: każde pole musi dać się zweryfikować (link, hash, wpis w audit-logu) albo być jawnie oznaczone jako niepotwierdzone. To ten sam kontrakt claim ≤ proof co w reszcie ipIII — struktura poniżej jest dziś szablonem (MVP), a nie zautomatyzowanym generatorem; automatyzacja emisji pakietu jest oznaczona jako ROADMAP.

PRZEPŁYW POLA: kontekstźródłomodeltool-callwynikimpacted-assetproofremediationregression-test

Struktura pakietu — 9 pól

Kolumna Wymóg: MUST pole obowiązkowe, bez niego pakiet niekompletny · SHOULD zalecane, brak trzeba uzasadnić. Data wersji szablonu: 2026-07-05 (F9, MVP).

#PoleCo zapisujeJak weryfikowalneWymóg
1 kontekst context Gdzie i kiedy: aplikacja/usługa AI, środowisko (stg/prod), okno czasowe, rola użytkownika lub agenta, cel zadania w chwili incydentu. Wpis w audit-logu z sygnaturą czasu; identyfikator sesji/konwersacji. MUST
2 źródło source Skąd napłynęła instrukcja, która wywołała niepożądane zachowanie: kanał (prompt użytkownika, treść dokumentu, wynik narzędzia, dane z sieci — indirect injection). Opis kanału, nie treść payloadu. Referencja do artefaktu (id dokumentu, url, hash treści) — bez cytowania samej instrukcji ataku. MUST
3 model model Który model/wersja, parametry istotne dla powtarzalności (temperatura, system-prompt id — bez treści), warstwa guardrails aktywna w chwili zdarzenia. Metadane wywołania z logu inferencji; wersjonowany identyfikator system-promptu. MUST
4 tool-call tool_call Jakie narzędzie/funkcję model wywołał w efekcie i z jakimi zredagowanymi argumentami (sekrety i dane wrażliwe maskowane). Czy wywołanie było autoryzowane. Wpis w logu orkiestratora narzędzi; flaga autoryzacji; zamaskowane argumenty (hash + redakcja). MUST
5 wynik outcome Obserwowalny skutek: jakie działanie zostało wykonane lub jaka odpowiedź wygenerowana odbiegająca od polityki. Opis skutku, nie reprodukcja treści. Zrzut z logu odpowiedzi (zredagowany), status wykonania akcji, korelacja czasowa z tool-call. MUST
6 impacted-asset impacted_asset Co ucierpiało lub było zagrożone: system, dane, konto, integracja. Klasyfikacja wrażliwości i zasięg (jeden rekord vs zbiór). Mapowanie na rejestr aktywów (asset id), poziom klasyfikacji, ocena zasięgu w audit-logu. MUST
7 proof proof Dowód integralny: sha256 zebranych artefaktów, chain-of-custody (kto/kiedy zebrał), odnośniki do logów. Spina pola 1–6 w niezmienny pakiet. package_sha256 + łańcuch dozoru w bazie; weryfikacja przez /verify. MUST
8 remediation remediation Co wdrożono, by zamknąć podatność: filtr wejścia/wyjścia, ograniczenie uprawnień narzędzia, izolacja treści niezaufanej, zmiana system-promptu, human-in-the-loop dla wrażliwych akcji. Odnośnik do zmiany (commit/ticket), data wdrożenia, właściciel. Powiązanie z playbookiem. SHOULD
9 regression-test regression_test Test, który potwierdza, że po remediacji ten sam wektor już nie prowadzi do niepożądanego zachowania. Uruchamiany na danych syntetycznych, po RoE. Identyfikator testu + wynik PASS/FAIL z sygnaturą czasu; retest zamyka incydent w orkiestratorze. SHOULD

Szablon pakietu (pola, dane syntetyczne)

Poniżej struktura pól z placeholderami. Wartości są syntetyczne — służą pokazaniu kształtu zapisu, nie odtworzeniu żadnego ataku. Pola source/tool_call/outcome przechowują opis i referencje, nigdy treść payloadu.

{
  "pack": "prompt-injection-evidence",
  "template_version": "F9-MVP-2026-07-05",
  "incident_id": "AI-INC-<syntetyczny-id>",
  "context":        { "app": "<usługa-AI>", "env": "staging", "ts": "<ISO-8601>", "actor_role": "<rola>", "task": "<cel-zadania>" },
  "source":         { "channel": "indirect|direct", "artifact_ref": "<id/url>", "content_sha256": "<hash>", "note": "opis kanału, BEZ treści instrukcji" },
  "model":          { "name": "<model>", "version": "<wersja>", "system_prompt_id": "<id>", "guardrails": "<stan>" },
  "tool_call":      { "tool": "<narzędzie>", "args_redacted": "<zamaskowane>", "authorized": false, "log_ref": "<id>" },
  "outcome":        { "observed": "<opis-skutku>", "policy_deviation": true, "response_ref_redacted": "<id>" },
  "impacted_asset": { "asset_id": "<id>", "classification": "<poziom>", "scope": "<zasięg>" },
  "proof":          { "package_sha256": "<hash>", "chain_of_custody": [ "<kto/kiedy>" ], "log_refs": [ "<id>" ] },
  "remediation":    { "change_ref": "<commit/ticket>", "type": "<kontrola>", "deployed_at": "<ISO-8601>", "owner": "<osoba>" },
  "regression_test":{ "test_id": "<id>", "data": "synthetic", "result": "PASS|FAIL", "ts": "<ISO-8601>" }
}

Skrót pól

7
MUST — pola obowiązkowe
context · source · model · tool-call · outcome · impacted-asset · proof
2
SHOULD — zalecane
remediation · regression-test
0
Payloadów ataku
opisujemy pola, nie techniki
9/9
Pól weryfikowalnych
każde: link / hash / audit-log

Jak pakiet spina się z ipIII

1. Zgłoszenie. Incydent AI trafia przez /ai-incident — powstaje incident_id i szkielet pakietu z pustymi polami.
2. Uzupełnienie pól. Zespół blue wypełnia pola 1–6 z logów (kontekst → impacted-asset), zawsze referencjami i zredagowaną treścią, nie payloadem.
3. Domknięcie dowodu. Pole proof liczy package_sha256 i chain-of-custody; pakiet staje się niezmienny i weryfikowalny przez /verify.
4. Remediacja i regresja. Pola 8–9 wiążą zmianę (commit/ticket) z testem regresji na danych syntetycznych; PASS zamyka incydent, zgodnie z playbookiem.

Co jest MVP, a co ROADMAP

MVP (dziś). To szablon i doktryna pól — struktura zapisu, którą zespół wypełnia ręcznie, oraz zasada, że każde pole musi być weryfikowalne albo jawnie niepotwierdzone. Weryfikacja integralności pakietu opiera się na sha256 i chain-of-custody, tak samo jak reszta evidence w ipIII.
ROADMAP. Automatyczne wypełnianie pól z logów inferencji i orkiestratora narzędzi, generator pakietu z jednego kliknięcia, biblioteka testów regresji oraz podpis PAdES/TSA pakietu są oznaczone jako ROADMAP — nie deklarujemy ich jako działających. Zobacz znane ograniczenia.
Granica etyczna. Ten pakiet służy udokumentowaniu i zamknięciu incydentu, nie jego wywołaniu. ipIII jest narzędziem obrony i zgodności — nie publikuje instrukcji ataku, nie prowadzi nieautoryzowanych testów. Odtwarzanie wektora w regression-test odbywa się na danych syntetycznych i wyłącznie w granicach pisemnych Rules of Engagement. Mapowania obowiązków to wsparcie decyzji, nie porada prawna.

Powiązane: procedura reakcji krok po kroku → /playbook-prompt-injection · zgłoszenie incydentu AI → /ai-incident · weryfikacja integralności dowodu → /verify.