K0NSULT // ai-truth/ipIII
k0nsult.cloud / ai-truth / ipIII / orchestrator / tech-whitepaper

Technical Whitepaper — architektura ipIII dla CISO / AppSec / SOC

Dokument referencyjny dla zespołów technicznych oceniających Evidence & Resilience Orchestrator: architektura, endpointy, model danych, model dowodu, RBAC, audit log, chain-of-custody, integracje, tryby wdrożenia, model bezpieczeństwa i ograniczenia. Rozdzielamy jawnie co jest LIVE od tego, co jest ROADMAP. Wszystkie liczby i przykłady poniżej to dane syntetyczne. Doktryna: claim ≤ proof.

Status dokumentu: MVP. Ten whitepaper opisuje dowodliwe MVP warstwy evidence — nie system docelowy. Elementy realnie działające są oznaczone LIVE i mają pokrycie kodem, testem i endpointem; elementy planowane są oznaczone ROADMAP. Zgodnie z doktryną claim ≤ proof nie opisujemy funkcji, których nie potrafimy pokazać. Materiał ma charakter decision-support (wsparcie decyzji technicznej i zakupowej) — nie jest poradą prawną ani deklaracją poziomu bezpieczeństwa.
Jeden pipeline dowodowy: import → incydent → evidence-package → retest → close.

ipIII przyjmuje findings ze skanerów, normalizuje je do wspólnego modelu, buduje pakiet dowodowy z hashem integralności i łańcuchem custody, wspiera retest i domknięcie incydentu z dowodem — całość na żywej PostgreSQL, za JWT/RBAC i z audit-logiem. Poniżej rozkładamy każdą warstwę na części pierwsze i wskazujemy granicę między tym, co działa, a tym, co planowane.

WARSTWY: API / authdata modelevidence modelaudit + custodyintegracjedeployment

1. Architektura w skrócie

Monolityczna aplikacja usługowa z jednym magazynem stanu. Świadomie prosta na etapie MVP — mniej ruchomych części do zaudytowania.

  klient (CLI / UI / konektor)
        │  HTTPS + Bearer JWT
        ▼
  ┌───────────────────────────────┐
  │  API ipIII  (/api/ip3/v1)     │  ← RBAC middleware, walidacja wejścia
  │  ├─ import (parsery skanerów) │
  │  ├─ incidents / claims        │
  │  ├─ evidence-package (+hash)  │
  │  ├─ retest / close-with-proof │
  │  ├─ legal-triggers (support)  │
  │  └─ audit-log (append)        │
  └───────────────┬───────────────┘
                  ▼
        PostgreSQL (stan + audit + custody)

Warstwa API LIVE

REST pod /api/ip3/v1. Wejście walidowane, odpowiedzi JSON. Middleware RBAC przed handlerami.

Warstwa stanu LIVE

PostgreSQL jako pojedyncze źródło prawdy: incydenty, claims, evidence, audit, custody.

Konektory LIVE (import)

Parsery Burp / ZAP / Nessus / CSV normalizują findings do wspólnego modelu.

Warstwa integracji ROADMAP

Webhook ingestion, STIX/TAXII, SIEM (Splunk/Sentinel/QRadar), DefectDojo/ticketing sync.

2. Endpointy (wybór)

Pełna specyfikacja w /api-docs. Poniżej reprezentatywny podzbiór z wymaganą rolą.

Metoda / ścieżkaFunkcjaRola min.Status
POST /api/ip3/v1/importImport findings ze skanera (parser wg formatu)analystLIVE
GET /api/ip3/v1/incidentsLista incydentów (filtry: severity, status)viewerLIVE
POST /api/ip3/v1/incidents/:id/claimsDodanie claimu do incydentu (claim ≤ proof)analystLIVE
POST /api/ip3/v1/evidence-packageBudowa pakietu dowodowego + sha256 + manifestanalystLIVE
POST /api/ip3/v1/incidents/:id/retestRejestracja retestu (wynik: fixed / regression)analystLIVE
POST /api/ip3/v1/incidents/:id/closeDomknięcie z dowodem (close-with-evidence)leadLIVE
GET /api/ip3/v1/auditOdczyt audit-logu (append-only)auditorLIVE
GET /api/ip3/v1/coverageMetryki pokrycia dowodowego incydentówviewerLIVE
POST /api/ip3/v1/legal-triggers/evaluateMapowanie obowiązków (DORA/NIS2/RODO/AI Act) — decision-supportanalystLIVE
POST /api/ip3/v1/webhook/ingestStrumieniowy ingest zdarzeń (SIEM / STIX-TAXII)serviceROADMAP

3. Data model

Relacyjny, znormalizowany wokół incydentu. Uproszczony schemat (kolumny wybrane; dane przykładowe syntetyczne).

incident      (id, title, severity, status, source, created_at, closed_at)
finding       (id, incident_id, scanner, cve, cvss, epss_hint, raw_ref)
claim         (id, incident_id, statement, proof_ref, verdict)          -- claim ≤ proof
evidence      (id, incident_id, kind, blob_ref, package_sha256, created_at)
retest        (id, incident_id, result, tester, evidence_ref, ts)
custody_event (id, evidence_id, actor, action, prev_hash, hash, ts)     -- chain-of-custody
audit_event   (id, actor, role, action, target, ts)                     -- append-only
user_role     (user_id, role)                                           -- RBAC

Incident-centryczny

Findings, claims, evidence i retesty wiszą pod incydentem. Jeden agregat = jeden przedmiot audytu.

claim ≤ proof w schemacie

claim.proof_ref i verdict wymuszają, że twierdzenie ma wskazać dowód, inaczej pozostaje GAP.

Append-only tam, gdzie trzeba

audit_event i custody_event są dopisywane, nie modyfikowane w miejscu.

