Como funciona un ataque de injection SQL

hackers

Si está familiarizado con el desarrollo web, probablemente haya oído hablar de ataques de inyección SQL. Se encuentran entre las formas de ataque cibernético más utilizadas, en gran parte porque son muy fáciles de aprender y ejecutar

Sin embargo, no se deje engañar, eso no los hace menos peligrosos. Pueden ser devastadores en efecto, y muchas compañías se han equivocado de ellos.

La razón por la que los ataques de inyección SQL pueden resultar tan temibles es que una gran parte de la web está construida sobre bases de datos SQL , incluidas las proporcionadas por Microsoft, Oracle y SAP. Esto hace que la inyección SQL sea uno de los métodos de ataque más versátiles en el arsenal de un pirata informático, y generalmente se encuentra entre las primeras herramientas utilizadas como parte de un intento de violación.

¿Qué es la inyección SQL?

Para analizar cómo funciona la inyección SQL, primero tenemos que establecer qué es SQL. En resumen, SQL (o lenguaje de consulta estructurado) es un lenguaje de programación diseñado para administrar grandes bases de datos, como el tipo utilizado por las aplicaciones web. SQL se utiliza para modificar, recuperar y reorganizar los datos dentro de una base de datos con comandos basados ​​en texto.

Un ataque de inyección SQL es cuando un tercero puede usar comandos SQL para interferir con las bases de datos de back-end de formas que no se les debería permitir. Esto es generalmente el resultado de sitios web que incorporan directamente texto ingresado por el usuario en una consulta SQL y luego ejecutan esa consulta en una base de datos. Cómo funciona esto en un contexto no malicioso es que el texto ingresado por el usuario se utiliza para buscar en la base de datos; por ejemplo, iniciar sesión en una cuenta específica haciendo coincidirla en función del nombre de usuario y la contraseña ingresados ​​por el usuario.

Sin embargo, en una inyección SQL, este proceso es secuestrado para realizar funciones no autorizadas. Para usar un ejemplo simple, el atacante podría hacer uso del proceso de consulta descrito anteriormente mediante el uso de otro comando SQL para anular la lógica de la consulta. La consulta SQL estándar está diseñada para iniciar sesión en una cuenta una vez que encuentra una en la base de datos que coincide con un conjunto específico de entradas; por lo tanto, si el atacante puede modificar la consulta para que agregue la condición 'OR 1 = 1', significa que cada entrada en la tabla devolverá un resultado positivo. En esas condiciones, la consulta iniciará sesión en la primera cuenta que encuentre, que en la mayoría de las bases de datos es un usuario con privilegios de administrador.

Esto funciona de manera muy similar a las secuencias de comandos entre sitios , otro estilo de ataque de inyección que involucra a los piratas informáticos que ingresan secuencias de comandos maliciosas en formularios web para dirigirse a los navegadores de los usuarios.

Uno de los resultados más comunes de un ataque de inyección SQL es el robo de datos del usuario. Las credenciales de inicio de sesión, las direcciones de correo electrónico o la información personal pueden venderse en el mercado negro o explotarse para nuevos ataques cibernéticos. El ataque también se puede usar para desconectar las aplicaciones eliminando tablas de la base de datos o para agregar nueva información a la base de datos.

Cómo defenderse contra la inyección SQL

Como todos los lenguajes de programación, SQL se basa en el uso de ciertos caracteres y estructuras de formato para designar funciones. La inyección SQL explota esto mediante el uso de campos de entrada de texto para introducir estos elementos en consultas benignas, pero puede contrarrestarse 'desinfectando' las secciones de entrada del usuario en un sitio web o aplicación.

Agregar una capa de abstracción le permite eliminar los caracteres que se usan en las consultas SQL pero no lo que concierne al campo de entrada. El punto y coma, por ejemplo, se usa en consultas SQL, pero no aparece en los nombres y no está permitido en las direcciones de correo electrónico, por lo que cualquiera que lo ingrese en un campo de texto diseñado para recopilar nombres o direcciones de correo electrónico seguramente intentará un ataque de inyección SQL.

Sin embargo, una forma mucho más efectiva es utilizar consultas parametrizadas. En lugar de ejecutar directamente una consulta basada en las entradas del usuario, este método de construcción de base de datos implica especificar de antemano la estructura de la consulta y conectar la entrada del usuario en ranuras predefinidas. Esto garantiza que, incluso si el usuario ingresa código SQL malicioso en el campo de texto, se incluirá de forma segura dentro de una consulta más grande que no lo reconoce como tal.

También es una buena práctica asegurarse de que estas salvaguardas se apliquen a todos los formularios de entrada de texto, en lugar de solo aquellos que se conectan a bases de datos confidenciales, ya que el movimiento lateral y la escalada de privilegios son características comunes de los ataques de inyección SQL. También debe asegurarse de que los mensajes de error de la base de datos no se muestren en los sitios web públicos, ya que estos pueden brindar a los atacantes más información sobre la estructura de sus bases de datos para informar sobre intentos adicionales.

¿Cómo se han usado las inyecciones SQL?

Las inyecciones SQL se han utilizado en múltiples ataques cibernéticos en los últimos 20 años, a menudo como una prueba inicial antes de que se implementen otras herramientas y técnicas más sofisticadas.

Sin embargo, los ataques de inyección SQL no deben subestimarse; fue el método detrás de la violación de TalkTalk de 2015 , que resultó en el robo de más de 150,000 información personal de los clientes y una multa de £ 400,000 para la compañía. En 2012, un grupo también usó ataques de inyección SQL para robar la información de inicio de sesión de 450,000 usuarios de Yahoo , en una de una serie de infracciones que afectarían a la compañía web en los años siguientes.

Fecha actualización el 2021-09-19. Fecha publicación el 2019-09-19. Categoría: hackers Autor: Oscar olg Mapa del sitio Fuente: itpro Version movil