Inyección de Código
¿Qué es Inyección de Código?
Inyección de CódigoClase de vulnerabilidades en la que datos proporcionados por el atacante se interpretan y ejecutan como código de la aplicación, permitiendo ejecución arbitraria.
La inyección de código es la familia amplia de fallos en los que entrada no confiable se incorpora a algo que la aplicación trata más tarde como código, configuración o marcado, provocando que el runtime lo ejecute. Casos concretos incluyen inyecciones basadas en eval en JavaScript y Python, inyección de plantillas del servidor, inyecciones de lenguajes de expresión (OGNL, SpEL), deserialización insegura que dispara cadenas de gadgets, y carga dinámica de clases desde datos del usuario. Una explotación exitosa suele dar ejecución remota con la identidad de la aplicación, paso previo a comprometer todo el host o clúster. Las defensas incluyen no construir código a partir de la entrada, APIs parametrizadas, restringir funciones dinámicas y aplicar mínimos privilegios y sandboxing.
● Ejemplos
- 01
eval(request.body.expr) ejecuta JavaScript controlado por el atacante en un servicio Node.
- 02
Aplicación Java que llama a ScriptEngine.eval sobre un script proporcionado por el usuario.
● Preguntas frecuentes
¿Qué es Inyección de Código?
Clase de vulnerabilidades en la que datos proporcionados por el atacante se interpretan y ejecutan como código de la aplicación, permitiendo ejecución arbitraria. Pertenece a la categoría de Ataques y amenazas en ciberseguridad.
¿Qué significa Inyección de Código?
Clase de vulnerabilidades en la que datos proporcionados por el atacante se interpretan y ejecutan como código de la aplicación, permitiendo ejecución arbitraria.
¿Cómo defenderse de Inyección de Código?
Las defensas contra Inyección de Código combinan habitualmente controles técnicos y prácticas operativas, como se detalla en la definición.
¿Cuáles son otros nombres para Inyección de Código?
Nombres alternativos comunes: Ejecución remota de código, Ejecución de código arbitrario.