4. Evidence model & chain-of-custody

Pakiet dowodowy jest samoopisujący: manifest listuje artefakty, każdy z hashem, a łańcuch custody wiąże zdarzenia w sekwencję.

Manifest. Lista artefaktów (findings, zrzuty, retesty) z ich rozmiarem i hashem, plus metadane engagementu.
Integralność. Całość pakietu spinana jednym package_sha256 — zmiana dowolnego bajtu unieważnia hash.
Chain-of-custody. Każde zdarzenie (custody_event) zapisuje aktora, akcję, prev_hash i hash — łańcuch pozwala wykryć wstawienie/usunięcie ogniwa.
Granica dowodu — uczciwie. sha256 dowodzi niezmienności treści pakietu, ale to nie jest kwalifikowany podpis elektroniczny. Podpis PAdES i znacznik czasu TSA (RFC 3161), a docelowo podpis PQC, są ROADMAP. Dopóki ich nie ma, pakiet ma wartość operacyjną i integralnościową, a nie formalno-prawną najwyższego rzędu. Szczegóły granic → /known-limitations.

5. RBAC

Kontrola dostępu oparta na rolach, egzekwowana w middleware przed handlerem. Model najmniejszych uprawnień.

RolaZakresPrzykładowe uprawnienia
viewerodczytlista incydentów, coverage, dashboard
analystpraca operacyjnaimport, claims, evidence-package, retest, legal-triggers
leaddomknięciaclose-with-evidence, zatwierdzenia
auditorwgląd rozliczalnyodczyt audit-logu i custody, bez modyfikacji
servicemaszynowyingest webhook (ROADMAP)
Auth dziś vs docelowo. JWT + RBAC działają (LIVE), ale token jest wystawiany lokalnie, a konta seedowane — brak OIDC / federacji tożsamości. Wymiana na Keycloak / JWKS (walidacja podpisu z zewnętrznego IdP, OIDC authorization-code) jest priorytetem P0 i pozostaje ROADMAP.

6. Audit log

Rozliczalność każdej zmiany stanu. Log jest dopisywany, adresowany rolą aktora i przeznaczony do odczytu przez rolę auditor.

7. Integracje

IntegracjaKierunekStatus
Parsery skanerów (Burp / ZAP / Nessus / CSV)import → ipIIILIVE
Evidence-package (JSON + PDF board-pack)ipIII → eksportLIVE
Legal Trigger Engine (DORA/NIS2/RODO/AI Act)wewn. decision-supportLIVE
DefectDojo / ticketing (Jira-style)ipIII ↔ trackerROADMAP
SIEM (Splunk / Microsoft Sentinel / QRadar)SIEM → ipIII (webhook)ROADMAP
STIX / TAXII (MISP / OpenCTI)dwukierunkowoROADMAP
CVE enrichment online (NVD / CISA KEV / EPSS)lookup → ipIIIROADMAP (dziś offline hint)

8. Tryby wdrożenia

Managed (hosted) LIVE

Instancja prowadzona przez K0NSULT: aplikacja + PostgreSQL, TLS na warstwie hostingu. Najszybsza ścieżka pilota.

Self-hosted (VPC klienta) ROADMAP

Wdrożenie w infrastrukturze klienta (kontener + własna baza). Wymaga paczki wdrożeniowej i dokumentacji ops.

Multi-tenant (współdzielona) ROADMAP

Izolacja per organizacja: tenant scoping + Row-Level Security w PostgreSQL, rozdzielone audit-logi. Priorytet P1.

9. Model bezpieczeństwa

Pełny opis warstwy bezpieczeństwa i modelu zagrożeń → /security-architecture. Skrót poniżej.

Uwierzytelnianie

Bearer JWT na każdym wywołaniu. ROADMAP: OIDC/JWKS z zewnętrznego IdP.

Autoryzacja

RBAC w middleware, najmniejsze uprawnienia, rola sprawdzana przed handlerem. LIVE

Transport

TLS jednostronny na hostingu. mTLS (wzajemny) między usługami/konektorami — ROADMAP P0.

Integralność danych

Hash sha256 pakietu + chain-of-custody. Podpis PAdES/TSA — ROADMAP.

Rozliczalność

Append-only audit-log dostępny dla roli auditor. LIVE

Dane

Przykłady i seedy są syntetyczne. Brak danych osobowych klientów w środowisku demo.

Granica etyczna i prawna. ipIII jest narzędziem obrony i zgodności (GRC / blue-team). Nie wykonuje nieautoryzowanych skanów ani exploitacji. Legal Trigger Engine i mapowania obowiązków to wsparcie decyzji, nie porada prawna — każdy draft do organu wymaga przeglądu przez radcę/kancelarię. Wszelkie działania o charakterze testu bezpieczeństwa wyłącznie w granicach pisemnych Rules of Engagement.

10. Ograniczenia (skrót)

Pełny rejestr z ryzykiem, mitigacją i priorytetem → /known-limitations.

2
P0 — enterprise
Auth (OIDC/JWKS) · Transport (mTLS)
4
P1 — partner/bank
PAdES · Tenancy · CVE online · SIEM
1
Trwałe z założenia
Legal = decision-support
MVP
Status dokumentu
LIVE vs ROADMAP jawnie rozdzielone
„100%" u nas znaczy pokrycie dowodowe, nie nieprzenikalność. Deklarujemy dokładnie tyle, ile potrafimy pokazać kodem, testem i endpointem. Elementy bez dowodu są oznaczone ROADMAP, nie LIVE — to ta sama doktryna claim ≤ proof, która rządzi całym ipIII.

Powiązane: model bezpieczeństwa i zagrożeń → /security-architecture · specyfikacja endpointów → /api-docs · rejestr ograniczeń → /known-limitations.