Saltar a contenido

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:

ecenter:
  audit:
    retention:
      others: 365d
      categories:
        access: 730d
        query: 180d
        job: 90d

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:

ECENTER_AUDIT_RECORDQUERIES=false

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:

LOGGING_LEVEL_ECENTER_AUDIT_QUERY=info
LOGGING_LEVEL_ECENTER_AUDIT_JOB=info

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

Véase también#