Esta documentación es meramente introductoria para conocer el proyecto, si quieres saber más te aconsejo ir a la documentación técnica.
En un entorno empresarial de Windows cuando hablamos de un dominio implicamos la necesidad de un administrador para el mismo, damos por hecho que al ser una cuenta con altos privilegios dentro de la organización debe estar protegida correctamente. Al ser una única cuenta o un número limitado de ellas, no habría gran inconveniente en gestionar credenciales seguras y únicas para cada una de ellas.
Por otro lado también tenemos al administrador local de cada equipo del dominio, y aquí es donde llega el problema: ¿Qué hacemos con las credenciales de estos administradores?
Son cuentas a las cuales en un entorno enlos usuarios no deben tener acceso y para ello deben ser protegidas correctamente, para evitar un ataque con saltos laterales entre equipos descartamos la opción de una contraseña segura pero igual para todos los equipo. Con el mismo objetivo descartamos usar patrones que al ser averiguados por un atacante pueda de igual modo saltar lateralmente. Por ende, ¿cómo lo hacemos?.
Aumentar la seguridad del dominio evitando la reutilización de credenciales para usuarios privilegiados.
Es mi propuesta para suplir una carencia real y presente en las empresas que hacen uso de servicios actuales como es Azure Active Directory.
Es posible principalmente gracias a servicios en la nube como Azure Key Vault y Azure Functions. Está desarrollado en su totalidad con PowerShell y su código está disponible para todos aquí. Para una explicación más extensa y detallada del funcionamiento interno puedes mirar la documentación técnica.
Para aquellas empresas que hacen uso de Azure Active Directory y quieren las ventajas de LAPS en la nube.
Es un servicio de Azure que nos permite ejecutar código en respuesta a diversos eventos sin necesidad de tener la infraestructura que ello implicaría.
Es un servicio de Azure que proporcina un almacenamiento seguro para claves, secretos de aplicaciones y certificados. Estos pueden ser utilizados de forma segura por otros recursos o aplicaciones de la nube.
Es la mejor forma de identificar al administrador local de los equipos en sistemas Windows, su homólogo en UNIX es el usuario con UID 0.
Es el agente instalado en los equipos encargado de generar las nuevas credenciales, enviarlas a Azure Functions y según la respuesta de esta, actualizar las credenciales del administrador local.
Función de Azure encargada de evaluar las llamadas por parte de los equipos y almacenar las credenciales cifradas.
Aplicación que permite a un usuario autorizado solicitar las credenciales del administrador local de un equipo, para ello trabaja con Azure Functions.
Función de Azure que se encarga de descifrar las credenciales del administrador local para el equipo solicitado.