La Inyección SQL o también conocida en inglés
como SQL INJECTION es una técnica de
explotación utilizada en servidores web que ejecutan aplicaciones que consumen
bases de datos. La vulnerabilidad ocurre cuando una entrada o input que se envía al servidor para
consultar en una base de datos no es correcta ni apropiadamente validada, por ejemplo: en una entrada donde se solicita al usuario ingresar sólo letras, el
desarrollador no implementó dicha restricción y se permite ingresar números; o
peor aún símbolos!! Caracteres especiales!!!!
Pero bueno, buscando un poco datos oficiales que efectivamente demuestren lo que estoy diciendo (que hay muchas!!! aplicaciones vulnerables a SQL INJECTION), un proyecto de código abierto llamado The Open Web Application Security Project lo ubica PRIMERO dentro de una lista que la llaman TOP 10, también encontré otra publicación de una organización llamada WhiteHat Security donde mencionan que hay un 11% de probabilidad de encontrar un sitio web con una vulnerabilidad de tipo SQL INJECTION, es decir que aproximadamente 1 de cada 10 servidores web poseen una vulnerabilidad de este tipo (preocupante), otra fuente?? Un Consorcio llamado WASC (Web Application Security Consortium) también publicó un documento (no tan actual - 2008) donde también podemos encontrar a esta vulnerabilidad dentro de las más populares, eeeeen fin!! Lo peor de todo es que esta vulnerabilidad es provocada por errores de diseño!! (más preocupante).
Qué consejos puedo sugerirles:
- Antes de poner su aplicación en línea, actualicen su servidor! Instalen todos los parches de seguridad o los de los servicios a utilizar.
- Estimados desarrolladores, por favor!! Validen sus entradas en cliente Y EN SERVIDOR!
- Eviten mostrar mensajes de error por defecto del Servidor!! Peor mensajes de error de los gestores de base de datos! Cambien las páginas de error que están por defecto y pónganle un formato amigable :) pero que no muestre por favor mensajes del servidor (Hola, mi SO es ubuntu versión 12.10 y mi servidor web es apache... NOOOO).
- En un ambiente de pruebas realicen test de penetración con varias herramientas como nessus o metasploit.
- Ya tomada todas estas medidas, pueden poner su aplicación en producción.
Realicen estos consejos cuantas veces sean necesarias en períodos de 3 o 6 meses en sus aplicaciones para minimizar vulnerabilidades.
Es lo que quería decirles, gracias por su atención!!
No hay comentarios:
Publicar un comentario