Saltearse al contenido

Persistencia de malware (análisis)

La persistencia es cómo el malware sobrevive a reinicios y cierres de sesión para mantener el acceso. Al analizar una muestra, identificar su mecanismo de persistencia es clave: dice dónde “vive” en el sistema, aporta IOCs de alta fidelidad, y es lo primero que hay que limpiar en la respuesta a incidentes. Esta ficha cataloga los mecanismos de persistencia en Windows desde la óptica de análisis y detección. (La persistencia en Linux se trata en Persistencia en Linux; en AD, en Persistencia en Active Directory.)

# arranque automático (autoruns)
Run / RunOnce keys HKLM\...\CurrentVersion\Run , HKCU\...\Run
Startup folder carpeta de inicio (acceso directo/script)
Services un servicio que se inicia al arrancar (CreateService)
Scheduled Tasks tareas programadas (schtasks / COM) -> muy común
# técnicas más sigilosas
WMI event subscription un consumidor WMI que se dispara ante un evento del sistema (fileless)
COM hijacking secuestrar una clave COM para que se cargue tu DLL
DLL search order hijacking colocar una DLL donde una app la cargue antes que la legítima
Image File Execution Options (IFEO) "debugger" de un ejecutable -> lanza tu payload
AppInit_DLLs / LSA / Winlogon claves que cargan DLLs en procesos del sistema
# bootkits/rootkits persistencia a nivel de arranque/kernel (la más profunda)

Las tareas programadas y las Run keys son las más habituales; WMI y COM hijacking son más sigilosas y fileless.

# dinámico (ver mal-dynamic): observar qué instala la muestra al ejecutarse
Autoruns (Sysinternals) LISTA todos los puntos de autoarranque -> comparar antes/después
Regshot diff del registro: qué claves nuevas aparecieron
ProcMon capturar la escritura de la clave/tarea/servicio
# estático (ver mal-static): imports y strings que delatan el mecanismo
RegSetValueEx + "\\Run" -> Run key
CreateService -> servicio
ITaskScheduler / schtasks -> tarea programada
IWbemServices (WMI) -> WMI event subscription

Autoruns de Sysinternals es la herramienta clave: enumera de un vistazo todos los puntos de persistencia del sistema, y lo que el malware añadió destaca frente a la línea base.

# la persistencia da IOCs de alta fidelidad para la detección y la limpieza:
- el nombre y ruta del ejecutable/DLL persistido
- la clave de registro / nombre de tarea / nombre de servicio exactos
- el comando que ejecuta (a menudo revela LOLBins, -enc, rutas)
# -> reglas Sigma sobre creación de servicios (7045), tareas (4698), claves Run
# telemetría
Sysmon creación de procesos (1), registro (12/13), creación de ficheros (11)
Windows logs 7045 (servicio nuevo), 4698 (tarea nueva), 4657 (cambio de registro)
WMI logging para suscripciones de eventos WMI
Autoruns + EDR enumeración periódica de puntos de persistencia vs línea base
# caza
- comparar los autoruns de los hosts contra un baseline conocido-bueno
- tareas/servicios con comandos ofuscados o que invocan intérpretes/LOLBins
- DLLs no firmadas cargadas desde rutas de usuario
# la persistencia es lo primero a eliminar para cortar el acceso:
1. identificar TODOS los mecanismos (puede haber varios/redundantes)
2. eliminar las claves/tareas/servicios/DLLs maliciosos
3. eliminar el payload persistido
4. verificar (reanalizar autoruns) y, ante compromiso serio, reconstruir el host
# recordar: si quedó UN mecanismo sin detectar, el malware vuelve
  • Monitorizar los puntos de persistencia (Sysmon + Autoruns + EDR) contra una línea base.
  • Reglas Sigma sobre creación de servicios/tareas y cambios en Run keys.
  • Mínimo privilegio (muchos mecanismos requieren admin) y application allowlisting.
  • Firma de DLLs/drivers y protección del arranque (Secure Boot) contra bootkits.
  • Mapear a MITRE ATT&CK (TA0003 Persistence) para cobertura sistemática.
  • Autoruns/Regshot antes y después de ejecutar la muestra
  • Identificar TODOS los mecanismos de persistencia instalados
  • Imports/strings que delatan el mecanismo (estático)
  • Extraer IOCs exactos (clave/tarea/servicio/ruta/comando)
  • ¿Mecanismos sigilosos (WMI/COM/IFEO)?
  • Derivar detecciones (Sigma: 7045/4698/Run keys)
  • Mapear a MITRE ATT&CK (TA0003)
  • Plan de limpieza (todos los mecanismos → payload → verificar)