Conservación y envío a un SIEM#
La auditoría crece con cada acceso y con cada consulta, así que Empowerment Center purga sola lo que pasa de su plazo. Esta página explica cuánto se conserva y cómo cambiarlo, cómo dejar de registrar las consultas si su organización lo decide, y cómo llevar la auditoría a un syslog o a un SIEM.
Antes de empezar#
Todo lo de esta página se configura en el servidor, con las propiedades ecenter.audit.* o sus variables de entorno (véase Configuración), y se aplica al reiniciar el backend. La línea bajo el título de la pantalla Auditoría muestra lo que está en vigor.
Cuánto se conserva#
| Categoría | Propiedad | Por defecto |
|---|---|---|
| Consultas | ecenter.audit.retention.categories.query |
90d |
| Trabajos | ecenter.audit.retention.categories.job |
90d |
| Las demás | ecenter.audit.retention.others |
365d |
Cualquier categoría puede tener su propio plazo con su código en minúsculas: access, query, data, workbook, job, scheduling, distribution, metadata o administration. Por ejemplo, para conservar los accesos dos años y las consultas seis meses:
Cada hora (ecenter.audit.purge-interval), ECenter borra lo que pasa de su plazo, por lotes de 10 000 entradas. Con varias instancias no hay que repartirlo: borrar lo ya borrado no hace nada.
Importante
Alargar un plazo no recupera lo que ya se purgó. Si su organización tiene que conservar la auditoría más tiempo del que conviene tener en la BD propia, expórtela periódicamente o llévela a un SIEM (abajo).
Cuánto ocupa#
Las consultas son lo que más ocupa: cada una guarda su SQL y sus valores, y la búsqueda de texto tiene un índice sobre el SQL. Como orientación, un millón de entradas, nueve de cada diez consultas con unos 400 caracteres de SQL, ocupan unos 590 MB de tabla y unos 270 MB de índices de texto. Vigile el tamaño de la BD propia con sus herramientas de PostgreSQL y, si crece demasiado, acorte el plazo de las consultas.
Dejar de registrar las consultas#
Por defecto, cada consulta a una BD de cliente queda con su SQL y los valores de sus parámetros (ecenter.audit.record-queries: true). Para no registrarlas:
Con ello:
- No se anotan las entradas Consulta. La pantalla lo dice bajo el título: «No se registran las consultas.».
- Se siguen anotando las Consulta rechazada (las que nombran lo que el usuario no ve), que sirven para ver tanteos, y todo lo demás.
Las líneas de registro#
Cada entrada de la auditoría sale también como una línea en el registro del servidor, en el logger ecenter.audit.<categoría> (ecenter.audit.access, ecenter.audit.query…):
action=LOGIN_FAILED outcome=FAILED user=ana connection= address=10.0.0.7 channel=SESSION channel_ref= target="" summary="Intento fallido de iniciar sesión: Usuario o contraseña incorrectos" job=
| Campo | Qué es |
|---|---|
action |
El código de la acción (véase Qué se anota) |
outcome |
OK o FAILED |
user |
El login |
connection |
El identificador de la conexión (no su nombre) |
address |
La dirección IP |
channel, channel_ref |
El canal y su referencia |
target |
El objeto, entre comillas |
summary |
La descripción, entre comillas |
job |
El identificador del trabajo, al final |
Los caracteres de control se cambian por espacios y las comillas dobles de los textos, por simples, para que nadie pueda inventarse una línea con un login que lleve un salto de línea. El SQL y sus valores no van en la línea: están en la entrada.
Por defecto salen los accesos, los cambios de datos, los libros, la planificación, la distribución, el metadata y la administración (nivel info). Las consultas y los trabajos no (warn), porque hay una por cada una. Para sacarlas también:
Las alertas operativas tienen sus propias líneas en ecenter.operations.alert (véase Alertas operativas).
Llevarlas a un syslog o un SIEM#
ECenter no tiene una configuración propia de syslog: las líneas se mandan con la del registro. Hay dos formas.
Desde el registro del contenedor#
El backend escribe en la salida estándar, y cada línea lleva el nombre de su logger. Configure el controlador de registros de Docker (o el recolector de su organización: Fluent Bit, Vector, el agente del SIEM) para recoger la salida del servicio backend y quedarse con las líneas cuyo logger empieza por ecenter.audit o es ecenter.operations.alert. En deploy/compose.yaml, el controlador se cambia en el ancla x-logging.
Con un appender de syslog#
Para mandar solo la auditoría a un syslog, monte en el backend un fichero de configuración de Logback y apunte a él con LOGGING_CONFIG:
<!-- config/logback-spring.xml -->
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
<appender name="SIEM" class="ch.qos.logback.classic.net.SyslogAppender">
<syslogHost>siem.example.org</syslogHost>
<port>514</port>
<facility>AUTH</facility>
<suffixPattern>ecenter %logger %msg</suffixPattern>
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
</root>
<logger name="ecenter.audit">
<appender-ref ref="SIEM"/>
</logger>
<logger name="ecenter.operations.alert">
<appender-ref ref="SIEM"/>
</logger>
</configuration>
# deploy/compose.yaml, servicio backend
volumes:
- ./config/logback-spring.xml:/opt/ecenter/config/logback-spring.xml:ro
environment:
LOGGING_CONFIG: /opt/ecenter/config/logback-spring.xml
El appender de syslog de Logback manda por UDP. Si su SIEM pide TCP o TLS, use la primera forma o un relé de syslog local.
Las líneas de la auditoría sustituyen al syslog de Empowerment Center 7 (EC7), cuya máscara, máquina y puerto se configuraban en el propio producto: ahora se configuran en el registro.
Configuración#
| Propiedad | Por defecto | Qué es |
|---|---|---|
ecenter.audit.record-queries |
true |
Registrar cada consulta con su SQL y sus valores |
ecenter.audit.retention.others |
365d |
Lo que se conserva una categoría sin plazo propio |
ecenter.audit.retention.categories.<categoría> |
query: 90d, job: 90d |
El plazo de una categoría |
ecenter.audit.purge-interval |
1h |
Cada cuánto se purga |
ecenter.audit.export-max-rows |
100000 |
Entradas como mucho de una exportación |
ecenter.audit.export-timeout |
30m |
Lo que puede durar la descarga de una exportación |