En esta ocasión quiero hablarles acerca de un problema que aqueja a muchas organizaciones respecto a la información que se genera en las bitácoras (de lo que sea). En el presente artículo intentaré aclarar qué es una bitácora, su importancia, tipos y retos alrededor de ellas. En una segunda entrega proveeré soluciones enfocadas a almacenar y explotar la información que en ellas se contiene.

.

¿Qué es una bitácora?

En sí, la bitácora es un objeto marítimo que ayuda en colocar la aguja que apunta siempre al norte y orienta a la tripulación,  nada que ver con registros. Lo que normalmente conocemos como bitácora se debe a una a contracción del nombre “cuaderno de bitácora”, en el que se guardan registros de los acontecimientos en una embarcación. Debo confesar que me sorprendí cuando supe la verdad sobre el origen de la palabra bitácora.

Por analogía, se le llama bitácora a un conjunto de registros de lo que sucede en proyectos, sistemas, etcétera. En TI se usa bitácora como traducción indistinta de log y log files, aunque en realidades la equivalencia del nombre “log” en inglés es “registro” y para “log files” o simplemente “logs” como plural es “bitácora”.

.

Importancia de las bitácoras

Ante una crisis, falla o suceso relevante de un dispositivo o sistema, todos queremos saber qué sucedió y es cuando surge la pregunta sobre la existencia de registros, y si existen, sobre quién los administra o incluso por cuánto tiempo se guardan.

Hay elementos de la vida cotidiana que no sabemos que son registrados, sin embargo, ante una catástrofe, la bitácora nos alecciona sobre lo que pasó y cómo podemos mejorar para que no cometamos los mismos errores, o para protegernos de lo que no controlamos. El ejemplo clásico es la caja negra de un avión: esta es una bitácora que registra, entre otras cosas, datos de la computadora de vuelo, todas las llamadas entre el avión y la torre de control, sonidos en la cabina, registros del estado operativo de todos los componentes del avión, itinerario, etcétera. Cuando por desgracia hay un accidente, la bitácora (caja negra) se encuentra almacenada en un recipiente que resiste los violentos impactos de una catástrofe aérea; recuperarla permite saber, a partir de un análisis forense, si hubo un error humano, una inclemencia del tiempo, una falla del avión o simplemente un evento desafortunado.

Así como la bitácora de un avión nos permite aprender sobre lo sucedido, una bitácora de sistemas debe permitirnos hacer lo mismo sobre las actividades en nuestro entorno, desde un simple “login” a una Intranet, hasta saber quién pudo haber cambiado tablas en la base de datos del sistema de facturación.

Las bitácoras se vuelven elementos clave cuando tenemos que hacer frente a auditorías, donde todo debe comprobarse para obtener alguna certificación, o bien para cumplir con regulaciones que avalen a nuestras organizaciones. También son vitales para los análisis forenses, para los que se deben cumplir ciertos estándares de forensia digital para poderse catalogar como evidencia.

.

Elementos indispensables

Una bitácora deberá tener la característica de trazabilidad. A partir de ella, deberíamos obtener información que responda las cuatro preguntas básicas: ¿qué?, ¿quién?, ¿cuándo? y ¿a través de qué medio?

  1. “¿Qué?” nos permite responder cuál fue el elemento manipulado.
  2. “¿Quién?” apunta hacia la entidad que interactuó con el elemento de nuestro interés. Puede ser una persona, un sistema, un grupo o una dirección IP. Lo que debe ser contundente es que esta información nos proporcione el rastro al que queremos llegar. Por ejemplo, si obtenemos como respuesta el usuario genérico sadmin (suponiendo que este usuario es usado por varias personas de forma indistinta), no hemos logrado realmente contestar la pregunta.
  3. “¿Cuándo?” nos dice el tiempo de lo sucedido. Entre más granular, mejor, ya que un evento suscedido en cierto momento puede ser normal, pero si ocurre dos minutos más tarde ya podría ser algo sospechoso. Una característica, necesaria para tener un marco adecuado de referencia del tiempo es la sincronía: se debe cuidar que las bitácoras se registren a un mismo tiempo. El acceso a un sistema que se registre una hora después de la modificación de privilegios de un usuario es inconsistente y no puede ser tomado como evidencia en un caso.
  4. “¿A través de qué medio?” nos indica el o los vehículos que se usaron para realizar el evento. Podría ser que una tarea programada haya sido la encargada de cambiar la propiedad de un conjunto de archivos de un directorio, o que se accedió a un switch para habilitar un puerto dentro del centro de datos.

Hay que advertir al lector que lo antes dicho no significa que una bitácora deba tener cuatro campos y con esto se obtenga toda la información. Pueden requerirse muchos más datos, o estar divididos en unidades más granulares para el procesamiento. La intención de estas cuatro peguntas es darle al analista información suficiente para llegar a una determinación inicial e informar de manera contundente a los altos mandos, así como contar con datos que permitirán indagar más a fondo si es necesario.

Las bitácoras son tan relevantes en la investigación de eventos que no es de sorprender que una de las primeras metas de una prueba de penetración o de un hacker sea apagar las bitácoras, o al menos ocultar información de quién perpetró las actividades no autorizadas. La información contenida en las bitácoras debe clasificarse, ya que provee información vital acerca de los sistemas o los usuarios, y puede ser un requerimiento regulatorio. Por ello, no basta con tener bitácoras, es preciso salvaguardarlas y hacer que cumplan las regulaciones estipuladas.

