¿Cuáles son las ventajas de seguridad de instalar la base de datos de una aplicación web en un servidor que no sea el que contiene el servidor web?
Bueno, la primera ventaja obvia es que si alguien rompe la casilla que alberga su servidor de aplicaciones, no se les garantiza el acceso al mismo servidor que la base de datos. Además, al separar esta funcionalidad, facilita las tareas de TI (desarrolladores de software, administradores, etc.) para minimizar el impacto del cambio de código / actualizaciones de políticas en diferentes aspectos del entorno. Esto no soluciona de ninguna manera la codificación deficiente o la seguridad deficiente (inyección de SQL, nombre de usuario / contraseñas predeterminados). pero sí facilita una mejor postura de seguridad en general.
Un servidor web orientado a Internet no tiene ninguna razón para tener ningún acceso a la LAN / dominio en absoluto, y por lo tanto debería estar completamente prohibido hacerlo. Idealmente, debería estar en una DMZ.
Es probable que un host de servicios web orientado hacia el interior necesite un acceso limitado a la LAN / dominio (principalmente a sus bases de datos
Es probable que un servidor de base de datos esté en su LAN, lo que lo convierte en un objetivo mucho más valioso para un atacante; Probablemente necesite una copia de seguridad, se debe acceder a ella mediante una variedad de programas además de la web, y así sucesivamente.
Esencialmente:
Internet - > sitio web + servicios + DB significa que con un compromiso del sistema operativo, el atacante puede controlar todo, incluso filtrar o destruir todos sus datos en la base de datos (o copias de seguridad) directamente, sin necesidad de ir a través de la interfaz web para hacer eso.
Internet - > sitio web + servicios - > DB significa que el atacante debe comprometer su base de datos a través del agujero de la cerradura de sus servicios web, o debe comprometer más de una máquina que tenga solo algunos agujeros de seguridad compartidos.
Internet - > sitio web - > Servicios web - > DB es mejor aún: el atacante debe comprometer su base de datos a través del ojo de la cerradura de sus servicios web como se ve a través del ojo de la cerradura de su sitio web, o debe comprometer más de una (o dos) máquinas que tienen algunas pero no todos los agujeros de seguridad compartidos.
No hace falta decir que, en todos los niveles, debería estar tan seguro como pueda: parches actualizados y antivirus, SQL parametrizado para evitar la inyección de SQL, entradas en listas blancas, contraseñas largas criptográficamente aleatorias, datos cifrados, cifrados Conexiones, contraseñas fuertemente hasheadas (PBKDF2, bcrypt, scrypt), buenas opciones de algoritmo para cifrado y hashing, solo se abren los puertos mínimos entre cada capa, se revisan los registros para detectar rastros de ataques, software / aplicaciones IDS / IPS, etc. .
Se necesita una planificación o un juego (o ambos) configurados.
Bueno, al separar el servidor web del servidor de la base de datos, si un usuario puede explotar la aplicación web y elevar sus propios privilegios, puede alterar sus datos, pero solo el modelo de seguridad en el servidor de la base de datos le permitirá . Por ejemplo, si bien pueden leer y escribir datos de los clientes, si pueden realizar ingeniería inversa sobre el funcionamiento de la aplicación web, no pueden descargar la base de datos en su totalidad, ni eliminarla por completo, ni corromper / comprometer / degradar de otra manera reescribiendo su esquema. Además, los firewalls específicos de aplicaciones de nueva generación y los sistemas IDS diseñados para proteger su servidor de base de datos pueden detectar y bloquear el acceso inusual basado en firmas de ataques y heurísticas conocidas, protegiendo sus datos del acceso de clientes comprometidos.
Esto resulta muy útil si el servidor de base de datos alimenta una serie de servidores web.