Nienaruszalny magazyn dowodów całego orchestratora: każdy artefakt liczony hashem SHA-256, znaczony czasem, wiązany łańcuchem dowodowym (chain of custody) i eksportowany jako podpisana paczka dla organu. To fundament doktryny claim ≤ proof — bez dowodu twierdzenie jest hipotezą.
K0-EVIDENCE nie ocenia, nie klasyfikuje i nie reaguje — wyłącznie utrwala i udowadnia. Truth Engine korzysta z jej hashy jako podstawy pewności, Legal Engine z jej eksportów jako materiału dla organu, Response & Retest z jej artefaktów jako dowodu naprawy.
Endpointy odczytowe /api/ip3/* serwują dane demonstracyjne warstwy (tabele incydentów, evidence). Tryb read-only, bez zapisu produkcyjnego.
Szkielet PoC liczy sha256 artefaktu i wpisuje wpis do łańcucha dowodowego (chain of custody). Zakres: skeleton + test jednostkowy, nie pełny pipeline produkcyjny.
Prod smoke sprawdza dostępność stron i read-path API portalu ipIII. Warstwa zapisu dowodów NIE jest objęta smoke — bo nie jest wdrożona.
Podpisany eksport, retencja, legal hold i budowa evidence package — zaprojektowane, nie zaimplementowane. Opis poniżej to specyfikacja docelowa.
Poniższa tabela to katalog funkcji docelowych (§4.4). Status LIVE oznacza element realnie działający; ROADMAP — zaprojektowany, niewdrożony.
| Funkcja | Opis | Priorytet | Status |
|---|---|---|---|
| Hash SHA-256 | Odcisk kryptograficzny każdego artefaktu; podstawa integralności i deduplikacji. | P0 | LIVE (PoC) |
| Timestamp | Znacznik czasu utrwalenia (UTC, ISO-8601); docelowo zewnętrzny trusted timestamp (RFC 3161). | P0 | ROADMAP |
| Source | Źródło dowodu: formularz, OSINT, log SIEM, konektor, komunikat CERT, wynik red-team wg RoE. | P1 | ROADMAP |
| Collector | Tożsamość zbierającego (agent / analityk / konektor) — kto i czym utrwalił. | P1 | ROADMAP |
| Chain of custody | Nieusuwalny, append-only łańcuch zdarzeń nad artefaktem: kto, kiedy, jaka operacja, poprzedni hash. | P0 | LIVE (PoC) |
| Visibility | Poziom widoczności: public / internal / restricted / sealed. Steruje ekspozycją i eksportem. | P1 | ROADMAP |
| Retention | Polityka retencji (okres przechowywania) zależna od typu i flag prawnych. | P2 | ROADMAP |
| Legal hold | Blokada usunięcia/modyfikacji na czas postępowania — nadrzędna wobec retencji. | P1 | ROADMAP |
| Signed export | Eksport podpisany kryptograficznie (integralność + weryfikowalność) dla organu / audytora. | P1 | ROADMAP |
| Evidence package | Spakowany komplet dowodowy incydentu w formatach ZIP / PDF / JSON z manifestem i hashami. | P1 | ROADMAP |
Może być ujawnione publicznie (np. IoC w threat-intel po deduplikacji, bez danych wrażliwych).
Widoczne dla zespołu SOC / GRC podmiotu. Domyślny poziom operacyjny.
Ograniczone do wskazanych ról (need-to-know): compliance, DPO, kierownik incydentu.
Zapieczętowane — dostęp tylko przez procedurę (legal hold, organ, sąd). Log każdego dostępu.
Każdy artefakt niesie ustandaryzowany rekord. Poniżej minimalny kształt (schema docelowy §4.4):
{
"evidence_id": "EV-2026-000481",
"incident_id": "INC-2026-00157",
"type": "log|screenshot|pcap|ioc|cve|document|redteam_finding",
"source_tool": "siem-connector:splunk | osint:manual | redteam:caldera(RoE#12)",
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
"collected_at": "2026-07-04T11:42:07Z",
"collected_by": "agent:ip3-collector-07 | analyst:tobara",
"visibility": "internal",
"status": "sealed:false | legal_hold:false | retention:P3Y",
"chain_of_custody":[
{ "seq":1, "actor":"agent:ip3-collector-07", "action":"CAPTURE",
"at":"2026-07-04T11:42:07Z", "prev_sha256":null },
{ "seq":2, "actor":"analyst:tobara", "action":"VERIFY",
"at":"2026-07-04T12:03:19Z", "prev_sha256":"e3b0c442…852b855" }
]
}
Uwaga: powyższy JSON to przykład formatu (demo schema), nie zapis realnego incydentu. Hash e3b0c442… to znany SHA-256 pustego ciągu — użyty ilustracyjnie.
Paczka dowodowa incydentu (§12.4) — deterministyczna struktura eksportu dla organu / audytora:
| Plik / katalog | Zawartość |
|---|---|
manifest.json | Spis paczki: id incydentu, lista artefaktów, ich hashe, wersja schematu, sygnatura. |
incident.json | Rekord incydentu: typ, poziom L1–L4, severity, priorytet P0–P3, oś czasu. |
findings.json | Ustalenia analityczne i (jeśli w zakresie RoE) findings red-team — bez payloadów. |
evidence/ | Katalog artefaktów źródłowych (logi, zrzuty, dokumenty) referowanych z manifestu. |
hashes.txt | Płaska lista SHA-256 wszystkich plików paczki — do szybkiej weryfikacji integralności. |
chain_of_custody.json | Append-only łańcuch dowodowy: kto, kiedy, jaka operacja nad każdym artefaktem. |
audit_events.json | Zdarzenia audytowe (dostęp, eksport, zmiana widoczności, legal hold). |
report.pdf | Ludzko-czytelny raport zbiorczy incydentu — do przekazania organowi. |
Pełna paczka (wszystkie pliki + katalog evidence/). Podpisana, z hashes.txt jako kotwicą integralności.
Tylko report.pdf — wersja narracyjna dla decydenta / organu, z odwołaniami do hashy.
Strumień maszynowy (manifest.json + rekordy) do integracji z systemem sprawy / GRC / SIEM.