Incydenty CRA (Cyber Resilience Act)
Moduł Incydenty CRA pomaga spełnić obowiązek zgłaszania z Art. 14 unijnego Cyber Resilience Act: rejestruje aktywnie wykorzystywane podatności i poważne incydenty, pilnuje 24-godzinnego terminu wczesnego ostrzeżenia i przygotowuje strukturalny eksport JSON do złożenia w platformie ENISA SRP (Single Reporting Platform).
Ramy czasowe
Dział zatytułowany „Ramy czasowe”CRA Art. 14 wyróżnia trzy progi raportowania dla producentów produktów cyfrowych:
| Prog | Termin | Zakres |
|---|---|---|
| Wczesne ostrzeżenie | 24h | Fakt wykrycia, komponent, wstępna ocena |
| Raport incydentu | 72h | Opis przyczyny, zakres, zastosowane środki |
| Raport końcowy | 14 dni | Pełna przyczyna, środki zaradcze, rekomendacje |
Moduł liczy 24h automatycznie od discoveredAt. Pozostałe terminy (72h, 14 dni) śledź ręcznie - są one poza zakresem FREE.
Rejestracja incydentu
Dział zatytułowany „Rejestracja incydentu”Przejdź do Polski > Incydenty CRA > Record incident. Formularz:
| Pole | Uwagi |
|---|---|
| Title | Krótki tytuł (wymagany) |
| Affected component | Nazwa produktu / modułu (np. polski-free, custom-checkout-module) |
| Affected versions | Zakres wersji (np. <= 2.0.4) |
| Reporter | Osoba, która zgłoszenie zarejestrowała |
| External reference | Identyfikator z CVE / bug trackera / CVD (opcjonalny) |
| Kind | actively_exploited_vulnerability, security_incident, near_miss |
| Severity | critical, high, medium, low |
| Summary | Opis techniczny (wymagany) |
Po zapisaniu incydent jest w statusie Open i ma obliczone deadlineAt = discoveredAt + 24h.
Dispatcher powiadomień
Dział zatytułowany „Dispatcher powiadomień”Dla każdego incydentu Open dostępny jest przycisk Dispatch notification. Wysyła on równolegle:
- Webhook (POST JSON) na URL z opcji
polski_cra_incident_webhook - Email z podsumowaniem na adres z opcji
polski_cra_incident_email
Obie opcje konfigurujesz w Polski > Settings > CRA incidents. Po otrzymaniu odpowiedzi 2xx z webhooka lub pomyślnym wysłaniu emaila incydent przechodzi w status Notified i zapisuje notifiedAt.
Eksport JSON (ENISA SRP)
Dział zatytułowany „Eksport JSON (ENISA SRP)”Akcja Export JSON w liście zwraca plik cra-incident-<id>-<timestamp>.json z nagłówkiem Content-Type: application/json. Kształt odpowiada projektowi schematu ENISA Single Reporting Platform - pola pokrywają: identyfikację producenta, komponentu, czasu wykrycia, ocenę wagi, kategorie incydentu oraz opis.
Przykład:
{ "reference_id": "CVE-2026-1234", "kind": "actively_exploited_vulnerability", "severity": "high", "title": "Stored XSS in checkout notes", "affected_component": "polski-free", "affected_versions": "<= 2.0.4", "discovered_at": "2026-04-19T08:12:00+00:00", "deadline_at": "2026-04-20T08:12:00+00:00", "summary": "..."}// Po zarejestrowaniu incydentu (przed powiadomieniem).add_action('polski_cra_incident_recorded', function (int $id, $incident): void { // własna integracja: Jira, PagerDuty, Slack}, 10, 2);
// Gdy do terminu 24h zostały mniej niż 2h.add_action('polski_cra_incident_deadline_approaching', function ($incident): void { // eskalacja do DPO});Migracja 2.1.0
Dział zatytułowany „Migracja 2.1.0”Wersja 2.1.0 zakłada tabelę {$wpdb->prefix}polski_cra_incidents. Migracja uruchamia się automatycznie przy aktywacji - jeśli nie działa, wymuś ręcznie:
wp polski migrate --module=craUprawnienia
Dział zatytułowany „Uprawnienia”- UI i akcje:
manage_woocommerce - Webhook/email: dowolnie konfigurowalne (brak wymogu uprawnień - to kanały wyjściowe)
Ograniczenia
Dział zatytułowany „Ograniczenia”- Moduł nie śledzi automatycznie progu 72h / 14 dni (tylko 24h)
- Wykrywanie incydentów jest manualne - nie skanujemy logów
- Webhook nie posiada podpisu HMAC (planowane w PRO)
- Formularz nie wspiera załączników binarnych - dołącz je do zgłoszenia w ENISA SRP ręcznie