Identidades del grupo de aplicaciones

por Thomas Deml

Tanto si está ejecutando su sitio en su propio servidor como en la nube, la seguridad debe estar en la parte superior de la lista de prioridades. Si es así, estará encantado de saber que IIS tiene una característica de seguridad denominada identidad del grupo de aplicaciones. Esta característica se introdujo en Service Pack 2 (SP2) de Windows Server 2008 y Windows Vista. Una identidad del grupo de aplicaciones permite ejecutar un grupo de aplicaciones en una cuenta única sin tener que crear y administrar cuentas locales o de dominio. El nombre de la cuenta del grupo de aplicaciones corresponde al nombre del grupo de aplicaciones. En la imagen siguiente se muestra un proceso de trabajo de IIS (W3wp.exe) que se ejecuta como la identidad defaultAppPool.

Captura de pantalla de la pantalla Administrador de tareas con un enfoque en el proceso de trabajo W 3 W P dot E X E I I S.

Cuentas de identidad del grupo de aplicaciones

Los procesos de trabajo de IIS 6.0 y IIS 7 se ejecutan como servicio de red de forma predeterminada. El servicio de red es una identidad integrada de Windows. No requiere una contraseña y solo tiene privilegios de usuario; es decir, es relativamente con pocos privilegios. La ejecución como una cuenta con pocos privilegios es una buena práctica de seguridad porque un usuario malintencionado no puede usar un error de software para asumir todo el sistema.

Sin embargo, se produjo un problema a lo largo del tiempo a medida que más y más servicios del sistema de Windows empezaron a ejecutarse como servicio de red. Esto se debe a que los servicios que se ejecutan como servicio de red pueden alterar otros servicios que se ejecutan bajo la misma identidad. Dado que los procesos de trabajo de IIS ejecutan código de terceros de forma predeterminada (ASP clásico, ASP.NET, código PHP), era el momento de aislar los procesos de trabajo de IIS de otros servicios del sistema de Windows y ejecutar procesos de trabajo de IIS en identidades únicas. El sistema operativo Windows proporciona una característica denominada "cuentas virtuales" que permite a IIS crear una identidad única para cada uno de sus grupos de aplicaciones. Para obtener más información sobre las cuentas virtuales, vea Guía paso a paso de cuentas de servicio.

Configuración de identidades del grupo de aplicaciones de IIS

Si ejecuta IIS 7.5 en Windows Server 2008 R2 o una versión posterior de IIS, no tiene que hacer nada para usar la nueva identidad. Para cada grupo de aplicaciones que cree, la propiedad Identity del nuevo grupo de aplicaciones se establece en ApplicationPoolIdentity de forma predeterminada. IIS Administración Process (WAS) creará una cuenta virtual con el nombre del nuevo grupo de aplicaciones y ejecutará los procesos de trabajo del grupo de aplicaciones en esta cuenta de forma predeterminada.

Para usar esta cuenta virtual al ejecutar IIS 7.0 en Windows Server 2008, debe cambiar la propiedad Identity de un grupo de aplicaciones que cree en ApplicationPoolIdentity. Este es el procedimiento:

  1. Abra la Consola de administración de IIS (INETMGR). MSC).

  2. Abra el nodo Grupos de aplicaciones debajo del nodo de la máquina. Seleccione el grupo de aplicaciones que desea cambiar para ejecutarse en una identidad de grupo de aplicaciones generada automáticamente.

  3. Haga clic con el botón derecho en el grupo de aplicaciones y seleccione Configuración avanzada.

    Captura de pantalla del cuadro de diálogo Configuración avanzada con la opción Identidad resaltada.

  4. Seleccione el elemento de lista Identidad y haga clic en los puntos suspensivos (el botón con los tres puntos).

  5. Aparecerá el siguiente cuadro de diálogo:

    Captura de pantalla del cuadro de diálogo Identidad del grupo de aplicaciones con la opción Identidad del grupo de aplicaciones resaltada.

  6. Seleccione el botón Cuenta integrada y, a continuación, seleccione el tipo de identidad ApplicationPoolIdentity en el cuadro combinado.

Para realizar el mismo paso mediante la línea de comandos, puede llamar a la herramienta de línea de comandos appcmd de la siguiente manera:

%windir%\system32\inetsrv\appcmd.exe set AppPool <your AppPool> -processModel.identityType:ApplicationPoolIdentity

Protección de recursos

Cada vez que se crea un nuevo grupo de aplicaciones, el proceso de administración de IIS crea un identificador de seguridad (SID) que representa el nombre del propio grupo de aplicaciones. Por ejemplo, si crea un grupo de aplicaciones con el nombre "MyNewAppPool", se crea un identificador de seguridad con el nombre "MyNewAppPool" en el sistema de Seguridad de Windows. A partir de este momento, los recursos se pueden proteger mediante esta identidad. Sin embargo, la identidad no es una cuenta de usuario real; no se mostrará como un usuario en la Consola de administración de usuarios de Windows.

