Azure Active Directory PowerShell Sign-in

Identifies a sign-in using the Azure Active Directory PowerShell module. PowerShell for Azure Active Directory allows for managing settings from the command line, which is intended for users who are members of an admin role.

Elastic rule (View on GitHub)

  1[metadata]
  2creation_date = "2020/12/14"
  3integration = ["azure"]
  4maturity = "production"
  5min_stack_comments = "New fields added: required_fields, related_integrations, setup"
  6min_stack_version = "8.3.0"
  7updated_date = "2023/06/22"
  8
  9[rule]
 10author = ["Elastic"]
 11description = """
 12Identifies a sign-in using the Azure Active Directory PowerShell module. PowerShell for Azure Active Directory allows
 13for managing settings from the command line, which is intended for users who are members of an admin role.
 14"""
 15false_positives = [
 16    """
 17    Sign-ins using PowerShell may be done by a system or network administrator. Verify whether the username, hostname,
 18    and/or resource name should be signing into your environment. Sign-ins from unfamiliar users or hosts should be
 19    investigated. If known behavior is causing false positives, it can be exempted from the rule.
 20    """,
 21]
 22from = "now-25m"
 23index = ["filebeat-*", "logs-azure*"]
 24language = "kuery"
 25license = "Elastic License v2"
 26name = "Azure Active Directory PowerShell Sign-in"
 27note = """## Triage and analysis
 28
 29### Investigating Azure Active Directory PowerShell Sign-in
 30
 31Azure Active Directory PowerShell for Graph (Azure AD PowerShell) is a module IT professionals commonly use to manage their Azure Active Directory. The cmdlets in the Azure AD PowerShell module enable you to retrieve data from the directory, create new objects in the directory, update existing objects, remove objects, as well as configure the directory and its features.
 32
 33This rule identifies sign-ins that use the Azure Active Directory PowerShell module, which can indicate unauthorized access if done outside of IT or engineering.
 34
 35#### Possible investigation steps
 36
 37- Identify the user account that performed the action and whether it should perform this kind of action.
 38- Evaluate whether the user needs to access Azure AD using PowerShell to complete its tasks.
 39- Investigate other alerts associated with the user account during the past 48 hours.
 40- Consider the source IP address and geolocation for the involved user account. Do they look normal?
 41- Contact the account owner and confirm whether they are aware of this activity.
 42- Investigate suspicious actions taken by the user using the module, for example, modifications in security settings that weakens the security policy, persistence-related tasks, and data access.
 43- If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services, and data accessed by the account in the last 24 hours.
 44
 45### False positive analysis
 46
 47- If this activity is expected and noisy in your environment, consider adding IT, Engineering, and other authorized users as exceptions — preferably with a combination of user and device conditions.
 48
 49### Response and remediation
 50
 51- Initiate the incident response process based on the outcome of the triage.
 52- Disable or limit the account during the investigation and response.
 53- Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:
 54    - Identify the account role in the cloud environment.
 55    - Assess the criticality of affected services and servers.
 56    - Work with your IT team to identify and minimize the impact on users.
 57    - Identify if the attacker is moving laterally and compromising other accounts, servers, or services.
 58    - Identify any regulatory or legal ramifications related to this activity.
 59- Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are identified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with your IT teams to minimize the impact on business operations during these actions.
 60- Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.
 61- Consider enabling multi-factor authentication for users.
 62- Follow security best practices [outlined](https://docs.microsoft.com/en-us/azure/security/fundamentals/identity-management-best-practices) by Microsoft.
 63- Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.
 64- Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the mean time to respond (MTTR).
 65
 66## Setup
 67
 68The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule."""
 69references = [
 70    "https://msrc-blog.microsoft.com/2020/12/13/customer-guidance-on-recent-nation-state-cyber-attacks/",
 71    "https://docs.microsoft.com/en-us/microsoft-365/enterprise/connect-to-microsoft-365-powershell?view=o365-worldwide",
 72]
 73risk_score = 21
 74rule_id = "a605c51a-73ad-406d-bf3a-f24cc41d5c97"
 75severity = "low"
 76tags = [
 77    "Domain: Cloud",
 78    "Data Source: Azure",
 79    "Use Case: Identity and Access Audit",
 80    "Resources: Investigation Guide",
 81    "Tactic: Initial Access"
 82]
 83timestamp_override = "event.ingested"
 84type = "query"
 85
 86query = '''
 87event.dataset:azure.signinlogs and
 88  azure.signinlogs.properties.app_display_name:"Azure Active Directory PowerShell" and
 89  azure.signinlogs.properties.token_issuer_type:AzureAD and event.outcome:(success or Success)
 90'''
 91
 92
 93[[rule.threat]]
 94framework = "MITRE ATT&CK"
 95[[rule.threat.technique]]
 96id = "T1078"
 97name = "Valid Accounts"
 98reference = "https://attack.mitre.org/techniques/T1078/"
 99[[rule.threat.technique.subtechnique]]
