K0NSULT // ai-truth/ipIII
k0nsult.cloud / ai-truth / ipIII / orchestrator / normalize · §4.2 K0-NORMALIZE

K0-NORMALIZE — warstwa normalizacji

Serce Evidence & Resilience Orchestrator: sprowadza heterogeniczny sygnał z dziesiątek konektorów do jednego, kanonicznego modelu obiektu. Bez wspólnego kształtu nie ma korelacji, priorytetyzacji ani dowodu. Tu surowy „finding" z dowolnego skanera staje się porównywalnym, oflagowanym prawnie, wycenionym pod ryzyko obiektem K0.

Specyfikacja docelowa (dev-doc). Status: ROADMAP — nie zaimplementowane produkcyjnie. Zgodnie z regułą §16: bez kodu + testu + endpointu = nie LIVE. Ta strona opisuje architekturę docelową warstwy K0-NORMALIZE (§4.2 dokumentu „K0NSULT Evidence & Resilience Orchestrator"), nie działający moduł produkcyjny. Co istnieje realnie dziś jest jawnie oznaczone LIVE z linkiem; wszystko pozostałe to projekt referencyjny. Granica: system nie wykonuje nieautoryzowanych testów, exploitacji ani hack-back poza pisemnym Rules of Engagement (RoE). Zero payloadów na tej stronie.

Stan realny vs. docelowy

Read-path API LIVE

Ścieżka odczytu /api/ip3/* serwuje statyczne obiekty demo w kanonicznym kształcie K0.

/api/ip3/incidents · /api/ip3/health

Smoke test LIVE

Zestaw smoke sprawdza dostępność read-path i zgodność kształtu odpowiedzi ze schematem obiektu K0.

→ status w roadmap-dev

PoC auth-skeleton LIVE

Szkielet autoryzacji (nagłówek operatora / sekret) — ramka, nie pełny RBAC. Bez normalizera write-path.

→ orchestrator

Normalizer write-path ROADMAP

Mapery per-konektor, deduplikacja, potok priorytetyzacji, zapis znormalizowanych obiektów — projekt, brak kodu produkcyjnego.

GAP §4.2 do implementacji

Jeden kształt obiektu. Wiele źródeł. Porównywalny dowód.

Konektor tłumaczy narzędzie → surowy rekord. K0-NORMALIZE tłumaczy surowy rekord → kanoniczny obiekt K0. Dopiero znormalizowany obiekt wchodzi do Truth Engine, Evidence Layer i Legal Engine. Nic nienormalizowanego nie liczy się jako dowód.

POZYCJA: KONEKTORK0-NORMALIZE §4.2TRUTH ENGINEEVIDENCELEGALPRIORYTET P0–P3

Obiekty kanoniczne modelu K0

Warstwa normalizuje każdy przychodzący sygnał do jednego z dwunastu typów obiektu. Każdy niesie public_id, źródło (konektor), znacznik czasu, status dowodowy i odnośniki do obiektów powiązanych.

ObiektRola w modeluKluczowe pola (kanoniczne)
AssetZasób podlegający ochronie — host, usługa, aplikacja, model AI, tożsamość, dane.asset_id, type, criticality, owner, exposure
FindingPojedyncze ustalenie skanera / analityka. Generyczny nośnik sygnału przed klasyfikacją.finding_id, source, raw_severity, asset_ref, evidence_ref
VulnerabilityPodatność techniczna, zwykle powiązana z CVE i wyceną CVSS/EPSS/KEV.cve, cvss, epss, kev, exploitability
IncidentZdarzenie bezpieczeństwa (cyber lub AI) skorelowane z findings i evidence.incident_id, type, level (L1–L4), status, priority
EvidenceDowód: URL, screenshot, hash SHA-256, log, IoC. Chain of custody.evidence_id, kind, sha256, confidence, custody
ControlZabezpieczenie / kontrola (techniczna lub organizacyjna) mapowana na ramkę.control_id, framework, state, coverage
TestWykonany test (skan, pentest w RoE, retest walidacyjny) i jego wynik.test_id, scope, roe_ref, result
TTPTechnika/taktyka/procedura — mapowanie na ATT&CK (i ATLAS dla AI).ttp_id, attack_id, tactic, technique
LegalFlagFlaga obowiązku prawnego wyzwolona automatycznie (AI Act, NIS2, KSC, RODO, DORA).flag_id, regime, article, clock, trigger
ActionKrok reakcji z playbooka; wymaga human-in-the-loop dla P0/P1.action_id, playbook_ref, owner, state
RetestDowód naprawy — walidacja domknięcia. Bez Retest incydent nie może być zamknięty.retest_id, action_ref, verdict, evidence_ref
ReportEksport dla organu / audytu: zegar raportowy, załączniki dowodowe, ślad audytowy.report_id, recipient, deadline, bundle

Potok priorytetyzacji

Normalizacja severity to funkcja deterministyczna: nie ufa jednej liczbie z jednego narzędzia. Surowa severity to wejście, nie werdykt. Kolejne warstwy podnoszą lub obniżają wynik, aż do priorytetu K0 P0 P1 P2 P3.

  POTOK PRIORYTETYZACJI  (K0-NORMALIZE §4.2)
  ============================================================

   [tool severity]        surowa ocena narzędzia (low/med/high/crit)
        │                  ── wejście, NIGDY nie werdykt końcowy
        ▼
   [CVSS / EPSS / KEV]    wycena podatności:
        │                   CVSS = dotkliwość teoretyczna
        │                   EPSS = prawdopodobieństwo exploitacji
        │                   KEV  = czy aktywnie wykorzystywana (CISA)
        │                   exploitability = dostępność exploita
        ▼
   [asset criticality]    krytyczność zasobu (Asset.criticality)
        │                   krytyczny bankowy core ≫ host testowy
        ▼
   [business impact]      wpływ biznesowy / ciągłość działania
        │                   MTTR, zależności, klienci, rozliczenia
        ▼
   [legal flag]           czy wyzwala LegalFlag?
        │                   AI Act art.73 / NIS2 24h / RODO 33
        │                   → obowiązek zgłoszenia PODNOSI priorytet
        ▼
   [evidence strength]    siła dowodu (Evidence.confidence 0–100)
        │                   słaby dowód = status GAP, nie eskalacja
        ▼
   ========================================================
   [ K0 PRIORITY ]  ──►  P0  P1  P2  P3
   ========================================================
   Zasada §16: priorytet zmienia stan tylko z dowodem.
  
Dlaczego nie jedna liczba. Skaner krzyczący „CRITICAL" na hoście testowym bez ekspozycji to szum. Podatność „medium" z flagą KEV na bankowym core z otwartym obowiązkiem NIS2 to P0. Normalizacja to właśnie ta różnica — kontekst zasobu, ryzyko, prawo i siła dowodu ważą surową severity.

Przykład: Generic Finding → Normalized Finding (§7.1 → §7.2)

Ten sam sygnał przed i po przejściu przez K0-NORMALIZE. Wejście jest płaskie i narzędziowe; wyjście jest kanoniczne, oflagowane prawnie, wycenione pod priorytet i spięte dowodem.

§7.1 · WEJŚCIE — surowy finding z konektora (kształt narzędziowy)
{
  "source": "scanner-x",
  "rule": "TLS-WEAK-CIPHER",
  "severity": "high",
  "host": "core-payments-03.bank.internal",
  "port": 443,
  "cve": "CVE-2025-XXXXX",
  "observed_at": "2026-07-04T09:12:00Z",
  "raw": "Negotiated TLS_RSA_WITH_3DES_EDE_CBC_SHA"
}
  
§7.2 · WYJŚCIE — Normalized Finding Output (kanoniczny obiekt K0)
{
  "finding_id": "K0-FND-2026-07-04-0731",
  "public_id": "FND-731",
  "object": "Finding",
  "source": { "connector": "scanner-x", "rule": "TLS-WEAK-CIPHER" },
  "asset_ref": {
    "asset_id": "AST-core-payments-03",
    "type": "service",
    "criticality": "critical",       // bankowy core płatności
    "exposure": "internal"
  },
  "vulnerability": {
    "cve": "CVE-2025-XXXXX",
    "cvss": 7.4,
    "epss": 0.61,                     // 61% — wysokie prawdopod.
    "kev": true,                      // aktywnie wykorzystywana
    "exploitability": "public-poc"
  },
  "raw_severity": "high",
  "business_impact": "high",          // ciągłość rozliczeń
  "legal_flags": [
    { "regime": "DORA", "trigger": "ict-risk", "clock": null },
    { "regime": "NIS2", "article": "23", "clock": "24h", "state": "candidate" }
  ],
  "evidence_ref": {
    "evidence_id": "EV-9f2a...",
    "kind": "scan-log",
    "sha256": "9f2a4c…e17b",
    "confidence": 82                  // dowód mocny → brak statusu GAP
  },
  "k0_priority": "P1",                // po potoku: podniesione z high
  "status": "OPEN",
  "ttp": [{ "attack_id": "T1557", "tactic": "credential-access" }],
  "normalized_at": "2026-07-04T09:12:03Z",
  "normalizer": "K0-NORMALIZE",
  "spec_status": "ROADMAP"            // §16: kształt referencyjny
}
  
Uczciwość §16. Powyższe JSON-y to kształt referencyjny schematu, nie odpowiedź żywego endpointu produkcyjnego. Wartości (CVE, hash, host) są przykładowe demo. Read-path LIVE serwuje obiekty w tym kształcie dla danych demonstracyjnych; write-path normalizer pozostaje ROADMAP. Żaden skan nie został wykonany na realnym „bank.internal" — to ilustracja mapowania pól.

Kontrakt warstwy

Wejście from Connectors

Surowe rekordy per-konektor (§4.1). Dowolny schemat narzędzia, byle z minimalnym zestawem: źródło, znacznik czasu, odnośnik zasobu.

Transformacja K0-NORMALIZE

Mapowanie pól → typ obiektu, deduplikacja, wzbogacenie (CVSS/EPSS/KEV), potok priorytetyzacji, przypięcie evidence i legal flags.

Wyjście to Truth Engine

Kanoniczny obiekt K0 z public_id, priorytetem P0–P3, statusem dowodowym i grafem powiązań. Gotowy do korelacji i eksportu.

Zasada nadrzędna. Normalizacja nie tworzy prawdy — porządkuje sygnał tak, by prawda dała się zweryfikować. Obiekt bez dowodu dostaje status GAP, nie priorytet. Priorytet bez Retest nie zamyka incydentu. Kształt kanoniczny to warunek konieczny audytu, nie sam audyt.