Implicaciones de usar la cuenta domain \ computername $ para servir datos de SQL a IIS

2

Uno de nuestros programadores está intentando que la autenticación de Windows funcione en una nueva aplicación web que está desarrollando (.Net 4.0, MVC, a través de IIS 7.0 / 7.5).

La aplicación se conecta a un servidor de base de datos de SQL Server a través de una sola cuenta de inicio de sesión de SQL:

Dominio \ Computername $

Se asigna a una cuenta de usuario con el mismo nombre dentro de una sola base de datos, y se le asignan los siguientes roles:

db_datareader
  db_datawriter

Los usuarios del dominio de Windows se autentican de alguna manera y se les permite el acceso a la base de datos.

¿Alguien sabe si esto presenta algún riesgo de seguridad importante si el servidor web (pero no el servidor SQL) está accesible públicamente en la red? Me suena casi tan malo como otorgar esos privilegios a NT AUTHORITY \ ANONYMOUS LOGON, pero debo admitir que no estoy exactamente al tanto de esta área.

    
pregunta GringoFrenzy 08.05.2013 - 11:49
fuente

2 respuestas

2

No hace ninguna diferencia en la seguridad del servidor web.

En este caso, la cuenta con la que se está conectando será la cuenta de la máquina, ya que es probable que la aplicación web se ejecute en el contexto de:

  1. La cuenta del servicio de red
  2. La cuenta AppPoolIdentity.

En cualquier caso, son cuentas no interactivas limitadas, y como la aplicación ya se está ejecutando en el contexto de una de estas cuentas, no hay exposición adicional al servidor web o la red que se creará utilizando la misma cuenta para acceder a la base de datos. La exposición a la base de datos (y al servidor de la base de datos) se determinará según la forma en que configure este acceso a las cuentas; no es diferente de la exposición creada al usar cualquier otra cuenta configurada de la misma manera.

En cuanto a agregar la cuenta a los roles db_datareader y db_datawriter, eso no es irrazonable. Sería mejor si todo el acceso a los datos se hiciera a través de procedimientos almacenados y usted pudiera limitar la cuenta a la función pública , pero si necesita acceder directamente a las tablas subyacentes, entonces ese es el conjunto de permisos mínimo requerido para acceder y actualizar los datos y no es terriblemente inseguro. Hace que sea más importante tener en cuenta los posibles ataques de inyección de SQL en su aplicación.

    
respondido por el Xander 08.05.2013 - 22:03
fuente
0

Si su aplicación web está comprometida, el atacante normalmente obtendrá los mismos privilegios que el usuario que ejecuta la aplicación. Por lo que parece que sería un usuario de dominio. Además, parece que habrían leído y ESCRIBIDO el acceso a su base de datos. Dependiendo de lo que haya allí, es posible que no quieras eso.

    
respondido por el Jason H 08.05.2013 - 14:12
fuente

Lea otras preguntas en las etiquetas