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;} DESCARGAR 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 seguro que conoces a las víctimas. Target, Yahoo, Zappos, Equifax, Epic Games, TalkTalk, LinkedIn y Sony Pictures: todas estas empresas fueron hackeadas por ciberdelincuentes mediante 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 de obtener control administrativo sobre los sistemas que ejecutan las aplicaciones afectadas.

Los investigadores en ciberseguridad consideran el SQLI como una de las ciberamenazas menos sofisticadas y fáciles de defender. Malwarebytes Labs clasificó el SQLI en el puesto número tres de las 5 ciberamenazas más tontas que funcionan de todos modos, citando el hecho de que el SQLI es un ataque conocido, predecible y con contramedidas fáciles de implementar.

Los ataques SQLI son tan fáciles, de hecho, que los atacantes pueden encontrar sitios web vulnerables utilizando advanced búsquedas en Google, llamado Google Dorking. Una vez que han encontrado un objetivo adecuado, los atacantes SQLI pueden utilizar programas automatizados para llevar a cabo eficazmente el ataque por ellos. Todo lo que tienen que hacer es introducir la URL del sitio objetivo y ver cómo se acumulan los datos robados.

Sin embargo, los ataques SQLI son habituales y ocurren todos los días. De hecho, si usted tiene un sitio web o un negocio en línea, es probable que los ciberdelincuentes ya hayan intentado utilizar el SQLI para tratar de entrar en su sitio web. Un estudio del Ponemon Institute sobre la amenaza de la inyección SQL y las recientes infracciones en el sector minorista reveló que el 65% de las empresas encuestadas fueron víctimas de un ataque basado en SQLI.

Entre las aplicaciones web atacadas con frecuencia se encuentran: 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 utilizan los ciberdelincuentes en un ataque SQLI y, del mismo modo, no saben cómo defenderse ante un ataque de este tipo.

Así pues, demos el primer paso para defendernos de una inyección SQL informándonos sobre el tema. Aquí está tu manual sobre 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 años 70, SQL (abreviatura de lenguaje de consulta estructurado) es uno de los lenguajes de programación más antiguos que se siguen utilizando hoy en día para gestionar bases de datos en línea. Estas bases de datos contienen, por ejemplo, precios y niveles de inventario de los sitios de compras en línea. Cuando un usuario necesita acceder a la información de una base de datos, se utiliza SQL para acceder a esos datos y presentárselos. Pero estas bases de datos también pueden contener datos más sensibles y valiosos, como nombres de usuario y contraseñas, información de tarjetas de crédito y números de la seguridad social. Aquí es donde entran en juego las inyecciones SQL.

En pocas palabras, una inyección SQL se produce cuando piratas informáticos 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 inseguro para obtener acceso no autorizado a datos sensibles y valiosos.

He aquí un ejemplo. Imagina que entras en tu tienda de ropa favorita. Vas a comprar calcetines y ves un mundo Technicolor de calcetines de colores, todos disponibles con un clic del ratón. ¡Las maravillas de la tecnología! Todos los calcetines que ves están en una base de datos de algún servidor. Cuando encuentras un calcetín que te gusta y haces clic en él, estás enviando una petición a la base de datos de calcetines, y el sitio de compras responde con la información sobre el calcetín en el que has hecho clic. Ahora imagine que su sitio web de compras en línea favorito está construido de manera chapucera, plagado de vulnerabilidades SQL explotables.

Un ciberdelincuente puede manipular las consultas a la base de datos de tal forma que una solicitud de información sobre un par de calcetines devuelva el número de la tarjeta de crédito de algún desafortunado cliente. Repitiendo este proceso una y otra vez, un ciberdelincuente puede sondear las profundidades de la base de datos y robar información confidencial de todos los clientes que hayan comprado alguna vez en su sitio favorito de ropa en línea, incluido usted. Llevando el experimento mental aún más lejos, imagine que usted es el propietario de este sitio de ropa. Tienes una enorme filtración de datos entre manos.

Un ataque SQLI puede proporcionar a los ciberdelincuentes información personal, correos electrónicos, nombres de usuario, números de tarjetas de crédito y números de la seguridad social de millones de consumidores. A continuación, los ciberdelincuentes pueden vender esta información personal en los rincones más sombríos de la web oscura, para utilizarla con todo tipo de fines ilegales.

