⚠  PROJEKT — niezweryfikowany prawnie. Wymaga akceptacji przed publikacją.

Zgodność z NIS2 / KSC

Dyrektywa NIS2 (UE) 2022/2555  ·  Ustawa o KSC (Dz.U. 2018 poz. 1560 ze zm.)  ·  Ostatnia aktualizacja: 2026-10-22  ·  Wersja: 1.0

Niniejszy dokument opisuje, w jaki sposób platforma paraKSCol wspiera operatora usług kluczowych (OUK) lub dostawcę usług cyfrowych (DUC) w wykonywaniu obowiązków wynikających z dyrektywy NIS2 (art. 21 §2) oraz polskiej ustawy o Krajowym Systemie Cyberbezpieczeństwa (KSC). Dokument ma charakter informacyjny i nie stanowi porady prawnej. Zgodność prawna leży w gestii Dzierżawcy — platforma jest narzędziem wspomagającym.

§1. Zakres i odbiorca

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.

§2. Samoidentyfikacja (Kategoria podmiotu NIS2 / 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.

Jak działa kreator

Wyznaczenie IBTI / ITSO — platforma nie prowadzi rekordu wyznaczenia (z rodzajem wyznaczenia, podstawą prawną i okresem ważności). Istnieje wbudowana rola 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.

§3. Cykl raportowania incydentów NIS2

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.

§4. Biblioteka obowiązków KSC

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:

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).

Zakres katalogu (przykłady)

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.

§5. Paczka audytowa (eksport dowodów)

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).

§6. Wyznaczenie IBTI / ITSO i izolacja jednostek

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).

Mechanizm izolacji danych

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.

Rejestr desygnacji

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:

Dokument wyznaczenia IBTI/ITSO pozostaje dokumentem organizacji, prowadzonym poza platformą.

§7. Mapowanie NIS2 Art. 21 §2 (lit. a–j)

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

§8. Interfejs RODO

NIS2 i RODO nakładają częściowo pokrywające się obowiązki. Platforma obsługuje oba jednocześnie:

§9. Czego platforma nie robi (zakres negatywny)

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

§10. Kontakt i zgłoszenia

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