Інциденти CRA (Cyber Resilience Act)
Модуль Інциденти CRA допомагає виконати обов’язок звітування зі ст. 14 загальноєвропейського Cyber Resilience Act: реєструє активно експлуатовані вразливості та серйозні інциденти, стежить за 24-годинним терміном раннього попередження і готує структурований експорт JSON для подання на платформі ENISA SRP (Single Reporting Platform).
Часові рамки
Section titled “Часові рамки”CRA ст. 14 виокремлює три пороги звітування для виробників цифрових продуктів:
| Поріг | Термін | Обсяг |
|---|---|---|
| Раннє попередження | 24г | Факт виявлення, компонент, попередня оцінка |
| Звіт про інцидент | 72г | Опис причини, обсяг, застосовані заходи |
| Підсумковий звіт | 14 днів | Повна причина, коригувальні заходи, рекомендації |
Модуль рахує 24г автоматично від discoveredAt. Решту термінів (72г, 14 днів) відстежуйте вручну, вони поза межами FREE.
Реєстрація інциденту
Section titled “Реєстрація інциденту”Перейдіть до Polski > Інциденти CRA > Record incident. Форма:
| Поле | Примітки |
|---|---|
| Title | Короткий заголовок (обов’язковий) |
| Affected component | Назва продукту / модуля (наприклад, polski-free, custom-checkout-module) |
| Affected versions | Діапазон версій (наприклад, <= 2.0.4) |
| Reporter | Особа, яка зареєструвала звернення |
| External reference | Ідентифікатор з CVE / bug tracker / CVD (опціональний) |
| Kind | actively_exploited_vulnerability, security_incident, near_miss |
| Severity | critical, high, medium, low |
| Summary | Технічний опис (обов’язковий) |
Після збереження інцидент має статус Open і обчислений deadlineAt = discoveredAt + 24h.
Диспетчер сповіщень
Section titled “Диспетчер сповіщень”Для кожного інциденту Open доступна кнопка Dispatch notification. Вона надсилає паралельно:
- Webhook (POST JSON) на URL з опції
polski_cra_incident_webhook - Email з підсумком на адресу з опції
polski_cra_incident_email
Обидві опції налаштовуються в Polski > Settings > CRA incidents. Після отримання відповіді 2xx з webhook або успішного надсилання email інцидент переходить у статус Notified і зберігає notifiedAt.
Експорт JSON (ENISA SRP)
Section titled “Експорт JSON (ENISA SRP)”Дія Export JSON у списку повертає файл cra-incident-<id>-<timestamp>.json із заголовком Content-Type: application/json. Форма відповідає проєкту схеми ENISA Single Reporting Platform, поля охоплюють: ідентифікацію виробника, компонента, часу виявлення, оцінку серйозності, категорію інциденту та опис.
Приклад:
{ "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": "..."}// Після реєстрації інциденту (перед сповіщенням).add_action('polski_cra_incident_recorded', function (int $id, $incident): void { // власна інтеграція: Jira, PagerDuty, Slack}, 10, 2);
// Коли до терміну 24г залишилось менше ніж 2г.add_action('polski_cra_incident_deadline_approaching', function ($incident): void { // ескалація до DPO});Міграція 2.1.0
Section titled “Міграція 2.1.0”Версія 2.1.0 створює таблицю {$wpdb->prefix}polski_cra_incidents. Міграція запускається автоматично при активації, якщо не спрацювала, виконайте вручну:
wp polski migrate --module=cra- UI та дії:
manage_woocommerce - Webhook/email: налаштовуються довільно (немає вимоги прав, це вихідні канали)
Обмеження
Section titled “Обмеження”- Модуль не відстежує автоматично поріг 72г / 14 днів (лише 24г)
- Виявлення інцидентів є ручним, ми не скануємо логи
- Webhook не має підпису HMAC (планується в PRO)
- Форма не підтримує бінарних вкладень, додавайте їх до звернення в ENISA SRP вручну