Перейти до вмісту

Incydenty CRA (Cyber Resilience Act)

Цей контент ще не доступний вашою мовою.

Modul Incydenty CRA pomaga spelnic obowiazek zglaszania z Art. 14 unijnego Cyber Resilience Act: rejestruje aktywnie wykorzystywane podatnosci i powazne incydenty, pilnuje 24-godzinnego terminu wczesnego ostrzezenia i przygotowuje strukturalny eksport JSON do zlozenia w platformie ENISA SRP (Single Reporting Platform).

CRA Art. 14 wyroznia trzy progi raportowania dla producentow produktow cyfrowych:

ProgTerminZakres
Wczesne ostrzezenie24hFakt wykrycia, komponent, wstepna ocena
Raport incydentu72hOpis przyczyny, zakres, zastosowane srodki
Raport koncowy14 dniPelna przyczyna, srodki zaradcze, rekomendacje

Modul liczy 24h automatycznie od discoveredAt. Pozostale terminy (72h, 14 dni) sledz recznie — sa one poza zakresem FREE.

Przejdz do Polski > Incydenty CRA > Record incident. Formularz:

PoleUwagi
TitleKrotki tytul (wymagany)
Affected componentNazwa produktu / modulu (np. polski-free, custom-checkout-module)
Affected versionsZakres wersji (np. <= 2.0.4)
ReporterOsoba, ktora zgloszenie zarejestrowala
External referenceIdentyfikator z CVE / bug trackera / CVD (opcjonalny)
Kindactively_exploited_vulnerability, security_incident, near_miss
Severitycritical, high, medium, low
SummaryOpis techniczny (wymagany)

Po zapisaniu incydent jest w statusie Open i ma obliczone deadlineAt = discoveredAt + 24h.

Dla kazdego incydentu Open dostepny jest przycisk Dispatch notification. Wysyla on rownolegle:

  • 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 pomyslnym wyslaniu emaila incydent przechodzi w status Notified i zapisuje notifiedAt.

Akcja Export JSON w liscie zwraca plik cra-incident-<id>-<timestamp>.json z naglowkiem Content-Type: application/json. Ksztalt odpowiada projektowi schematu ENISA Single Reporting Platform — pola pokrywaja: identyfikacje producenta, komponentu, czasu wykrycia, ocene wagi, kategorie incydentu oraz opis.

Przyklad:

{
"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 {
// wlasna integracja: Jira, PagerDuty, Slack
}, 10, 2);
// Gdy do terminu 24h zostaly mniej niz 2h.
add_action('polski_cra_incident_deadline_approaching', function ($incident): void {
// eskalacja do DPO
});

Wersja 2.1.0 zaklada tabele {$wpdb->prefix}polski_cra_incidents. Migracja uruchamia sie automatycznie przy aktywacji — jesli nie dziala, wymus recznie:

Okno terminala
wp polski migrate --module=cra
  • UI i akcje: manage_woocommerce
  • Webhook/email: dowolnie konfigurowalne (brak wymogu uprawnien — to kanaly wyjsciowe)
  • Modul nie sledzi automatycznie progu 72h / 14 dni (tylko 24h)
  • Wykrywanie incydentow jest manualne — nie skanujemy logow
  • Webhook nie posiada podpisu HMAC (planowane w PRO)
  • Formularz nie wspiera zalacznikow binarnych — dolacz je do zgloszenia w ENISA SRP recznie