Detection rules › Panther

Microsoft365 MFA Disabled

Severity
low
Log types
Microsoft365.Audit.AzureActiveDirectory
Reference
https://learn.microsoft.com/en-us/microsoft-365/admin/security-and-compliance/set-up-multi-factor-authentication?view=o365-worldwide
Source
github.com/panther-labs/panther-analysis

A user's MFA has been removed

MITRE ATT&CK coverage

Rule body yaml

AnalysisType: rule
Description: A user's MFA has been removed
DisplayName: "Microsoft365 MFA Disabled"
Enabled: true
Filename: microsoft365_mfa_disabled.py
Reports:
  MITRE ATT&CK:
    - TA003:T1556 # Persistence - Modify Authentication Process
    - TA005:T1556 # Defense Evansion - Modify Authentication Process
    - TA006:T1556 # Credential Access - Modify Authentication Process
Runbook: Depending on company policy, either suggest or require the user re-enable two step verification.
Reference: https://learn.microsoft.com/en-us/microsoft-365/admin/security-and-compliance/set-up-multi-factor-authentication?view=o365-worldwide
Severity: Low
Tests:
  - ExpectedResult: false
    Log:
      Actor:
        - ID: Azure MFA StrongAuthenticationService
          Type: 1
        - ID: ABC-123
          Type: 2
        - ID: ServicePrincipal_123-abc
          Type: 2
        - ID: 321-cba
          Type: 2
        - ID: ServicePrincipal
          Type: 2
      ActorContextId: 123-abc-456
      AzureActiveDirectoryEventType: 1
      CreationTime: "2022-12-12 17:28:35"
      ExtendedProperties:
        - Name: additionalDetails
          Value: '{"UserType":"Member"}'
        - Name: extendedAuditEventCategory
          Value: User
      Id: 123-abc-123
      InterSystemsId: abc-123-321
      IntraSystemId: aa-bbb-333
      ModifiedProperties:
        - Name: StrongAuthenticationMethod
          NewValue: '[{"Default": true,"MethodType": 7}]'
          OldValue: "[]"
        - Name: Included Updated Properties
          NewValue: StrongAuthenticationMethod
          OldValue: ""
        - Name: TargetId.UserType
          NewValue: Member
          OldValue: ""
      ObjectId: sample.user@yourorg.onmicrosoft.com
      Operation: Update user.
      OrganizationId: 111-222-333
      RecordType: 8
      ResultStatus: Success
      SupportTicketId: ""
      Target:
        - ID: User_111-222-bbb
          Type: 2
        - ID: 111-aa-bbb-321
          Type: 2
        - ID: User
          Type: 2
        - ID: sample.user@yourorg.onmicrosoft.com
          Type: 5
        - ID: 123abcdef
          Type: 3
      TargetContextId: aaa-bb-222
      UserId: ServicePrincipal_aa-bb-ccc
      UserKey: Not Available
      UserType: 4
      Workload: AzureActiveDirectory
    Name: MFA Add Event
  - ExpectedResult: true
    Log:
      Actor:
        - ID: Azure MFA StrongAuthenticationService
          Type: 1
        - ID: ABC-123
          Type: 2
        - ID: ServicePrincipal_123-abc
          Type: 2
        - ID: 321-cba
          Type: 2
        - ID: ServicePrincipal
          Type: 2
      ActorContextId: 123-abc-456
      AzureActiveDirectoryEventType: 1
      CreationTime: "2022-12-12 17:28:35"
      ExtendedProperties:
        - Name: additionalDetails
          Value: '{"UserType":"Member"}'
        - Name: extendedAuditEventCategory
          Value: User
      Id: 123-abc-123
      InterSystemsId: abc-123-321
      IntraSystemId: aa-bbb-333
      ModifiedProperties:
        - Name: StrongAuthenticationMethod
          NewValue: "[]"
          OldValue: '[{"Default": true,"MethodType": 7}]'
        - Name: Included Updated Properties
          NewValue: StrongAuthenticationMethod
          OldValue: ""
        - Name: TargetId.UserType
          NewValue: Member
          OldValue: ""
      ObjectId: sample.user@yourorg.onmicrosoft.com
      Operation: Update user.
      OrganizationId: 111-222-333
      RecordType: 8
      ResultStatus: Success
      SupportTicketId: ""
      Target:
        - ID: User_111-222-bbb
          Type: 2
        - ID: 111-aa-bbb-321
          Type: 2
        - ID: User
          Type: 2
        - ID: sample.user@yourorg.onmicrosoft.com
          Type: 5
        - ID: 123abcdef
          Type: 3
      TargetContextId: aaa-bb-222
      UserId: ServicePrincipal_aa-bb-ccc
      UserKey: Not Available
      UserType: 4
      Workload: AzureActiveDirectory
    Name: MFA Remove event
DedupPeriodMinutes: 60
LogTypes:
  - Microsoft365.Audit.AzureActiveDirectory
RuleID: "Microsoft365.MFA.Disabled"
Threshold: 1

Detection logic

Condition

Operation eq "Update user."

This rule also runs imperative logic the parser cannot express as a filter; the conditions above are the structured part it could extract.

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
Operationeq
  • Update user.

Output fields

Fields the rule emits when it matches. Chronicle authors list these in the outcome block; they appear on the detection and $risk_score drives alerting. Sentinel / Defender XDR rules build them up through project / summarize / extend stages. Sentinel maps these into alert fields via entityMappings and customDetails; Defender XDR custom detections surface them as alert fields directly.

FieldSource
operationOperation
organization_idOrganizationId
client_ipClientIp
extended_propertiesExtendedProperties
modified_propertiesModifiedProperties
applicationApplication
actorActor
ObjectId