Overview
Multi-factor authentication (MFA) is an important tool in protecting corporate resources. MFA, also called 2-step verification (2SV), requires users to verify their identity through something they know (such as a password) plus something they have (such as a physical key or access code).
Remediation guidance
Make sure these users have MFA activated. Depending on the provider and the service you use, check out the following resources:
AWS
Perform the following to enable MFA:
- Sign in to the AWS Management Console and open the IAM console at https://console.aws.amazon.com/iam/.
- In the navigation pane, choose Users.
- In the User Name list, choose the name of the intended MFA user.
- Choose the Security Credentials tab, and then choose Manage MFA Device.
- In the Manage MFA Device wizard, choose A virtual MFA device, and then choose Next Step.
IAM generates and displays configuration information for the virtual MFA device, including a QR code graphic. The graphic is a representation of the 'secret configuration key' that is available for manual entry on devices that do not support QR codes.
- Open your virtual MFA application. (For a list of apps that you can use for hosting virtual MFA devices, see Virtual MFA Applications.) If the virtual MFA application supports multiple accounts (multiple virtual MFA devices), choose the option to create a new account (a new virtual MFA device).
- Determine whether the MFA app supports QR codes, and then do one of the following:
- Use the app to scan the QR code. For example, you might choose the camera icon or choose an option similar to Scan code, and then use the device's camera to scan the code.
- In the Manage MFA Device wizard, choose Show secret key for manual configuration, and then type the secret configuration key into your MFA application.
When you are finished, the virtual MFA device starts generating one-time passwords. 8. In the Manage MFA Device wizard, in the Authentication Code 1 box, type the one-time password that currently appears in the virtual MFA device. Wait up to 30 seconds for the device to generate a new one-time password. Then type the second one-time password into the Authentication Code 2 box. Choose Active Virtual MFA.
Forced IAM User Self-Service Remediation
Amazon has published a pattern that forces users to self-service setup MFA before they have access to their complete permissions set. Until they complete this step, they cannot access their full permissions. This pattern can be used on new AWS accounts. It can also be used on existing accounts - it is recommended users are given instructions and a grace period to accomplish MFA enrollment before active enforcement on existing AWS accounts.
How to Delegate Management of Multi-Factor Authentication to AWS IAM Users
References:
- http://tools.ietf.org/html/rfc6238
- https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_mfa.html
- CCE-78901-6
- CIS CSC v6.0 #5.6, #11.4, #12.6, #16.11
Azure
Follow Microsoft Azure documentation and enable multi-factor authentication in your environment.
Enabling and configuring MFA is a multi-step process. Here are some additional resources on the process within Microsoft Entra ID:
- Common Conditional Access policy: Require MFA for administrators
- Plan a Microsoft Entra multifactor authentication deployment
- Configure Microsoft Entra multifactor authentication settings
Google Cloud
MFA, or 2-step verification (2SV) as presented by Google, can only be enabled by each user individually. You and your users play important roles in setting up 2-Step Verification (2SV). Your users can choose their 2SV method, or you can enforce a method for certain users or groups in your organization. For example, you can require a small team in Sales to use security keys.
Step 1: Notify users of 2-Step Verification deployment
Before deploying 2SV, communicate your company's plans to your users, including:
- What 2SV is and why your company is using it.
- Whether 2SV is optional or required.
- If required, give the date by which users must turn on 2SV.
- Which 2SV method is required or recommended.
Step 2: Allow users to turn on 2-Step Verification
User accounts created before December 2016 have 2SV on by default.
Let users turn on 2SV and use any verification method.
- In your Admin Console, go to Security > Authentication > 2-step verification.
- To apply the setting to everyone, leave the top organizational unit selected. Otherwise, select a child organizational unit or a configuration group.
- Check the Allow users to turn on 2-Step Verification box.
- Select Enforcement > Off.
- Click Save. If you configured an organizational unit or group, you might be able to either Inherit or Override a parent organizational unit, or Unset a group.
Step 3: Enforce 2-Step Verification (Optional)
Before you begin: Make sure users are enrolled in 2SV.
- In your Admin Console, go to Security > Authentication > 2-step verification.
- For Enforcement, choose an option:
- On - Starts immediately.
- Turn on enforcement from date - Select the start date. Users see reminders to enroll in 2SV when they sign in. When using the On from date option, enforcement will start within 24-48 hours of the chosen date. If you want a precise enforcement start time, use the On option.
- (Optional) To give new employees time to enroll before enforcement applies to their accounts, for New user enrollment period, select a timeframe from 1 day to 6 months. During this period, users can sign in with just their passwords.
- (Optional) To let users avoid repeated 2SV checks on trusted devices, under Frequency, check the Allow user to trust the device box. The first time a user signs in from a new device, they can check a box to trust their device. Then the user isn't prompted for 2SV on the device unless the user clears their cookies or revokes the device or you reset the user's sign-in cookie.
References
Alibaba
Via the management console
- Login to the
RAM Console - Under
Identities, chooseUsers - In the
User Logon Name/Display Namecolumn, click the username of each RAM user - In the
Console Logon Managementsection, clickModify Logon Settings - Select
Enabled for Console Password Logon, andRequired for Enable MFA
Note: After you select Enabled for Console Password Logon, and Required for Enable MFA when modifying the logon settings of a RAM user, the user can go to step 7 when logging on to the RAM console for the first time.
- In the MFA Device section, click
Enable the device - Download and install Google Authenticator on your mobile phone
- For iOS: Install Google Authenticator from the App Store.
- For Android: Install Google Authenticator from the Google Play Store.
Note: You need to install a QR code scanner from the Google Play Store for Google Authenticator to identify QR codes.
- Open Google Authenticator and tap
BEGIN SETUP
- Tap Scan barcode and scan the QR code displayed on the
Scan the codetab in the console. - Tap
Manual entry, enter the username and key, and then tap the check mark (√) icon.
Note: You can obtain the username and key from the Retrieval manually enter information tab in the console.
- On the
Scan the codetab, enter the two consecutive security codes obtained from Google Authenticator and clickEnable.
Note: The security code is refreshed at an interval of 30 seconds. For more information, see Enable an MFA device for a RAM user.
Okta
Depending on your security requirements, you might want to enforce MFA at the organization level requiring users to authenticate using multiple factors when accessing the Okta Dashboard, at the application level requiring users to go through MFA when accessing a certain application, or both. You can read more in the Okta documentation.
Service-wide remediation
Recommended when many resources are affected: fix the platform baseline first so new resources inherit the secure setting, then remediate the existing flagged resources in batches.
AWS
Use AWS Organizations guardrails, AWS Config rules or conformance packs where they fit, approved account baselines, and IaC modules so new resources inherit the secure setting.
Google Cloud
Use organization or folder policies where available, shared project templates, logs and alerting baselines, and IaC modules so new resources inherit the secure setting.
Azure
Use management group or subscription Azure Policy assignments, remediation tasks where supported, landing-zone standards, and IaC modules so drift is prevented at scale.
Alibaba Cloud
Use Resource Directory guardrails, account baselines, and IaC modules so the secure setting is applied consistently across environments.
Microsoft Entra ID
Use tenant-wide Conditional Access, role settings, authentication policies, and identity governance baselines so the control is enforced centrally.
Operational rollout
- Fix the baseline first at the account, subscription, project, cluster, or tenant scope that owns this control.
- Remediate the currently affected resources in batches, starting with internet-exposed and production assets.
- Re-scan and track approved exceptions with an owner and expiry date.
Query logic
These are the stored checks tied to this control.
Multi-factor authentication (MFA) is enabled for all IAM users that have a console password
Connectors
Covered asset types
Expected check: eq []
iamUsers(where:{hasIAMUserCredentials:{passwordEnabled:true,mfaActive:false}}){...AssetFragment}Google Cloud IAMUsers Without MFA
Connectors
Covered asset types
Expected check: eq []
{
iamUsers(where: { NOT: { user: { isEnrolledIn2Sv: true } } }) {
...AssetFragment
}
}Entra Users Without MFA With Access to Azure
Connectors
Covered asset types
Expected check: eq []
{
users(where: { mfaActive: false, NOT: { iamRoleAssignments_SOME: null } }) {
...AssetFragment
}
}Multi-factor authentication is enabled for all RAM users that have a console password
Connectors
Covered asset types
Expected check: eq []
iamUsers(where:{hasIAMUserLoginProfile_SOME:{mfaBindRequired:false}}){...AssetFragment}Entra users without mfa
Connectors
Covered asset types
Expected check: eq []
{
users(where: { mfaActive: false }) {
...AssetFragment
}
}
Alibaba Cloud
AWS
Google Cloud
Microsoft Azure