Duo Admin MFA Restrictions Updated


Description

Detects changes to allowed MFA factors administrators can use to log into the admin panel.

Query · python

from panther_duo_helpers import duo_alert_context


def rule(event):
    return event.get("action") == "update_admin_factor_restrictions"


def title(event):
    return "Duo Admin MFA Restrictions Updated " f"by [{event.get('username','<user_not_found>')}]"


def alert_context(event):
    return duo_alert_context(event)
Raw source Duo Admin MFA Restrictions Updated · Panther Python
Esc
Published by panther-labs/panther-analysis ↗, licensed under Apache 2.0 ↗. Reproduced here unmodified.
AnalysisType: rule
Description: Detects changes to allowed MFA factors administrators can use to log into the admin panel.
DisplayName: "Duo Admin MFA Restrictions Updated"
Enabled: true
Filename: duo_admin_mfa_restrictions_updated.py
Reference: https://duo.com/docs/essentials-overview
Severity: Medium
Tests:
  - ExpectedResult: true
    Log:
      action: update_admin_factor_restrictions
      description: '{"allowed_factors": "Duo mobile passcodes, Hardware tokens, Duo push, Yubikey aes"}'
      isotimestamp: "2022-02-21 21:48:06"
      timestamp: "2022-02-21 21:48:06"
      username: Homer Simpson
    Name: Admin MFA Update Event
  - ExpectedResult: false
    Log:
      action: admin_login
      description: '{"ip_address": "1.2.3.4", "device": "123-456-789", "factor": "sms", "saml_idp": "OneLogin", "primary_auth_method": "Single Sign-On"}'
      isotimestamp: "2021-06-30 19:45:37"
      timestamp: "2021-06-30 19:45:37"
      username: Homer Simpson
    Name: Login Event
DedupPeriodMinutes: 60
LogTypes:
  - Duo.Administrator
RuleID: "Duo.Admin.MFA.Restrictions.Updated"
Threshold: 1


# ------ paired body: duo_admin_mfa_restrictions_updated.py ------

from panther_duo_helpers import duo_alert_context


def rule(event):
    return event.get("action") == "update_admin_factor_restrictions"


def title(event):
    return "Duo Admin MFA Restrictions Updated " f"by [{event.get('username','<user_not_found>')}]"


def alert_context(event):
    return duo_alert_context(event)

Detection rules belong to the projects that publish them and remain under their own licenses. This site indexes and links to them; it claims no rights in them.