Cross-source coverage

T1098.001 / ATT&CK

Account Manipulation: Additional Cloud Credentials

55 rules across 7 sources.

From MITRE ATT&CK 19.2

Adversaries may add adversary-controlled credentials to a cloud account to maintain persistent access to victim accounts and instances within the environment.

For example, adversaries may add credentials for Service Principals and Applications in addition to existing legitimate credentials in Azure / Entra ID. These credentials include both x509 keys and passwords. With sufficient permissions, there are a variety of ways to add credentials including the Azure Portal, Azure command line interface, and Azure or Az PowerShell modules.

In infrastructure-as-a-service (IaaS) environments, after gaining access through Cloud Accounts, adversaries may generate or import their own SSH keys using either the CreateKeyPair or ImportKeyPair API in AWS or the gcloud compute os-login ssh-keys add command in GCP. This allows persistent access to instances within the cloud environment without further usage of the compromised cloud accounts.

Adversaries may also use the CreateAccessKey API in AWS or the gcloud iam service-accounts keys create command in GCP to add access keys to an account. Alternatively, they may use the CreateLoginProfile API in AWS to add a password that can be used to log into the AWS Management Console for Cloud Service Dashboard. If the target account has different permissions from the requesting account, the adversary may also be able to escalate their privileges in the environment (i.e. Cloud Accounts). For example, in Entra ID environments, an adversary with the Application Administrator role can add a new set of credentials to their application's service principal. In doing so the adversary would be able to access the service principal’s roles and permissions, which may be different from those of the Application Administrator.

In AWS environments, adversaries with the appropriate permissions may also use the sts:GetFederationToken API call to create a temporary set of credentials to Forge Web Credentials tied to the permissions of the original user account. These temporary credentials may remain valid for the duration of their lifetime even if the original account’s API credentials are deactivated.

In Entra ID environments with the app password feature enabled, adversaries may be able to add an app password to a user account. As app passwords are intended to be used with legacy devices that do not support multi-factor authentication (MFA), adding an app password can allow an adversary to bypass MFA requirements. Additionally, app passwords may remain valid even if the user’s primary password is reset.

Platforms
IaaS · Identity Provider · SaaS
Telemetry
azure:auditAWS:CloudTrailgcp:auditm365:unified

How MITRE says to detect it DET0531

Detection Strategy for Additional Cloud Credentials in IaaS/IdP/SaaS

Identity Provider Analytic 1469

Addition of credentials (keys, app passwords, x.509 certs) to existing cloud accounts, service principals, or OAuth apps via portal or API by non-standard identities or IP ranges.

  • azure:audit Add service principal credentials, app password added, app role assignment

IaaS Analytic 1470

Cloud API usage to create/import SSH keys or generate new access keys (CreateAccessKey, ImportKeyPair, CreateLoginProfile) from non-console access or unusual principals.

  • AWS:CloudTrail CreateAccessKey, ImportKeyPair, CreateLoginProfile, CreateKeyPair
  • gcp:audit iam.serviceAccounts.keys.create, os-login.sshPublicKeys.add

SaaS Analytic 1471

Credential-related configuration changes in productivity apps, such as API key creation in Google Workspace, app tokens in Slack, or user-level OAuth credentials in M365.

  • gcp:audit API Key Created, OAuth Client Registered
  • m365:unified Set-Mailbox, Set-AppPassword, Add-MailboxPermission

elastic/detection-rules

21 rules
Detection Severity Format
Application Added to Google Workspace Domain High Elastic TOML
AWS First Occurrence of STS GetFederationToken Request by User High Elastic TOML
AWS IAM Credentials Added to a Bedrock API Key Phantom User High Elastic TOML
AWS IAM Login Profile Added for Root High Elastic TOML
AWS IAM SAML Provider Created High Elastic TOML
AWS IAM User Created Access Keys For Another User High Elastic TOML
AWS Sensitive IAM Operations Performed via CloudShell High Elastic TOML
Entra ID Domain Federation Configuration Change High Elastic TOML
Entra ID Federated Identity Credential Issuer Modified High Elastic TOML
Entra ID Service Principal Federated Credential Authentication by Unusual Client High Elastic TOML

+ 11 more from elastic/detection-rules → showing the 10 highest-severity

panther-labs/panther-analysis

12 rules
Detection Severity Format
AWS User Takeover Via Password Reset High Panther Python
Anthropic Admin API Key Created Medium Panther Python
Anthropic Admin API Key Deleted Medium Panther Python
Anthropic Service Key Created Medium Panther Python
Anthropic Service Key Revoked Medium Panther Python
A Teleport Role was modified or created Medium Panther Python
AWS Privilege Escalation Via User Compromise Medium Panther Python
Azure Service Principal Credentials Added Medium Panther Python
Crowdstrike API Key Created Medium Panther Python
Crowdstrike User Password Changed Medium Panther Python

+ 2 more from panther-labs/panther-analysis → showing the 10 highest-severity

Azure/Azure-Sentinel

7 rules
Detection Severity Format
Federated identity credential added to Entra ID service principal Undefined KQL
Guest account initiating privileged Entra ID operation Undefined KQL
New owner added to Entra ID service principal Undefined KQL
Service principal credential added by user granted privileged role in last 24 hours Undefined KQL
Service principal credential addition by non-historical actor Undefined KQL
Service principal credential addition followed by immediate sign-in Undefined KQL
Service principal or application credential addition by a rarely observed actor Undefined KQL

chronicle/detection-rules

6 rules
Detection Severity Format
github_personal_access_token_created_from_tor_ip_address High YARA-L
github_repository_deploy_key_created_or_modified High YARA-L
entra_id_secret_added_to_app Medium YARA-L
google_cloud_service_account_key_created_or_uploaded Medium YARA-L
o365_ADPowerShell_app_login_subsequent_activity Medium YARA-L
o365_entra_id_client_secret_add_update_delete_in_app Medium YARA-L

Wazuh Core Ruleset

4 rules
Detection Severity Format
Possible IAM Role backdooring: IAM role granted from an external account. High Wazuh XML
Office 365: Added user Medium Wazuh XML
GCP identity and access management (IAM) custom role created. Low Wazuh XML
GCP new key is created for a service account. Low Wazuh XML

SigmaHQ/sigma

3 rules
Detection Severity Format
Added Credentials to Existing Application High Sigma
Github Outside Collaborator Detected Medium Sigma
Okta Identity Provider Created Medium Sigma

splunk/security_content

2 rules
Detection Severity Format
Azure AD Service Principal New Client Credentials Undefined SPL
O365 Service Principal New Client Credentials Undefined SPL

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.