Saltar al contenido principal

Registro de seguridad

Problema y propósito​

El registro de seguridad es un flujo independiente de entradas sobre quién inició sesión en el clúster, quién cambió roles y configuraciones, y qué ocurrió con las máquinas virtuales. Reside en su propia tabla de la base de datos de vStack Center, separado de los registros de diagnóstico de los componentes, y se abre en una pantalla dedicada: Security Event Log.

Sus requisitos son distintos de los de un registro de diagnóstico. Una entrada del registro de seguridad no debe poder sustituirse ni eliminarse sin que se detecte: las investigaciones de incidentes y las auditorías normativas se basan en ella. Por eso, cada entrada lleva un hash SHA-256 que la vincula con las demás, y el clúster puede recorrer toda la cadena e indicar dónde está rota.

Esto plantea preguntas que los administradores necesitan resolver. ¿Qué eventos requieren actuar y cuáles son actividad de fondo? ¿Qué significa el estado «cadena rota»? ¿Adónde va el registro cuando la tabla crece, y en qué se diferencia un archivo de una exportación?

Esta página explica el modelo. Para leer y filtrar eventos, consulte Cómo leer el registro y filtrar eventos; para exportar el registro, descargar un archivo e iniciar una verificación de integridad, consulte Cómo exportar el registro, descargar un archivo y verificar la integridad.

Modelo y entidades​

Entrada de evento​

Una entrada es un conjunto plano de campos. Tiene tres partes: qué ocurrió y cuándo, quién fue el actor y qué objeto se vio afectado.

CampoQué muestra
ididentificador numérico de la entrada; se usa para ordenar y direccionar
event_uuidUUID del evento
tshora del evento, una marca de tiempo Unix en segundos
event_typecódigo del tipo de evento, como auth.login.success
user_ididentificador del usuario que realizó la acción
usernamenombre del usuario que realizó la acción
object_typetipo del objeto sobre el que se realizó la acción
object_ididentificador del objeto
object_namenombre del objeto
resultresultado: success o failure
detailsinformación adicional
remote_ipdirección del cliente
request_idUUID de la solicitud al clúster que generó la entrada
record_hashhash SHA-256 de la entrada: un eslabón de la cadena
acknowledgedmarca del usuario actual que indica que el evento se ha leído

Los campos de actor y de objeto están vacíos cuando el evento no los tiene: el inicio de sesión en el clúster no tiene objeto, y un evento del sistema no tiene usuario. El campo request_id vincula el evento con la solicitud al clúster que lo generó: un buen punto de partida para una investigación cuando una sola acción ha producido varias entradas.

Estos mismos campos se convierten en columnas del archivo cuando el registro se exporta a CSV o JSON. La tabla en pantalla muestra solo algunos de ellos; el resto aparece en la ficha de cada entrada.

Catálogo de tipos​

Un tipo de evento es un código de cadena con puntos: auth.login.success, auth.login.failure. El clúster mantiene la lista de tipos: cada código tiene una categoría, un nivel de gravedad y un nombre legible. Este catálogo alimenta el filtro por tipo de evento y las etiquetas de la tabla, de modo que el conjunto de tipos lo determina la versión del clúster y no el cliente.

Eventos de los propios nodos​

Antes de la versión 3.0.5, el registro solo recogía eventos del plano de gestión. En la 3.0.5 se añadieron los eventos del sistema operativo de los nodos y los del software de virtualización: llegan desde los agentes de los nodos y entran en la misma cadena de hashes.

Tipo de eventoQué describe la entradaCategoríaGravedad
os.ssh_login_successinicio de sesión SSH correcto en un nodoauthinfo
os.ssh_login_failureinicio de sesión SSH fallido en un nodoauthwarning
os.user_local_createdcreación de una cuenta local en un nodoauthnotice
os.user_local_deletedeliminación de una cuenta local en un nodoauthnotice
os.sysctl_changedcambio de un parámetro del kernel de un nodo (sysctl)configwarning
os.bootarranque de un nodosystemnotice
os.shutdownapagado normal de un nodosystemnotice
os.shutdown_uncleanapagado anómalo de un nodosystemerror
os.kernel_panickernel panic en un nodosystemcritical
system.service_stopped_uncleanfinalización anómala del software de virtualización: terminación del proceso, un fallo o un corte de alimentación en la máquina de gestiónsystemerror
vm.console_connectedconexión a la consola de una VM mediante WSSvminfo
vm.console_connect_failedconexión fallida a la consola de una VMvmwarning

De estos eventos, solo os.kernel_panic suma al recuento de eventos críticos: su gravedad es critical, y el contador cuenta los tres niveles superiores. Los apagados anómalos, tanto de un nodo como del software de virtualización, tienen gravedad error: no suman al contador, pero sí activan notificaciones por correo electrónico cuando el umbral es error o inferior.

