I’ve been researching the best method of securely granting local administrative permissions but I’m really struggling to reconcile the security, operational, and cost implications.
I’ve devised a few options:
- Create a domain security group (
PC Admins
), add the required domain user accounts, and use Group Policy to add the domain security group to the local security groupAdministrators
:- Pros:
- Centrally-managed.
- Auditable.
- Free.
- Cons:
- Vulnerable to credential theft and lateral movement attacks.
- Pros:
- Option #1 but using separate domain user accounts (
<original username>.admin
):- Pros: Same as #1
- Cons: Same as #1. Authenticating a UAC prompt creates a logon cache which can be exploited.
- Option #1 but disabling cached logons:
- Pros:
- Centrally-managed.
- Auditable.
- Free.
- Not as vulnerable to credential theft and lateral movement attacks in that there are no logon caches to exploit but credentials can still be captured via other means (keyloggers, etc).
- Cons:
- Users will be unable to logon if there’s a problem with the domain, there's a problem with network connectivity, their PC is offsite, etc.
- Pros:
- Deploy Microsoft LAPS and issue users with the unique, local administrator credentials:
- Pros:
- Centrally-managed.
- Not vulnerable to credential theft and lateral movement attacks.
- Free.
- Cons:
- Non-auditable.
- The default administrative user account is an easy target.
- Pros:
- Add the required domain user accounts to the local security group
Administrators
:- Pros:
- Auditable (to an extent).
- Not as vulnerable to credential theft and lateral movement attacks.
- Free.
- Cons:
- Not centrally managed.
- Pros:
- Implement MFA:
- Pros:
- Centrally-managed.
- Auditable.
- Cons:
- Not free.
- Still vulnerable to credential theft and lateral movement attacks (according to https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/implementing-least-privilege-administrative-models).
- Pros:
- Implement a system that uses TOTPs and/or only temporarily grants administrative permissions as-and-when needed:
- Pros:
- Centrally-managed.
- Auditable.
- Not vulnerable to credential theft and lateral movement attacks?
- Cons:
- Not free.
- Pros:
Is there a general best practice?
I can't help but get the feeling that there is no one correct technological answer and that these risks are mitigated by simply trying to ensure that no one can or will (1) use an administrative user acount on a day-to-day basis or (2) run malware.