Glosario
Qué es una puerta trasera (backdoor): cómo un atacante conserva su acceso y cómo detectarla
Una puerta trasera (backdoor) es una vía oculta para volver a entrar que se salta la autenticación normal. Cómo se instala, qué la distingue del mantenimiento remoto legítimo y cómo detectarla y prevenirla, explicado desde el lado del defensor y sin instrucciones de ataque.
Una puerta trasera (backdoor) es una forma de volver a entrar que se salta el inicio de sesión normal. Aquí verás cómo funciona y cómo detectarla y prevenirla (esta página no explica cómo se instalan ni cómo se usan).
De dónde sale y por qué persiste
Una puerta trasera rara vez aparece sola; llega junto con una primera intrusión. El atacante consigue un punto de apoyo de alguna forma y luego deja una vía para volver. Eso es lo que la hace molesta: corregir la vulnerabilidad original no pone fin al acceso.
1. Primera intrusión
Una vulnerabilidad o unas credenciales robadas dan un punto de apoyo
2. Se deja la puerta trasera
Queda una entrada que se salta la autenticación
3. Vuelve una y otra vez
Sigue accesible después de corregir la vulnerabilidad
4. Robo de datos
Se comunica con un servidor de mando y los datos salen
- Propósito
- Convertir una sola intrusión en un acceso continuado
- Cómo llega
- Una vulnerabilidad sin parchear (por ejemplo, de ejecución remota de código) / credenciales o claves SSH robadas / una dependencia envenenada
- Cómo se mantiene
- Se salta la autenticación normal, evita los registros y a veces está hecha para sobrevivir a un reinicio
- Qué viene después
- Se comunica con un servidor de mando externo (C2), que pasa a ser la base para nuevas acciones y para el robo de datos
Una puerta trasera no es solo algo que se añade a un servidor después de entrar en él. La puerta trasera de xz-utils, descubierta en 2024, tuvo otra forma: la colocó en el código fuente distribuido de una biblioteca de compresión muy usada alguien que había pasado mucho tiempo ganándose la confianza del mantenedor (CVE-2024-3094). Es decir, una puerta trasera puede llegar a través de los componentes que incorporas, sin que tu servidor haya sido atacado nunca. En ambos casos la regla es la misma: corregir la vulnerabilidad no equivale a estar a salvo. Comprueba si quedó un punto de apoyo.
Ejemplos: puertas traseras en versiones publicadas y actualizaciones
Casos tratados en este sitio, más un caso público muy conocido.
| Caso | Dónde se colocó | Qué aprendimos |
|---|---|---|
| XZ Utils (2024) | Los archivos de publicación de una biblioteca de compresión (CVE-2024-3094, CVSS 10.0) | Se descubrió antes de llegar ampliamente a las versiones estables, cuando un ingeniero investigó una lentitud sin explicación |
| SolarWinds Orion (2020) | Actualizaciones legítimas de un software de monitorización | La declaración de la empresa ante la SEC indicó que menos de 18.000 clientes instalaron las actualizaciones afectadas. La CISA de EE. UU. emitió una directiva de emergencia que ordenaba a las agencias federales desconectar los productos afectados |
| MOVEit Transfer (2023) | Un servidor web alcanzado mediante una vulnerabilidad (una web shell) | Un zero-day llevó a una web shell, y se extrajeron datos en bloque de la base de datos que había detrás |
En los tres casos, los usuarios ejecutaban un producto legítimo siguiendo procedimientos legítimos. Aunque tu servidor nunca sea atacado, una puerta trasera puede llegar dentro de un componente o de una actualización que instales.
Puerta trasera frente a términos parecidos
| Término | Qué significa | Relación con la puerta trasera |
|---|---|---|
| Puerta trasera | Una vía oculta para volver a entrar que se salta la autenticación | — |
| Vulnerabilidad | Un fallo del software; un hueco no previsto | Se usa a menudo para la primera intrusión, tras la cual se coloca la puerta trasera |
| Troyano | Malware que se hace pasar por software útil | Puede llevar dentro una puerta trasera |
| RAT (troyano de acceso remoto) | Malware para controlar a distancia un dispositivo infectado | La forma típica de puerta trasera en un dispositivo |
| Web shell | Un script malicioso de control en un servidor web | La forma típica de puerta trasera en un servidor web |
En qué se diferencia del mantenimiento remoto legítimo
Como «forma de manejar un equipo a distancia», el mantenimiento remoto legítimo y una puerta trasera se parecen. La diferencia está en si hay control sobre ello.
Mantenimiento remoto legítimo
Los administradores saben que existe, está sujeto a autenticación y control de acceso, y aparece en los registros de auditoría. Se puede saber quién hizo qué y cuándo. Se creó con permiso.
Una puerta trasera
La coloca un atacante a escondidas, se salta la autenticación y está hecha para no dejar registro. Una entrada invisible que nadie vigila y nadie controla.
Detectar y prevenir
No es una sola medida, sino tres combinadas: reducir las vías de entrada, impedir que el atacante se quede y detectar los cambios.
Reduce las vías de entrada (evita la primera intrusión)
No dejes vulnerabilidades sin parchear (dependencias y framework al día), gestiona credenciales y claves con rigor sin reutilizarlas, y mantén al mínimo lo que expones. Sin primera intrusión no hay oportunidad de dejar una puerta trasera.
Impide que el atacante se quede (mínimo privilegio y separación)
Limita los permisos y separa los servicios para que el daño de un compromiso quede acotado. Diséñalo de forma que un componente comprometido no arrastre al resto.
Detecta el cambio (monitorización de integridad y de tráfico)
Vigila la aparición de ejecutables o scripts desconocidos, procesos y entradas de cron inesperados, y tráfico saliente de tu servidor hacia destinos que no reconoces. Herramientas como el EDR existen para hacer visible un cambio extraño.
Revisa las dependencias y la cadena de suministro
Revisa lo que incorporas y cierra la vía por la que un componente envenenado mete dentro una puerta trasera. Pero ten en cuenta que una firma acredita el origen, no la seguridad: para un caso en que se distribuyeron versiones envenenadas por la vía de publicación legítima, consulta cómo defenderse del compromiso de la cadena de suministro de npm; para las comprobaciones automáticas, primeros pasos con osv-scanner.
Cómo revisar tu propio servidor (ejemplo en Linux)
Estas comprobaciones buscan cualquier cosa que no reconozcas. Todas son solo de lectura; ninguna cambia la configuración.
Revisa las formas de iniciar sesión
Busca claves públicas desconocidas en el ~/.ssh/authorized_keys de cada usuario, y usuarios desconocidos (o usuarios nuevos con UID 0) en /etc/passwd.
Revisa lo que se ejecuta automáticamente
Revisa crontab -l (por usuario), /etc/cron.* y systemctl list-unit-files --state=enabled en busca de tareas programadas o servicios que no configuraste tú.
Revisa los cambios en archivos
Busca archivos modificados recientemente en la raíz web con algo como find /var/www -type f -mtime -7, y fíjate en scripts que aparecieron sin que hicieras un despliegue. Comprueba si se han manipulado los archivos de paquetes con debsums -c (familia Debian) o rpm -Va (familia RHEL).
Revisa las conexiones salientes
Usa ss -tnp para ver si algún proceso se conecta desde el servidor a destinos desconocidos. El tráfico periódico hacia el mismo destino puede ser comunicación con un C2.
Si encuentras algo, no te quedes en borrarlo: desconecta, conserva los registros, reconstruye y cambia todas las credenciales.
Planifica como si alguien llegara a entrar
Lo que hace peligrosa a una puerta trasera es lo fácil que pasa desapercibida. Por eso no es realista confiar solo en «no dejaremos entrar a nadie». Poder decir «aunque alguien entre, no podrá dejar un punto de apoyo y lo notaremos pronto» es lo que evita que un incidente se alargue.
La visión de este sitio: tras corregir la vulnerabilidad, comprueba si el atacante dejó una forma de quedarse
El descuido habitual en la respuesta a incidentes es corregir la vulnerabilidad y darlo por terminado. Nuestra postura es que, una vez corregida la vulnerabilidad, hay que seguir y comprobar si queda una puerta trasera o un proceso residente sin explicación. El objetivo del atacante nunca fue una sola visita, sino quedarse. La respuesta solo termina cuando eso se corta.
Fuentes (primarias)
- NIST NVD, "CVE-2024-3094" — nvd.nist.gov (la puerta trasera de XZ Utils, CVSS 10.0)
- SolarWinds Corporation, "Form 8-K" (14 de diciembre de 2020) — sec.gov (número de clientes afectados)
- CISA, "Emergency Directive 21-01" — cisa.gov
- CISA y organismos asociados, aviso conjunto sobre la vulnerabilidad CVE-2023-34362 de MOVEit Transfer (AA23-158A) — cisa.gov (colocación de la web shell)
- MITRE ATT&CK, "Server Software Component: Web Shell (T1505.003)" — attack.mitre.org (ángulos de detección)
Leer a continuación
- Términos: qué es la ejecución remota de código (RCE) / qué es el C2 (mando y control)
- Términos: qué es el path traversal (un ejemplo de vía de entrada)
- Caso: la puerta trasera de xz-utils (colocada en el propio código fuente distribuido)
- Caso: cómo defenderse del compromiso de la cadena de suministro de npm
- Caso: una clave de API filtrada desde código escrito por IA: la causa real
FAQ
Q¿Qué diferencia hay entre una puerta trasera y el mantenimiento remoto legítimo?
Técnicamente pueden parecerse. La diferencia decisiva es si alguien lo autorizó, si se sabe que existe y si queda registrado. El acceso remoto legítimo lo conocen los administradores y está sujeto a autenticación, control de acceso y registros de auditoría. Una puerta trasera se instala a escondidas, se salta la autenticación y está hecha para no dejar rastro. La capacidad de manejar un equipo a distancia es la misma; lo que cambia es la visibilidad y el control.
Q¿Cómo se instala una puerta trasera?
La mayoría se instala después de una primera intrusión, como punto de apoyo para quedarse. La vía de entrada suele ser una vulnerabilidad sin parchear (por ejemplo, de ejecución remota de código), credenciales o claves SSH robadas, o una dependencia envenenada que entra en la compilación. Este sitio no explica cómo se instalan ni cómo se usan. Lo que importa es el objetivo por capas: evitar la primera intrusión y, si ocurre, impedir que el atacante se quede.
Q¿Cómo puedo comprobar si me han instalado una puerta trasera?
No existe una única comprobación. Lo que funciona es vigilar desde varios ángulos a la vez: monitorización de la integridad de archivos (aparecen ejecutables o scripts desconocidos), monitorización del tráfico saliente (¿el servidor llama a un destino desconocido de forma periódica?), revisión de procesos y entradas de cron inesperados, y revisión de dependencias. Cada una por separado es fácil de esquivar; combinadas, hacen visible un cambio extraño.
Q¿Qué significa backdoor y por qué se llama «puerta trasera»?
Es una forma de entrar que evita la puerta principal, es decir, el inicio de sesión normal (la autenticación). El caso típico es la que deja un atacante tras entrar, pero también se llama puerta trasera a una cuenta de mantenimiento oculta que dejaron los desarrolladores, o a una contraseña fija integrada en un producto, cuando los usuarios no la conocen ni pueden controlarla. En criptografía, la palabra se usa también para mecanismos incluidos a propósito para que un gobierno u otra parte pueda descifrar.
Q¿Qué es una web shell? ¿Es lo mismo que una puerta trasera?
Una web shell es un script malicioso colocado en un servidor web que permite manejar el servidor a distancia, por ejemplo desde un navegador. Es la forma típica de puerta trasera en un servidor web. En la brecha masiva de MOVEit Transfer de 2023 se aprovechó una vulnerabilidad para colocar una web shell, y se robaron datos de la base de datos que había detrás.
QSi encuentro una puerta trasera, ¿basta con borrarla?
No. Puede haber más de una, y las credenciales usadas para entrar también pueden haber sido robadas. Desconecta el servidor de la red, conserva los registros para la investigación, reconstruye desde un estado que sepas que está limpio y cambia todas las credenciales: contraseñas, claves SSH y claves de API. Corrige a la vez la vulnerabilidad por la que entró el atacante.