¿Que es el Tier-Model?
Uno de los desafíos más difíciles a los que nos podemos enfrentar a la hora de implementar una infraestructura de Dominio en Windows es el de asignar correctamente privilegios a cada usuario y si eres el administrador del dominio probablemente te harás preguntas del tipo:
¿Cuántos usuarios deben tener derechos elevados sobre sus máquinas?, ¿Estos usuarios con derechos elevados deberían poder iniciar sesión en cualquier PC?, ¿Cuántos usuarios necesitan ser administradores del dominio? ¿Y los usuarios externos, como los administro?
Lamentablemente, no existe un modelo standard de Active Directory que sea igual para todas las compañías, ni tampoco una configuración que se ajuste a todos los casos, pues cada corporación tendrá su propia estructura y su propia administración. Lo que si podemos y debemos en todos los casos es aplicar el concepto de mínimo privilegio. Es decir, aplicar a cada usuario los privilegios mínimos que necesita para realizar sus tareas habituales.
Tener nuestra gestión de identidad basada en este modelo es ventajoso por las siguientes razones: Evitaremos que los usuarios legítimos abusen de privilegios excesivos para acceder a información confidencial. Si las credenciales de un usuario se ven comprometidas, los atacantes se verán fuertemente limitados a realizar únicamente las tareas permitidas al usuario comprometido. Esto evitará o al menos complicará el movimiento lateral y las técnicas de escalada de privilegios. Si un usuario ejecuta malware, su propagación probablemente estará limitada por los estrictos privilegios de la cuenta comprometida.
El problema de los privilegios excesivos:
A medida que las redes crecen es común encontrar cuentas con más privilegios de los que deberían. Hay muchas razones por las que esto puede suceder, entre ellas: A los usuarios se les pueden asignar privilegios individualmente en lugar de basarse en sus roles. Esto se vuelve difícil de mantener a medida que la empresa crece. Los privilegios no se revocan a los usuarios que abandonan la empresa. Los usuarios que han pasado por diferentes puestos en la empresa aún pueden tener los privilegios de sus funciones anteriores. Es algo que me suelo encontrar una y otra vez cuando realizo auditorias de AD en diferentes clientes: no se han hecho esfuerzos para reducir los privilegios predeterminados asignados a los usuarios de la red.
Una cantidad significativa de cuentas con privilegios excesivos puede convertirse rápidamente en un problema. Imaginemos el siguiente escenario: Un atacante logra un acceso inicial en la red de la víctima. Como resultado, obtiene privilegios administrativos locales en el host comprometido. Utilizando herramientas como mimikatz, el atacante vuelca las credenciales almacenadas en caché de los usuarios que iniciaron sesión recientemente en la máquina. Una de esas credenciales corresponde al usuario “Carlos”. El atacante se da cuenta de que “Carlos” es miembro del grupo Helpdesk. Debido a prácticas de seguridad deficientes, los usuarios del servicio de asistencia técnica tienen privilegios administrativos sobre todas las máquinas del dominio. El atacante ahora tiene acceso administrativo a todas las máquinas a través de la cuenta de Carlos. Si bien muchas prácticas de seguridad más que deficientes condujeron al compromiso de la red en nuestro ejemplo, si el usuario Carlos hubiera tenido un conjunto de privilegios más restrictivo, el daño causado por el atacante podría haberse contenido en una parte de la red en lugar de afectar a todas las máquinas. Restringir correctamente los privilegios de los usuarios de nuestro dominio nos permite contener el daño causado por un atacante en caso de que robe un conjunto de credenciales válidas.
Aquí es donde podríamos introducir el concepto de Tier Model o Modelo de Tier. A alto nivel consiste en dividir la estructura del Directorio Activo en tres niveles.
Dónde en la capa de nivel 2 estaría destinada a cuentas de usuario, wokstations y dispositivos.
La capa de Nivel 1 estaría destinada para servidores de aplicaciones y cuentas de usuario administrativas para las máquinas de Tier 1
Y por último la capa del Tier-0 dónde irían alojados los controladores de dominio y las cuentas de más alto privilegio.
Discernir que servidores deben ir a Tier-0 o a Tier-1 suele dar más de un quebradero de cabeza en las organizaciones a la hora de implantar este modelo. La Teoría parece sencilla, todos aquellos activos de nuestro dominio que requieran de una interacción con una cuenta de alto privilegio deben ir a la capa de Tier-0. Esto serían obviamente los propios controladores de dominio, pero también otros servicios como la infraestructura de PKI o servidores de correo.
Un ejemplo de una estructura base de modelo de tiers sería el que vemos en la imagen a continuación.
Esta estructura deberá tener correctamente aplicada toda la configuración de delegación de los permisos dentro de nuestro directorio activo con tal de evitar en la mayor medida de lo posible, permisos erróneos en ACLS y ACEs para así evitar caminos de escalación por parte de un atacante.
Cómo es lógico, toda esta estructura deberá ir acompaña de una robusta configuración a nivel de políticas de seguridad. (GPOs) que hagan que se cumplan todas las restricciones necesarias y que se apliquen las base-lines de seguridad correspondiente.
Y ahora vendría la pregunta del millón: ¿Cómo implementar toda esta estructura sin morir en el intento?
Buscando un poco por Google puedes encontrar algún script que te automatiza esta tarea. Los que he visto no me han gustado y adolecen de algo muy importante que es aplicar correctamente las best practices y baselines del fabricante.
En el próximo artículo veremos como aprender a construir nuestro propio módulo de Powershell para desplegar un modelo de Tier que se ajuste a los requisitos de tu compañía y que a su vez contenga todas las base-lines de seguridad recomendada.