Skip to main contentSkip to footer
Comunicados

ReportedIP Hive 2.1.62: un registro de auditoría que responde al ticket de asistencia técnica

Patrick Schlesinger
ReportedIP Hive 2.1.62 release card: audit trail with 8 trigger groups, 48 events with actor, agent and object, and 90 days of retention adjustable from 1 to 365

ReportedIP Hive 2.1.62 convierte el registro de auditoría de ocho «hooks» de cuenta en un historial de quién ha modificado qué en un sitio web de WordPress: ajustes con el valor antiguo y el nuevo, plugins y temas, páginas y entradas, menús y widgets, archivos guardados en el editor integrado, cuentas de usuario y, en una red, sitios web y superadministradores. Cada fila indica el nombre del usuario que realizó la acción, cómo se recibió la solicitud y el objeto afectado, de modo que la próxima solicitud de asistencia sobre un enlace permanente roto o una página desaparecida tenga una respuesta antes de que nadie empiece a hacer conjeturas.

Actualiza desde el panel de administración de WordPress o descarga el archivo ZIP de la versión 2.1.62 en GitHub. El registro de auditoría forma parte del plan Business; la lista de funciones de cada plan se encuentra en la página de documentación del plugin Hive.

Lo que recoge el registro de auditoría en la versión 2.1.62

Hasta ahora, el registro recopilaba datos sobre inicios de sesión, restablecimientos de contraseñas y cambios en perfiles y roles. Esto responde a la pregunta de «quién ha iniciado sesión», pero no a las cuestiones que realmente dan lugar a un caso de mantenimiento: quién cambió la estructura de los enlaces permanentes la noche en que todos los enlaces antiguos empezaron a fallar, quién desactivó el plugin de la tienda, quién movió el aviso legal a la papelera, quién guardó un archivo de tema minutos antes de que apareciera la pantalla en blanco. El nuevo registro abarca ocho grupos de desencadenantes, con un total de 48 tipos de eventos.

Grupo de activaciónEventos registradosPor defecto
Entradas y salidasIniciar sesión, iniciar sesión desde una nueva dirección, intento fallido, cerrar sesiónapagado
Cuentas de usuarioRegistro, eliminación, perfil, cambios en el correo electrónico y la contraseña, cambios de rol del usuario actual, restablecimiento de contraseñas, bloqueo de cuentas, sesiones finalizadas, modificación de las capacidades de los rolesen
Páginas y entradasPublicado, sin publicar, enviado a la papelera, restaurado, eliminado, URL modificadaen
Plugins, temas y núcleoInstalado, actualizado, activado, desactivado, eliminado, se ha cambiado de tema, se ha actualizado el núcleo de WordPress, con la versión anterior y la posterioren
Configuración del sitio web26 opciones básicas, como la dirección del sitio web, los enlaces permanentes, la configuración de lectura, de comentarios, de registro y de actualizaciones, además de cada una de las 170 opciones de Hive, cada una con su valor anterior y su nuevo valoren
Menús y widgetsMenús creados, modificados y eliminados; ubicaciones de los menús; widgets añadidos o eliminados de una barra lateralen
Editor de archivos de temas y pluginsUn archivo guardado mediante el editor integrado, que solo se registra cuando el archivo ha sufrido cambios realesen
Red (Multisite)Sitios web creados, modificados, archivados y eliminados; usuarios añadidos o eliminados de un sitio web; concesión o revocación de permisos de superadministradoren

Las entradas de sesión permanecen desactivadas por defecto, ya que son, con diferencia, las filas que generan más alertas, y los intentos fallidos ya figuran en el registro de seguridad junto con la escala de bloqueo correspondiente. Los otros siete grupos son los que se necesitan para gestionar un caso de asistencia técnica, por lo que vienen activados de serie.

En cada fila se indican el actor, el agente y el objeto.

