¿Cómo capturar no solo el mtime sino también el ctime al hacer copias forenses de archivos?

1

Context

Estoy investigando una caja de Linux comprometida donde encontré archivos con código malicioso. El sistema de archivos es demasiado grande para hacer una copia de todo el dispositivo de bloque y hasta el momento solo me interesan los archivos de un subdirectorio no tan grande.

Mientras que la marca de tiempo modificada por última vez (también llamada "mtime") de un archivo de ejemplo es más antigua, el llamado ctime (tiempo de cambio de inodo) es bastante nuevo. Así que también quiero capturar el ctime, ya que podría ser relevante.

JFTR: Sé que ninguna de las marcas de tiempo debe mostrar la hora en que se creó el archivo porque un comando chmod o chown también cambiará el ctime y la fecha de la última modificación podría establecerse con la herramienta de descarga utilizada para descargar el archivo, por ejemplo wget , porque, al contrario de ctime, Linux permite que el mtime de un archivo se configure en tiempos arbitrarios.

Pregunta

¿Cómo capturo el ctime correctamente cuando hago copias forenses de tales archivos?

No tengo conocimiento de ningún formato de archivo (por ejemplo, tar, zip, rar) que capture el ctime (potencialmente específico del sistema de archivos) además del mtime.

Hasta ahora se me ocurrieron estas soluciones alternativas:

  • Haga ls -l --time=ctime $file para cada archivo capturado y guárdelo en un archivo de texto junto con los archivos. (Hizo eso por ahora).
  • Guarde los archivos en un medio que también contenga un sistema de archivos que almacene ctimes, por ejemplo. una memoria USB con formato ext4, y establezca la hora del sistema a la hora c del archivo a copiar inmediatamente antes de copiar, de modo que la hora c de la copia esté a segundos de la hora c original. (En teoría, debería funcionar, pero es probable que tenga otros efectos secundarios en el sistema operativo; en realidad nunca lo probé).

Ambas soluciones son altamente insatisfactorias y me pregunto si hay mejores métodos para capturar el ctime al hacer copias forenses de archivos (con Linux y preferiblemente con software de código abierto), por ejemplo. una herramienta que puede modificar el ctime de un archivo o un formato de archivo que puede almacenar más de una marca de tiempo por archivo, etc.

    
pregunta Axel Beckert 14.09.2018 - 18:52
fuente

2 respuestas

1

Los formatos de archivo no capturan el ctime porque sería inútil ya que es imposible restaurarlo¹.

Para fines forenses, necesita mantener las cosas simples, porque debe poder probar que los datos que capturó son genuinos. No se puede escapar haciendo una copia de bajo nivel del dispositivo de bloque que contiene el sistema de archivos. Para fines de análisis, donde se filtran los datos para descubrir qué es lo interesante, puede usar métodos complejos de extracción de datos y verificar sus hallazgos con los datos reales posteriormente.

El uso de ls puede ser complicado si los archivos tienen nombres que contienen caracteres especiales, como espacios, nuevas líneas o caracteres no imprimibles. También ls imprime una aproximación del tiempo que depende de la zona horaria y es molesto analizar. Si debe usar ls , use la opción --full-time de GNU ls para obtener una visualización de tiempo no ambigua, y asegúrese de que está usando un conjunto de opciones que imprimen el nombre del archivo de manera inequívoca y que luego lo analicen correctamente . Las versiones recientes de GNU ls imprimen el nombre del archivo de forma inequívoca por defecto, pero el formato es relativamente complejo.

Linux proporciona un comando stat que imprime más metadatos, incluidas todas las marcas de tiempo y el número de inodo. * Los sistemas BSD, incluyendo macOS, tienen un comando stat con un propósito similar pero completamente sintaxis. Tenga en cuenta que imprimen el nombre del archivo literalmente, lo que puede hacer que la salida sea ambigua si algunos nombres de archivo contienen nuevas líneas.

Por supuesto, haga todo esto desde una vista del sistema de archivos que sea tan solo de lectura como pueda obtener. Para fines forenses, lo mejor es que lo primero que hagas sea hacer una copia del disco a través de un dongle de hardware que asegure que no modifique la fuente, de esa forma no habrá ninguna duda de que corrompiste la evidencia. Si el riesgo legal es bajo, puede prescindir del hardware de propósito especial, pero al menos asegúrese de haber hecho que el dispositivo de bloqueo sea de solo lectura. Hacer un montaje de solo lectura del sistema de archivos ( mount -r ) no es suficiente: garantiza que no actualizará las marcas de tiempo, pero reproducirá el diario, por lo que no puede afirmar que su captura no modificó la evidencia .

¹ Si eres root, puedes cambiar la hora del sistema, pero eso afecta a todo el sistema, por lo que sería extremadamente perjudicial.

    
respondido por el Gilles 15.09.2018 - 09:24
fuente
-2

Creo que el comando cp tiene una opción para conservar cierta información del archivo original

--preserve=mode,ownership,timestamps

No estoy seguro de si esto solucionará tu problema.

    
respondido por el camp0 14.09.2018 - 22:09
fuente

Lea otras preguntas en las etiquetas