Platforma jest adresowana do JST, szkół publicznych i instytucji podległych, które mogą być zobowiązane do spełnienia wymogów NIS2/KSC jako operatorzy usług kluczowych lub — po nowelizacji KSC — jako podmioty ważne. Platforma obsługuje również organizacje stosujące NIS2 dobrowolnie jako ramy zarządzania cyberbezpieczeństwem.
Dokument opisuje funkcje platformy według dziesięciu obszarów art. 21 §2 NIS2 (lit. a–j) oraz dodatkowych wymogów proceduralnych KSC.
Przed wdrożeniem kontroli niezbędne jest ustalenie, czy organizacja jest objęta zakresem NIS2 / KSC i w jakiej kategorii. Platforma udostępnia kreator samoidentyfikacji, który prowadzi administratora przez proces kwalifikacji.
ksc-2026.1 proponuje kategorię: podmiot kluczowy, podmiot ważny, podmiot ważny będący podmiotem publicznym, poza zakresem albo „wymaga konsultacji prawnej”, z uzasadnieniem i podstawą prawną. Wynik nie jest opinią prawną.nis2.self_identification.started, nis2.selfid.completed (propozycja), nis2.selfid.confirmed (zatwierdzenie), nis2.obligations.applied, nis2.selfid.reset i nis2.selfid.step_back, każdy z identyfikatorem aktora.itso, wskazanie imiennego ITSO dla placówki w rekordzie placówki oraz uprawnienia nadawane per placówka — itso nadany w placówce pracuje na zadaniach kontrolnych, przypisaniach i incydentach tej placówki; w Dzierżawcy JST role itso i school_director nadaje się wyłącznie per placówka, a samo wskazanie kogoś jako ITSO placówki niczego mu nie nadaje. Szczegóły w §6.
Art. 23 NIS2 i art. 11 KSC nakładają obowiązek raportowania incydentów w trzech etapach czasowych. Platforma obsługuje pełny cykl — od wykrycia do raportu finalnego — z wbudowanymi timerami terminów i stanem przepływu pracy.
| Etap | Termin (od wykrycia) | Treść wymagana | Wsparcie platformy |
|---|---|---|---|
| 24H Wczesne ostrzeżenie | 24 godziny | Klasyfikacja incydentu (poważny / nie); wstępna ocena; informacja o podejrzeniu działania zamierzonego lub transgranicznego. | Formularz wczesnego ostrzeżenia z predefiniowanymi klasyfikatorami; terminy liczone od wpisanego momentu wykrycia (nie później niż teraz; korekta na później tylko do 60 minut od rejestracji, z uzasadnieniem w dzienniku audytu); powiadomienie e-mail do IBTI przy zbliżaniu się terminu (T−4h). Kolejność czasów — wystąpienie nie później niż wykrycie, wykrycie nie później niż 5 minut po rejestracji — egzekwuje też baza danych ograniczeniami CHECK (incidents/0005), działającymi na obu wdrożeniach produkcyjnych od 2026-10-22 (sprawdzone skryptem tylko do odczytu deploy/check-p6b-live.sh), niezależnie od ścieżki zapisu. |
| 72H Zgłoszenie incydentu | 72 godziny | Ocena wpływu (liczba użytkowników, czas niedostępności); wskazanie przyczyn; opis zastosowanych środków. | Formularz raportu etapu; złożenie zapisywane w dzienniku audytu kodem incident.report.full_report. Incydent jest identyfikowany swoim identyfikatorem (UUID); platforma nie nadaje numerów w formacie KSC-INC. |
| 1M Sprawozdanie końcowe | Miesiąc od zgłoszenia 72 h | Szczegółowy opis; podatności; środki długoterminowe; wpływ transgraniczny; decyzja o ujawnieniu. | Formularz raportu końcowego; złożenie zapisywane w dzienniku audytu kodem incident.report.final_report; eksport paczki audytowej ZIP. Rekordy incydentu są przechowywane przez cały okres istnienia konta Dzierżawcy — nie istnieje automatyczne usuwanie. |
Wszystkie trzy etapy są powiązane z jednym rekordem incydentu. Zmiana stanu (np. 24h_reported → 72h_reported) jest nieodwracalna i rejestrowana w dzienniku audytu z sumą kontrolną SHA-256.
Platforma dostarcza katalog obowiązków KSC (wersja 2026.1, 63 pozycje), z którego powstają zadania kontrolne (ControlTask). Po zatwierdzeniu kwalifikacji podmiotu platforma tworzy zadania dla obowiązków właściwych dla tej kwalifikacji. Każde zadanie ma:
do zrobienia / w trakcie / zrobione / zablokowane / nie dotyczy,Zadania nie mają własnych załączników. Pliki dowodowe dołącza się do stanów zgodności w module programów kontroli (wymagania przypisywane placówkom przez JST), a potwierdzenia szkoleń pochodzą z importu z platformy szkoleniowej Irenly, gdy Operator skonfigurował połączenie platformy z Irenly (jedno ustawienie całej platformy we wdrożeniu paraKSCol, a nie ustawienie Dzierżawcy).
Samoidentyfikacja i wpis do wykazu; systematyczne szacowanie ryzyka i polityki bezpieczeństwa; środki z art. 8 ustawy (m.in. ciągłość działania, łańcuch dostaw, kryptografia, kontrola dostępu, zarządzanie aktywami, cyberhigiena); środki z załącznika nr 4 dla podmiotów publicznych (m.in. kopie zapasowe i testy ich odtworzenia, nadawanie i cofanie uprawnień, oprogramowanie antywirusowe, szkolenia pracowników); coroczny przegląd SZBI i coroczne szkolenie kierownika podmiotu; audyt bezpieczeństwa co 3 lata; obowiązki zdarzeniowe przy incydentach (24 h, 72 h, sprawozdanie końcowe). Częstotliwość wynika z obowiązku: jednorazowo, co roku, co 3 lata, w sposób ciągły albo przy zdarzeniu. Przypisanie części obowiązków i terminów to interpretacja przepisów czekająca na opinię eksperta.
Na żądanie audytora lub organu nadzorczego platforma generuje paczkę audytową w formacie ZIP. Paczka zawiera:
nis2-audit-pack-{subdomena}-{RRRRMMDDTHHMMSSZ}.zip
├── manifest.json # wersja 2: zakres, liczniki, kotwica łańcucha audytu oraz lista „files”
│ # ze skrótem SHA-256 i rozmiarem każdego pozostałego pliku
├── audit_chain_anchor.json # wynik weryfikacji łańcucha audytu w chwili eksportu, skrót ostatniego wiersza
├── audit_chain_rows.json # wiersze łańcucha audytu od początku (do 50 000) do niezależnego przeliczenia
├── obligations.json # katalog obowiązków
├── control_tasks.json # zadania kontrolne
├── incidents.json # incydenty
├── incident_reports.json # zgłoszenia/raporty incydentów
└── self_identification.json # historia samoidentyfikacji
Wszystkie pliki są w katalogu głównym archiwum i mają format JSON (UTF-8). Jeżeli podmiot ma włączone dodatkowe moduły, paczka zawiera też ich pliki (control_programs_*.json, vendors_*.json, assets_*.json) — każdy z nich również jest wymieniony w manifest.json. Paczka nie zawiera załączników (plików PDF, zrzutów ekranu), plików CSV ani haseł i sekretów uwierzytelniających.
Weryfikacja niezależna od platformy. Po rozpakowaniu (unzip nis2-audit-pack-….zip -d paczka && cd paczka) poniższe polecenie (Python 3, wyłącznie biblioteka standardowa; flaga -I sprawia, że Python nie wczyta żadnego modułu z rozpakowanej paczki i pominie zmienne środowiskowe PYTHON* — bez niej plik json.py podrzucony do paczki mógłby wypisać fałszywe OK) przelicza SHA-256 każdego pliku i porównuje z manifest.json; wypisuje OK albo listę plików zmienionych, brakujących lub dodanych i kończy się kodem 1:
python3 -I -c 'import hashlib,json,os,sys; m=json.load(open("manifest.json")); L={f["path"]: f for f in m["files"]}; bad=[p for p, f in L.items() if not os.path.isfile(p) or hashlib.sha256(open(p, "rb").read()).hexdigest() != f["sha256"]]; bad += sorted(set(os.listdir(".")) - set(L) - {"manifest.json"}); print("FAIL:", bad) if bad else print("OK:", len(L), "file(s) match manifest.json"); sys.exit(1 if bad else 0)'
Skróty w manifest.json wykrywają zmianę, obcięcie, usunięcie lub dodanie pliku po eksporcie. Nie są podpisem: kto może podmienić plik, może też podmienić manifest. Dlatego treść dziennika audytu weryfikuje się osobno — przeliczając łańcuch z audit_chain_rows.json według instrukcji w polu note pliku audit_chain_anchor.json i sprawdzając, że latest_row_hash występuje w kolumnie row_hash_hex eksportu dziennika audytu pobranego z platformy (/api/audit/export.csv).
Platforma obsługuje wielopoziomową strukturę organizacyjną (JST → jednostki podległe → szkoły / instytucje). Każdej placówce można wskazać imiennego ITSO (zob. niżej).
Każda tabela danych Dzierżawcy chroniona RLS nosi kolumnę tenant_id, a PostgreSQL wymusza izolację Dzierżawców na poziomie silnika — kod aplikacji nie może jej ominąć. Każda placówka ma własną jednostkę organizacyjną (org_unit_id), nadawaną przez bazę danych i niezmienną. Politykę per jednostka (org_unit_scope) ma sześć tabel: placówki, wyjątki, przypisania zadań kontrolnych, Zadania Kontrolne NIS2, samoidentyfikacja i incydenty; jednostkę wiersza ustawia wyzwalacz bazy danych na podstawie placówki wiersza. Aplikacja ustawia app.current_tenant_id przy każdym żądaniu, a app.current_org_unit_id — listę jednostek — dla użytkownika, którego wszystkie role są ograniczone do placówek.
Efekt: koordynator cyberbezpieczeństwa JST z rolą dla całego Dzierżawcy widzi dane wszystkich podległych placówek. Dyrektor lub ITSO szkoły w Dzierżawcy JST — role nadawane tam wyłącznie per placówka — widzi zadania, samoidentyfikację, incydenty, wyjątki i przypisania swojej placówki i pracuje na nich w granicach swojej roli; widzi też rekordy dotyczące całej organizacji (bez placówki), z wyjątkiem wyjątków od polityk i przypisań wymagań skierowanych do wszystkich placówek. Najpierw ogranicza to kod aplikacji, a baza danych jest zabezpieczeniem pod nim. Ryzyka, aktywa i stany zgodności kontroli są ograniczane per placówka wyłącznie w kodzie aplikacji. Placówka założona jako osobny Dzierżawca jest odizolowana od pozostałych przez RLS. Szczegóły: Biała Księga Bezpieczeństwa, §2.3.
Rekord wyznaczenia — nie jest zbudowany. Platforma nie prowadzi rejestru wyznaczeń z polami takimi jak rodzaj wyznaczenia, odwołanie do podstawy prawnej (np. art. 14 ust. 1 KSC) czy okres ważności. Wcześniejsza wersja tej strony publikowała taką tabelę pól; została wycofana 2026-10-12, bo żadne z tych pól nie istnieje w kodzie. Istnieje natomiast:
itso — jej nadanie lub odebranie jest zapisywane w dzienniku audytu kodem iam.user.role_change (role przed i po zmianie, aktor, czas);tenant.site.update z identyfikatorami użytkownika poprzedniego i nowego ITSO, także przy wskazaniu przez zaproszenie (wiersze zapisane przed tą zmianą, w październiku 2026, nie zawierają informacji, kogo wskazano); placówka może wskazać tylko członka Dzierżawcy, a zawieszenie lub usunięcie członkostwa ITSO czyści wskazanie i jest zapisywane w ten sam sposób;itso nadany w placówce pracuje na zadaniach kontrolnych, przypisaniach i incydentach tej placówki; w Dzierżawcy JST role itso i school_director nadaje się wyłącznie per placówka, a samo wskazanie kogoś jako ITSO placówki niczego mu nie nadaje; ITSO wskazany w placówce otrzymuje powiadomienie e-mail o nowym przypisaniu; przypomnienia o terminach zadań kontrolnych trafiają wyłącznie do ITSO będącego aktywnym członkiem.Dokument wyznaczenia IBTI/ITSO pozostaje dokumentem organizacji, prowadzonym poza platformą.
Poniższa tabela pokazuje, jak konkretne funkcje platformy wspierają każdy z dziesięciu obszarów wymaganych przez NIS2 art. 21 §2.
| Art. 21 §2 | Wymaganie (skrót) | Wsparcie platformy | Status |
|---|---|---|---|
| a | Polityki bezpieczeństwa informacji i analiza ryzyka | Rejestr ryzyk ze strategią postępowania (ograniczenie / akceptacja / przeniesienie / unikanie), właścicielem i planem działań; generator dokumentów SZBI, których zakres wynika z zatwierdzonej kwalifikacji, z edycją i zatwierdzaniem; rejestr wyjątków od polityk. | Dostępne |
| b | Obsługa incydentów | Pełny cykl 24 h / 72 h / miesiąc od zgłoszenia 72 h, liczony od momentu wykrycia; formularze raportowania; eksport paczki audytowej; incydenty przypisane do placówek. | Dostępne |
| c | Ciągłość działania, kopie zapasowe, zarządzanie kryzysowe | Zadania kontrolne z katalogu KSC dla planów ciągłości działania, kopii zapasowych i testów ich odtworzenia; platforma sama realizuje politykę 3-2-1 (R2 + B2, oba EU) dla danych Dzierżawców. | Dostępne |
| d | Bezpieczeństwo łańcucha dostaw i relacji z dostawcami | Rejestr dostawców (kategoria, krytyczność, daty umowy i przeglądu, oceny) powiązany z placówkami; zadanie kontrolne dla łańcucha dostaw; wykaz podwykonawców platformy: /legal/subprocessors. | Dostępne |
| e | Bezpieczeństwo w nabywaniu, projektowaniu i konserwacji systemów | Zadania kontrolne z katalogu KSC dla bezpieczeństwa nabywania i utrzymania systemów; rejestr aktywów z podatnościami (NVD); integracja z Jira Cloud, która tworzy zgłoszenia z incydentów. | Dostępne |
| f | Polityki i procedury oceny skuteczności środków zarządzania ryzykiem | Metryki compliance per dzierżawca; wskaźnik pokrycia kontrolami; historia zmian statusów; eksport CSV do analizy zewnętrznej. | Dostępne |
| g | Podstawowe praktyki higieny cybernetycznej i szkolenia | Zadania kontrolne dla cyberhigieny i szkoleń (termin, osoba odpowiedzialna, status); rejestr ukończonych szkoleń per pracownik, importowany z platformy szkoleniowej Irenly, gdy Operator skonfigurował połączenie platformy z Irenly (jedno ustawienie całej platformy we wdrożeniu paraKSCol, a nie ustawienie Dzierżawcy). | Dostępne |
| h | Polityki i procedury kryptografii i szyfrowania | Zadanie kontrolne dla polityki kryptografii; platforma stosuje TLS na brzegu Cloudflare, Argon2id, LUKS oraz szyfrowanie kopertowe pól poświadczeń kluczem DEK per Dzierżawca od 2026-10-10 (P0-1); od 2026-10-11 (wydanie R3b) jest to jedyna ochrona tych poświadczeń. | Dostępne |
| i | Bezpieczeństwo zaobów ludzkich, polityki dostępu, zarządzanie aktywami | RBAC per Dzierżawca z rolami nadawanymi dla całego Dzierżawcy albo w placówce; zaproszenia z przypisaniem roli; okresowe kampanie przeglądu dostępu (podpisana lista członków, ról i zakresów); rejestr aktywów. | Dostępne |
| j | Uwierzytelnianie wieloskładnikowe, SSO, bezpieczna komunikacja | Obowiązkowe MFA (TOTP lub WebAuthn) dla wszystkich kont z hasłem, przy czym konta SSO podlegają dostawcy tożsamości Dzierżawcy; SAML 2.0 SSO; OIDC per Dzierżawca; TLS na brzegu Cloudflare i szyfrowany tunel do serwera. | Dostępne |
NIS2 i RODO nakładają częściowo pokrywające się obowiązki. Platforma obsługuje oba jednocześnie:
Transparentne ograniczenia: poniższe funkcje są poza zakresem platformy — Dzierżawca musi zapewnić je samodzielnie lub przez innego dostawcę.
| Obszar | Co platforma robi | Czego nie robi |
|---|---|---|
| Zgłoszenie do CSIRT / organu | Prowadzi formularze raportów etapów (24 h / 72 h / miesiąc) z terminami i zapisem w dzienniku audytu; eksportuje paczkę audytową ZIP | Nie wysła automatycznie do CERT Polska / organu nadzorczego (API nie jest publiczne) |
| Testy penetracyjne | Rejestruje wyniki jako dowód | Nie przeprowadza testów penetracyjnych infrastruktury Dzierżawcy |
| Monitoring bezpieczeństwa (SOC/SIEM) | Integracja z systemami zewnętrznymi przez API | Nie jest systemem SIEM ani SOC — nie analizuje logów sieciowych Dzierżawcy |
| Porada prawna | Udostępnia szablony i checklisty | Nie świadczy usług prawnych ani compliance advisory; dokumenty są informacyjne |
| Certyfikacja ISO / NIS2 | Generuje dokumentację auditową | Nie wystawia certyfikatów; certyfikacja wymaga niezależnego audytora |
| Odzysk po ransomware | Procedury BCP/DRP jako zadania kontrolne | Nie jest rozwiązaniem backup/DR dla infrastruktury Dzierżawcy — tylko dla danych platformy |
| Pytania o NIS2 / KSC | compliance@parakscol.pl |
| Zgłoszenie incydentu (platforma) | security@parakscol.pl |
| Ogólne zapytania | kontakt@parakscol.pl |
| Organ nadzorczy (KSC) | CERT Polska / CSIRT GOV — cert.pl |
| Organ nadzorczy (RODO) | UODO — uodo.gov.pl |