Administración de LOGS

Los logs son registros de todos los eventos que ocurren dentro de los sistemas y redes de una organización, sistema o aplicación. Cada entrada en estos archivos contiene información relacionada a un evento específico que ocurrió dentro de un sistema o red.

Aunque originalmente los log fueron utilizados en un comienzo para la detección y solución de errores, en la actualidad poseen un gran cantidad de funcionalidades que aportan gran valor para los sistemas como procesos de optimización, registro de acciones de usuarios para auditorias o fuente de información para investigación de actividades maliciosas.

Como consecuencia del aumento de servidores, redes, puestos de trabajos, aplicaciones y las amenazas y riesgos contra los sistemas y redes, el número, volumen y variedad de logs también se ha incrementado. Esto ha generado la necesidad de utilizar sistemas inteligentes de control de logs que permiten facilitar los procesos de generación, transmisión, análisis y disposición de toda la información de estos logs. Además de los sistemas, es necesario la creación de políticas de control interno que determinen el manejo apropiado y suficiente de esta información para cumplir con los requerimientos de ley de cada país  (E.j FISMA, Federal Information Security Management Act of 2002) o de certificaciones propias de negocio (Ej. PCI-DSS, Payment Card Industry Data Security Standard).

Desde el punto de vista de negocio, un buen manejo de logs requiere encontrar el balance perfecto entre la disposición de recursos para el manejo de la información con el continuo proceso de registro de información. Entre los problemas que se pueden afrontar durante el proceso de  generación y almacenamiento de logs encontramos el alto número de fuentes de información, inconsistencia de datos entre fuentes y el constante aumento del volumen generado. Otro de los problemas que es necesario tener en cuenta es garantizar la seguridad de toda la información recopilada que incluye la protección de la confidencialidad, integridad y disponibilidad de la información.

Para lograr un proceso de manejo de logs eficiente y efectivo, la NIST establece las siguientes recomendaciones:

Establecer Políticas y procedimientos para la administración de logs

Todas las organizaciones deben desarrollar un proceso estándar para la implementación del manejo de los logs. Como parte del proceso de planeación, la organización debe definir cuáles son sus necesidades y objetivos de la generación de logs. En base a estas, se deben definir políticas con los requerimientos indispensables y algunas recomendaciones para cada una de las etapas de los procesos de administración de logs (Generación, transmisión, almacenamiento, análisis y liberación). Los requerimientos y recomendaciones deben generarse teniendo en cuenta un análisis detallado de las tecnologías disponibles, sus implicaciones de seguridad, el costo de  implementación y las leyes por las cuales se rige la organización.

Priorización de la administración de logs dentro de la organización

Después de definir los requerimientos y objetivos, estos deben ser priorizados de acuerdo a las necesidades de mitigación de riesgo, el tiempo esperado y el total de recursos involucrados y disponibles para tales fines. Adicionalmente, las organizaciones deben definir roles y sus responsabilidades dentro de las áreas claves de la organización, incluyendo tareas tanto a nivel individual de cada sistema como de una infraestructura global de manejo de logs.

Crear y mantener una infraestructura para la administración de los logs

Después de definir las políticas de manejo de logs, es necesario establecer una infraestructura para la administración de logs, que consiste en hardware, software, redes y medios para el manejo de la información a generar. Una buena práctica establece definir logs centralizados de almacenamiento y análisis de datos. La infraestructura debe estar en capacidad de suplir las necesidades actuales y futuras a través de proyectos de escalabilidad. Los factores más importantes a tener en cuenta durante el diseño de esta etapa incluye el volumen de datos a ser procesados, ancho de banda, almacenamiento  online y offline, requerimientos de seguridad y el tiempo y recursos necesarios desde el personal de la organización para analizar los logs.

Establecer procesos operativos estándares:

Los procesos operativos de la administración de los log incluyen tareas como la configuración de las fuentes de información, realizar análisis de logs, iniciar respuestas a eventos identificados y el manejo del proceso de almacenamiento a largo plazo. Los administradores, entre otras tareas, se deben encargar de:

  • Monitorear el estado de las fuentes de los logs
  • Monitorear la rotación y archivo de los logs
  • Mantener los sistemas de loggging actualizados, revisando constantemente mejoras y parches liberados. También se encarga de adquirir,  probar y desplegar las nuevas versiones.
  • Asegurarse que cada uno de los host se encuentran sincronizados en tiempo con una fuente común y principal.
  • Reconfigurar los sistemas de logs en base a los cambios de políticas, tecnologías u otros factores.
  • Documentar y reportar anomalías en el proceso de logging.

Infraestructura para la administración de logs

A continuación se describe una infraestructura típica para la administración de logs y cómo interactúan cada uno de sus componentes.

Arquitectura

Generación de Logs:

En un primer nivel se encuentran todos los host que generar información para los logs. Estos sistemas pueden ser aplicaciones que corren sus propios sistemas de logs, generando archivos locales. También se encuentran aplicaciones o sistemas que generan información que es transmitida a través de la red a un servidor central. En ambos casos, son fuentes de datos que deben ser configuradas para poder interpretar la manera en que se registra cada evento para estandarizarlo.