100id = "T1078.004"
101name = "Cloud Accounts"
102reference = "https://attack.mitre.org/techniques/T1078/004/"
103
104
105
106[rule.threat.tactic]
107id = "TA0001"
108name = "Initial Access"
109reference = "https://attack.mitre.org/tactics/TA0001/"

Triage and analysis

Investigating Azure Active Directory PowerShell Sign-in

Azure Active Directory PowerShell for Graph (Azure AD PowerShell) is a module IT professionals commonly use to manage their Azure Active Directory. The cmdlets in the Azure AD PowerShell module enable you to retrieve data from the directory, create new objects in the directory, update existing objects, remove objects, as well as configure the directory and its features.

This rule identifies sign-ins that use the Azure Active Directory PowerShell module, which can indicate unauthorized access if done outside of IT or engineering.

Possible investigation steps

  • Identify the user account that performed the action and whether it should perform this kind of action.
  • Evaluate whether the user needs to access Azure AD using PowerShell to complete its tasks.
  • Investigate other alerts associated with the user account during the past 48 hours.
  • Consider the source IP address and geolocation for the involved user account. Do they look normal?
  • Contact the account owner and confirm whether they are aware of this activity.
  • Investigate suspicious actions taken by the user using the module, for example, modifications in security settings that weakens the security policy, persistence-related tasks, and data access.
  • If you suspect the account has been compromised, scope potentially compromised assets by tracking servers, services, and data accessed by the account in the last 24 hours.

False positive analysis

  • If this activity is expected and noisy in your environment, consider adding IT, Engineering, and other authorized users as exceptions — preferably with a combination of user and device conditions.

Response and remediation

  • Initiate the incident response process based on the outcome of the triage.
  • Disable or limit the account during the investigation and response.
  • Identify the possible impact of the incident and prioritize accordingly; the following actions can help you gain context:
    • Identify the account role in the cloud environment.
    • Assess the criticality of affected services and servers.
    • Work with your IT team to identify and minimize the impact on users.
    • Identify if the attacker is moving laterally and compromising other accounts, servers, or services.
    • Identify any regulatory or legal ramifications related to this activity.
  • Investigate credential exposure on systems compromised or used by the attacker to ensure all compromised accounts are identified. Reset passwords or delete API keys as needed to revoke the attacker's access to the environment. Work with your IT teams to minimize the impact on business operations during these actions.
  • Check if unauthorized new users were created, remove unauthorized new accounts, and request password resets for other IAM users.
  • Consider enabling multi-factor authentication for users.
  • Follow security best practices outlined by Microsoft.
  • Determine the initial vector abused by the attacker and take action to prevent reinfection via the same vector.
  • Using the incident response data, update logging and audit policies to improve the mean time to detect (MTTD) and the mean time to respond (MTTR).

Setup

The Azure Fleet integration, Filebeat module, or similarly structured data is required to be compatible with this rule.

References

Related rules

to-top