Ejecución remota de código (RCE)
En seguridad ofensiva, la ejecución remota de código (RCE) es un fallo que permite a un atacante ejecutar sus propias instrucciones en un sistema objetivo a través de la red, sin necesitar una cuenta en ese sistema. Es el resultado al que llevan otras clases de fallo, y el hallazgo que decide la severidad de un informe.
Cómo funciona
La ejecución remota de código es un resultado, no una técnica. Hay varias rutas que llegan hasta ella. Entrada no confiable que alcanza un intérprete o una shell, que es inyección de comandos o inyección de plantillas. Bytes no confiables que llegan a un deserializador capaz de construir objetos arbitrarios, que es deserialización insegura. Un defecto de seguridad de memoria que deja al atacante controlar el puntero de instrucción. Una subida de fichero que aterriza en un sitio donde el servidor lo va a ejecutar. Una dependencia vulnerable que aporta cualquiera de las anteriores dentro de código que no ha escrito nadie de la casa.
Lo que todas comparten es que se ha cruzado la frontera entre dato e instrucción. Una vez cruzada, el atacante hereda la identidad, la posición de red y los secretos del proceso afectado. Esa es la parte que decide lo grave que es.
Qué sale mal
El error que más caro sale es tratar todos los casos como igual de críticos. Ejecutar como usuario sin privilegios dentro de un contenedor sin credenciales y sin red de salida es un hallazgo serio. El mismo defecto en un proceso que guarda una contraseña de base de datos, un rol de instancia de cloud y salida sin restringir es una brecha en marcha, porque los pasos siguientes son el credential dumping y el movimiento lateral, no la ejecución en sí.
El segundo error es demostrarlo ejecutando un comando que además hace daño. Sobre un parque en producción la prueba tiene que ser algo sin efecto secundario: una llamada de vuelta controlada, un comando de identidad inocuo, un fichero escrito en una ruta desechable. Acordamos qué es aceptable antes de empezar, porque una prueba que tira producción no es una prueba, es un incidente que hemos causado nosotros.
Dónde aparece esto en una auditoría
Un hallazgo de ejecución se escribe como una cadena: el punto de entrada, la entrada inyectada, la evidencia de que nuestras instrucciones corrieron, la identidad con la que corrieron y a qué llegaba esa identidad. Incluimos la petición exacta y la respuesta que demuestra el control, y decimos qué es lo que deliberadamente no hicimos. Las puntuaciones salen del proceso de calificación de la casa con CVSS y el radio de daño observado, nunca de un número copiado del aviso de otro entorno. Esto forma parte de cómo encadenamos hallazgos hasta una prueba que funciona sobre un objetivo web.