Audit Chain
Audit Chain está dirigido a desarrolladores de módulos de Drupal, operadores de seguridad y equipos de cumplimiento que necesitan detectar si los registros históricos de auditoría fueron insertados, eliminados, reordenados o editados. Wilkes & Liberty mantiene el módulo bajo licencia GPL como una primitiva de auditoría reutilizable para Drupal 10.6+ y 11.3+. Un consumidor registra eventos estructurados a través de un solo servicio; los operadores verifican la cadena resultante de forma independiente mediante Drush.
Por qué existe
Los registros ordinarios responden “¿qué dice actualmente la aplicación que ocurrió?”. No demuestran que una fila anterior se haya dejado intacta. Un usuario de base de datos con privilegios puede eliminar un evento embarazoso, alterar metadatos o reconstruir una secuencia, a menos que el registro lleve una relación de integridad que haga visibles los cambios posteriores.
Audit Chain vincula cada fila al hash de la fila anterior y a una carga canónica que incluye canal, operación, actor, marca de tiempo, identificadores de entidad promovidos, contexto de red y metadatos. La firma HMAC opcional significa que reparar una cadena modificada también requiere acceso a la clave de firma. El cifrado opcional protege los metadatos almacenados sin confundir confidencialidad con integridad.
Quién debe usarlo, y cuándo
- Autores de módulos de Drupal que necesitan una API de auditoría compartida en lugar de otra tabla de registro privada.
- Operadores de seguridad que monitorean cambios sensibles, eventos de acceso, acciones de emergencia, descargas controladas o actividad de agentes automatizados.
- Equipos de cumplimiento que necesitan una señal verificable de forma independiente cuando cambia el historial de auditoría.
- Equipos de fiabilidad de sitios que quieren verificación en tareas programadas, compuertas de despliegue o flujos de trabajo de SIEM.
Úselo cuando la integridad de los registros anteriores importa después de que la solicitud ha terminado. Use el registro ordinario de la aplicación junto a él para diagnósticos de alto volumen, contexto de depuración y búsqueda operativa.
Dónde se ubica
Audit Chain se ejecuta dentro de Drupal y expone un servicio de registro a otros módulos. Los consumidores escriben eventos específicos de cada canal en una sola secuencia para todo el sitio. Un recolector con alcance de solicitud puede deduplicar eventos ruidosos de hooks de acceso y vaciarlos después de la respuesta, manteniendo el bloqueo de anexado fuera de la ruta crítica del usuario. Los registros estructurados también fluyen a través del canal de registro audit_chain de Drupal para su reenvío mediante Syslog, Monolog o un SIEM.
El módulo se extrajo de MCP Sentinel, donde el mecanismo registra operaciones gobernadas de agentes de IA. Es intencionalmente independiente para que la entrega de archivos, la gobernanza de configuración, los permisos o módulos de misión personalizados puedan usar la misma capa de evidencia.
Cómo funciona la cadena
- Un consumidor envía un evento estructurado al servicio de Audit Chain.
- El módulo canonicaliza la carga, la vincula al hash almacenado anterior y la anexa bajo un bloqueo para todo el sitio.
- Si hay una clave de firma configurada, la fila usa HMAC; de lo contrario, se reconoce explícitamente como sin clave en lugar de reportarse erróneamente como manipulación.
- Si el cifrado de metadatos está habilitado, la fila registra qué perfil de cifrado produjo los bytes almacenados.
drush audit-chain:verifyrecalcula la secuencia y devuelve un código de salida distinto de cero cuando la cadena no está completamente sana.
La verificación distingue el contenido u orden alterados de las filas intactas escritas sin la clave esperada. Puede probar claves de firma retiradas y explícitamente confiables después de una rotación. Un prefijo histórico cuyo contenido original ya no puede verificarse puede sellarse como un punto de génesis local; el sello promete únicamente que se detectarán los cambios posteriores a ese prefijo congelado.
Salvaguardas operativas
- Las verificaciones de estado reportan una clave de firma configurada que ya no resuelve.
- Las filas registran el perfil de cifrado real, exponiendo el historial que se volverá ilegible si se elimina un perfil antiguo.
- Los metadatos UTF-8 malformados se normalizan en lugar de crear una fila permanentemente no verificable.
- La rotación de claves acepta claves retiradas designadas sin confiar en silencio en el
key_idindicativo de una fila. - Una sola secuencia global impide que la eliminación de un canal de consumidor permanezca invisible.
Límites honestos
Audit Chain no impide la eliminación; hace que la eliminación sea evidente en la siguiente verificación. Un administrador de base de datos que pueda alterar tanto los datos como la configuración del sitio sigue siendo un problema de confianza mayor. El módulo ordena eventos en una sola base de datos de Drupal, no entre varias bases de datos o servidores. No es un almacén de escritura única, una política de registros legales, un SIEM ni un sustituto de las copias de seguridad.
El historial sin firmar no puede firmarse retroactivamente. Un sello de prefijo no demuestra que los registros antiguos fueran verídicos. La custodia de las claves de cifrado y la retención de perfiles siguen siendo responsabilidades del operador, y el historial cifrado debe volver a cifrarse antes de eliminar un perfil antiguo.
Instalación y verificación
Requiere PHP 8.1+, Drupal 10.6+ u 11.3+, Key 1.20+ y Encrypt 3.2+.
composer require drupal/audit_chain
drush en audit_chain
drush audit-chain:verify
Configure la firma y el cifrado en la configuración del sistema de Drupal. Mantenga el material de claves fuera de la base de datos mediante un proveedor de Key apropiado. Agregue el comando de verificación a una programación o a un flujo de trabajo de monitoreo; el estado de salida distinto de cero es el contrato estable de automatización.
Proyecto, código fuente, incidencias y trabajo relacionado
- Página del proyecto Audit Chain y versiones en Drupal.org
- Código fuente y documentación en GitHub
- Cola de incidencias en Drupal.org
- MCP Sentinel, el consumidor original
- File Gate, un consumidor de auditoría opcional
Mantenido por Jeremy Michael Cerda y Wilkes & Liberty bajo GPL-2.0-or-later. La versión de código fuente verificada para esta página es la 1.3.0.