A strong password policy protects Active Directory from cyber attacks
Published: Oct 09, 2024
A simple (non-complex) Active Directory password (AD) is vulnerable to hacking and exploitation. Requiring complex passwords in your Active Directory password policy increases the effectiveness of passwords exponentially – each additional special character you require in your users’ passwords makes them ultimately impervious to brute-force attacks.
Going back to the 2000s, Excel’s simple workbook-protected passwords could be brute-forced in the time it takes to click ‘Go’. Even today, hackers with standard equipment can brute force a complex, 7-character password in 7 seconds. But, how about adding 4 characters to it…3 years! A 15-character complex password – 77 million years! Please read this carefully and dutifully to protect your organization’s assets.
When you install the first domain controller (DC) in a domain (not necessarily in a forest), a ‘Default Domain Policy‘ Group Policy Object (GPO) is created. Within this policy lies the default domain password policy for ‘all’ accounts in that domain (there are some minor exceptions). This constitutes the password requirements for your users.
Here are the six settings and what their default attributes are. I’ll explain each setting later on in this article.
If you’re thinking ‘Why do I only get to assign one password policy for all my users in the ‘Default Domain Policy’ object?’, don’t worry – you can use what are called Fine-Grained Password Policies (FGPP).
Prior (legacy) versions of AD only allowed one password policy per domain. If you wanted any granularity, you needed to create a child domain and store your users and password policy there. But in 2008, Microsoft introduced Fine-Grained Password Policies (FGPP) with Windows Server 2008. This allows admins to offer multiple password policies (and account lockout policies) to varying users.
You may want to have a special, more strict password policy for all of your admin or privileged accounts.
There are a few ways to check your password policy in Active Directory. Let me show you the quickest, simplest way – you guessed it…PowerShell!
Type this single cmdlet from your PowerShell window or Terminal app
Get-AdDefaultDomainPasswordPolicy
I included the default settings above and you can see very similar results here. I will go into more detail soon.
As I mentioned, the ‘Default Domain Policy‘ GPO stores many settings including these password policy attributes.
Look familiar? It should – here are the settings we’ve already been introduced to.
This setting defines how many old passwords are stored and remembered for each user. When they’ve reset their password this number of times, they won’t be able to reuse any of them at their next password reset session. Simple change the number of passwords remembered in the policy setting.
This setting dictates how long a password can be used until it needs to be reset. Although the default is 42 days, recent recommendations have changed. For example, NIST recommends avoiding regular password resets and instead employing complex and longer passwords (15 characters or more). In addition, user-proposed passwords should be checked against banned password lists. I’ll explain those further below.
This setting tells you how long a password needs to be in effect until it can be reset again. If this is set to 3 days, after a user resets their password, they won’t be able to reset it again until 3 days have passed.
This sets the minimum number of letters and numbers the password will be. The default of ‘7’ should rarely if ever be used. Double this at least. Plus, encourage your users to use passphrases when creating their passwords. Instead of a random 15 or 20-character password made up of numbers, letters, and special symbols, use a password like ‘myfavoritevacationwasmteverest’. Even though I am only using lowercase letters, this is a much more robust password that would take CENTURIES to be brute-forced.
This is a simple toggle – Enable this to require a strong password (using 3 of the 4 character type categories: lowercase letters, uppercase letters, numbers, non-alphanumeric – special characters), or Disable this (please don’t) to allow simple passwords. Simple passwords are very susceptible to brute force attacks by hackers.
This security setting determines whether the operating system stores passwords using reversible encryption. The default is Disabled. Only special use cases would require this functionality.
A Fine-Grained Password Policy (FGPP) is a specific password policy designed to accommodate varying types of users with varying complexities. As I mentioned above, you can manage these in the Active Directory Administrative Center under the System -> Password Settings Container area.
You can also use PowerShell, of course.
Use ‘New-ADFineGrainedPasswordPolicy‘ to create a new policy and ‘Get-ADFineGrainedPasswordPolicy‘ to view existing policies. Then use ‘Add-ADFineGrainedPasswordPolicySubject‘ to ‘assign’ the policies to specific Users and/or Groups in your domain.
There are many reasons to make sure you’ve set your organization’s password policies to be secure and robust. Other compliance protocols and initiatives may also contribute to spending more time on this subject. Let me provide you with a good list of recommended practices for setting up these policies.
Another best practice I highly recommend is downloading Microsoft’s latest security baselines from the Microsoft Security Compliance Toolkit website. Browse the website for additional information.
To download the kit for specific versions of Windows client and server, navigate to the Microsoft Download Center, choose Download, and choose your specific version. This includes the latest guidance on best practices for establishing password policies and FGPP in your organization.
Implementing strong password policies in AD provides a fundamental ‘ground floor’ for security models in your enterprise. Here are some of the top reasons and benefits of incorporating strong password policies in Active Directory.
Let me recap the various tools you can use to validate and manage your Active Directory password policies.
Navigate to Computer Configuration -> Policies -> Windows Settings -> Security Settings -> Account Policies -> Password Policy to view and edit each password policy in your domain.
Use ‘Get-ADDefaultDomainPasswordPolicy’ to view the current password policy in your default domain policy.
You can also use ‘Get-ADFineGrainedPasswordPolicy’ to examine your current FGPPs.
Use this tool to browse to your domain, then System, then Password Settings Container to view and manage your Fine-Grained Password Policies (FGPP).
On any domain-joined computer, you can run ‘secpol.msc’ to use the Local Security Editor and browse to Account Policies -> Password Policy.
There are also a variety of methods to monitor and audit related events surrounding password policies.
You can enable auditing for account management activities.
Monitor Event IDs 4723 and 4724 for any password changes in the Security logs in Event Viewer.
You should also set up notifications for specific events, maybe during certain times of the day or week, to remain vigilant on critical changes to passwords.
There are a wide variety of third-party software tools and solutions that enable you to focus more on your business and let them take care of your important password policies.
Examples include CrowdStrike, SolarWinds, Netwrix, ManageEngine, and Lepide.