Los ataques SQL injection ocurren cuando alguien ejecuta declaraciones SQL maliciosas (también llamadas payloads) que controlan un servidor de base de datos, típicamente de una manera que no es favorable para ti.
Cualquier base de datos que esté basada en SQL es vulnerable a estos tipos de ataque. Es una de las más viejas, más comunes y más peligrosas formas de ataque que alguien puede dirigir directamente hacia tu base de datos.
Todo lo que se necesita para que una base de datos entera esté comprometida es una sola falla. En algunos casos el atacante puede incluso correr comandos contra el sistema operativo de tu servidor a través de tu base de datos. Estos ataques están diseñados para el robo de identidad, y mediante uno, se puede incluso sustraer los fondos de una cuenta bancaria.
Defenderse contra los ataques SQL injection 101:
A través de esta forma de ataque un hacker puede hacerse fácilmente con los datos personales de cualquier persona. Esto lo puede lograr, sin que la víctima se dé cuenta. Esto es posible porque este ataque se encarga de engañar al usuario pidiéndole información confidencial.
Por esta razón es importante conocer cómo puedes defenderte contra estos ataques:
Evitar los caracteres especiales utilizados en consultas SQL:
Algunos de los caracteres especiales que se aconseja no colocar delante de las cadenas utilizadas en las consultas SQL para asi prevenir que un hacker tome ventaja de esto son: La barra invertida (\), comillas dobles o simples (“, ‘) o caracteres como \x00 o \x1a.
Estos caracteres son considerados peligrosos ya que pueden ser utilizados por el hacker durante el ataque.
Hoy en día hay distintos lenguajes de programación que se pueden usar para evitar estos caracteres. Tal es el caso de PHP donde puedes optar por la función mysql_real_scape_string(). Este código PHP, es capaz de modificar una cadena, evitando los caracteres especiales y volviéndola segura contra ataques.
Otros lenguajes que se pueden utilizar para evitar estos ataques de SQL injection son los de Java, Perl o C#, entre otros.
Utilizar herramientas de análisis:
Además de cambiar el lenguaje de programación que utilizarás; puedes asegurarte de otra manera de que estarás bien protegido contra los ataques SQL injection.
Esto lo puedes hacer utilizando algunas herramientas que se encuentran disponibles en la web. Dichas herramientas se encargarán de probar tus aplicaciones en busca de alguna vulnerabilidad por SQL injection.
Algunas de estas herramientas son SQLHelper 2.7 SQL Injection o SQLMap. Por otra parte, puedes optar por herramientas un poco más avanzadas pero que requieren de un pago como Pangolin.