Ahora, una entrada de auditoría incluye tres datos que antes no contenía. El usuario responsable es la cuenta con la que se ha iniciado sesión y que ha realizado el cambio, no la cuenta a la que se refería el cambio; esta última se ha trasladado a las nuevas columnas del objeto (object_type, object_id, object_label, versión del esquema 17, añadidas por dbDelta durante la actualización). El agente indica cómo se recibió la solicitud: navegador, WP-CLI, cron, REST o AJAX, de modo que se puede distinguir una actualización automática del plugin a las tres de la madrugada de un administrador que hace clic en el botón. Y el objeto permanece vinculado mientras siga existiendo: una página abierta en el editor, un usuario en su perfil, un menú en la pantalla de menús.

Los valores antiguos y nuevos se almacenan para los cambios en la configuración, limitados a 500 caracteres, con una lista que recoge lo que se ha añadido y lo que se ha eliminado, en lugar de truncarse de forma que el texto resulte incomprensible. Los datos confidenciales nunca llegan a la tabla: una clave de datos o un nombre de opción que haga referencia a una contraseña, un token, una clave o un código mantiene sus valores ocultos, lo que incluye tanto la Community Access Key como cualquier credencial de terceros que pueda contener una opción incluida en la lista Whitelist.

Lo que deliberadamente no es una fila

  • Las guardadas automáticas, las revisiones y los borradores automáticos, así como los tipos de entrada internos que el editor de bloques y el Personalizador crean por sí mismos.
  • Las escrituras repetidas de una opción por parte del Personalizador durante un único proceso de guardado, y el segundo gancho que activa WordPress para la misma acción. Las ubicaciones de los menús y la disposición de los widgets se almacenan como una diferencia y se deduplican a partir de esa diferencia, por lo que un segundo cambio real en la misma solicitud sigue aplicándose.
  • El sufijo que añade WordPress cuando una entrada se envía a la papelera, el rol que WordPress asigna durante la creación de una cuenta y las eliminaciones por sitio web que provoca la eliminación de un usuario en toda la red en cada uno de los sitios web.
  • Un guardado del editor de archivos que fue rechazado: el grupo del editor calcula el hash del archivo antes de que el núcleo lo escriba y lo compara al cerrarse, y solo un hash modificado genera una fila.

Los desencadenantes y la retención son ajustes

Los ocho grupos son botones de la pestaña «Privacidad y registros» de la página «Protección», almacenados como reportedip_hive_audit_triggers y se gestionan como cualquier otra configuración del Registry, por lo que MainWP y Cloud Fleet Management aplican el mismo valor a toda la flota. El valor predeterminado de retención ha pasado de 30 a 90 días y se puede establecer entre 1 y 365. La limpieza nocturna ya no elimina un lote delimitado al día; se ejecuta en los mismos bloques de 5.000 filas y con el mismo límite de 20 segundos que el registro de seguridad, por lo que una tabla que haya crecido durante meses se vacía en unas pocas noches sin mantener un bloqueo prolongado.

La pestaña «Auditoría» se lee como un registro

La tabla que aparece debajo de «Actividad» muestra el usuario con su dirección, el evento con su grupo, el objeto y una frase con el valor antiguo y el nuevo. El filtro permite seleccionar un evento o un grupo completo, un usuario, una dirección, el título de un objeto y un intervalo de fechas, y las exportaciones en formato CSV y JSON incluyen el filtro activo, las columnas del objeto y la frase, de modo que lo que el administrador haya filtrado en la pantalla es exactamente lo que aparece en el archivo. Un enlace situado en la parte inferior abre la configuración del activador y la retención.

Las etiquetas se adaptan al lector, no al autor. Una línea de configuración escrita mediante una solicitud de WP-CLI o cron vuelve a resolver la etiqueta de su opción en el momento de la visualización, por lo que un administrador alemán verá «Permalink-Struktur» para un cambio que un compañero de habla inglesa haya realizado desde la línea de comandos.

Multisite: filas de red, filas de sitio web y una página para cada administrador de sitio web

