¿Qué es Microsoft LAPS: Cómo puede mejorar su seguridad?
Aug 25, 2021
Microsoft Local Administrator Password Solution (LAPS) permite a las organizaciones gestionar las contraseñas de Administrador local en todos sus endpoints. Cuando se implementa correctamente, es una forma efectiva de prevenir algunos tipos de movimiento lateral potencial y privilege escalation dentro de su entorno, pero cuando se implementa incorrectamente, puede crear una gran apertura para los atacantes.
Contenido relacionado seleccionado:
Este artículo explica qué es LAPS y cómo desplegarlo, así como cómo usar Netwrix Privilege Secure para superar sus brechas de seguridad inherentes.
¿Qué es Microsoft LAPS?
Microsoft LAPS es un gestor de contraseñas que utiliza Active Directory para administrar y rotar las contraseñas de las cuentas de Administrador local en todos sus endpoints de Windows. Al asegurar que todas las cuentas de Administrador local tengan contraseñas únicas y complejas, LAPS ayuda a mitigar el riesgo de movimiento lateral y escalada de privilegios: Un atacante que comprometa una cuenta de Administrador local no puede moverse lateralmente a otros endpoints simplemente utilizando la misma contraseña.
Una ventaja sobre otros administradores de contraseñas es que LAPS no requiere computadoras adicionales para gestionar estas contraseñas; se hace completamente a través de los componentes de Active Directory. Además, puedes descargar y usar LAPS de forma gratuita.
Configuración de Microsoft LAPS
Para configurar LAPS en su entorno, siga los pasos detallados en la guía (LAPS_OperationsGuide.docx) incluida en la descarga. Aquí, voy a repasar algunos de estos pasos a un alto nivel.
Instalando LAPS en tus endpoints
Cuando instala LAPS en un punto final, se instalan los siguientes componentes:
- Interfaz de usuario de cliente pesado
- Módulo de PowerShell
- Group Policy plantillas
- Extensión de GPO AdmPwd
Mientras que las consolas de gestión necesitan una o más de estas características, los puntos finales que serán gobernados por LAPS solo necesitan la extensión GPO de AdmPwd. La Guía de Operaciones ofrece algunas maneras de implementar este componente en sus puntos finales.
Extender el esquema de su Active Directory para acomodar LAPS
Microsoft proporciona un módulo de PowerShell para ayudarlo con este paso. Agrega dos atributos de computadora a su esquema:
- ms-Mcs-AdmPwd — Almacena la contraseña del Administrador local para el objeto del equipo en texto claro (aterrador, lo sé, pero profundizaré en esto más adelante)
- ms-Mcs-AdmPwdExpirationTime — Almacena el momento en que la contraseña expira
Una vez extendido el esquema, puedes utilizar la Directiva de grupo para implementar la configuración de LAPS en todos tus servidores miembros. Luego, usa el Group Policy Management Editor para configurar el nuevo objeto de Directiva de grupo (GPO) de LAPS:
La GPO de LAPS incluye las siguientes configuraciones:
- Configuración de contraseñas — Le permite especificar los requisitos de complejidad para las contraseñas de las cuentas de Administrador locales, incluyendo longitud y antigüedad
- Habilitar la gestión de contraseñas de administrador local — Determina si los puntos finales gobernados por la GPO están siendo gestionados por LAPS
- Nombre de la cuenta de administrador para gestionar — Le permite gestionar la contraseña de cuentas de administrador locales no predeterminadas (es decir, cuentas locales que no se llaman ‘Administrator’)
- No permita que el tiempo de caducidad de la contraseña sea más largo del requerido por la política — Le permite asegurarse de que ninguna caducidad de contraseña exceda la configuración de 'Password Age (Days)' en Password Settings
Asegurando que LAPS sea seguro
Después de haber extendido su esquema de AD, el siguiente paso es asegurarse de que los permisos para estos nuevos atributos se apliquen correctamente. Este es uno de los pasos más importantes en el proceso, ya que desea otorgar acceso solo a los objetos que lo necesitan. Microsoft proporciona scripts de PowerShell para verificar quién tiene actualmente acceso al atributo y para aplicar nuevos permisos si es necesario.
A un nivel alto, hay algunas consideraciones que tener en cuenta aquí:
- Elimine el permiso 'Todos los derechos extendidos' de usuarios y grupos en objetos de computadora que no deberían poder ver la contraseña de las cuentas de Administrador local (recuerde que se almacena en texto claro en un atributo).
- El principal ‘SELF’ requiere la capacidad de escribir los atributos ‘ms-Mcs-AdmPwdExpirationTime’ y ‘ms-Mcs-AdmPwd’ para poder actualizar las contraseñas y los tiempos de expiración cuando una contraseña expira. La ACE para ‘SELF’ es necesaria en todos los objetos de computadora gobernados por LAPS.
- Los usuarios y grupos que tienen permiso para restablecer contraseñas en las cuentas de Administrador local deben recibir acceso a los atributos en esos objetos de computadora.
Aquí hay un script que le ayudará a entender quién tiene acceso a estos atributos hoy.
<#
Author: Kevin Joyce
Requirements: Active Directory PowerShell module, Domain Administrator privileges (to ensure the capability to get attribute GUIDs and view all permissions on all computer objects)
Description: Looks up permissions within Active Directory on a target (OU or Computer) to determine access to LAPS attributes (ms-Mcs-AdmPwdExpirationTime and ms-Mcs-AdmPwd).
Usage: Populate the $target variable with the DN of a computer object, or OU to search for computer objects within.
To output the results to a text file run the following .LAPS_Permissions_Collection.ps1 > output.txt
<#
Import-Module ActiveDirectory
##Get the GUID of the extended attributes ms-Mcs-AdmPwdExpirationTime and ms-Mcs-AdmPwd from Schema
$schemaIDGUID = @{}
Get-ADObject -SearchBase (Get-ADRootDSE).schemaNamingContext -LDAPFilter '(|(name=ms-Mcs-AdmPwdExpirationTime)(name=ms-Mcs-AdmPwd))' -Properties name, schemaIDGUID |
ForEach-Object {$schemaIDGUID.add([System.GUID]$_.schemaIDGUID,$_.name)}
<# **REPLACE DN VARIABLE BELOW**
Declare the distinguishedName of the Computer object directly or OU to search for computers within#>
$target = 'CN=Computers,DC=COMPANY,DC=NET'
##Get distinguished name of all Computer objects from the OU or of the target itself
$computers = Get-ADComputer -SearchBase $target -Filter {name -like '*'}
<#Get objects that have specific permissions on the target(s):
Full Control(GenericAll)
Read All Properties(GenericRead)
Write all Properties (WriteProperty where ObjectType = 00000000-0000-0000-0000-000000000000
#>
Set-Location ad:
foreach ($computer in $computers){
(Get-Acl $computer.distinguishedname).access |
Where-Object { (($_.AccessControlType -eq 'Allow') -and ($_.activedirectoryrights -in ('GenericRead','GenericAll') -and $_.inheritancetype -in ('All', 'None')) -or (($_.activedirectoryrights -like '*WriteProperty*')-or ($_.activedirectoryrights -like '*GenericRead*') -and ($_.objecttype -eq '00000000-0000-0000-0000-000000000000')))} |
ft ([string]$computer.name),identityreference, activedirectoryrights, objecttype, isinherited -autosize
}
<#Get objects that have specific permissions on the target(s) and specifically the LAPS attributes:
WriteProperty
ReadProperty
#>
Set-Location ad:
foreach ($computer in $computers){
(Get-Acl $computer.distinguishedname).access |
Where-Object {(($_.AccessControlType -eq 'Allow') -and (($_.activedirectoryrights -like '*WriteProperty*') -or ($_.activedirectoryrights -like '*ReadProperty*')) -and ($_.objecttype -in $schemaIDGUID.Keys))} |
ft ([string]$computer.name),identityreference, activedirectoryrights, objecttype, isinherited -AutoSize
}
Consejo de seguridad: Además de restringir estos dos atributos LAPS mediante permisos, también debería monitorear el tráfico LDAP contra los atributos, para poder detectar atacantes que los consulten cuando los permisos configurados incorrectamente lo permitan. StealthDEFEND for Active Directory puede proporcionar alertas en tiempo real sobre el tráfico LDAP contra estos atributos.
Viendo LAPS en acción
Hay varias maneras de obtener la contraseña actual del Administrador local para un endpoint específico a través de LAPS, pero la forma más fácil es usar la interfaz gráfica de usuario. Simplemente ingrese un nombre de computadora y mostrará la contraseña del Administrador local en texto plano junto con su fecha de caducidad, la cual puede modificar.
Alternativamente, puede obtener esta información utilizando PowerShell:
Superando las brechas de seguridad en Microsoft LAPS con Netwrix Privilege Secure
Microsoft LAPS es una solución poderosa para gestionar las contraseñas del Administrador local en todos sus endpoints. Cuando se implementa correctamente, es una forma efectiva de prevenir algunas formas de movimiento lateral potencial o escalada de privilegios. Desafortunadamente, sin embargo, cuando no se implementa correctamente, puede crear una gran apertura para los atacantes.
Las brechas de seguridad de LAPS incluyen lo siguiente:
- La interfaz anticuada
- LAPS no admite autenticación y autorización robustas.
- LAPS no proporciona acceso just-in-time, por lo que las cuentas de Administrador siempre están vulnerables a ser tomadas por atacantes.
- No hay un restablecimiento forzado de contraseña después del acceso, lo que permite a los atacantes utilizar una contraseña robada.
- Los usuarios siempre deben conocer la contraseña de la cuenta, lo que impone problemas logísticos y de seguridad.
Puede eliminar estas brechas de seguridad utilizando Netwrix Privilege Secure . Esta Privileged Access Management (PAM) solution mejora LAPS al agregar características como la aprobación multinivel, acceso justo a tiempo y programado, rotación forzada de contraseñas, exposición controlada de contraseñas y grabación y reproducción de sesiones.
Otros beneficios de Netwrix Privilege Secure
La mayoría de las soluciones de Privileged Access Management se centran únicamente en limitar el acceso a cuentas altamente privilegiadas como Domain Admin y Administrador del servidor local. Aunque este enfoque proporciona a los administradores acceso justo a tiempo, todas las cuentas poderosas siguen estando disponibles — y por lo tanto vulnerables — incluso cuando no están en uso.
Netwrix Privilege Secure le permite reducir su superficie de ataque eliminando la mayoría de estas cuentas privilegiadas permanentes. En su lugar, se proporciona a los administradores el nivel exacto de derechos necesarios para completar una tarea, en el momento exacto en que se necesitan y solo durante el tiempo que se necesitan. Este enfoque también le permite reducir el número de personas que necesitan ser miembros de Domain Admins, disminuyendo aún más los riesgos de seguridad. Además, la solución elimina o minimiza los artefactos que a menudo se utilizan para vulnerar cuentas.
Compartir en
Aprende más
Acerca del autor
Kevin Joyce
Director de Product Management
Director de Product Management en Netwrix. Kevin tiene una pasión por la ciberseguridad, específicamente en comprender las tácticas y técnicas que los atacantes utilizan para explotar los entornos de las organizaciones. Con ocho años de experiencia en product management, enfocándose en Active Directory y la seguridad de Windows, ha llevado esa pasión a ayudar a construir soluciones para que las organizaciones protejan sus identidades, infraestructura y datos.
Aprende más sobre este tema
Gestión de configuración para el control seguro de Endpoint
Leyes de Privacidad de Datos por Estado: Diferentes Enfoques para la Protección de la Privacidad
Ejemplo de Análisis de Riesgos: Cómo Evaluar los Riesgos
El Triángulo de la CIA y su Aplicación en el Mundo Real
¿Qué es la gestión de registros electrónicos?