Una inyección de código puede ser desde introducir comandos del sistema operativo hasta realizar consultas de base de datos. Estos tipos de inyecciones son considerados un riesgo alto. Un ciberdelincuente puede manipular una petición al servidor e introducir su propio código malicioso.
En un escenario con una aplicación web vulnerable a estos tipos de errores puede ocasionar que un atacante logre cargar un archivo malicioso evadiendo todos los controles de seguridad para tener una Web Shell (tener acceso a la terminal del sistema operativo desde la aplicación web.). También, es posible realizar consultas a la base de datos siempre y cuando los controles de seguridad de bases de datos no están configurados correctamente.
Una de las inyecciones más conocidas son las inyecciones SQL (SQLi). Estos tipos de ataques se están volviendo más popular por los “infamosos ataques de secuestro de datos”.
Estos tipos de inyecciones no solo pueden realizar consultas a la base de datos, sino que pueden burlar sistema de autenticación. Esto puede ser posible cuando un programador no desarrolla la aplicación web con las mejores prácticas de seguridad de la información. El atacante puede comprometer una red privada completa si los controles de seguridad no están implementados con las mejores prácticas.
Estas vulnerabilidades no siempre llegan a ser identificadas por herramientas automatizadas. Solo pueden ser identificadas en pruebas manuales. Esta es la razón de por qué debemos realizar prueba de intrusión.
Estas auditorías permiten identificar vulnerabilidades y, a la vez, hacen posible analizar el impacto que puede ocasionar esta inyección.
Podemos protegernos contra esto tipos de ataques mediante validación de datos del cliente. Debemos tener claro que siempre se debe validar toda la data que se recibe del cliente y a la vez del lado del servidor.