Las entradas os.shutdown_unclean y system.service_stopped_unclean aparecen en el siguiente arranque, y no en el momento del fallo: hasta entonces, nada puede notificarlo. En una instalación limpia, el primer arranque no genera una entrada falsa.

Categorías y gravedad​

Una categoría agrupa los tipos por área. Las entradas y las exportaciones usan un código corto, mientras que el panel de filtros muestra la etiqueta de la interfaz; tres de las seis son distintas:

Código en la entradaEtiqueta en el panel de filtrosÁrea
authauthenticationautenticación y gestión de accesos
vmvirtual machinesmáquinas virtuales
configconfigurationconfiguración de la infraestructura
rolerolegestión de roles
systemsystemeventos del sistema
integrityintegritysupervisión de la integridad

La gravedad tiene siete niveles, de mayor a menor: emergency, alert, critical, error, warning, notice, info. El clúster considera críticos los tres niveles superiores: emergency, alert y critical. Son los niveles que se usan para el contador de no leídos y para la configuración de notificaciones por correo electrónico.

Cómo funciona​

Cadena de hashes​

Cada entrada almacena su propio hash SHA-256 en el campo record_hash, que la vincula con las entradas contiguas del registro. Eliminar o sustituir una entrada intermedia rompe el vínculo: los hashes de las entradas posteriores dejan de coincidir, y la verificación indica el identificador de la entrada en la que se rompió la cadena.

Este diseño otorga al registro su propiedad principal: solo admite anexar entradas. El registro se puede leer, marcar como leído, exportar y archivar, pero las entradas individuales no se pueden editar ni eliminar. El archivado es la única forma de reducir el tamaño de la tabla.

Verificación de la integridad​

La verificación de la cadena se ejecuta en segundo plano. Al iniciarla, el clúster reparte el trabajo de inmediato: divide el registro en partes iguales y las asigna a procesos de trabajo (workers) que procesan sus partes de forma simultánea. Mientras la verificación está en curso, el botón de inicio muestra el porcentaje completado; cuando termina, aparece a su lado un informe con la hora, el resultado y el número de entradas comprobadas.

El resultado es uno de cinco estados. El clúster mantiene el conjunto de estados y sus etiquetas.

EstadoSignificado
Never Startedtodavía no se ha iniciado ninguna verificación en el clúster
Runningla verificación está en curso; el informe muestra el porcentaje completado
Completedla verificación ha terminado; la cadena está intacta
Failedla verificación no ha terminado
Chain Brokenla cadena está rota; el informe muestra el identificador de la entrada en la que se rompió

Cada worker tiene sus propios estados: Running, Completed, Failed, Chain Broken, Stopped, Pending. Sirven para investigar una verificación que se ha detenido: muestran si ha fallado un worker o todos.

En el clúster solo se ejecuta una verificación a la vez. Hasta que termina, se rechaza cualquier otra solicitud de inicio.

Eventos críticos y respuesta​

La marca de leído es personal. Responde a «¿ha revisado el usuario actual este evento?» y no a «¿lo ha investigado el equipo?»: dos administradores ven valores distintos para el mismo evento.

Dos mecanismos se basan en esta marca. El indicador de la cabecera muestra el número de eventos críticos no leídos del usuario actual, y las filas de esos eventos se resaltan en la tabla del registro. Marcar los eventos como leídos elimina ambas cosas, ya sea para los eventos seleccionados o para todos los eventos críticos no leídos a la vez. Volver a marcar el mismo evento no produce ningún error.

El tercer mecanismo es el correo electrónico. El clúster envía notificaciones a una lista de direcciones, con un umbral de gravedad: los eventos por debajo del umbral no generan correos. El umbral predeterminado es alert, que solo abarca las infracciones de integridad. Los correos los envía el dispatcher de vStack Center a través de un servidor SMTP configurado en la VM de gestión. Sin él, las notificaciones no funcionan aunque estén habilitadas en la interfaz. La configuración se describe en Cómo configurar las notificaciones por correo electrónico del registro de seguridad.

Crecimiento de la tabla y archivado​

El registro solo admite anexar entradas, por lo que su tabla crece, y ese crecimiento debe limitarse. El archivado automático traslada las entradas antiguas a un archivo CSV comprimido cuando la tabla supera el umbral de tamaño.

ParámetroQué controlaLímites
security_log_archive_enabledsi el archivado automático está habilitado—
security_log_archive_target_sizeumbral de tamaño de la tabla del registro, en bytesde 10 MB a 16 GB
security_log_archive_pathdirectorio de almacenamiento de los archivoslongitud del nombre 1–256
security_log_disk_alert_thresholdumbral de espacio libre por debajo del cual el clúster emite una advertencia, en bytescomo mínimo 100 MB

