Select any two versions of this STIG to compare the individual requirements
Select any old version/release of this STIG to view the previous requirements
To verify the inactivity timeout is configured for 15 minutes or less, follow the steps outlined below: 1. Sign in to entra.microsoft.com (or .us for a GCCH or DOD tenant). 2. Navigate to Settings >> Domains. 3. Search for "Idle Session Timeout". If the inactivity timeout is not set to 15 minutes or less, this is a finding.
Sign into entra.microsoft.com. 1. Navigate to Admin >> Settings >> Org Settings >> Security and Privacy tab >> Idle Session Timeout. 2. Select the check box to enable "Turn on to set the period of inactivity". 3. Select custom option, then enter "15". 4. Click "Save".
Account authentication is managed by Entra ID. Use the following procedure to discover inactive user accounts in Entra ID (35+ days) via the use of the Graph PowerShell SDK. Installation instructions: https://learn.microsoft.com/en-us/powershell/microsoftgraph/installation?view=graph-powershell-1.0. Required roles: At least Global Reader Required tenant license: Entra ID Premium P1 Example PowerShell commands: Connect-MgGraph -Scopes AuditLog.Read.All,User.Read.All -Environment USGov $inactiveDate = (Get-Date).AddDays(-35) $users = Get-MgUser -All:$true -Property Id, DisplayName, UserPrincipalName, UserType, createdDateTime, SignInActivity, AccountEnabled | Where-Object { $_.AccountEnabled -eq $true } $inactiveUsers = $users | Where-Object { ($_.SignInActivity.LastSignInDateTime -lt $inactiveDate) -or ($_.SignInActivity.LastSignInDateTime -eq $null -and $_.CreatedDateTime -lt $inactiveDate) } | Select-Object DisplayName, UserPrincipalName, UserType, createdDateTime, @{Name = 'LastSignInDateTime'; Expression = {($_.SignInActivity).LastSignInDateTime}}, Id | Sort-Object LastSignInDateTime $inactiveUsers | Format-Table -AutoSize If accounts are not disabled after a 35-day period of account inactivity, this is a finding. References: https://learn.microsoft.com/en-us/powershell/module/microsoft.graph.users/get-mguser?view=graph-powershell-1.0 https://learn.microsoft.com/en-us/graph/api/user-list?view=graph-rest-1.0&tabs=http https://learn.microsoft.com/en-us/graph/api/resources/user?view=graph-rest-1.0#properties https://learn.microsoft.com/en-us/graph/api/resources/signinactivity?view=graph-rest-1.0#properties For any PowerShell scripts that are Graph, note Graph end points differ depending on where the tenant is located. - For commercial tenants, graph endpoints are graph.microsoft.com. - For GCC High tenants (IL4), graph endpoints are graph.microsoft.us. - For DOD tenants (IL5), graph endpoints are dod-graph.microsoft.us.
Sign in to the Microsoft Entra admin center as at least a Reports Reader. Browse to Identity >> Users >> All users. Select a user from the list. In the "My Feed" area of the user's Overview, locate the Sign-ins tile. Authentication is managed by Entra ID. Use the following procedure to disable inactive user accounts in Entra ID via the use of the Graph PowerShell SDK. Installation instructions: https://learn.microsoft.com/en-us/powershell/microsoftgraph/installation?view=graph-powershell-1.0 Required roles: Global Administrator Install the Microsoft Graph PowerShell SDK. Install-Module Microsoft.Graph -Scope CurrentUser Connect-MgGraph -Scopes "User.ReadWrite.All", "Directory.ReadWrite.All", "SignInActivity.Read.All" # Set the inactivity threshold (in days) $inactivityThreshold = 35 # Get the current date $currentDate = Get-Date # Get all users and their last sign-in activity $users = Get-MgUser -All -Property "DisplayName", "SignInActivity" # Filter for inactive users $inactiveUsers = $users | Where-Object { $_.SignInActivity.LastSignInDateTime -lt ($currentDate.AddDays(-$inactivityThreshold)) } # Disable inactive users foreach ($user in $inactiveUsers) { Set-MgUser -UserId $user.Id -AccountEnabled $false Write-Host "Disabled user: $($user.DisplayName)" } References: https://learn.microsoft.com/en-us/powershell/module/microsoft.graph.users/update-mguser?view=graph-powershell-1.0 https://learn.microsoft.com/en-us/graph/api/user-update?view=graph-rest-1.0&tabs=http For any PowerShell scripts that are Graph, note Graph end points differ depending on where the tenant is located. - For commercial tenants, graph endpoints are graph.microsoft.com. - For GCC High tenants (IL4), graph endpoints are graph.microsoft.us. - For DOD tenants (IL5), graph endpoints are dod-graph.microsoft.us.
Verify Entra ID is configured to enforce the limit of three consecutive invalid logon attempts by a user during a 15-minute time period. 1. Sign in to the Microsoft Entra admin center as at least an Authentication Policy Administrator. 2. Browse to Security >> Security Center >> Authentication methods >> Password protection. 3. Verify the Lockout Threshold has been set to "3" and Lockout duration is set to "900" or more. If Entra ID is not configured to enforce the limit of three consecutive invalid logon attempts with a lockout period of 15 minutes, this is a finding.
To configure account lockout settings, complete these steps: Required procedure: https://learn.microsoft.com/en-us/entra/identity/authentication/howto-password-smart-lockout 1. Sign in to the Microsoft Entra admin center as at least an Authentication Administrator. 2. Browse to Protection >> Authentication methods >> Password protection. 3. Set the Lockout threshold to "3". The default is 10 for Azure Public tenants and 3 for Azure U.S. Government tenants. 4. Set the Lockout duration in seconds, to the length in seconds of each lockout. The default is 900 seconds (15 minutes). Note: If the first sign-in after a lockout period has expired fails, the account locks out again. If an account locks repeatedly, the lockout duration increases. ================================ This can be viewed in the Entra ID audit logs. 1. Log in to the Entra ID tenant with GA permissions. 2. Scroll down to the Monitoring section and select "Audit Logs". 3. All events related to user creation, modification, etc. will be displayed.
Verify Entra ID has been configured to display the DOD logon banner when a user logs on. 1. Sign in to the Microsoft Entra admin center as a Global Administrator. 2. Browse to or search "Company Branding". 3. Browse to the "Sign-in form" tab and review the required DOD banner text in the "Sign-in page text". Note: This field is limited to 1024 characters. If the DOD logon banner text is not present in the "Sign-in page text" field, this is a finding.
To create the standard DOD banner in Entra ID, complete these steps: 1. Sign in to the Microsoft Entra admin center as a Global Administrator. 2. Browse to or search "Company Branding". 3. Select "Customize" under "Default sign-in experience". 4. Browse to the "Sign-in form" tab and place the required DOD banner text in the "Sign-in page text". Note: This field is limited to 1024 characters. 5. Click "Create".
Verify Microsoft Entra ID sign-in logs are updated in Microsoft Sentinel or equivalent SIEM. Verify the Connected Status is "green" with Last Log Received within the past hour. 1. Sign in to the Microsoft Entra admin center as a Global Administrator. 2. Browse to "Diagnostic settings". 3. Select "Edit settings" for the entry that has an established log analytics workspace. 4. Review the selected log categories. The minimum required categories are: - SigninLogs. - AuditLogs. - ServicePrincipalSignInLogs. - ManagedIdentitySignInLogs. - UserRiskEvents. - RiskyUsers. - RiskyServicePrincipals. - ServicePrincipalRiskEvents. If there is not an entry established to offload logs to a log analytic workspace and the minimum log categories are not selected, this is a finding.
Configure the Microsoft Entra to transfer Microsoft Entra server logs to another server for storage, analysis, and reporting at least every seven days. 1. Sign in to the Microsoft Entra admin center as a Global Administrator. 2. Browse to "Diagnostic settings". 3. Select "+ Add diagnostic settings". 4. Selected at least required categories: - SigninLogs. - AuditLogs. - ServicePrincipalSignInLogs. - ManagedIdentitySignInLogs. - UserRiskEvents. - RiskyUsers. - RiskyServicePrincipals. - ServicePrincipalRiskEvents. 5. Select "Send to Log Analytics workspace". For details on establishing a log analytics workspace, reference the DOD365 TCG.
Verify user accounts require MFA. 1. Sign in to the Microsoft Entra admin center as at least a Conditional Access Administrator. 2. Browse to Security Center >> Conditional Access. 3. Select "View all policies" under "Policy Snapshot" and find the MFA policy. 4. Confirm "Enable policy" is set to "On". 5. Confirm "All users" is selected under the "Include" section of the Users option of the policy. 6. Confirm any exclusions listed under the "Exclude" section of the Users option are documented with the authorizing official (AO). If the MFA policy is not set to "On" with "All users" selected and any exclusions are not documented with the AO, this is a finding.
Account authentication is managed by Entra ID. The following steps will create a Conditional Access policy to require all users to use MFA: 1. Sign in to the Microsoft Entra admin center as at least a Conditional Access Administrator. 2. In the search bar, search for "Conditional Access". 3. Select "Create new policy". 4. Give the policy a name. It is recommended that organizations create a meaningful standard for the names of policies. 5. Under "Assignments", select "Users" or "workload identities". a. Under "Include", select "All users". b. Under "Exclude", select "Users" and "groups", and then choose the organization's emergency access or break-glass accounts. 6. Navigate to Target resources >> Cloud apps >> Include. Select "All cloud apps". a. Under "Exclude", select any applications that do not require MFA. 7. Navigate to Access controls >> Grant. Select "Grant access, Require multifactor authentication", and then click "Select". 8. Confirm the settings and set "Enable policy" to "Report-only". 9. Select "Create" to enable the policy. 10. After confirming the policy, deploy the policy by either moving the "Enable" policy toggle from "Report-only" to "On" or alternately, deploying the policy using a Conditional Access template.
Verify the Entra ID password expiration time period has been changed to 60 days. Interview the site Intune and/or Entra ID system administrator and verify the script shown in the Fix has been run. If the Entra ID password expiration time period has been changed to 60 days, this is a finding. Note: It is not possible to view the current value for the password expiration time (the Entra ID default is 90). An administrator can check the maximum password age of their Entra ID tenant by using the Graph PowerShell SDK module and using the "Get-MgDomain" command by using the script located here: https://learn.microsoft.com/en-us/powershell/module/microsoft.graph.identity.directorymanagement/get-mgdomain?view=graph-powershell-1.0 Note: For any PowerShell scripts that are Graph, note Graph end points differ depending on where the tenant is located. - For commercial tenants, graph endpoints are graph.microsoft.com. - For GCC High tenants (IL4), graph endpoints are graph.microsoft.us. - For DOD tenants (IL5), graph endpoints are dod-graph.microsoft.us.
Change the default Entra ID password expiration time period to 60 days by using the Graph script located here: https://learn.microsoft.com/en-us/powershell/module/microsoft.graph.users/update-mguser Use the "Get-MgDomain" command, and update it to 60 days using the "Update-MgDomain -DomainId <DomainName> -PasswordValidityPeriodInDays 60" command. Note: For any PowerShell scripts that are Graph, note Graph end points differ depending on where the tenant is located. - For commercial tenants, graph endpoints are graph.microsoft.com. - For GCC High tenants (IL4), graph endpoints are graph.microsoft.us. - For DOD tenants (IL5), graph endpoints are dod-graph.microsoft.us.
Verify PIM is in use with email notifications going to the SA and ISSO when privileges are requested. 1. Sign in to the Microsoft Entra admin center as at least an Authentication Policy Administrator. 2. Search for "Microsoft Entra Privileged Identity Management". 3. Navigate to "Management" and select "Microsoft Entra roles". 4. Expand the "Manage" menu and select roles. 5. For each role that is either active or eligible perform the following: a. Select the role. b. Navigate to role settings. c. Under "Send notifications when eligible members activate this role:" Verify the SA and ISSO email addresses are listed under "Additional recipients" for the type "Role activation alert". If the SA and ISSO are not set up to receive email notification when privileges are requested through PIM, this is a finding.
Configure PIM to email notifications to the SA and ISSO when privileges are requested. 1. Sign in to the Microsoft Entra admin center as at least an Authentication Policy Administrator. 2. Search for "Microsoft Entra Privileged Identity Management". 3. Navigate to "Management" and select "Microsoft Entra roles". 4. Expand the "Manage" menu and select roles. 5. For each role that is either active or eligible perform the following: a. Select the role. b. Navigate to role settings. c. Select "Edit". d. Navigate to the "Notification" tab. e. Under "Send notifications when eligible members activate this role:" add the SA and ISSO email addresses under "Additional recipients". f. Select "Update".
To verify the inactivity timeout is configured for 15 minutes or less, complete the following steps: 1. Sign in to entra.microsoft.com (or .us if you are a GCCH or DOD tenant). 2. Navigate to Admin >> Settings >> Org Settings >> Security and Privacy tab >> Idle Session Timeout. 3. Select the check box to enable "Turn on to set the period of inactivity". 4. Select custom option, then verify it has been set to "15". If the inactivity timeout is not set to 15 minutes or less, this is a finding.
Sign in to Microsoft DOD tenant or entra.microsoft.com. 1. Search "Portal settings", then go to "Signing out + Notifications". 2. Set "When do you want users signed out" to 15 minutes. 3. Click "Save".
Verify Entra ID is configured to enforce the limit of three consecutive invalid logon attempts by a user during a 15-minute time period. 1. Sign in to the Microsoft Entra admin center as at least an Authentication Policy Administrator. 2. Browse to Protection >> Authentication methods >> Password protection. 3. Verify the Lockout Threshold has been set to "3" and Lockout duration is set to 900 or more. If Entra ID is not configured to enforce the limit of three consecutive invalid logon attempts with a lockout period of 15 minutes, this is a finding.
Administrator account authentication is managed by Entra ID. To configure account lockout settings, complete these steps: 1. Log on to entra.microsoft.com. 2. Sign in to the Microsoft Entra admin center as at least an Authentication Administrator. 3. Browse to Protection >> Authentication methods >> Password protection. 4. Set the Lockout threshold to "3". The default is 10 for Azure Public tenants and 3 for Azure U.S. Government tenants. 5. Set the Lockout duration in seconds, to the length in seconds of each lockout. The default is 900 seconds (15 minutes). Note: If the first sign-in after a lockout period also fails, the account locks out again. If an account locks repeatedly, the lockout duration increases. ================================ This can be viewed in the Entra ID audit logs. 1. Log into the Entra ID tenant with GA permissions. 2. Scroll down to the Monitoring section and select "Audit Logs". 3. All events related to user creation, modification, etc., will be displayed. https://learn.microsoft.com/en-us/entra/identity/authentication/howto-password-smart-lockout
Verify the site is scheduling audit log backups at least every seven days. Since, at this time, offloading Entra ID audit logs is a manual process, verify the site is periodically (at least every seven days) offloading Entra ID logs. If Microsoft Entra ID is not set to transfer server logs to another server for storage, analysis, and reporting at least every seven days, this is a finding.
To manually offload audit logs to an audit log management server, follow these instructions: 1. Log in to Microsoft Entra admin center entra.microsoft.com and search for "audit logs" and select "download". 2. Select "Groups". 3. Select "Audit Logs". 4. Select "Download". This exports a .csv file with audit data. Other methods can be used to archive the .csv files.
Verify PIM is in use with just-in-time (JIT) access and employing the principle of least privilege access. 1. Sign in to the Microsoft Entra admin center as at least an Authentication Policy Administrator. 2. Search for "Microsoft Entra Privileged Identity Management". 3. Navigate to "Management" and select "Microsoft Entra roles". 4. Expand the "Manage" menu and select "Assignments". 5. Select the "Active assignments" tab and for each privileged role, verify there are no roles with an end time of "Permanent". If any privileged roles are present with an end time of "Permanent", this is a finding.
Configure PIM to just-in-time (JIT) access and employ the principle of least privilege access. When assigning privileged roles to accounts, select the assignment type of "Eligible".