← Volver al blog

Anti-forense NTFS: tácticas de atacantes sobre la MFT

· 5 min de lectura

Respuesta corta: las técnicas anti-forenses en NTFS buscan ocultar qué es un archivo, cuándo se tocó o que haya existido siquiera. Ninguna de las técnicas habituales es limpia — cada una deja un artefacto distinto en $MFT, $UsnJrnl, $LogFile o los snapshots VSS. Este artículo cataloga las técnicas y los indicios que las delatan.

Timestomping

El clásico. Herramientas como SetMACE, timestomp y one-liners de PowerShell integrados llaman a SetFileTime o escriben directamente $STANDARD_INFORMATION para hacer que un archivo parezca más viejo o más nuevo de lo que es.

Qué deja:

  • Las marcas de tiempo de $STANDARD_INFORMATION y $FILE_NAME divergen — SetFileTime solo actualiza SI. Véase las cuatro marcas de tiempo MFT.
  • La precisión subsegundo suele ponerse a cero. La actividad natural de Windows deja fracciones de segundo; muchas herramientas de timestomping redondean al segundo.
  • Un creado $STANDARD_INFORMATION anterior al creado $FILE_NAME es imposible — los archivos no pueden existir antes de tener nombre.

Cómo detectarlo: analiza $MFT y marca cada registro donde SI y FN difieren en más de unos pocos segundos, o donde SI precede a FN siquiera. El parser navegador de este sitio expone ambos conjuntos de marcas de tiempo por registro.

Flujos de datos alternativos (ADS)

NTFS permite que un archivo lleve varios atributos $DATA. El que no tiene nombre es el archivo «real»; los que sí (file.txt:hidden) son flujos de datos alternativos — invisibles para el Explorador, invisibles para dir, y usados rutinariamente para esconder cargas útiles.

Qué deja:

  • Un ADS es solo otro atributo $DATA en el mismo registro MFT. Todo parser que recorra el flujo de atributos los lista.
  • El ADS Zone.Identifier, añadido automáticamente por los navegadores, sobrevive a menudo en cargas descargadas — demostrando que el archivo viene de internet y de qué zona de seguridad.

Cómo detectarlo: dir /R desde cmd.exe lista los ADS en un sistema vivo. streams.exe de Sysinternals los enumera. El parser MFT los muestra en línea con el registro. Véase flujos de datos alternativos.

Borrar un único archivo

Los wipers sofisticados sobrescriben los clústeres del archivo y luego eliminan el registro MFT. Los menos sofisticados (del /f, SDelete con ajustes por defecto) sobrescriben los datos pero dejan el registro MFT en su sitio.

Qué deja:

  • Un registro MFT eliminado con $FILE_NAME y $STANDARD_INFORMATION intactos — el nombre y las marcas de tiempo sobreviven aunque los datos hayan desaparecido. Véase qué sobrevive cuando eliminas un archivo en NTFS.
  • A menudo un registro $UsnJrnl para la creación original y la eliminación.
  • Entradas en $LogFile para las operaciones de metadatos.
  • Un snapshot VSS de antes del borrado que aún contiene el archivo completo.

Cómo detectarlo: incluso un archivo «borrado» deja un nombre, una ruta y marcas de tiempo en $MFT. Combínalo con snapshots VSS (snapshots y $MFT) y a menudo recuperas también el contenido.

Borrar el propio registro MFT

Un atacante más agresivo escribe un archivo nuevo para reutilizar deliberadamente la posición, sobrescribiendo el registro eliminado. Esto funciona — la posición se pierde — pero la eliminación es ella misma un evento.

Qué deja:

  • El número de secuencia del registro se ha incrementado. Una referencia desde $UsnJrnl o $LogFile al número de secuencia antiguo queda obsoleta y te indica que la posición se ha reutilizado.
  • $UsnJrnl sigue registrando tanto la creación/eliminación original como la creación del nuevo archivo, incluido un directorio padre distinto si el nuevo archivo vive en otro sitio.
  • Las copias snapshot de $MFT de antes de la reutilización aún contienen el registro original.

Cómo detectarlo: cruza $UsnJrnl contra la $MFT actual. Una entrada de $UsnJrnl cuyo registro objetivo tiene ahora un número de secuencia superior al referenciado en la entrada indica una reutilización.

Truncamiento de $UsnJrnl

El diario de cambios es finito. Un atacante que lance operaciones ruidosas (muchas escrituras de archivos) puede forzar a $UsnJrnl a dar la vuelta, desalojando entradas antiguas.

Qué deja:

  • Un $UsnJrnl que empieza más tarde de lo que sugeriría su parámetro $Max es sospechoso.
  • $LogFile no rota del mismo modo y a menudo aún registra las operaciones que empujaron $UsnJrnl fuera.
  • Las propias operaciones ruidosas dejan miles de registros MFT — son visibles.

Eliminación de $UsnJrnl

fsutil usn deletejournal /D C: elimina el diario por completo. Los diarios recreados parten de un contador USN fresco.

Qué deja:

  • Un $UsnJrnl cuyo primer USN es sospechosamente alto, o cuyo primer registro es horas o minutos antes del incidente.
  • Una entrada de directorio $Extend cuyo número de secuencia del registro MFT se ha incrementado.
  • Snapshots VSS de antes de la eliminación que aún contienen el diario completo.

Renombrar a un archivo de sistema

Ocultar malware como svchost.exe, lsass.exe u otro binario familiar de Windows. Técnicamente no es anti-forense de MFT, pero es el truco más común en la vida real para engañar a los analistas.

Qué deja:

  • Un $FILE_NAME cuya referencia de directorio padre no es C:\Windows\System32.
  • Un atributo $DATA cuyo tamaño y entropía no coinciden con la distribución del binario legítimo.
  • Un ADS Zone.Identifier de la descarga.

Garabatos MFT del ransomware

Algunas familias de ransomware (Petya, NotPetya y un puñado desde entonces) corrompen deliberadamente $MFT para que el volumen sea no-montable. Es destructivo más que evasivo.

Qué deja:

  • Registros BAAD donde debería haber FILE.
  • Un sistema no-arrancable, pero una imagen valiosa para el forense — escanea el volumen por firma FILE y la mayor parte de la tabla sigue siendo legible.

Véase patrones de ransomware en la MFT para los detalles.

El principio general

Toda técnica anti-forense en NTFS deja algún artefacto. La razón es estructural: $MFT, $UsnJrnl, $LogFile y VSS registran cada uno una vista distinta de los mismos eventos, y modificar uno de ellos es en sí mismo un evento que los demás registran. Un triaje que recorre los cuatro juntos es difícil de vencer.

Recursos externos