Log (informática)

De Wikipedia, la enciclopedia libre
Saltar a: navegación, búsqueda

En informática, se usa el término log, historial de log o registro a la grabación secuencial en un archivo o en una base de datos de todos los acontecimientos (eventos o acciones) que afectan a un proceso particular (aplicación, actividad de una red informática, etc.). De esta forma constituye una evidencia del comportamiento del sistema.

Por derivación, el proceso de generación del log se le suele llamar guardar, registrar o loguear (un neologismo del inglés logging) y al proceso o sistema que realiza la grabación en el log se le suele llamar logger o registrador.

Generalmente los acontecimientos vienen anotados con:

  • El momento exacto o data (fecha, hora, minuto, segundo) en el que ocurrió lo que permite analizar paso a paso la actividad.
  • Una o más categorizaciones del acontecimiento registrado. Es frecuente usar categorías distintas para distinguir la importancia del acontecimiento estableciendo distintos niveles de registro los cuales suelen ser: depuración, información, advertencia y error.

La mayoría de los registros se almacenan en texto sin formato o en XML. De esta forma, el log puede ser fácilmente leído y procesado. Sin embargo, otras veces son construidos directamente por dispositivos usando campos magnéticos y pulsos electrónicos que pueden ser recolectados y analizados con herramientas y técnicas especiales.

Aplicaciones[editar]

Tener un registro de todos los acontecimientos que han ido sucediendo es muy útil. Ejemplos de uso:

Tipos[editar]

De aplicaciones[editar]

Los logs de aplicaciones graban cronológicamente las operaciones durante el funcionamiento de la aplicación. Su función forma parte de la lógica de la aplicación. Por lo tanto, no debería estar detenida durante el funcionamiento de la misma.

Del sistema[editar]

Los archivos de registros de sistema graban cronológicamente los acontecimientos que sobrevienen a nivel de componentes del sistema. Por ejemplo, los sistemas Unix usan el protocolo Syslog para realizar crear un registro del sistema

Registros[editar]

Si la grabación se realiza en un fichero, se llama fichero de registros o archivo de log (en inglés log file) al archivo que contiene las grabaciones. En estos ficheros los eventos vienen por orden cronológico de tal forma que la generación correcta de estos ficheros es grabar la información concatenando el nuevo contenido al final del contenido del fichero actual.

Típicamente se asigna una línea por acontecimiento, comenzando por el momento exacto o marca temporal (fecha, hora, minuto, segundo) en el que tuvo lugar.

Logs seguros[editar]

Los logs pueden contener información confidencial que no debe ser revelada por privacidad o incluso porque su revelación hace vulnerable la seguridad del sistema. En estos casos es necesaria proteger la confidencialidad de la información. Para solucionar estos problemas se usan en los logs técnicas de cifrado.

El valor de los logs como evidencia disminuye si no podemos demostrar que no han sido modificados por entidades no autorizadas. En general es necesario proteger la integridad de la información.

Las investigaciones en el campo de los logs seguros han sido principalmente enfocadas en el campo de la integridad ya que el cifrado es en sí mismo un problema aparte. Sin embargo ha habido investigaciones específicas sobre cifrado en logs pero para para proveerlo en un entorno complejo centrado en aportar integridad.

Supongamos que tenemos un único logger que es inicialmente confiable pero que puede ser corrompido en algún momento. Sería bueno garantizar que después de que el logger ha sido corrompido no puede manipular los registros creados antes de la corrupción. Para ello se puede usar hardware de almacenamiento en el que solo se pueda escribir una vez pero se pueda leer muchas veces (Write Once Read Many) o simplemente impresoras. A veces estos sistemas no son viables y se usan técnicas criptográficas que no protegen frente a modificaciones pero permiten detectar si se han producido dichas modificaciones (en inglés tamper-proof). [1]

En estos sistemas criptográficos, cuando comienza el proceso de logueo, el logger crea una clave de verificación. Esta clave de verificación puede entonces ser distribuida a un conjunto de verificadores o puede ser publicado a cualquiera dependiendo del tipo de algoritmo usado: firma digital o MAC. La ventaja de los sistemas con firma digital es que cualquiera puede verificar la integridad y los verificadores no pueden modificar el log sin ser detectados. La ventaja de los sistemas MAC es que son más rápidos. Como el logger es confiable al inicio del proceso, la clave de verificación es siempre escogida de forma adecuada.[1]

Sin embargo, cuando un atacante toma el control del sistema pude tener acceso a cualquier clave almacenada y por tanto podría generar pruebas falsas y modificar los ficheros de logs sin ser registrados. Para mitigar este problema se han desarrollado sistemas que buscan conseguir integridad hacia delante. Para ello en lugar de tener una clave secreta se tiene una serie de claves secretas donde cada clave posterior puede ser generada a partir de la clave anterior vía un procedimiento específico pero no es posible el proceso inverso. Los esquemas de firma digital o de MAC que consiguen integridad hacia adelante se dice que son seguras hacia delante. Si se trata de un sistema de firma digital se dice que es firma segura adelante[1]

Cuando se define el esquema se define el evento que tiene que ocurrir para pasar de usar una clave a usar la siguiente. Normalmente el criterio suele ser que haya pasado un tiempo especificado o se hayan registrado cierto número de eventos. Cuando esto sucede es muy importante borrar toda evidencia de la clave anterior y garantizar que dicha información es irrecuperable.[1]

A partir de esta idea se han diseñado distintos sistemas que ha añadido distintas peculiaridades para añadir más seguridad. Como por ejemplo:[1]

  • Cada entrada en el registro se almacena junto con una data para detectar ataques de reordenamiento.
  • Muchos esquemas cuentan el número de entradas en el log y añaden números de secuencia. Esto ayuda a determinar el orden de las entradas en el log.
  • Otros esquemas proponen usar cadenas resumen donde cada entrada en el log es aumentada añadiendo el valor hash de la entrada previa en el log. Esto permite detectar ataques de reordenamiento y el borrado de entradas en el log.
  • Otros esquemas añaden una marca para identificar el número de clave de la secuencia que se está utilizando. A esto se les llama marcas de época. Esto permite hacer más fácil la verificación.
  • Si el esquema loguea independientemente de la cantidad de tiempo que pasa puede ser muy útil añadir entradas de log que indique exclusivamente la hora actual en intervalos regulares (se les llama entradas de metrónomo)
  • Algunos esquemas emplean de forma adicional cifrado para proteger la confidencialidad de los mensajes.

Las investigaciones más importantes sobre este campo son:[1]

Origen[editar]

El uso de este anglicismo es debido a las traducciones del inglés de la jerga informática. En inglés el término log designa la bitácora en la cual el comandante de un navío consigna los acontecimientos que sobrevienen durante la travesía. Una versión dice que origen es la corredera (log en inglés), un instrumento al que se le enganchada una cuerda con nudos que se lanzaba desde los barcos para medir la rapidez de la embarcación. Otra versión dice que a la entrada de un cuartel había una garita, una log cabin en la cual había un registro en el que se consignaba las entradas/salidas de los soldados del cuartel y a la que se le llamaba el log cabin book y por extensión el log book. Así se entraba (log in) y se salía (log out).

Véase también[editar]

Referencias[editar]