diff --git a/detections/cloud/azure_ad_multi_factor_authentication_disabled.yml b/detections/cloud/azure_ad_multi_factor_authentication_disabled.yml new file mode 100644 index 0000000000..21b7bab24b --- /dev/null +++ b/detections/cloud/azure_ad_multi_factor_authentication_disabled.yml @@ -0,0 +1,70 @@ +name: Azure AD Multi-Factor Authentication Disabled +id: 482dd42a-acfa-486b-a0bb-d6fcda27318e +version: 1 +date: '2022-08-10' +author: Mauricio Velazco, Splunk +type: TTP +datamodel: [] +description: The following analytic identifies an attempt to disable multi-factor authentication for an Azure AD user. An adversary who has obtained access to an Azure AD tenant + may disable multi-factor authentication as a way to plant a backdoor and maintain persistence using a valid account. + This way the attackers can keep persistance in the environment without adding new users. +search: '`azuread` "body.operationName"="Disable Strong Authentication" + | rename body.properties.* as * + | rename targetResources{}.userPrincipalName as userPrincipalName + | rename targetResources{}.type as type + | rename initiatedBy.user.userPrincipalName as initiatedBy + | stats values(userPrincipalName) by _time, type, body.operationName, initiatedBy, result + | `azure_ad_multi_factor_authentication_disabled_filter`' +how_to_implement: You must install the latest version of Splunk Add-on for Microsoft Cloud Services from Splunkbase(https://splunkbase.splunk.com/app/3110/#/details). You must be ingesting Azure Active Directory events into your Splunk environment. + Specifically, this analytic leverages the AuditLogs log category. +known_false_positives: Legitimate use case may require for users to disable MFA. Filter as needed. +references: +- https://docs.microsoft.com/en-us/azure/active-directory/authentication/concept-mfa-howitworks +- https://docs.microsoft.com/en-us/azure/active-directory/authentication/howto-mfa-userstates +- https://attack.mitre.org/tactics/TA0005/ +- https://attack.mitre.org/techniques/T1556/ +tags: + analytic_story: + - Azure Active Directory Account Takeover + asset_type: Azure Active Directory + cis20: + - CIS 3 + - CIS 5 + - CIS 16 + confidence: 90 + context: + - Source:Cloud Data + - Stage:Persistence + - Stage:Defense Evasion + dataset: + - https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1556/azuread/azure-audit.log + impact: 50 + kill_chain_phases: + - Installation + - Actions on Objectives + message: MFA disabled for User $userPrincipalName$ initiated by $initiatedBy$ + mitre_attack_id: + - T1556 + nist: + - DE.CM + observable: + - name: userPrincipalName + type: User + role: + - Victim + - name: initiatedBy + type: User + role: + - Attacker + product: + - Splunk Enterprise + - Splunk Enterprise Security + - Splunk Cloud + required_fields: + - _time + - body.properties.targetResources{}.userPrincipalName + - body.properties.targetResources{}.type + - body.properties.initiatedBy.user.userPrincipalName + - body.properties.result + risk_score: 45 + security_domain: identity diff --git a/tests/cloud/azure_ad_multi_factor_authentication_disabled.test.yml b/tests/cloud/azure_ad_multi_factor_authentication_disabled.test.yml new file mode 100644 index 0000000000..f0ab83e5fb --- /dev/null +++ b/tests/cloud/azure_ad_multi_factor_authentication_disabled.test.yml @@ -0,0 +1,13 @@ +name: Azure AD Multi-Factor Authentication Disabled Unit Test +tests: +- name: Azure AD Multi-Factor Authentication Disabled + file: cloud/azure_ad_multi_factor_authentication_disabled.yml + pass_condition: '| stats count | where count > 0' + earliest_time: -24h + latest_time: now + attack_data: + - file_name: azure-audit.log + data: https://media.githubusercontent.com/media/splunk/attack_data/master/datasets/attack_techniques/T1556/azuread/azure-audit.log + source: mscs:azure:eventhub + sourcetype: mscs:azure:eventhub + update_timestamp: true