Los correos electrónicos robados pueden utilizarse para ataques de phishing y malspam. Los ataques de malspam, a su vez, pueden utilizarse para infectar a las víctimas con todo tipo de malware destructivo como ransomware, adware, cryptojackers y troyanos (por ejemplo, Emotet), por nombrar algunos. Los números de teléfono robados para Android y iOS pueden ser objeto de robocalls y spam de mensajes de texto.

Los inicios de sesión robados de sitios de redes sociales pueden utilizarse incluso para enviar mensajes de spam y robar aún más inicios de sesión para sitios adicionales. Malwarebytes Labs Ya hemos informado anteriormente de cuentas de LinkedIn pirateadas que se utilizaban para enviar spam a otros usuarios con mensajes InMail que contenían URL maliciosas falsificadas para que parecieran una página de inicio de sesión de Google Docs, mediante las cuales los ciberdelincuentes podían recopilar 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?

El exploit de inyección SQL fue documentado por primera vez en 1998 por el investigador de ciberseguridad y hacker Jeff Forristal. Sus hallazgos se publicaron en la revista de hackers Phrack. Bajo el apodo de Rain Forest Puppy, Forristal explicaba cómo alguien con conocimientos básicos de programación podía añadir comandos SQL no autorizados a comandos SQL legítimos y extraer información confidencial de la base de datos de un sitio web no seguro.

Cuando Forristal notificó a Microsoft cómo la vulnerabilidad afectaba a su popular producto SQL Server, no lo consideraron un problema. En palabras de Forristal: "Según ellos [Microsoft], lo que vas a leer no es un problema, así que no te preocupes por hacer nada para evitarlo".

Lo que hace que la respuesta indiferente de Microsoft sea tan chocante 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 compañía para mantener sus operaciones en funcionamiento, incluyendo el comercio minorista, la educación, la sanidad, la banca y los recursos humanos. Esto nos lleva al siguiente acontecimiento de la historia del SQLI: el primer gran ataque SQLI.

En 2007, la mayor cadena de tiendas de conveniencia de Estados Unidos, 7-Eleven, fue víctima de un ataque SQLI. Los piratas informáticos rusos utilizaron inyecciones SQL para piratear el sitio web de 7-Eleven y utilizarlo como trampolín para acceder a la base de datos de tarjetas de débito de los clientes de la tienda. Esto permitió a los hackers retirar dinero en efectivo en Rusia. En total, los delincuentes se hicieron con dos millones de dólares, según informó la revista Wired.

No todos los ataques SQLI están motivados por la codicia. En otro ejemplo notable de 2007, los ciberdelincuentes utilizaron SQLI para hacerse con el control administrativo de dos sitios web relacionados con el ejército estadounidense y redirigir a los visitantes a sitios web con propaganda antiestadounidense y antiisraelí.

La filtración de datos de MySpace en 2008 es uno de los mayores ataques a un sitio web de consumidores. Los ciberdelincuentes robaron correos electrónicos, nombres y contraseñas parciales de casi 360 millones de cuentas. Por eso no debemos reutilizar las contraseñas de un sitio a otro.

El título a la falta de seguridad más atroz es para Equifax. La filtración de datos de Equifax en 2017 reveló información extremadamente personal (es decir, nombres, números de la seguridad social, fechas de nacimiento y direcciones) de 143 millones de consumidores. Para una organización que actúa como guardián de la información de todos y cada uno de los estadounidenses, excepto los que viven fuera de la red, se podría pensar que tomarían precauciones contra un ataque SQLI básico. Antes de que se produjera la filtración de datos, una empresa de investigación de ciberseguridad incluso advirtió a Equifax de que eran susceptibles de sufrir un ataque SQLI, pero la oficina de crédito no tomó ninguna medida hasta que fue demasiado tarde.

En lo que se considera el pirateo informático más espeluznante de la historia, un ataque SQLI en 2015 contra el fabricante de juguetes Vtech dio lugar a una filtración de datos de casi cinco millones de padres y 200.000 niños. En declaraciones a Motherboard, la publicación multimedia en línea, el hacker responsable afirmó que no tenían planes para los datos y que no los publicaron en ningún sitio en línea. A la inversa, el hacker también explicó que los datos eran muy fáciles de robar y que alguien podría haber llegado a ellos antes. Todo un consuelo.

