Muchas empresas generan una cantidad muy grande de logs de todos los servicios que utilizan. Analizar toda esa información se convierte en un desafío importante para gestionar la seguridad correctamente. Una herramienta que puede facilitar la recuperación y análisis de esta información es Terrier IR.

Terrier 3.5 es una herramienta que puede correr tanto en Windows como Linux y que necesita tener instalado el JRE de Java. Es un sistema bastante robusto que permite indexar y recuperar la información de archivos con diferentes estructuras como CSV o XML e incluso puede indexar la información de archivos PDF o de texto plano.

La ventaja de este sistema con respecto a otros es la facilidad en su instalación y la versatilidad en el uso, pues todo se puede configurar en archivos de texto en los cuales se varían los parámetros y variables que caracterizan las acciones que se van a ejecutar.

Por ejemplo para indicar los archivos que se desean indexar, simplemente se busca el archivo collection.spec que se encuentra en la carpeta etc dentro de la carpeta de Terrier:

Antes de indexar el corpus es necesario conocer la estructura de los archivos de los logs para saber cuales tags se van a utilizar, de tal forma que se pueda configurar el módulo de indexación. Por ejemplo si la estructura de los logs contiene los tags username, port, from, comment, message, tty y source y se quiere indexar la información únicamente de los primeros cinco campos se debe editar en el archivo terrier.properties las opciones TrecDocTags.process y TrecDocTags.skip para indicar cuales son los campos utilizados y cuales deben omitirse.

Con esta configuración es suficiente para poner a correr el indexador.

Una vez construido el índice se puede proceder a recuperar la información basado en criterios de búsqueda definidos por el usuario. De forma similar a lo que se hizo para configurar el indexador del corpus de logs, se deben configurar los campos que componen las consultas que se van realizar. En este caso se cambian las variables TrecQueryTags. Por ejemplo en este caso se utiliza el tag NUM para identificar cada búsqueda, y en el tag DESC se almacena la búsqueda particular.

Una vez definida la estructura de las consultas, se procede a lanzar el comando para realizar las búsquedas indicadas sobre el conjunto de archivos indexados.

Con este comando se corren todas las consultas que estén indicadas en la ruta Dtrec.topics, y se obtiene un nuevo archivo con los registros recuperados y un puntaje asignado que indica su relevancia con respecto a la consulta indicada.

De esta forma se podría utilizar como parámetro de análisis aquellas entradas que tengan los valores más altos de puntaje para investigar si está ocurriendo algo extraño. O si por ejemplo hay muchos logs que coinciden con una búsqueda de algún error particular es porque puede estar relacionado con alguna falla particular.

La ventaja de esta herramienta sobre un análisis de una base de datos relacional, es la velocidad en la búsqueda ya que todos los registros están indexados. Además teniendo en cuenta que la estrucutura de los archivos que contienen los logs no tienen una estructura muy adecuada para ser procesada en bases de datos tipo SQL.

Si una empresa decide implementar esta herramienta o algún sistema similar para el análisis de los logs de sus sistemas lo que va a lograr es tener mayor capacidad de respuesta ante la ocurrencia de un incidente o para detectar fallas que puedan afectar la integridad de la información corporativa.

H. Camilo Gutiérrez Amaya
Especialista de Awareness & Research