En una red, los eventos que pertenecen a la red en su conjunto se almacenan como filas de red: activación de plugins en toda la red, instalaciones y actualizaciones, opciones de red, sitios web creados, modificados o eliminados, y concesiones de privilegios de superadministrador. Los eventos de un sitio web se asocian a dicho sitio web. El administrador de la red puede ver todo en la pestaña «Actividad», que cuenta con una columna «Sitio» y un filtro de sitios web que limita la lista a un solo sitio web o a las filas de la red. Cada administrador de sitio web dispone de una página de «Registro de auditoría» en el menú del sitio web que muestra únicamente las filas del sitio web, con los mismos filtros y opciones de exportación. Una fila de «sitio web eliminado» permanece tras la limpieza que elimina las propias filas del sitio web eliminado, con el identificador del sitio web en la columna «objeto».

Por debajo del plan Business, la pestaña muestra lo que respondería

En los planes «Gratuito», «Contributor» y «Professional», la pestaña mantiene el indicador del plan y añade cuatro preguntas que resuelve la ruta, un enlace al plan y la misma tabla con cinco filas de ejemplo. En esos planes no se realiza ninguna consulta, la exportación devuelve el error 403 y los eventos de seguridad que tiene cada plan permanecen en el registro de eventos.

El filtro del registro de eventos permite realizar búsquedas y seleccionar grupos completos

El filtro de actividades del registro de seguridad solía ofrecer una lista fija de 30 tipos de eventos que no había crecido al ritmo de los sensores: no se podían seleccionar un error en la validación de un formulario, un umbral de adaptador alcanzado o un Comment Honeypot, y el cuadro de búsqueda no tiene en cuenta en absoluto el tipo de evento. Cada tipo de evento que registra el plugin, incluidos los operativos, figura ahora en un único Registry con su etiqueta, su grupo de filtro y su familia de amenazas, agrupados en trece secciones. Un cuadro situado encima de la lista permite filtrarla por etiqueta, slug o nombre de grupo; cada grupo cuenta con una entrada que selecciona todo su contenido, y el cuadro permanece oculto cuando el navegador no ejecuta JavaScript.

Correcciones importantes en una instalación real

  • El spam de formularios no aparecía en ninguno de los dos gráficos del Dashboard. El tipo básico form_spam no figuraba en la taxonomía, lo que provocaba que cada umbral alcanzado por un adaptador quedara excluido de la distribución de amenazas y de la cronología de eventos.
  • Tres entradas de la lista apuntaban a canciones que nadie menciona (geo_anomaly, reputation_threat, admin_scanning), por lo que las anomalías geográficas y los bloqueos por reputación no aparecían en ninguna tabla. Faltaban por completo cinco slugs que sí están escritos.
  • Un tipo de evento para el que nadie se ha registrado aparece ahora como «Otro», en lugar de desaparecer de las estadísticas sin dejar rastro, lo que permitía que un nuevo sensor permaneciera invisible durante varias versiones.
  • La insignia de registro adopta el color correspondiente a la familia de amenazas, por lo que cada sensor se distingue de un vistazo, en lugar de los cuatro que casualmente tenían una regla.
  • Ahora hay un control de regresión que funciona en ambos sentidos: cada «slug» que genera una llamada de registro debe tener una fila en el Registry, y cada fila debe tener un escritor. Existe el mismo control para el registro de auditoría.

Qué supone esto para una flota gestionada

Se ha añadido una clave al esquema de configuración del control remoto, reportedip_hive_audit_triggersy no se ha eliminado ni modificado nada de este tipo, por lo que la versión del esquema se mantiene en 1 y un Dashboard que no haya recargado el esquema sigue funcionando. Las filas escritas antes de la actualización conservan su significado, y el exportador y el borrador del RGPD cubren tanto el formato antiguo como el nuevo de las filas.

La versión 2.1.62 sigue a la 2.1.57, que reunía todos los ajustes en una sola página de «Protección», y a la 2.1.54, que sustituyó el Setup Wizard por una guía de inicio rápido de una sola página. La documentación del plugin incluye la lista actual de funciones por plan, los sensores y sus valores predeterminados.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Rellena este campo
Rellena este campo
Por favor, introduce una dirección de correo electrónico válida.
Tienes que aprobar los términos para continuar