Es muy importante clasificar las bitácoras, restringir el acceso a ellas, determinar si se requerirá alguna protección adicional, e incluso definir el método de destrucción o transferencia de información en caso de que un tercero las gestione.

.

Una Torre de Babel

Por lo general, las bitácoras se clasifican de acuerdo a su orientación:

  • Aplicación: indican los sucesos que están activados para registrarse en una aplicación.
  • Seguridad: orientadas a dar información de seguridad.
  • Sistema: registran actividades del sistema (usualmente donde reside la aplicación).

Así, cualquier aplicación, sistema o pedazo de software o hardware específico puede producir una bitácora. Lo importante es que cada elemento de acción genere una.

Hasta aquí todo suena muy sencillo, parecería que las bitácoras son fácilmente manejables y que todo podría registrarse y ubicarse fácilmente en pocos segundos, entonces, ¿dónde están los retos?

Imaginemos una arquitectura de sistemas donde tenemos elementos de diferentes fabricantes: sistemas operativos Linux, Oracle, Windows y AS400 montados para correr aplicaciones diversas como bases de datos Oracle, SQL Server, servidores Web Apache, IIS, sistemas de negocio como SAP, correo Lotus o desarrollos propios. Alrededor de ellos están, por supuesto, sistemas de redes y seguridad como switches, routers y firewalls. Adicionalmente, hay sistemas de monitoreo de servidores, redes o sistemas físicos, como accesos al site o datos de UPS.

Hay muchos elementos que no están homologados entre todas esas estructuras, y uno de ellos son las bitácoras. No hay un estándar oficial que indique lo que una bitácora debe contener. Existen intentos en la industria, como el formato CEE (common event expression) el cual es el más apoyado para unificar las bitácoras bajo un mismo tipo. Un sistema de facto usado para la generación de bitácoras es el envío de registros Syslog, un programa que nació como bitácoras para sistemas de correo electrónico a principios de los años 80 y que pronto se propagó a otros elementos de los sistemas UNIX para generar registros. En términos computacionales ya es arcaico, pero aún así es lo más usado en la actualidad. También hay varios tipos de bitácoras que se clasifican de acuerdo con la forma en que se generan:

  • Archivos: los sistemas como Linux generan bitácoras en archivos (tipo FILE). Aquí se recolecta el archivo para procesar las bitácoras desde ahí.
  • Base de datos: varias aplicaciones, en especial las desarrolladas en casa, generan bitácoras que se almacenan en bases de datos. La extracción de estas bitácoras usualmente sucede mediante conexiones ODBC/JDBC.
  • Windows Event Log: bitácora de eventos del sistema operativo de Microsoft.
  • Check Point Log: btácora específica de Check Point extraíble mediante conexiones propietarias LEA.
  • Y otros más como por ejemplo SDEE, Mainframe y CEF.

Con el paso de los años, cada vez surgen más tecnologías y sin una estandarización en la industria, cada programador y fabricante se las ingenia a su modo para generar registros, lo que representa un gran problema para quienes deben lidiar con las bitácoras.

.

La aguja en el pajar (¡y vaya pajar!)

Hacer cosas cerca de la velocidad de la luz (electrones en una tarjeta madre) hace que en un segundo pasen muchísimos acontecimientos. Para muestra, el siguiente párrafo:

Si consideramos que un firewall mediano podría generar veinte eventos por segundo en promedio (dependiendo del número de reglas activas, tamaño de la red, nivel de registro en las reglas y sistema, nivel de uso a lo largo del día, etcétera), estamos hablando de 51.8 millones de registros generados mensualmente. Si requiero guardar las bitácoras de veinte dispositivos a una tasa similar, habré generado en un mes mil millones de eventos. Buscar una bitácora en veinte sistemas diferentes para luego tomar una decisión se vuelve una tarea titánica, además de tediosa.

Ahora el tamaño: un registro típico de Syslog puede medir alrededor de 250 bytes. Sin compresión, los mismos mil millones de registros se vuelven 260 GB de información para guardar cada mes. Sin embargo, un registro de tipo base de datos puede medir 1 KB, o de Windows 500 bytes. Como puede verse, aunque los logs son pequeños, su generación tan rápida consume mucho espacio en disco.

.

Muchos retos, ¿qué sigue?

Las bitácoras son parte esencial para conocer nuestro entorno, son un elemento esencial de la seguridad como parte de información de medidas preventivas y correctivas, por lo que la seguridad de las mismas también es esencial. Recuerdo la película “Training Day”, con Denzel Washington, donde este le comenta a su aprendiz (Ethan Hawke): “It’s not what you know, it’s what you can prove” (no es lo que sabes, sino lo que puedes probar). Estas palabras son determinantes a la hora de considerar por qué las bitácoras son importantes.

Curiosamente, las bitácoras son piezas que parece que la industria tampoco considera valiosas, porque ni siquiera existe un estándar oficial. Analizando un poco la actuación de otras personas, los hackers tienen un interés muy poderoso en las bitácoras a la hora de penetrar un sistema, pues eliminan los rastros ¿Es que solo ellos pueden apreciar el poder de las bitácoras?

Por ahora aquí me detengo. En la siguiente entrega hablaré de estas y otras consideraciones como los sistemas de gestión de bitácoras, y daré algunos datos de dimensionamiento que espero puedan ayudarlos en la gestión de este enjambre de información.

Continuará…

 .

[email protected]