K0NSULT // ai-truth/ipIII
k0nsult.cloud / ai-truth / ipIII / orchestrator / response-retest

K0-RESPONSE — Działanie i retest ROADMAP

Warstwa §4.7 orkiestratora: maszyna stanów działania naprawczego (remediation) i twarda reguła zamknięcia. Nic nie zostaje uznane za naprawione bez dowodu naprawy, retestu, właściciela, daty, statusu dowodowego i zdarzenia audytowego. To ostatnie ogniwo łańcucha „incydent → wzmocniona odporność".

Specyfikacja docelowa (dev-doc). Status: ROADMAP — nie zaimplementowane produkcyjnie. Zgodnie z regułą §16: bez kodu + testu + endpointu = nie LIVE. Ta strona opisuje architekturę docelową K0-RESPONSE. Elementy oznaczone LIVE / LIVE (PoC) mają realne pokrycie (kod, test PASS, endpoint read-path); wszystko pozostałe nosi status ROADMAP i SYMULACJA (dane przykładowe/demo). Granica: system nie wykonuje nieautoryzowanych testów, exploitacji ani hack-back poza pisemnym RoE (Rules of Engagement). Zero payloadów na tej stronie.
Nie ma „VERIFIED" bez dowodu naprawy i retestu.

Działanie naprawcze to nie checkbox. Przejście do stanu VERIFIED wymaga sześciu warunków spełnionych łącznie — inaczej maszyna stanów odrzuca tranzycję. Ta reguła jest już egzekwowana w kodzie PoC (gałąź auth-skeleton), nie tylko opisana.

PĘTLA: FINDINGOWNERREMEDIATIONDOWÓD NAPRAWYRETESTEVIDENCEAUDITVERIFIED

Co jest realne dziś LIVE

Zgodnie z §16 rozdzielamy to, co ma pokrycie dowodowe, od architektury docelowej.

Read-path API LIVE

