Security incidents register
El registro de incidentes le permite documentar eventos de seguridad en la tienda. Facilita el cumplimiento del Cyber Resilience Act (CRA), un reglamento de la UE que exige un registro de incidentes para los productos con elementos digitales.
Qué es el CRA
Section titled “Qué es el CRA”El Cyber Resilience Act (CRA) es un reglamento de la Unión Europea que establece requisitos de ciberseguridad para los productos con elementos digitales. Los vendedores están obligados a:
- Mantener un registro de incidentes de seguridad
- Notificar los incidentes a las autoridades de supervisión en un plazo de 24 horas
- Informar a los clientes sobre las vulnerabilidades de seguridad detectadas
- Documentar las acciones correctivas
Acceso al registro
Section titled “Acceso al registro”Vaya a WooCommerce > Polski > Tools > Security Incidents. El registro está disponible para los usuarios con el permiso manage_woocommerce.
Registrar un incidente
Section titled “Registrar un incidente”Haga clic en Add Incident y complete el formulario:
Campos del formulario
Section titled “Campos del formulario”| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Título | text | Sí | Descripción breve del incidente |
| Fecha de detección | datetime | Sí | Cuándo se detectó el incidente |
| Fecha de ocurrencia | datetime | No | Cuándo ocurrió realmente el incidente |
| Categoría | select | Sí | Tipo de incidente |
| Prioridad | select | Sí | Crítica / Alta / Media / Baja |
| Descripción | textarea | Sí | Descripción detallada del evento |
| Productos afectados | multiselect | No | Productos de WooCommerce afectados |
| Alcance del impacto | select | Sí | Número de clientes afectados |
| Acciones tomadas | textarea | No | Descripción de las acciones correctivas |
| Estado | select | Sí | Nuevo / En curso / Resuelto / Cerrado |
| Persona responsable | select | No | Usuario de WordPress asignado |
| Notificado a la autoridad | checkbox | No | Si se notificó a la autoridad de supervisión |
| Fecha de notificación al organismo | datetime | No | Cuándo se notificó a la autoridad |
| Clientes notificados | checkbox | No | Si se notificó a los clientes |
| Fecha de aviso a clientes | datetime | No | Cuándo se notificó a los clientes |
| Archivos adjuntos | file | No | Logs, capturas de pantalla, informes |
Categorías de incidentes
Section titled “Categorías de incidentes”| Categoría | Descripción |
|---|---|
| Violación de datos | Acceso no autorizado a datos personales |
| Malware | Malware, skimmer, backdoor |
| Ataque DDoS | Ataque de denegación de servicio |
| Acceso no autorizado | Compromiso de una cuenta de administrador o cliente |
| Vulnerabilidad de software | Vulnerabilidad detectada en un plugin o tema |
| Phishing | Ataque de phishing dirigido a los clientes de la tienda |
| Manipulación de datos | Cambio no autorizado de datos (precios, pedidos) |
| Otros | Otros eventos de seguridad |
Escala de impacto
Section titled “Escala de impacto”| Alcance | Descripción |
|---|---|
| Sin impacto | Incidente detectado y bloqueado |
| Un solo cliente | Afecta a 1 cliente |
| Varios clientes | Afecta a 2-10 clientes |
| Muchos clientes | Afecta a 11-100 clientes |
| Masivo | Afecta a más de 100 clientes |
Lista de incidentes
Section titled “Lista de incidentes”El registro muestra una tabla de todos los incidentes con las columnas:
- ID - número de incidente
- Fecha - fecha de detección
- Título - descripción breve
- Categoría - tipo de incidente
- Prioridad - etiqueta de color (rojo/naranja/amarillo/gris)
- Estado - estado actual
- Responsable - persona asignada
- Notificación - si se notificó a la autoridad de supervisión
Filtrado y ordenación
Section titled “Filtrado y ordenación”La lista permite filtrar los incidentes por:
- Categoría
- Prioridad
- Estado
- Fecha (rango de fechas)
- Persona responsable
Ordenación por cualquier columna (ascendente/descendente).
Búsqueda
Section titled “Búsqueda”El campo de búsqueda busca en los títulos y las descripciones de los incidentes.
Cronología del incidente
Section titled “Cronología del incidente”Cada incidente dispone de una cronología que documenta el orden de las acciones:
2025-06-15 08:30 - Incidente detectado por el sistema de monitorización2025-06-15 08:45 - Incidente asignado a Jan Kowalski2025-06-15 09:00 - Análisis de logs iniciado2025-06-15 10:30 - Origen identificado - acceso no autorizado a través de una vulnerabilidad en el plugin X2025-06-15 11:00 - Plugin X actualizado a la última versión2025-06-15 11:30 - Contraseñas de todos los administradores cambiadas2025-06-15 12:00 - Incidente notificado a la UODO2025-06-15 14:00 - Notificación enviada a los clientes afectados2025-06-15 15:00 - Estado cambiado a "Resuelto"Las entradas de la cronología se añaden automáticamente (cambios de estado, asignaciones) y manualmente (notas, acciones).
Exportación CSV
Section titled “Exportación CSV”Haga clic en Export CSV encima de la tabla de incidentes. La exportación incluye:
Columnas de la exportación
Section titled “Columnas de la exportación”| Columna | Descripción |
|---|---|
incident_id | Número de incidente |
title | Título |
detection_date | Fecha de detección |
occurrence_date | Fecha de ocurrencia |
category | Categoría |
priority | Prioridad |
description | Descripción |
affected_products | ID de los productos afectados |
impact_scope | Alcance del impacto |
actions_taken | Acciones tomadas |
status | Estado |
responsible_person | Persona responsable |
reported_to_authority | Si se notificó a la autoridad |
report_date | Fecha de notificación al organismo |
customers_notified | Si se notificó a los clientes |
notification_date | Fecha de aviso a clientes |
resolution_date | Fecha de resolución |
Filtrado de la exportación
Section titled “Filtrado de la exportación”La exportación puede limitarse a:
- Un rango de fechas seleccionado
- Una categoría seleccionada
- Un estado seleccionado
// Hook to modify export dataadd_filter('polski/security_incidents/export_data', function (array $data): array { // Add a custom column foreach ($data as &$row) { $row['custom_field'] = 'value'; } return $data;});Notificaciones
Section titled “Notificaciones”El sistema envía notificaciones automáticas:
| Evento | Destinatarios | Canal |
|---|---|---|
| Nuevo incidente crítico | Todos los administradores | Correo electrónico |
| Cambio de estado del incidente | Persona responsable | Correo electrónico |
| Incidente sin acción > 24h | Persona responsable | Correo electrónico |
| Plazo de notificación próximo | Administradores | Correo electrónico |
Configuración de las notificaciones: WooCommerce > Polski > Tools > Incidents > Notifications.
Detección automática
Section titled “Detección automática”El módulo puede registrar automáticamente ciertos eventos:
- Inicios de sesión fallidos - serie de intentos de inicio de sesión fallidos (fuerza bruta)
- Cambios en archivos del núcleo - modificación de los archivos del núcleo de WordPress
- Nuevo usuario administrador - creación de una cuenta con rol de administrador
- Cambios de permisos - elevación de los permisos de una cuenta existente
Los eventos detectados automáticamente se registran con una categoría y una prioridad, pero requieren verificación manual (estado “Nuevo”).
// Disable automatic detectionadd_filter('polski/security_incidents/auto_detect', '__return_false');Creación programática de incidentes
Section titled “Creación programática de incidentes”do_action('polski/security_incidents/create', [ 'title' => 'SQL injection attempt detected', 'category' => 'unauthorized_access', 'priority' => 'high', 'description' => 'SQL injection attempt detected in the product_id parameter.', 'detection_date' => current_time('mysql'), 'status' => 'new',]);Resolución de problemas
Section titled “Resolución de problemas”Las notificaciones no llegan - compruebe la configuración de correo electrónico de WordPress. Se recomienda usar un plugin SMTP (por ejemplo, WP Mail SMTP) en lugar de la función predeterminada wp_mail().
La exportación CSV devuelve un archivo vacío - compruebe el filtrado. Si los filtros son demasiado restrictivos, el resultado puede quedar vacío.
La detección automática genera demasiadas alertas - ajuste los umbrales en la configuración del módulo. El umbral predeterminado para inicios de sesión fallidos es de 5 en 15 minutos, lo que puede ser demasiado bajo para tiendas con muchos usuarios.
Informar de problemas: github.com/wppoland/polski/issues