
Detección de Inyecciones SQL: Consejos de Seguridad para tus Bases de Datos
La detección de inyecciones SQL es algo similar a la filtración de spam en el correo electrónico. Los problemas que los desarrolladores de estos sistemas deben resolver 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 (por ejemplo, filtrado bayesiano).
- Filtrado de contenido. Incluye la búsqueda de signos 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. Se asigna un cierto “costo” (en puntos) a cada sub-prueba. Si el mensaje entrante pasa la sub-prueba, sus puntos se suman al puntaje general de la prueba. El puntaje podría ser tanto positivo como negativo. Cuando se completa la prueba de un mensaje, el sistema antispam suma el puntaje general. Cuanto mayor sea el puntaje, mayor será la posibilidad de que el mensaje probado contenga spam.
Por ejemplo, el filtro de spam Spam Assassin tiene un umbral personalizable. Si el puntaje general de la prueba supera el umbral, el mensaje se considera como spam. Normalmente, el umbral se configura de tal manera que no sea suficiente que un mensaje pase una prueba para superar 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 filtrado de spam por sí solo garantiza protección total contra mensajes no deseados ni contra falsas alarmas. Por eso, en la práctica se utiliza 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 casi de manera similar a los filtros de spam. A nivel de DAF, en la mayoría de los casos te encuentras con código SQL válido, por eso es necesario usar signos indirectos cuando se determina si la consulta es inyectada con SQL.
DataSunrise puede detectar inyecciones SQL basándose en los siguientes signos:
- Número de consultas inválidas provenientes de un host o emitidas por un cliente específico.
- Presencia de condiciones constantes en la consulta que siempre devuelven TRUE o FALSE.
- Si hay comentarios en el cuerpo de la consulta y si esos 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 reconocer un ataque de inyección SQL, pero la capacidad de identificar 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 por último, debe mencionarse que la protección completa contra ataques de inyección SQL solo puede lograrse mediante el uso de un servidor de aplicaciones de calidad y debidamente probado.
Siguiente