Ścieżka odczytu /api/ip3/* serwuje dane statusów i incydentów (tylko odczyt). Weryfikowalne przez smoke test.

/api/ip3/incidents · → dokumentacja API

Reguła zamknięcia w kodzie LIVE (PoC)

Gałąź auth-skeleton egzekwuje: zamknięcie działania tylko z dowodem o statusie CONFIRMED. Zestaw testów 15/15 PASS.

→ API Explorer (PoC)

Smoke test LIVE

Prod smoke potwierdza dostępność read-path i spójność status.json. Bez zielonego smoke — brak deployu.

→ Dogfooding / skuteczność

Maszyna stanów działania (action state machine) ROADMAP

Każde działanie naprawcze (action) powiązane z findingiem lub incydentem przechodzi przez zamknięty zbiór stanów. Tranzycje są jednokierunkowe poza jawnym REOPENED. Stan VERIFIED jest bramkowany (patrz reguła zamknięcia).

StatusZnaczenieWarunek wejściaDozwolone przejścia
OPENDziałanie zarejestrowane, brak właścicielaPowstało z findingu / incydentu→ ASSIGNED, CLOSED (odrzucone)
ASSIGNEDPrzypisany ownerWskazano właściciela + termin→ IN_PROGRESS, BLOCKED
IN_PROGRESSNaprawa w tokuOwner rozpoczął pracę→ REMEDIATED, BLOCKED
BLOCKEDZablokowane (zależność, decyzja, budżet)Wskazano blocker + uzasadnienie→ IN_PROGRESS, RISK_ACCEPTED
REMEDIATEDNaprawa wdrożona, oczekuje na retestZałączony dowód naprawy→ RETEST_PENDING
RETEST_PENDINGRetest zlecony / w kolejceZlecony retest (owner ≠ wykonawca)→ VERIFIED, REOPENED
VERIFIEDPotwierdzone retestem — bramkowane6 warunków łącznie (poniżej)→ CLOSED, REOPENED
RISK_ACCEPTEDRyzyko formalnie zaakceptowaneDecyzja właściciela ryzyka + podpis→ CLOSED, REOPENED
CLOSEDZamknięte (naprawione lub zaakceptowane)Z VERIFIED lub RISK_ACCEPTED→ REOPENED
REOPENEDWznowione (retest fail / regresja / nowy dowód)Dowód, że problem wrócił / nie zniknął→ ASSIGNED, IN_PROGRESS
ŚCIEŻKA GŁÓWNA: OPENASSIGNEDIN_PROGRESSREMEDIATEDRETEST_PENDINGVERIFIEDCLOSED

Reguła zamknięcia — 6 warunków bramki VERIFIED LIVE (PoC)

Nie można przejść do VERIFIED bez spełnienia wszystkich sześciu warunków. Reguła (1) — dowód o statusie CONFIRMED — jest już egzekwowana w kodzie PoC (gałąź auth-skeleton, 15/15 test PASS); pozostałe warunki są w specyfikacji docelowej (ROADMAP).

1 · Dowód naprawy LIVE (PoC)

Artefakt potwierdzający wdrożenie (diff/PR, wpis konfiguracji, ticket zmiany, screenshot, hash). Status dowodu musi być CONFIRMED, nie GAP/SYMULACJA.

2 · Retest ROADMAP

Powtórzenie testu, który wykrył problem — z wynikiem PASS. Wykonawca retestu ≠ owner naprawy (rozdział ról).

3 · Owner ROADMAP

Jednoznaczny właściciel działania (osoba/zespół). Bez ownera brak odpowiedzialności — tranzycja odrzucona.

4 · Data ROADMAP

Znacznik czasu naprawy i retestu (UTC). Umożliwia liczenie MTTR i zgodność zegarów raportowych.

5 · Status evidence ROADMAP

Poziom pewności dowodu (0–100) i klasa (CONFIRMED / GAP / SYMULACJA). VERIFIED wymaga CONFIRMED.

6 · Audit event ROADMAP

Niezmienialny wpis do dziennika audytu (kto, co, kiedy, na jakim dowodzie). Ślad dla KNF / CSIRT / DPO.

Bramka. transition(action, VERIFIED) zwraca sukces tylko gdy AND(dowód, retest, owner, data, evidence_status=CONFIRMED, audit_event). Brak choćby jednego warunku = REJECTED z powodem. W PoC egzekwowany jest warunek dowodu (CONFIRMED); reszta bramki jest w ROADMAP.

Playbook: Pentest Finding → Remediation (§11.1) ROADMAP

Kanoniczny przepływ od ustalenia pentestowego (w ramach autoryzowanego RoE) do zweryfikowanej naprawy. Zero payloadów, zero instrukcji ofensywnych — wyłącznie proces zarządczy.

PLAYBOOK §11.1  PENTEST FINDING -> REMEDIATION -> VERIFIED
============================================================
PRECONDITION:
  - Pisemne RoE (Rules of Engagement) obowiazuje i jest waine.
  - Zakres, okno czasowe, kontakt eskalacyjny — zatwierdzone.
  - Brak dzialania poza zakresem. Brak hack-back. Brak exploitacji
    poza uzgodnionym scope. (regula granicy — patrz disclaimer)

[1] INTAKE FINDINGU
    finding := { tytul, severity(P0-P3), asset, dowod(PoC-ref),
                 CVE?/CWE?, repro-steps(opis, BEZ payloadu) }
    -> rejestracja jako action.status = OPEN
    -> nadanie public_id, powiazanie z incydentem/assetem

[2] TRIAGE + PRIORYTET
    severity -> P0/P1/P2/P3  (P0/P1 => human-in-the-loop)
    duplikat? -> merge do istniejacego action
    -> action.status = ASSIGNED (owner + termin wg SLA)

[3] REMEDIATION (owner)
    plan naprawy -> wdrozenie (patch/config/segmentacja/rotacja)
    -> action.status = IN_PROGRESS
    zablokowane? -> BLOCKED (blocker + uzasadnienie)
                  -> ew. RISK_ACCEPTED (decyzja wlasc. ryzyka + podpis)

[4] DOWOD NAPRAWY  (warunek 1 bramki)
    zalacz artefakt: PR/diff-ref, wpis konfig, ticket zmiany, hash
    evidence.status := CONFIRMED  (nie GAP / nie SYMULACJA)
    -> action.status = REMEDIATED

[5] RETEST  (warunek 2; wykonawca != owner)
    powtorz test wykrywajacy -> wynik PASS/FAIL
    -> action.status = RETEST_PENDING
    FAIL -> action.status = REOPENED  (dowod regresji) -> [3]

[6] BRAMKA VERIFIED  (AND: 1..6)
    AND( dowod_naprawy, retest_PASS, owner, data,
         evidence.status=CONFIRMED, audit_event )
      = TRUE  -> action.status = VERIFIED
      = FALSE -> REJECTED(powod) — pozostaje w RETEST_PENDING

[7] CLOSURE + AUDIT
    audit_event := { kto, co, kiedy, dowod-ref, decyzja }  (immutable)
    -> action.status = CLOSED
    -> aktualizacja odpornosci (L4): loop incydent -> wzmocnienie
    -> ew. wpis do zegara raportowego (NIS2 24/72h, RODO 33/34)

[8] REOPEN (w kadym momencie)
    nowy dowod / regresja / retest fail
    -> action.status = REOPENED -> [2]
============================================================
GRANICA: caly przeplyw dziala TYLKO w ramach pisemnego RoE.
         Poza RoE system nie testuje i nie eksploituje. Zero payloadow.

Metryki pętli reakcji SYMULACJA

Wartości demonstracyjne — ilustrują format panelu, nie stan realnej infrastruktury. Dane realne pojawią się po implementacji write-path (ROADMAP).

41
Działania otwarte
demo · OPEN+ASSIGNED+IN_PROGRESS
6
RETEST_PENDING
demo · oczekują walidacji
3
REOPENED (7 dni)
demo · retest fail / regresja
100%
VERIFIED z dowodem
PoC · bramka egzekwowana
15/15
Testy bramki PASS
PoC · auth-skeleton
4d 6h
Mediana MTTR P1
demo · finding→VERIFIED

Priorytety i human-in-the-loop

PriorytetKlasa findinguReżim zamknięcia
P0Krytyczny — czynny wektor, dane, ciągłośćHuman-in-the-loop obowiązkowy; VERIFIED tylko z pełną bramką 6/6
P1Wysoki — realna ekspozycjaHuman-in-the-loop; retest przez niezależnego wykonawcę
P2Średni — ograniczony wpływBramka 6/6; retest może być zautomatyzowany
P3Niski / informacyjnyBramka 6/6 lub RISK_ACCEPTED z uzasadnieniem
Zasada nadrzędna warstwy. Działanie „naprawione na słowo" nie istnieje. Waluta zamknięcia to dowód naprawy + retest, zapisane niezmienialnie. To jedyne, co odróżnia zarządzanie podatnościami od listy życzeń — i jedyne, co wytrzyma pytanie audytora „skąd wiecie, że to naprawione?".
Przypomnienie §16. Ta strona to specyfikacja referencyjna (dev-doc). LIVE jest wyłącznie: read-path /api/ip3/*, smoke test oraz reguła dowodu w PoC (auth-skeleton, 15/15 PASS). Write-path, pełna bramka 6/6, retest engine i audit ledger są ROADMAP — do implementacji z kodem, testem i endpointem, zanim zostaną oznaczone jako LIVE.