Análisis y Almacenamiento de Logs:

En un segundo nivel se encuentra uno o más servidores de logs que se encargan de recibir o copiar la información de cada una de las fuentes del anterior nivel en un sistema de archivos propio. Esta La información puede ser transferida en tiempo real, casi-tiempo real o a través de tareas programas en batch. Los servidores que se encargan re recibir la información se conocen comúnmente como colectores o agregadores y puede que se realicen tareas de procesamiento para poder incluir mecanismos especializados de búsqueda o incluidos en índices.

Este nivel puede ser tan sencillo como un servidor con una única tarea de recopilar información en directorios, o tan complejo como un sistema de varios servidores/aplicaciones que se encargan de realizar tareas complejas desde la recepción, transformación, análisis y automatización de tareas en base a los resultados anteriores.

Monitoreo de Logs:

Éste último nivel contienen consolas que pueden ser usadas para monitorear o revisar la información de los logs o de los análisis generados de manera automática. Se incluye herramientas para realizar reportes y alertas  hacia clientes, sistemas o encargados de tomar decisiones en base a los eventos registrados.

Funcionalidades

Las funcionalidades que ofrece esta infraestructura de administración de logs son las siguientes:

En general:

  • Parseo de logs: Corresponde al proceso de interpretar el formato de cada una de las entradas en log para extraer la información requerida para completar un modelo general y estandarizado a través de toda la organización de cada evento registrado.
  • Filtro de Eventos: Eliminación de eventos que por sus características no aportan información relevante que pueda ser usada en un análisis de datos. Por ejemplo: Entradas duplicadas, eventos de poca importancia para el sistema (Líneas sin información, o solo con fechas) o información relevante únicamente para un periodo muy corto de tiempo por lo que no es necesario almacenarlo a largo plazo.
  • Agregación de eventos: Entradas similares o relacionadas a un solo evento pueden agregarse para conformar una única entrada de un solo evento con mayor cantidad de información.

Almacenamiento:

  • Rotación de logs: Constituye el proceso de crear nuevos archivos de logs cuando se considera que éste está completo. Típicamente se realiza de acuerdo a un intervalo de tiempo (Cada hora, cada día, cada semana, etc.) o cuando se ha alcanzado un tamaño especificado. La principal ventaja de realizar esta tarea consiste en la preservación de la información (En caso que el archivo se dañe, solo contiene información limitada a un periodo corto) y el tener archivos fácilmente manejables por el SO y las aplicaciones de administración (Ej, menor uso de memoria RAM para su escaneo, copia, etc.). Otra ventaja consiste en realizar en análisis sobre archivos de menor tamaño y menor información, al reducir la ventana de tiempo en la cual se desea encontrar un evento específico.
  • Retención y Preservación de logs: Por lo general, regulaciones externas como certificaciones o requerimientos del gobierno obliga al almacenamiento de la información de logs por un mínimo de tiempo en medios removibles o servidores especializados. Existen dos tipos para almacenar los logs: Retención consiste en archivar logs que el estándar operativo requieren ser almacenados. Preservación hace referencia al almacenamiento de logs que por lo general serían descartados pero que son requeridos por un proceso adicional dentro de la organización por tener información de un evento de interés particular como el manejo de incidentes o investigaciones. ****
  • Compresión: Reducir la cantidad de espacio requerido es vital para reducir los costos y el volumen de información a manejar. ****
  • **Reducción de Logs: **Consiste en eliminar entradas de los logs al momento de crear nuevos logs, eliminando eventos que ya no son necesarios en ese momento. Por lo general ocurre antes de almacenar de manera permanente la entrada  en el área de largo plazo.
  • Normalización de Logs: Consiste en la conversión de cada dato de cada entrada del log a una representación y categorización consistente en todo el sistema de administración de logs. El caso más común consiste en almacenar las fechas y tiempos en un único formato (Ej YYYYMMDD HH:MM). Esta tarea puede ser una de las más exigentes a nivel de recursos de procesamiento, en especial para entradas complejas de logs como detección de intrusiones en los logs de seguridad

Análisis:

  • Correlación de Eventos: Consiste en encontrar relación entre dos o más entradas de un logs. Por lo general consiste de reglas que determina cuales eventos están relacionados, incluso en diferentes fuentes. (Ej. Peticiones a un servidor web desde una misma dirección IP, generando entradas en los logs del Firewall, Balanceador de Carga, SO del servidor web y la propia aplicación web)
  • Visualización: Permite visualizar, de una manera amigable a un usuario humano, los datos recolectados de las diferentes fuentes.
  • Reportes: Permite visualizar la información resultante de los análisis generados por el sistema administrador de logs. Por lo general se realizan resúmenes a partir de rango de fechas o una serie de eventos a considerar.

Eliminación de Datos:

  • Eliminación: Consiste en remover todas las entradas de un determinado log a partir de una fecha y hora. De esta manera se garantiza eliminar la información antigua que ya no es necesario almacenar o ya ha sido archivada en otro medio o sistema.