Pipeline: 2.2.6 Ensure Multi-factor Authentication is Required for Risky Sign-ins
Description
Entra ID tracks the behavior of sign-in events. If the Entra ID domain is licensed with P2, the sign-in behavior can be used as a detection mechanism for additional scrutiny during the sign-in event. If this policy is set up, then Risky Sign-in events will prompt users to use multi-factor authentication (MFA) tokens on login for additional verification.
Enabling multi-factor authentication is a recommended setting to limit the potential of accounts being compromised and limiting access to authenticated personnel. Enabling this policy allows Entra ID's risk-detection mechanisms to force additional scrutiny on the login event, providing a deterrent response to potentially malicious sign-in events, and adding an additional authentication layer as a reaction to potentially malicious behavior.
Remediation
From Azure Portal
- From Azure Home select the Portal Menu in the top left and select
Microsoft Entra ID. - Select
Security. - Select
Conditional Access. - Select
Policies. - Click
+ New policy. - Enter a name for the policy.
- Click the blue text under
Users. - Under
Include, selectAll users. - Under
Exclude, checkUsers and groups. - Select users this policy should not apply to and click
Select. - Click the blue text under
Target resources. - Select
All cloud apps. - Click the blue text under
Conditions. - Select
Sign-in risk. - Update the
Configuretoggle toYes. - Check the sign-in risk level this policy should apply to, e.g.
HighandMedium. - Select
Done. - Click the blue text under
Grantand checkRequire multifactor authenticationthen click theSelectbutton. - Click the blue text under
Sessionthen checkSign-in frequencyand selectEvery timeand click theSelectbutton. - Set
Enable policytoReport-only. - Click
Create.
After testing the policy in report-only mode, update the Enable policy setting from Report-only to On.
Default Value
MFA is not enabled by default.
Run the pipeline
To run this pipeline from your terminal:
flowpipe pipeline run azure_cis.pipeline.cis_v300_2_2_6Use this pipeline
To call this pipeline from your pipeline, use a step:
step "pipeline" "step_name" { pipeline = azure_cis.pipeline.cis_v300_2_2_6 }Params
| Name | Type | Required | Description | Default |
|---|---|---|---|---|
| database | connection.steampipe | Yes | Database connection string. | connection.steampipe.default |
| notifier | notifier | Yes | The name of the notifier to use for sending notification messages. | notifier.default |
| notification_level | string | Yes | The verbosity level of notification messages to send. Valid options are 'verbose', 'info', 'error'. | info |
| approvers | list(notifier) | Yes | List of notifiers to be used for obtaining action/approval decisions. | notifier.default |
Outputs
This pipeline has no outputs.