Seguridad de un servidor de base de datos SQL utilizado en la aplicación web

2

En mi organización tenemos una encuesta de sitio web que uno de los gerentes de aquí utiliza para fines de igualdad. Diseñaron e implementaron la encuesta en Adobe FormsCentral, que ahora se está retirando, por lo que me pidieron que creara algo similar.

Voy a crear la encuesta utilizando ASP.Net MVC, y he estado pensando en agregar los datos a una base de datos en un servidor SQL, por lo que el administrador puede descargar los datos de forma gratuita. El único problema que tengo es que mi gerente (no el mismo que quiere la encuesta) está preocupado por la seguridad de la aplicación.

Específicamente, está preocupado por el hecho de que crearemos un enlace desde nuestro servidor web (en una DMZ) a nuestro servidor SQL que actualmente solo se usa internamente. Aunque quiero decir 'estará bien', tiene un punto. Si el servidor web está comprometido, podría exponer nuestro servidor de base de datos, junto con las credenciales para acceder a él.

Limitaré las credenciales para que la encuesta solo tenga permisos de escritura para la tabla específica utilizada, pero no estoy seguro de si hay alguna forma de proteger las credenciales utilizadas para acceder al servidor de la base de datos. Solo usaré las credenciales de lectura en una página de intranet que el administrador puede usar para descargar los resultados.

¿Es posible ocultar las credenciales de alguien que obtiene acceso al servidor web? ¿O es la respuesta 'No permita que su servidor web sea hackeado'? También me interesa esto para futuras referencias, ya que podríamos terminar almacenando datos más confidenciales, por ejemplo, direcciones de clientes en el futuro, y darles acceso a través de Internet, en lugar de hacerlo internamente.

¿Y hay otras cosas que debería tener en cuenta? Ya estaré protegiéndome contra la inyección de SQL y los ataques de scripting.

Para obtener información adicional, el servidor web tiene HTTPS y el servidor SQL tiene los datos del cliente almacenados en otras bases de datos, pero la aplicación no los tocará. Cualquier ayuda o consejo sobre esto sería apreciado.

    
pregunta James R 11.06.2015 - 09:52
fuente

2 respuestas

0

Incluso si el servidor web está comprometido, las credenciales utilizadas para conectarse a SQL Server no se verían comprometidas, si utiliza lo que se llama una conexión de confianza, y esto se recomienda. Básicamente, eso significa que configuras tu grupo de aplicaciones en IIS para que se ejecute como un usuario en particular, llamémoslo "IISUser". Luego, le otorga a IISUser el conjunto mínimo de permisos para el servidor SQL requerido para la aplicación. Por ejemplo, el acceso de solo escritura a la tabla de datos de la encuesta y el acceso de solo lectura a las tablas de datos del administrador. Puede eliminar todos los demás accesos para ese usuario. Así que ahora, si el servidor web está comprometido, el usuario / paso de IISUser sigue siendo seguro, y aunque el atacante puede modificar la aplicación web para hacer cosas diferentes que se ejecutarán como IISUser, todavía están limitados a los permisos de acceso mínimos para SQL Server que le has dado al usuario.

Dicho esto, también debe tomar medidas para asegurarse de que su servidor web no se vea comprometido, porque si lo es, pueden presentar las páginas web que quieran a sus usuarios. (Recopilación de usuario / pase de los usuarios, etc.)

    
respondido por el TTT 11.06.2015 - 18:23
fuente
0

Usted podría, si desea realizar cantidades adicionales de trabajo, tener una capa intermedia de middleware que brinde solicitudes desde el servidor web dmz. Podría ser tan simple como una API basada en el descanso (podría no ser simple :)). Una vez más, la cantidad de trabajo depende de la pérdida monetaria asociada con los datos.

También si aborda esto desde una perspectiva de programación, esa será la metodología. Pero si lo aborda desde la inevitabilidad de la pérdida de datos, entonces irá con una política de copia de seguridad.

    
respondido por el munchkin 11.06.2015 - 10:59
fuente

Lea otras preguntas en las etiquetas