Hoy en día, el ataque SQLI sigue existiendo. Cada tres años, el Open Web Application Security Project (OWASP) clasifica los 10 riesgos más críticos de las aplicaciones web Security . En la edición más reciente de 2017, el ataque SQLI ocupó el primer puesto.

Más allá de la longevidad del ataque SQLI, lo interesante es que los ataques SQLI no han cambiado ni evolucionado en modo alguno. Los ataques SQLI funcionan y seguirán funcionando hasta que la gente cambie su actitud respecto a la ciberseguridad. Sea ese cambio.

Noticias sobre inyecciones SQL

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

Tal y como se recoge en nuestro informe Tácticas y Técnicas del Cibercrimen, los ciberataques (de todo tipo) a empresas subieron un 55% en el segundo semestre de 2018, mientras que los ataques a consumidores particulares solo aumentaron un 4%. Las estadísticas no son sorprendentes. Las empresas con una seguridad deficiente presentan a los delincuentes un objetivo fácil, ya que albergan un tesoro de datos valiosos por valor de millones.

Por el contrario, una empresa en el centro de una filtración de datos puede esperar desembolsar millones. Según un estudio de IBM, el coste medio de una violación de datos, incluidas las medidas correctoras y las sanciones, es de 3,86 millones de dólares. La filtración de datos de LinkedIn mencionada anteriormente acabó costándole 1,25 millones de dólares en un acuerdo extrajudicial.

Tras la filtración de sus datos, Target se vio obligada a pagar la mayor cantidad registrada -18,5 millones de dólares- para resolver las investigaciones iniciadas por varios estados. Esto se sumó a los 10 millones de dólares que Target pagó para resolver una demanda colectiva interpuesta por los consumidores.

Es cierto que se trata de enormes filtraciones de datos 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.

¿Cuál es la moraleja? Tómese en serio su seguridad y evite ser un "blanco" para los ciberdelincuentes.

¿Cómo puedo protegerme contra las inyecciones SQL?

Dejando a un lado todo este rollo, estás aquí porque sabes que las inyecciones SQL son una grave amenaza. Ahora, hagamos algo al respecto. He aquí algunos consejos para proteger su empresa contra los ataques de inyección SQL.

Actualice su software de gestión de bases de datos. Su software es defectuoso tal y como viene del fabricante. Esto es un hecho. No existe software libre de fallos. Los ciberdelincuentes pueden aprovecharse de estas vulnerabilidades del software, o exploits, con un SQLI. Puedes protegerte simplemente parcheando y actualizando tu software de gestión de bases de datos.

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

Utilice sentencias preparadas o procedimientos almacenados. A diferencia del SQL dinámico, las sentencias preparadas limitan las variables de los comandos SQL entrantes. De este modo, los ciberdelincuentes no pueden añadir inyecciones SQL maliciosas a sentencias SQL legítimas. Los procedimientos almacenados limitan de forma similar lo que los ciberdelincuentes pueden hacer almacenando sentencias SQL en la base de datos, que son ejecutadas desde la aplicación web por el usuario.

Contrate desarrolladores competentes y con experiencia. Los ataques SQLI suelen ser el resultado de una codificación descuidada. Haz saber de antemano a tus desarrolladores de software lo que esperas en materia de seguridad.

¿Qué ocurre si mi información personal ha sido robada en una filtración de datos? Debería echar un vistazo a nuestra lista de comprobación de violación de datos. En ella aprenderás todo lo necesario para limpiar y mantenerte a salvo después de que la violación de datos de un ataque SQLI te afecte.

Visite OWASP. El Open Web Application Security Project, OWASP para abreviar, es la principal autoridad en aplicaciones web y tienen un montón de lectura adicional sobre cómo prevenir las inyecciones SQL.

Y si no tienes suficiente inyección SQL en tu vida, visita el blogMalwarebytes Labs para enterarte de lo último en el mundo de las ciberamenazas y la ciberseguridad.