Permisos Web
Permisos Web
Lo primero que debemos tener claro es que los permisos web no son permisos NTFS: Los permisos web se aplican a TODOS los usuarios que acceden a una web, no a carpetas o a archivos sueltos ni a usuarios específicos como los NTFS. También se aplican siempre primero que los NTFS. No obstante, debe quedar claro que no están pensados para reemplazar a los permisos NTFS, sino para actuar en conjunto con los mismos. En todo caso, si hay un conflicto entre ambos, se aplican los más restrictivos. Estos permisos pueden aplicarse a nivel de la web completa, un directorio virtual o bien una carpeta del sistema de archivos. Los permisos asociados a una web por lo general son:
- Read: Activo por defecto. Permite ver el directorio y el contenido de los archivos. Es lo mínimo necesario para poder acceder una página web de un servidor.
- Write: Permite modificar el directorio y el contenido de los archivos.
- Script Source Access: Permite a los usuarios acceder a ficheros de código de los scripts que estén en la localización donde se aplica.
- Directory Browsing: Permite ver el listado de ficheros del directorio.
- Log Visits: Activo por defecto. Logea cada visita que se hace a los contenidos en el sitio web o carpeta donde se aplica. Extremadamente importante, porque llevar un registro de visitas (log) es clave de cara a la seguridad.
- Index this Resource: Activo por defecto si el servicio de indexado está instalado. Permite indexar el contenido de la web para facilitar búsquedas
Además, se definen también los siguientes permisos que se aplican sólo sobre contenido ejecutable de la web o de la localización en donde se aplican:
- None: Impide a los usuarios ejecutar cualquier clase de programa o script que pueda existir en la localización donde se aplica.
- Script Only: Mapea aplicaciones al motor de scripts del servidor, para que ejecute los distintos tipos de scripts que puedan existir en la localización donde se aplica.
- Scripts and Executables: Permite la ejecución de motores de scripts y ejecutables Windows. Este en concreto debe usarse con precaución, ya que concede un grado de libertad muy grande a los usuarios.
Como hemos dicho, los permisos web no están pensados para reemplazar a los NTFS, deben usarse de forma combinada con estos últimos para un mejor control de cómo se accede a los recursos. A continuación enumeraremos una lista de buenas prácticas a la hora de emplearlos:
- Conceder el mínimo privilegio posible: Por lo general servirá con conceder Read y Log visit para el sitio en general y Script only sólo para directorios con scripts. El criterio general es siempre asignar los permisos imprescindibles en una localización dada para que un usuario U haga la tarea que tiene encomendada dentro de la misma y ninguno más (principio del mínimo privilegio).
- Cuidado con permisos “especiales”: Los permisos Write, Script Source access y Script and Executables son peligrosos y no deben ser activados más que en determinados casos (como instalar WebDav u otras necesidades especiales )
- Write: Usarlo puede permitir a los usuarios subir al servidor scripts maliciosos que lo ataquen. Con un permiso como este se podría modificar el contenido de scripts y ficheros del sitio web, pudiendo introducir código malicioso que cualquiera podría ejecutar al acceder a la web.
- Script Source Access: Permite ver el código de los scripts vía IIS. Leer el código de los scripts que se ejecutan en una web puede proporcionar al atacante mucha información sobre la aplicación (composición de la BD, localización de recursos,…), que puede usarse como base para un posterior ataque. Por tanto, este permiso debe limitarse para que nadie sin permiso (por ejemplo, todos los usuarios que no sean desarrolladores autorizados) pueda ver el código de nuestra aplicación.
- Scripts and Executables: Puede permitir a los usuarios invocar intérpretes de CGI, pero también ejecutar programas en línea de comandos que puedan dañar al servidor y sus contenidos mediante sus efectos.
- Agrupar ficheros ejecutables en su propio directorio: Esto es muy conveniente, ya que hace más fácil configurar los permisos de acceso conveniente.
- Si todos los scripts de una aplicación están en un mismo directorio, sólo este directorio tendrá asignado el permiso Script Only.
- Los demás directorios no tendrán asignado el permiso de ejecutar scripts, por lo que será imposible que se ejecute un script fuera del directorio asignado para este propósito. De esta forma podremos limitar el nº de zonas dela web donde permitimos contenido activo y que puedan ser por tanto fuentes de problemas, siendo esto por tanto una práctica muy recomendable.
- En general es muy buena idea agrupar ficheros según los permisos que deban asignárseles, de forma que todos los ficheros de una carpeta puedan tener un conjunto de permisos común.
Visto esto, podemos describir la siguiente actividad práctica. El siguiente enlace muestra información relacionada en IIS 7: http://technet.microsoft.com/en-us/library/cc771240%28WS.10%29.aspx