Para saber qué es SQL injection primero debemos conocer la definición de las siglas SQL, en inglés sería Structured Query Language y en su traducción al español significa Lenguaje de Consulta Estructurada, que se define como el lenguaje estándar usado por los programadores con la finalidad de administrar y gestionar un conjunto de datos y la relación que puedan tener entre ellos, es decir, es un lenguaje basado en el modelo relacional pero aplicado al mundo de la informática.
SQL es muy fácil de entender y leer. Esto ha hecho que sea un lenguaje estándar internacionalmente reconocido por entes como la Organización Internacional de Normalización y el Instituto Nacional Estadounidense de Estándares.
Cuando un desarrollador crea una página web, existe la posibilidad de dejar ciertas debilidades en la misma que permitan a los hackers introducir o inyectar un código SQL malicioso dentro del código original, pudiendo modificar información de la base de datos, falsificar identidades, divulgar información confidencial, borrar la base datos, transferir información de un servidor a otro, alterar los nombres de las tablas e invalidar transacciones, es decir, podría tener acceso al portal como si fuese el administrador de este.
Tipos de inyecciones SQL
Este malware fue descubierto por primera vez hacia finales del siglo XX, expandiéndose velozmente en el mundo digital, lo que ha convertido a este ataque en uno de los más comunes y del que mas se cuidan los programadores de páginas web, ya que, podemos encontrar varios tipos de SQL injection, como lo serian Inyección SQL en banda, Inyección SQL inferencial (Blind SQL Injection) y la Inyección SQL fuera de banda.
- Inyección SQL en banda: En este tipo de ataque, el hacker utiliza el mismo medio que tiene la aplicación o página web para inyectar su propio código SQL infectado, así como también para recuperar los resultados. Podemos dividirlo en ataques basados en el error, en el que se inyecta el código infectado para que la pagina web arroje un mensaje de error, en el que se pueda visualizar información de algunas de sus tablas, lo que permite mejorar los futuros ataques; también podemos encontrar los ataques basados en la unión, en el que el atacante se une al código para mostrar los resultados de una tabla distinta.
- Inyección SQL inferencial: Cuando el ataque descrito anteriormente no arroja la información suficiente como para dañar la página web, el hacker, a través de este ataque, inyecta el código realizando diversas consultas al portal para conocer cómo se comporta y analizar sus resultados. También es conocido como inyección SQL ciega y podemos dividirlo en dos subtipos, siendo el primero el ataque booleano, donde se utiliza una fórmula booleana para determinar que partes de la entrada de un usuario a una página o aplicación y son susceptibles a inyecciones SQL; y el segundo el ataque basado en el tiempo en el que se utiliza una función preestablecida fundada en el tiempo de respuesta que da el sistema que administra la base de datos del portal, verificando si existe algún retraso, pudiéndolo considerar una vulnerabilidad para inyectar SQL dañado.
- Inyección fuera de banda: Cuando el hacker no puede utilizar el mismo canal de la página web, solo tiene la opción de inyectar fuera de ésta, enviando la base de datos a una ubicación maliciosa externa.
Prevención
Evitar ataques de Sql Injection es una tarea que le corresponde principalmente a los desarrolladores de páginas web, quienes se deben encargar de mitigar las vulnerabilidades que pueda tener un portal y brindar una total protección de los datos almacenados en el servidor, lo que no excluye que los usuarios puedan realizar acciones complementarias como medida preventiva, entre las que podemos recomendar las siguientes: si estas navegando por internet y de pronto entras a un sitio que te parece sospechoso, evita dejar cualquier tipo de datos personales, ni siquiera el correo electrónico; usa contraseñas electrónicas más seguras, para eso, incluye letras en mayúscula, números y signos; y si eres de los que les cuesta memorizar distintas claves a la vez, te recomendamos hacer uso de un administrador de contraseñas de tu confianza, que se encargue de detectar cuando están en peligro tus datos para que así puedas cambiar la clave rápidamente y evitar daños posteriores.
Ejemplos
Un ejemplo de esta ofensiva virtual es en el que el hacker edita la dirección de correo electrónico de un usuario, y lo hace porque ya conoce la tabla de información del servidor. La forma de obtener esta información es a través de la formula 1=1, que significa que siempre es verdad, aunque arroje error.
Por lo tanto, por ser la privacidad y seguridad un tema de actualidad es importante conocer e investigar qué es SQL injection, porque de esta manera vamos a encontrar en el mercado a los mejores especialistas y servicios para prevenir estos ataques y así mantener seguros los datos de nuestros usuarios, que a fin de cuentas ayudará a que tengamos una excelente reputación.