Métodos de Detección de Inyecciones SQL
La detección de inyecciones SQL es algo similar a la filtración de spam en el correo electrónico. Los problemas que deben resolver los desarrolladores de dichos sistemas también son similares.
Así que echemos un vistazo a los métodos de filtración de spam utilizados por los servidores de correo electrónico:
- Análisis del texto de los mensajes con varios algoritmos (filtrado bayesiano, por ejemplo).
- Filtrado de contenido. Esto incluye buscar señales de spam como enlaces, ofertas de productos, palabras clave, etc. en el texto de los mensajes.
- Filtrado basado en información estadística sobre decisiones tomadas por otros usuarios del servidor de correo (mirando si marcaron mensajes similares como spam).
- Uso de información sobre la credibilidad del servidor de correo recibida de otros servicios.
Cada una de estas pruebas se divide en sub-pruebas. Un cierto “costo” (en puntos) se asigna a cada sub-prueba. Si el mensaje entrante pasa la sub-prueba, sus puntos se añaden a la puntuación total de la prueba. La puntuación podría ser tanto positiva como negativa. Cuando se completa la prueba de un mensaje, el sistema anti-spam suma la puntuación total. Cuanto mayor sea la puntuación, mayor es la posibilidad de que el mensaje evaluado contenga spam.
Por ejemplo, el filtro de spam Spam Assassin presenta un umbral personalizable. Si la puntuación total de la prueba supera el umbral, el mensaje se considera spam. Por lo general, el umbral se configura de tal manera que no es suficiente que un mensaje pase una prueba para exceder el valor del umbral (para ser marcado como spam). Los principios de operación de otros filtros son similares a los de Spam Assassin.
Ningún método de filtración de spam por sí solo garantiza una protección completa contra mensajes no deseados, así como contra falsas alarmas. Es por eso que en la práctica se usa una combinación de varios métodos. Configurar el umbral general y el “costo” de las sub-pruebas necesita determinar el “nivel de sospecha” del filtro.
El filtrado de inyecciones SQL funciona de manera casi similar a los filtros de spam. A nivel de DAF, en la mayoría de los casos te encuentras con un código SQL válido, por lo que es necesario usar signos indirectos al determinar si la consulta está inyectada con SQL.
DataSunrise puede detectar inyecciones SQL basándose en los siguientes signos:
- Número de consultas inválidas que provienen de un determinado host o emitidas por un determinado cliente.
- Presencia de condiciones constantes en la consulta que siempre devuelven VERDADERO o FALSO.
- Si hay comentarios en el cuerpo de la consulta y si estos comentarios contienen partes de consultas SQL.
- Bloques OR y UNION en el código de la consulta.
- Otras condiciones.
La capacidad de detectar cada signo por sí solo no es suficiente para el reconocimiento de un ataque de inyección SQL, pero la capacidad de detectar todos estos signos en una consulta permite a DataSunrise establecer una protección esencial, como se muestra en el ejemplo demostrativo de cómo DataSunrise protege de las inyecciones SQL.
Y finalmente, cabe mencionar que la protección completa contra los ataques de inyección SQL solo se puede lograr utilizando un servidor de aplicaciones de calidad y debidamente probado.
Siguiente