Log (informática)
archivo con los registros generados por alguna aplicación De Wikipedia, la enciclopedia libre
archivo con los registros generados por alguna aplicación De Wikipedia, la enciclopedia libre
En informática, se usa el término registro, log o historial de log para referirse 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:
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.
Registro de actividad o log:
«es un registro oficial de eventos durante un rango de tiempo en particular que se emplea para registrar los datos o información sobre quién, qué, cuándo, dónde y porqué un evento ocurre (CCN, 2015, pág. 741).»[1]
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 el cuaderno de bitácora en el 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 enganchaba 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).
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.
Los archivos de registros de sistema graban cronológicamente los acontecimientos que sobrevienen a nivel de componentes del sistema. Por ejemplo, los sistemas Unix y similares usan syslogd para crear y adichos registros[2] y usan el protocolo Syslog para enviar hacia otros ordenadores especializados en recolectar y analizar dicha información.
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.
Al estar su mayoría en texto plano, se pueden utilizar herramientas como grep, find así como uso de expresiones regulares para detectar patrones o información específica.
A su vez puede existir el intercambio y comparación de información con bases de datos de amenazas tales como VirusTotal, Malware Information Sharing Platform u otras plataformas de inteligencia contra amenazas mediante software cómo Fail2ban.
Tener un registro de todos los acontecimientos que han ido sucediendo es muy útil. Ejemplos de uso:
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 proveerlo en un entorno complejo centrado en aportar integridad.
Supongamos que tenemos un único logger o registrador que es inicialmente confiable pero que puede ser corrompido en algún momento. Sería bueno garantizar que después de que el registrador ha sido corrompido no pueda 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 de detección de manipulaciones que no protegen frente a modificaciones pero permiten detectar si se han producido dichas modificaciones.[3]
En estos sistemas criptográficos, cuando comienza el proceso de autenticación, 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 registrador es confiable al inicio del proceso, la clave de verificación es siempre escogida de forma adecuada.[3]
Sin embargo, cuando un atacante toma el control del sistema puede 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[3]
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.[3]
A partir de esta idea se han diseñado distintos sistemas que han agregado distintas peculiaridades para añadir más seguridad, como por ejemplo:[3]
Las investigaciones más importantes sobre este campo son:[3]