Inyección SQL

Los ciberdelincuentes utilizan inyecciones SQL para explotar vulnerabilidades de software en aplicaciones web y obtener acceso no autorizado a sus datos sensibles y valiosos.

.st0{fill:#0D3ECC;} DESCARGA MALWAREBYTES GRATIS

También para Windows, iOS, Android, Chromebook y Para empresas

¿Qué es un ataque de inyección SQL?

Puede que no sepas qué es un ataque de inyección SQL (SQLI) o cómo funciona, pero definitivamente conoces a las víctimas. Target, Yahoo, Zappos, Equifax, Epic Games, TalkTalk, LinkedIn y Sony Pictures: todas estas compañías fueron hackeadas por ciberdelincuentes usando inyecciones SQL.

Una inyección SQL (SQLI) es un tipo de ataque en el que los ciberdelincuentes explotan vulnerabilidades de software en aplicaciones web con el propósito de robar, eliminar o modificar datos, o de obtener control administrativo sobre los sistemas que ejecutan las aplicaciones afectadas.

Los investigadores en ciberseguridad consideran el SQLI como una de las amenazas cibernéticas menos sofisticadas y fáciles de defender. Malwarebytes Labs clasificó SQLI como número tres en Las 5 Amenazas Cibernéticas Más Tontas que Igual Funciona, citando el hecho de que SQLI es un ataque conocido y predecible con contramedidas fáciles de implementar.

Los ataques de SQLI son tan fáciles que los atacantes pueden encontrar sitios web vulnerables usando búsquedas avanzadas de Google, llamadas Dorking de Google. Una vez que encuentran un objetivo adecuado, los atacantes de SQLI pueden usar programas automatizados para llevar a cabo el ataque efectivamente. Solo tienen que introducir la URL del sitio objetivo y observar cómo llegan los datos robados.

Y sin embargo, los ataques de SQLI son comunes y ocurren todos los días. De hecho, si tienes un sitio web o negocio en línea, es probable que los ciberdelincuentes hayan intentado usar SQLI para ingresar a tu sitio web. Un estudio del Instituto Ponemon sobre la Amenaza de Inyección SQL y Brechas Recientes en el Comercio Minorista encontró que el 65% de los negocios encuestados fueron víctimas de un ataque basado en SQLI.

Las aplicaciones web frecuentemente atacadas incluyen: sitios de redes sociales, minoristas en línea y universidades. Las pequeñas y medianas empresas son especialmente vulnerables ya que a menudo no están familiarizadas con las técnicas que usan los ciberdelincuentes en un ataque de SQLI y, de igual manera, no saben cómo defenderse contra tal ataque.

Con esto, demos el primer paso defendiendo contra una inyección SQL al educarnos sobre el tema. Aquí tienes una introducción a las inyecciones SQL.

"Un SQLI es un tipo de ataque mediante el cual los ciberdelincuentes explotan vulnerabilidades de software en aplicaciones web con el propósito de robar, borrar o modificar datos, o conseguir control administrativo sobre los sistemas que ejecutan las aplicaciones afectadas."

¿Cómo funciona una inyección SQL?

Desarrollado a principios de los 70, SQL (del inglés Structured Query Language) es uno de los lenguajes de programación más antiguos que todavía se utiliza hoy en día para gestionar bases de datos en línea. Estas bases de datos contienen cosas como precios y niveles de inventario para sitios de compras en línea. Cuando un usuario necesita acceder a la información de la base de datos, se utiliza SQL para acceder y presentar esos datos al usuario. Pero estas bases de datos también pueden contener información más sensible y valiosa, como nombres de usuario y contraseñas, información de tarjetas de crédito y números de seguro social. Aquí es donde entran en juego las inyecciones SQL.

En resumen, una inyección SQL ocurre cuando los hackers introducen comandos maliciosos en formularios web, como el campo de búsqueda, el campo de inicio de sesión o la URL, de un sitio web no seguro para obtener acceso no autorizado a datos sensibles y valiosos.

Aquí tienes un ejemplo. Imagina que vas a tu sitio web de ropa favorito. Estás comprando calcetines y ves un mundo de colores tecnicolor de calcetines, todos disponibles con un clic del ratón. ¡Las maravillas de la tecnología! Cada calcetín que ves existe en una base de datos en algún servidor. Cuando encuentras un calcetín que te gusta y haces clic en él, estás enviando una solicitud a la base de datos de calcetines, y el sitio de compras responde con la información del calcetín que seleccionaste. Ahora imagina que tu sitio de compras en línea favorito está construido de manera descuidada, lleno de vulnerabilidades de SQL explotables.

Un ciberdelincuente puede manipular las consultas de la base de datos de tal forma que una solicitud de información sobre un par de calcetines devuelva el número de tarjeta de crédito de algún cliente desafortunado. Repitiendo este proceso una y otra vez, un ciberdelincuente puede explorar las profundidades de la base de datos y robar información sensible de cada cliente que haya comprado en tu sitio web de ropa favorito, incluyendo a ti. Llevando el experimento mental aún más lejos, imagina que eres el dueño de este sitio de ropa. Tienes una gran violación de datos en tus manos.

Un solo ataque de SQLI puede proporcionar a los ciberdelincuentes información personal, correos electrónicos, inicios de sesión, números de tarjetas de crédito y números de seguro social de millones de consumidores. Los ciberdelincuentes pueden luego revender esta información personal en los rincones más oscuros de la dark web, para ser utilizada con todo tipo de propósitos ilegales.

Los correos electrónicos robados pueden ser usados para ataques de phishing y malspam. A su vez, los ataques de malspam pueden usarse para infectar a las víctimas con todo tipo de malware destructivo, como ransomware, adware, criptominadores y troyanos (por ejemplo, Emotet), por nombrar algunos. Los números de teléfono robados para dispositivos móviles Android e iOS pueden ser atacados con llamadas automáticas y mensajes de texto spam.

Los inicios de sesión robados de sitios de redes sociales pueden incluso usarse para enviar mensajes de spam y robar aún más inicios de sesión para sitios adicionales. Malwarebytes Labs informó anteriormente sobre cuentas de LinkedIn hackeadas que se usaron para enviar spam a otros usuarios con mensajes InMail que contenían URLs maliciosas falsificadas para parecer una página de inicio de sesión de Google Docs mediante la cual los ciberdelincuentes podrían obtener nombres de usuario y contraseñas de Google.

"Un ciberdelincuente puede manipular las consultas a la base de datos de tal forma que una petición de información sobre un par de calcetines devuelva el número de la tarjeta de crédito de algún desafortunado cliente".

¿Cuál es la historia de las inyecciones SQL?

La vulnerabilidad de inyección SQL fue documentada por primera vez en 1998 por el investigador de seguridad cibernética y hacker Jeff Forristal. Sus hallazgos fueron publicados en el antiguo zine hacker Phrack. Escribiendo bajo el seudónimo de Rain Forest Puppy, Forristal explicó cómo alguien con habilidades básicas de codificación podría adjuntar comandos SQL no autorizados a comandos SQL legítimos y extraer información sensible de la base de datos de un sitio web no seguro.

Cuando Forristal notificó a Microsoft sobre cómo la vulnerabilidad afectaba a su popular producto SQL Server, no lo vieron como un problema. Según Forristal, "Según ellos [Microsoft], lo que vas a leer no es un problema, así que no te preocupes por hacer algo para detenerlo."

Lo que hace que la respuesta descuidada de Microsoft sea tan impactante es que muchas industrias e instituciones dependían seriamente (entonces y ahora) de la tecnología de gestión de bases de datos de la empresa para mantener sus operaciones, incluidos el comercio minorista, la educación, la atención médica, la banca y los recursos humanos. Esto nos lleva al siguiente evento en la línea de tiempo de la historia de SQLI: el primer ataque significativo de SQLI.

En 2007, la cadena de tiendas de conveniencia más grande de Estados Unidos, 7-Eleven, fue víctima de un ataque de SQLI. Los hackers rusos usaron inyecciones SQL para hackear el sitio web de 7-Eleven y usarlo como trampolín para ingresar a la base de datos de tarjetas de débito de clientes de la tienda de conveniencia. Esto permitió a los hackers retirar dinero en su hogar en Rusia. En total, los culpables se llevaron dos millones de dólares, según informó la revista Wired.

No todos los ataques de SQLI están motivados por la codicia. En otro ejemplo destacado de 2007, los ciberdelincuentes usaron SQLI para obtener control administrativo sobre dos sitios web relacionados con el Ejército de EE.UU. y redirigir a los visitantes a sitios web con propaganda antiamericana y antiisraelí.

La brecha de datos de MySpace de 2008 se clasifica como uno de los mayores ataques en un sitio web de consumidores. Los ciberdelincuentes robaron correos electrónicos, nombres y contraseñas parciales de casi 360 millones de cuentas. Y esta es la razón por la que no reutilizamos contraseñas de un sitio a otro.

El título del caso más flagrante de falta de seguridad va a Equifax. La brecha de datos de 2017 de Equifax produjo información extremadamente personal (es decir, nombres, números de seguro social, fechas de nacimiento y direcciones) para 143 millones de consumidores. Para una organización que actúa como guardián de la información para cada estadounidense, excepto aquellos que viven fuera de la red, uno pensaría que tomarían precauciones contra un ataque básico de SQLI. Antes de que ocurriera la brecha de datos, una firma de investigación de seguridad cibernética incluso advirtió a Equifax que eran vulnerables a un ataque de SQLI, pero la agencia de crédito no tomó ninguna medida hasta que fue demasiado tarde.

En lo que se clasifica como el hackeo más espeluznante de la historia, un ataque de SQLI en 2015 a la fabricante de juguetes Vtech llevó a una filtración de datos de casi cinco millones de padres y 200,000 niños. Hablando con Motherboard, la publicación multimedia en línea, el hacker responsable afirmó que no tenía planes para los datos y que no publicó los datos en línea. Por otro lado, el hacker también explicó que los datos eran muy fáciles de robar y que alguien más podría haber llegado a ellos primero. Un consuelo frío, en verdad.

Avanzando hasta hoy, el ataque SQLI sigue presente. Cada tres años, el Open Web Application Security Project (OWASP) clasifica los 10 Riesgos de Seguridad de Aplicaciones Web Más Críticos. En la edición más reciente de 2017, el ataque SQLI ocupó el puesto número uno.

Más allá de la longevidad del ataque de SQLI, lo interesante es que los ataques de SQLI no han cambiado ni evolucionado en absoluto. Los ataques de SQLI funcionan y continuarán funcionando hasta que la gente cambie su actitud sobre la ciberseguridad. Sé ese cambio.

Noticias sobre inyecciones SQL

¿Cómo afectan las inyecciones SQL a mi negocio?

Como se informó en nuestro informe de Tácticas y Técnicas del Cibercrimen, los ciberataques (de todo tipo) a negocios aumentaron un 55% en la segunda mitad de 2018, mientras que los ataques a consumidores individuales sólo subieron un 4%. Las estadísticas no son sorprendentes. Los negocios con seguridad deficiente presentan a los criminales un objetivo fácil, con un tesoro de datos valiosos valuados en millones.

Por el contrario, un negocio en el centro de una brecha de datos puede esperar pagar millones. Un estudio de IBM encontró que el costo promedio de una brecha de datos, incluyendo la remediación y las sanciones, es de 3.86 millones de dólares. La brecha de datos de LinkedIn mencionada anteriormente terminó costando al sitio de redes profesionales 1.25 millones de dólares en un acuerdo extrajudicial.

Después de su violación de datos, Target se vio obligada a pagar la mayor cantidad registrada—18.5 millones de dólares—para resolver investigaciones iniciadas por múltiples estados. Esto fue además de los 10 millones de dólares que Target pagó para resolver una demanda colectiva presentada por los consumidores.

Por supuesto, estas son brechas de datos enormes que afectan a millones de consumidores. Sin embargo, las pequeñas y medianas empresas todavía pueden esperar pagar 148 dólares por cada registro de consumidor robado.

¿La moraleja de la historia? Toma tu seguridad en serio y evita ser un "Target" para los ciberdelincuentes.

¿Cómo puedo protegerme contra las inyecciones SQL?

Dejando toda esta preocupación a un lado, estás aquí porque sabes que las inyecciones SQL son una amenaza seria. Ahora, hagamos algo al respecto. Aquí tienes algunos consejos para proteger tu negocio contra los ataques de inyección SQL.

Actualiza tu software de gestión de bases de datos. Tu software tiene fallos desde el fabricante. Es un hecho. No existe tal cosa como el software sin errores. Los ciberdelincuentes pueden aprovecharse de estas vulnerabilidades de software, o exploits, con un SQLI. Puedes protegerte simplemente parchando y actualizando tu software de gestión de bases de datos.

Aplica el principio de menor privilegio (PoLP). PoLP significa que cada cuenta solo tiene suficiente acceso para hacer su trabajo y nada más. Por ejemplo, una cuenta web que solo necesita acceso de lectura a una base de datos no debería tener la capacidad de escribir, editar o cambiar datos de ninguna manera.

Usa declaraciones preparadas o procedimientos almacenados. A diferencia del SQL dinámico, las declaraciones preparadas limitan las variables de los comandos SQL entrantes. De esta manera, los ciberdelincuentes no pueden adjuntar inyecciones SQL maliciosas a sentencias SQL legítimas. Los procedimientos almacenados limitan de manera similar lo que los ciberdelincuentes pueden hacer al almacenar sentencias SQL en la base de datos, que son ejecutadas desde la aplicación web por el usuario.

Contrata desarrolladores competentes y experimentados. Los ataques de SQLI a menudo resultan de codificación descuidada. Deja que tus desarrolladores de software sepan de antemano qué esperas en cuanto a la seguridad se refiere.

¿Qué pasa si mi información personal fue robada en una violación de datos? Deberías echar un vistazo a nuestra lista de verificación de violación de datos. Allí aprenderás todo sobre cómo limpiar y mantenerte seguro después de que te afecte una brecha causada por un ataque de inyección SQL.

Visita OWASP. El Open Web Application Security Project, conocido como OWASP, es la autoridad principal en aplicaciones web y tienen mucha literatura adicional sobre cómo prevenir inyecciones SQL.

Y si simplemente no puedes tener suficiente de las inyecciones SQL en tu vida, visita el blog de Malwarebytes Labs para conocer todos los últimos acontecimientos en el mundo de las amenazas cibernéticas y la ciberseguridad.