¿Qué es la Inyección en Memoria en Ciberseguridad?
La inyección en memoria es una técnica utilizada por atacantes para insertar y ejecutar código malicioso directamente en la memoria RAM de un proceso en ejecución, sin necesidad de escribir archivos en el disco. Esto les permite actuar de forma sigilosa, evitando la detección por parte de antivirus o herramientas de análisis tradicionales.
¿Cómo Funciona? (Paso a Paso)
Acceso Inicial
-
El atacante accede al sistema (por phishing, explotación de vulnerabilidades, o herramientas de acceso remoto).
-
-
Preparación de la Inyección
-
El atacante selecciona un proceso objetivo legítimo (como
explorer.exe
,svchost.exe
, o un navegador).
-
-
Inyección del Código
-
Usan funciones del sistema operativo como:
-
WriteProcessMemory
-
VirtualAllocEx
-
CreateRemoteThread
-
NtMapViewOfSection
-
-
Estas funciones permiten asignar espacio en memoria dentro del proceso y escribir ahí el código malicioso.
-
-
Ejecución
-
El atacante ejecuta ese código dentro del proceso objetivo, por ejemplo, usando
CreateRemoteThread
.
-
-
Sigilo y Persistencia
-
Como el código corre únicamente en memoria, no deja rastro en el disco.
-
Desde ahí, el código puede:
-
comunicarse con servidores de C2 (comando y control),
-
robar credenciales,
-
escalar privilegios,
-
o desactivar defensas del sistema.
-
-
Técnicas Comunes de Inyección en Memoria
Técnica | Descripción |
---|---|
Inyección de DLL | Cargar una DLL maliciosa en un proceso mediante LoadLibrary . |
Inyección de DLL Reflectiva | Inyecta la DLL directamente en memoria sin pasar por el cargador de Windows. |
Process Hollowing | Se lanza un proceso legítimo en estado suspendido, se reemplaza su memoria con código malicioso y luego se ejecuta. |
Secuestro de Hilos (Thread Hijacking) | Toma el control de un hilo de ejecución dentro del proceso. |
Inyección APC | Usa llamadas Asynchronous Procedure Call para ejecutar código dentro de otro proceso. |
Inyección de Shellcode | Inyecta código en bruto (bytecode) directamente en memoria para su ejecución inmediata. |
¿Por Qué Es Peligrosa?
-
Evade la Detección: No crea archivos → más difícil de detectar.
-
Corre en Procesos Confiables: Muchos antivirus ignoran comportamientos anómalos en procesos firmados por el sistema.
-
Usada por Amenazas Avanzadas: Es común en ataques tipo APT (Advanced Persistent Threat).
-
Permite Escalar Privilegios: Puede ejecutarse con permisos altos (hasta nivel SYSTEM).
Ejemplos Reales
-
Emotet: Usaba inyección de DLL reflectiva.
-
Cobalt Strike: Herramienta de red team usada por atacantes, conocida por sus técnicas de inyección en memoria.
-
TrickBot: Emplea process hollowing e inyecciones varias.
-
Mimikatz: Extrae credenciales desde la memoria del proceso
lsass.exe
.
¿Cómo Defenderse?
-
EDR (Endpoint Detection & Response): Monitorea comportamientos anómalos en memoria.
Escaneo de Memoria en Tiempo Real: Herramientas como Windows Defender ya incluyen esto.
-
Whitelisting de Procesos: Permitir solo procesos conocidos.
-
Detección Basada en Comportamiento: Detecta acciones, no archivos.
-
Principio de Mínimo Privilegio: Limitar permisos a usuarios y procesos.
-
Parches de Seguridad: Muchas inyecciones se basan en vulnerabilidades conocidas.