14. Seguridad en IIS 6 - Permisos y Autenticación

1. Niveles de permisos

Con IIS 6, manejamos 2 niveles de permisos:

    • Permisos NTFS: son los del sistema de archivos del sistema y determinan el nivel de acceso a cada archivo o directorio para cada usuario.
    • Permisos Web: permisos especiales propios de IIS que determinan el nivel de acceso de un cliente web o FTP sobre un determinado contenido: si tiene acceso a un directorio virtual, si puede leer un determinado archivo, o mostrar el contenido de un directorio, por ejemplo.

Los permisos NTFS son característicos del sistema de archivos de Windows y los gestiona el sistema operativo, mientras que los permisos Web son característicos de HTTP y los gestiona IIS.

Al recibir el servidor una petición, en primer lugar, se comprueban los permisos IIS, y después se comprueban los permisos NTFS.

 

2.1 Permisos NTFS – nivel de acceso

Los parámetros que determinan el nivel de acceso sobre un determinado directorio o archivo son:

    • Recorrer carpeta / ejecutar archivo:
      • Para carpetas: permite o deniega el movimiento por las carpetas para llegar a otros archivos o carpetas, incluso si el usuario no tiene permisos para las carpetas recorridas.
      • Para archivos: el permiso Ejecutar archivo permite o deniega la ejecución de archivos de programa.
    • Listar carpeta / leer datos:
      • Para carpetas: permite o deniega ver nombres de archivos y subcarpetas de la carpeta.
      • Para archivos: permite o deniega la vista de datos de archivo en archivos.
    • Atributos de lectura: permite o deniega la vista de los atributos NTFS de un archivo o carpeta, como sólo lectura y oculto.
    • Atributos extendidos de lectura: permite o impide que el usuario vea los atributos extendidos de un archivo o de una carpeta. Los atributos extendidos pueden definirse por programas y pueden variar de uno a otro.
    • Crear archivos / Escribir datos:
      • Para carpetas: permite o impide al usuario crear archivos en la carpeta.
      • Para archivos: permite o impide que el usuario haga cambios en el archivo y sobrescriba contenido existente.
    • Crear carpetas / Anexar datos:
      • Para carpetas: permite o impide al usuario crear carpetas en la carpeta.
      • Para archivos: permite o impide que el usuario haga cambios en el final del archivo pero que no cambie, elimine ni sobrescriba datos existentes.
    • Atributos de escritura: permite o impide el cambio de los atributos NTFS de un archivo o de una carpeta, como sólo lectura y oculto.
    • Atributos extendidos de escritura: permite o impide que el usuario cambie los atributos extendidos de un archivo o de una carpeta.
    • Eliminar subcarpetas y archivos (este permiso se aplica sólo a las carpetas): permite o impide que el usuario elimine subcarpetas y archivos, incluso aunque no se haya concedido el permiso Eliminar para la subcarpeta o el archivo.
    • Eliminar: permite o impide que el usuario elimine el archivo o la carpeta.
    • Leer permisos: permite o impide que el usuario lea permisos de seguridad del archivo o carpeta.
    • Cambiar permisos: permite o impide que el usuario cambie permisos de seguridad del archivo o de la carpeta.
    • Tomar posesión: permite o impide que el usuario tome posesión del archivo o de la carpeta. El propietario de un archivo o de una carpeta puede cambiar los permisos correspondientes, cualesquiera que sean los permisos existentes que protegen el archivo o la carpeta.

 

2.2 Agrupación de permisos NTFS

Nota: los grupos o los usuarios a los que se concede Control total para una carpeta pueden eliminar cualquier archivo de dicha carpeta, cualesquiera que sean los permisos que protegen al archivo.

Nota: aunque parece que Mostrar el contenido de la carpeta y Leer y ejecutar tienen los mismos permisos especiales, estos permisos se heredan de manera diferente. Mostrar el contenido de la carpeta lo heredan las carpetas, pero no los archivos, y sólo aparece al ver los permisos de carpetas. Leer y ejecutar lo heredan tanto los archivos como las carpetas.

 

2.3 Permisos NTFS en un directorio Web

El sistema asigna por defecto permisos de escritura al usuario anónimo de IIS.

