Una inyección SQL es un tipo de ataque en el que los cibercriminales intentan explotar vulnerabilidades en el código de una aplicación insertando una consulta SQL en campos de entrada o formulario regulares, como un nombre de usuario o contraseña. Luego, la instrucción SQL se pasa a la base de datos SQL subyacente de la aplicación.
Los ataques de inyección SQL son exitosos cuando el formulario de entrada basado en la web permite que las declaraciones SQL generadas por el usuario consulten la base de datos directamente. Estos ataques también han proliferado con el uso de bases de código compartidas, como complementos de WordPress, que contienen una vulnerabilidad en el patrón de código. Esta vulnerabilidad se traslada a toda la aplicación y puede afectar a cientos de miles de sitios web que utilizan ese código compartido.
El daño puede ser grande. Un atacante con un buen conocimiento de SQL ingresa consultas en una aplicación basada en la web sin parámetros de validación de entrada implementados, luego accede fácilmente a los archivos de clientes de una empresa o a información financiera confidencial.
¿Qué son las consultas SQL?
Las consultas se utilizan para encontrar datos específicos basados en los criterios proporcionados por el usuario. SQL es uno de los varios idiomas que ejecutan las bases de datos para aplicaciones, que se pueden crear para uso interno por parte de una organización o publicarse en Internet y estar disponibles para el público. Además de encontrar datos, las consultas de SLQ pueden realizar cálculos, resumir datos y automatizar tareas.
Tipos de inyecciones SQL
SQLi en banda
SQLi dentro de la banda es un tipo común de ataque y es conocido por su simplicidad y eficiencia. Este método tiene dos variaciones: basado en errores y basado en uniones.
1. SQLi basado en errores
Los atacantes inyectan consultas SQL con la esperanza de que la base de datos devuelva mensajes de error, lo que puede dar a los atacantes información sobre la base de datos y su estructura.
2. SQLi basado en UNION
En este escenario, los atacantes utilizan el operador SQL de UNION para que la base de datos devuelva una sola respuesta del Protocolo de transferencia de hipertexto (HTTP). Luego, los atacantes pueden evaluar la respuesta en busca de pistas sobre el contenido de una base de datos.
SQLi inferencial
En ataques SQLi inferenciales o ciegos, los estafadores consultan la base de datos y observan el comportamiento del servidor para recopilar información sobre la estructura de la base de datos. Estos tipos de ataques son más lentos, pero pueden ser igual de dañinos que otros tipos de SQLi. Existen dos tipos: booleano y basado en el tiempo.
Burp Suite es un conjunto avanzado de herramientas para probar la seguridad web, todo dentro de un solo producto.
1. Booleano
El atacante consulta la base de datos y, al estudiar si la respuesta HTTP se modificó o se mantuvo igual, puede determinar si el resultado fue verdadero o falso.
2. Basado en el tiempo
Como su nombre lo indica, el atacante estudia el tiempo de respuesta, en segundos, de un resultado de consulta. Al igual que con el tipo booleano, el atacante observa detenidamente la respuesta HTTP para determinar si la consulta era verdadera o falsa.
SQLi fuera de banda
Este es un caso especial de SQLi que solo puede funcionar si ciertas características del servidor de base de datos que utiliza la aplicación están activadas. SQLi fuera de banda se considera una alternativa a las técnicas inferenciales y en banda. SQLi fuera de banda no depende de que el atacante consulte la base de datos para examinar mensajes de error o respuestas HTTP. En su lugar, espera que el servidor genere solicitudes de sistema de nombres de dominio (DNS) o HTTP para que el atacante pueda obtener datos como nombres de usuario y contraseñas.
Cómo prevenir la inyección de SQL
Desinfección
Si los atacantes pueden ingresar una consulta inesperada que la aplicación acepta, entonces tiene sentido limitar la funcionalidad de entrada para proteger los datos. Los desarrolladores pueden emplear validación de entrada o desinfección, por lo que la aplicación solo acepta ciertas entradas en los campos de forma y rechaza aquellas que no se ajustan. Los usuarios web están familiarizados con esta práctica. Un ejemplo es cuando se les pide que creen una contraseña que debe tener un cierto número de caracteres e incluye al menos un carácter especial.
Sin embargo, esta no es una solución ideal porque es difícil planificar todas las combinaciones de entrada permitidas. Se producirá una cantidad sustancial de errores por parte de los usuarios, que pueden ser empleados o clientes. Esto puede afectar significativamente las operaciones comerciales.
Filtrado y validación
Para filtrar SQLi y bloquear posibles amenazas, las empresas pueden instalar un firewall de aplicaciones web (WAF). Un WAF compara las entradas a una aplicación con una gran lista de firmas conocidas para frustrar las consultas SQL maliciosas. La lista se actualiza y parcha regularmente para que una organización pueda mantenerse al día con el panorama de amenazas en evolución.
Limitación del alcance de los comandos SQL
Aunque es necesario filtrar para SQLi, bloquear el 100% de las consultas SQL no es factible. Es posible que los empleados, socios o expertos de la industria de la seguridad tengan que probar la aplicación y necesitarán permiso para hacerlo. El WAF puede verificar de forma cruzada la entrada con los datos del protocolo de Internet (IP) antes de bloquear la solicitud.
Evite los parámetros URL no seguros
Si un sitio web no utiliza el protocolo de transferencia de hipertexto seguro (HTTPS), que aprovecha la seguridad de capa de sockets seguros/capa de transporte (SSL/TLS) para el cifrado, un atacante puede manipular la cookie de sesión con SQLi para obtener acceso a la base de datos. Las organizaciones deben proteger su sitio web y las URL de las aplicaciones web para evitar esto.
Fuente: FORTINET
Recuerda!
NORTH NETWORKS es Distribuidor de Valor Agregado de lo último en Ciberseguridad y Gestion de Infraestructuras de TI, representamos las mejores herramientas. Quieres una cotización? solicítala AHORA ..