Un interruptor situado sobre la tabla del registro habilita y deshabilita el archivado automático. Los otros tres parámetros están en el formulario de configuración de archivos; ambos tamaños de ese formulario se indican en megabytes.

Un archivo es un fichero .csv.gz con un nombre como security_log_a3f1b2c4_03_01_2025.csv.gz. Para un archivo completado, la lista muestra el período, el tamaño, el número de entradas, la hora de archivado y la suma de comprobación SHA-256. Un archivo que todavía se está creando también aparece en la lista, pero sin estos campos: aún es pronto para descargarlo.

Un archivo y una exportación sirven para fines distintos. Una exportación es una selección puntual basada en filtros: el fichero se crea en un directorio temporal del nodo de gestión, se envía al navegador y se elimina. Un archivo almacena de forma permanente las entradas eliminadas de la tabla: el fichero reside en el directorio de archivos y permanece allí después de la descarga.

Quién puede ver qué​

El registro de seguridad es un objeto de nivel de clúster. Está disponible para dos roles globales: Cluster master (rol 1) y Security Admin (rol 6). Los roles de VDC no pueden ver el registro: sus eventos abarcan todo el clúster.

El acceso lo conceden los privilegios, no el número de rol, así que compruebe el privilegio.

idNombre en la ficha del rolConcedido aQué permite
10000View Security LogCluster master, Security Adminleer eventos, el catálogo de tipos, el recuento de eventos críticos y el estado de la verificación
10001Export Security LogCluster master, Security Adminexportar eventos a CSV y JSON
10002Verify Security LogCluster master, Security Admininiciar la verificación de la cadena de hashes
10003View Security ArchiveCluster master, Security Adminlistar archivos
10004Export Security ArchiveCluster master, Security Admindescargar un archivo
10005View Security Archive SettingsCluster master, Security Adminleer la configuración de archivos
10006Edit Security Archive Settingssolo Cluster mastereditar la configuración de archivos
10007Acknowledge Security EventCluster master, Security Adminmarcar un evento como leído
10008View Security Notify SettingsCluster master, Security Adminleer la configuración de correo electrónico
10009Edit Security Notify Settingssolo Cluster mastereditar la configuración de correo electrónico

También hay dos privilegios de configuración de seguridad: View Security Settings (9000) y Edit Security Settings (9001). Además de la edición, este último permite leer la configuración de bloqueo; consulte Sesiones y parámetros de inicio de sesión.

La distinción entre lectura y edición tiene consecuencias prácticas. Security Admin puede ver el registro, los archivos y ambos grupos de configuración, pero solo Cluster master puede cambiar los umbrales de archivado y la lista de destinatarios de correo electrónico. El modelo de privilegios y ámbitos se describe en la referencia de roles y privilegios.

Limitaciones​

Una exportación está limitada a 100 000 entradas. Una sola exportación no puede devolver más: el fichero se crea en el disco del nodo de gestión, y el límite se aplica al tamaño de esta operación. Solución alternativa: acote la selección con filtros y un intervalo de tiempo, u obtenga el registro por partes; las entradas históricas se almacenan en archivos.

Las exportaciones no se almacenan en el clúster. El fichero se crea en un directorio temporal, se envía al navegador y se elimina. Solución alternativa: para el almacenamiento a largo plazo, use un archivo en lugar de una exportación; para obtener de nuevo la misma selección, repita la exportación.

Solo se ejecuta una verificación de la cadena a la vez. Una segunda solicitud de inicio se rechaza hasta que termina la primera verificación. Solución alternativa: espere a que termine la verificación en curso; su progreso aparece como porcentaje en el botón, y el identificador de la entrada en la que se rompió la cadena aparece en el informe de la última verificación.

Un archivo incompleto no se puede descargar. Un fichero que todavía se está creando aparece en la lista, pero las solicitudes de descarga se rechazan. Solución alternativa: espere hasta que la entrada muestre una suma de comprobación, un número de entradas y una hora de archivado.

La marca de leído es personal. No sirve para evaluar el trabajo de un turno: solo refleja al usuario actual. La solución alternativa es un proceso acordado y no una solución técnica: haga el seguimiento de si un evento se ha investigado mediante un proceso externo, y use la marca como filtro personal.

Métodos de la API​

Operaciones de la API tratadas en esta página: security-event-list, security-event-get, security-event-types, security-event-critical-count, security-event-acknowledge, security-event-notify-settings-get, security-event-notify-settings-set, security-event-export, security-event-archive-list, security-event-archive-export, security-event-archive-settings-get, security-event-archive-settings-set, security-event-log-verify, security-event-log-status, security-verification-statuses — consulte la referencia de la API.

Lecturas adicionales​