Por eso, a menos que se requieran permisos adicionales (creación de archivos, por ejemplo), es muy aconsejable restringir los permisos NTFS en el directorio raíz de un sitio web (tabla en la siguiente página).

 

3. Permisos web

    • Lectura: permite ver o descargar archivos del directorio.
    • Escritura: permite a los usuarios colocar archivos en el directorio o modificarlos.
    • Examen de directorios: permite mostrar un listado del directorio cuando no se encuentra un documento predeterminado en el directorio. Normalmente, se tendrá deshabilitada esta opción para no publicar el contenido de un directorio.
    • Acceso al código fuente de secuencias de comandos: permite a los usuarios acceder al código fuente de páginas de script –como ASP o PHP- en lugar de recibir el resultado de su ejecución. Esta opción sólo debe estar seleccionada cuando sea necesario (por ejemplo por estar utilizando webDAV) y siempre en entornos controlados, teniendo en cuenta el contenido que puede estar viajando por la red.

 

4.1 Métodos de autenticación

    • IIS 6 incluye distintos métodos de autenticación de usuarios:
    • Acceso anónimo
    • Autenticación de Windows integrada
    • Autenticación de texto implícita para servidores de dominio Windows
    • Autenticación básica
    • Autenticación de .NET Passport

Todos estos métodos están disponibles para los sitios web, mientras que los sitios FTP sólo disponen de Acceso anónimo y Autenticación básica. 

 

4.2 Características

 

5. Mecanismos de seguridad

    • Absolutamente prioritario: mantener el servidor al día de actualizaciones críticas.
    • Restricciones por IP y por dominio:
      • IIS 6 ofrece la posibilidad de restringir el acceso para cada elemento de un sitio web según criterios de dirección IP y/o pertenencia a un dominio.
        • Es preferible emplear criterios de dirección IP, ya que el servidor recibe la dirección IP del cliente, y averiguar la pertenencia a un dominio obliga a realizar una búsqueda de DNS inversa.
      • Emplear estos mecanismos siempre que nos sea posible, es una buena medida de seguridad, aunque no infalible, ya que las direcciones IP se pueden falsear.
    • Identidad de los procesos de trabajo:
      • Un proceso de trabajo, cuando procesa la petición de un cliente, adquiere la identidad del usuario asociado al cliente. Sin embargo, requiere de una identidad inicial propia, ya que debe existir siempre en un contexto de seguridad.
      • De las 3 opciones que nos ofrece IIS por defecto como identidad inicial de los procesos de trabajo de una aplicación, la mejor –por tener el menor número de permisos- es Servicio de red-, que es la predeterminada.
    • Identidad de los grupos de aplicaciones:
      • Podemos independizar las identidades de los grupos de aplicaciones entre sí, creando para cada uno una cuenta de usuario con contraseña compleja y haciéndola miembro del grupo IIS_WPG.
      • De esta manera, los compromisos de seguridad derivados de una aplicación no afectarán a las aplicaciones en otros grupos y así incluimos el plano de seguridad entre los niveles de aislamiento proporcionados por los grupos de aplicaciones.
    • No instalar componentes que no sean necesarios:
      • Si no se va a emplear el servicio SMTP, o FTP, no instalarlo. No sólo consume recursos, sino que abrimos opciones a posibles vulnerabilidades.
    • Proteger cmd.exe:
      • No emplear cuentas de usuario que tengan permiso de ejecución sobre el intérprete de comandos para aplicaciones web.
    • Mantener el mínimo de permisos web necesarios.
    • Desvincular las extensiones ISAPI que no se utilicen:
      • Como por ejemplo .idc o las de server-side includes.
    • Ocultar el uso de scripts:
      • Si, por ejemplo, asociamos la extensión htm al motor de scripts asp.dll, podríamos incluir código ASP en archivos con extensión htm, que sería procesado igualmente.
    • Gestión adecuada de las cuentas de usuario:
      • Emplear contraseñas fuertes.
      • Bloquear tras un número de intentos fallidos de validación.
      • Cambiar periódicamente.

     

Fichero pdf para descargar aquí.
vidalmb_admin – Mar, 22/08/2006 – 13:13