Para probarlo, seleccione un archivo en el Explorador de Windows y agregue la identidad "DefaultAppPool" al Access Control List (ACL) del archivo.

  1. Abrir el Explorador de Windows

  2. Seleccione un archivo o directorio.

  3. Haga clic con el botón derecho en el archivo y seleccione Propiedades.

  4. Seleccione la pestaña Seguridad

  5. Haga clic en el botón Editar y, a continuación, en el botón Agregar .

  6. Haga clic en el botón Ubicaciones y asegúrese de seleccionar el equipo.

    Captura de pantalla del cuadro de diálogo Seleccionar usuarios o grupos.

  7. Escriba IIS AppPool\DefaultAppPool en el cuadro de texto Escriba los nombres de objeto que desea seleccionar: .

  8. Haga clic en el botón Comprobar nombres y haga clic en Aceptar.

Al hacerlo, el archivo o directorio que seleccionó ahora también permitirá el acceso a la identidad DefaultAppPool .

Puede hacerlo a través de la línea de comandos mediante la herramienta ICACLS. En el ejemplo siguiente se proporciona acceso completo a la identidad DefaultAppPool.

ICACLS test.txt /grant "IIS AppPool\DefaultAppPool:F"

Para obtener más información, consulte ICACLS.

En Windows 7 y Windows Server 2008 R2 y versiones posteriores de Windows, el valor predeterminado es ejecutar grupos de aplicaciones como identidad del grupo de aplicaciones. Para que esto suceda, se introdujo un nuevo tipo de identidad con el nombre "AppPoolIdentity". Si se selecciona el tipo de identidad "AppPoolIdentity" (el valor predeterminado en Windows 7 y Windows Server 2008 R2 y versiones posteriores), IIS ejecutará procesos de trabajo como la identidad del grupo de aplicaciones. Con cada otro tipo de identidad, el identificador de seguridad solo se insertará en el token de acceso del proceso. Si se inserta el identificador, el contenido puede seguir siendo ACLed para ApplicationPoolIdentity, pero el propietario del token probablemente no sea único. Para obtener más información sobre este concepto, consulte la entrada de blog New in IIS 7 - App Pool Isolation (Nuevo en IIS 7: aislamiento del grupo de aplicaciones).

Acceso a la red

El uso de la cuenta de servicio de red en un entorno de dominio tiene una gran ventaja. El proceso de trabajo que se ejecuta como servicio de red accede a la red como la cuenta de la máquina. Las cuentas de equipo se generan cuando una máquina está unida a un dominio. Tienen un aspecto similar al siguiente:

<domainname>\<machinename>$,

Por ejemplo:

mydomain\machine1$

Lo bueno de esto es que los recursos de red, como los recursos compartidos de archivos o las bases de datos de SQL Server, pueden ser ACL para permitir el acceso a esta cuenta de equipo.

¿Qué ocurre con las identidades del grupo de aplicaciones?

La buena noticia es que las identidades del grupo de aplicaciones también usan la cuenta de máquina para acceder a los recursos de red. No es preciso realizar cambios.

Problemas de compatibilidad con las identidades del grupo de aplicaciones

Documentación de instrucciones

El problema de compatibilidad más importante con las identidades del grupo de aplicaciones es probablemente documentos de orientación anteriores que recomiendan explícitamente que los recursos de ACL para el servicio de red, es decir, la identidad predeterminada de DefaultAppPool en IIS 6.0 e IIS 7.0. Los clientes tendrán que cambiar sus scripts a la ACL para "IIS AppPool\DefaultAppPool" (u otro nombre del grupo de aplicaciones) al ejecutarse en IIS 7.5 o posterior (consulte el ejemplo anterior para ver cómo hacerlo).

Perfil de usuario

IIS no carga el perfil de usuario de Windows, pero ciertas aplicaciones pueden aprovecharlo de todos modos para almacenar datos temporales. SQL Express es un ejemplo de una aplicación que lo hace. Sin embargo, se debe crear un perfil de usuario para almacenar datos temporales en el directorio del perfil o en el subárbol del Registro. El sistema creó el perfil de usuario de la cuenta de servicio de red y siempre estaba disponible. Sin embargo, con el cambio a identidades únicas del grupo de aplicaciones, el sistema no crea ningún perfil de usuario. Solo los grupos de aplicaciones estándar (DefaultAppPool y Classic .NET AppPool) tienen perfiles de usuario en el disco. No se crea ningún perfil de usuario si el administrador crea un nuevo grupo de aplicaciones.

Sin embargo, si lo desea, puede configurar grupos de aplicaciones de IIS para cargar el perfil de usuario estableciendo el atributo LoadUserProfile en "true".

Resumen

Las identidades del grupo de aplicaciones son una característica de aislamiento nueva eficaz introducida para Windows Server 2008, Windows Vista y versiones posteriores de Windows. Hará que las aplicaciones iiS en ejecución sean aún más seguras y confiables.