Considere el problema de reforzar una aplicación web existente respaldada por bases de datos, para detectar ataques y detenerlos cuando sea posible.
Parece que un enfoque plausible podría ser construir un sistema de detección de intrusiones que tenga capacidad de observación en dos puntos: (a) a nivel del servidor web (por ejemplo, para observar la página que se está ejecutando, la URL de la solicitud, los parámetros de la solicitud, la cookie de sesión) y (b) en el nivel de la base de datos (por ejemplo, para observar la consulta SQL que se está ejecutando). Puedo imaginar muchas oportunidades para construir un detector de anomalías y un sistema de monitoreo que pueda detectar muchos ataques. Por ejemplo, si en el pasado las consultas SQL iniciadas desde la página foo.php
han sido consultas SELECT, y ahora ve un comando UPDATE o DROP, eso puede ser sospechoso. Si veo una consulta que contiene un punto y coma o una subconsulta anidada, y nunca antes había visto eso en esa página, eso podría ser sospechoso. Y así. Este es el tipo de cosa que solo se puede implementar con visibilidad tanto en la solicitud web (por ejemplo, en el servidor web o en el nivel de front-end) y la base de datos.
¿Alguien ha visto este tipo de sistema antes? ¿Alguien lo ha construido, y si es así, qué tan bien funciona? ¿Hay un nombre estándar para este tipo de sistema? (Según tengo entendido, el firewall de una aplicación web normalmente tiene visibilidad solo en la aplicación web, pero no en la base de datos, por lo que es diferente). ¿Existen sistemas como este disponibles comercialmente o de código abierto?