Control: 1.1.5 Ensure that password protection is enabled for Active Directory
Description
Enable Azure Active Directory Password Protection to Active Directory to protect against the use of common passwords.
Note: This recommendation applies to Hybrid deployments only, and will have no impact unless working with on-premises Active Directory.
Azure Active Directory protects an organization by prohibiting the use of weak or leaked passwords. In addition, organizations can create custom banned password lists to prevent their users from using easily guessed passwords that are specific to their industry. Deploying this feature to Active Directory will strengthen the passwords that are used in the environment.
Remediation
To setup Azure Active Directory Password Protection, use the following steps:
- Download and install the
Azure AD Password ProxiesandDC Agentsfrom the following location: https://www.microsoft.com/download/details.aspx?id=57071. - After the installation is complete, login to
https://admin.microsoft.comas aGlobal Administrator. - Go to
Admin centersand click onAzure Active Directory. - Select
Azure Active DirectorythenSecurityon the left side navigation followed byAuthentication methods. - Select
Password protectionand toggleEnable password protection on Windows Server Active DirectorytoYesandModetoEnforced. - Click Save at the top of the right pane.
Default Value: Enabled / Enforced.
Usage
Run the control in your terminal:
powerpipe control run microsoft365_compliance.control.cis_v150_1_1_5Snapshot and share results via Turbot Pipes:
powerpipe loginpowerpipe control run microsoft365_compliance.control.cis_v150_1_1_5 --shareSQL
This control uses a named query:
with enable_banned_password_check_on_premises_settings as ( select tenant_id, id from azuread_directory_setting where display_name = 'Password Rule Settings' and (name = 'EnableBannedPasswordCheckOnPremises' and value = 'True')), banned_password_check_on_premise_mode_settings as ( select tenant_id, id from azuread_directory_setting where display_name = 'Password Rule Settings' and (name = 'BannedPasswordCheckOnPremisesMode' and value = 'Enforce')),tenant_list as ( select distinct on (tenant_id) tenant_id, _ctx from azuread_user)select t.tenant_id as resource, case when (e.tenant_id is not null) and (b.tenant_id is not null) then 'ok' else 'alarm' end as status, case when (e.tenant_id is not null) and (b.tenant_id is not null) then t.tenant_id || ' has password protection enabled.' else t.tenant_id || ' has password protection disabled.' end as reason , t.tenant_id as tenant_idfrom tenant_list as t left join enable_banned_password_check_on_premises_settings as e on e.tenant_id = t.tenant_id left join banned_password_check_on_premise_mode_settings as b on b.tenant_id = t.tenant_id;