T1078.004 IBM QRadar · QRadar

Detect Cloud Accounts in IBM QRadar

Valid cloud accounts may be leveraged by adversaries to achieve Initial Access, Persistence, Privilege Escalation, or Defense Evasion in cloud environments. Adversaries may obtain cloud credentials through phishing, brute force, credential theft from endpoints, or by compromising on-premises identity infrastructure federated with cloud services. Once in possession of valid credentials, adversaries can authenticate to cloud management planes (Azure, AWS, GCP), SaaS applications (Microsoft 365, Google Workspace), or identity providers (Entra ID, Okta) and operate as legitimate users. Techniques include abusing service principals, managed identities, OAuth tokens, and API keys to maintain persistence and move laterally across cloud resources.

MITRE ATT&CK

Tactic
Defense Evasion Persistence Privilege Escalation Initial Access
Technique
T1078 Valid Accounts
Sub-technique
T1078.004 Cloud Accounts
Canonical reference
https://attack.mitre.org/techniques/T1078/004/

QRadar Detection Query

IBM QRadar (QRadar)
sql
SELECT
  DATEFORMAT(starttime, 'yyyy-MM-dd HH:mm:ss') AS EventTime,
  username AS UserPrincipalName,
  sourceip AS IPAddress,
  LOGSOURCENAME(logsourceid) AS LogSource,
  "Application" AS AppDisplayName,
  "CountryOrRegion" AS Country,
  "ClientAppUsed" AS ClientApp,
  "RiskLevelDuringSignIn" AS RiskLevel,
  "AuthenticationRequirement" AS AuthRequirement,
  "ConditionalAccessStatus" AS ConditionalAccess,
  CASE
    WHEN "CountryOrRegion" IN ('KP','IR','RU','CN','BY') THEN 'SuspiciousCountry'
    WHEN LOWER("ClientAppUsed") MATCHES '(?i)(imap|pop3|smtp|basicauth|exchange.?activesync|autodiscover|exchange.?web.?services|authenticated.?smtp|outlook.?anywhere)' THEN 'LegacyAuth'
    WHEN "RiskLevelDuringSignIn" IN ('high','medium') THEN 'HighRisk'
    ELSE 'MFABypassed'
  END AS PrimaryAlertReason
FROM events
WHERE
  LOGSOURCETYPEID(devicetype) = 452
  AND (
    "CountryOrRegion" IN ('KP', 'IR', 'RU', 'CN', 'BY')
    OR LOWER("ClientAppUsed") MATCHES '(?i)(imap|pop3|smtp|basicauth|exchange.?activesync|autodiscover|exchange.?web.?services|authenticated.?smtp|outlook.?anywhere)'
    OR "RiskLevelDuringSignIn" IN ('high', 'medium')
    OR ("AuthenticationRequirement" = 'singleFactorAuthentication' AND "ConditionalAccessStatus" != 'notApplied')
  )
  AND starttime > NOW() - 86400000
ORDER BY starttime DESC
high severity medium confidence

QRadar AQL query targeting Microsoft Azure Active Directory sign-in events ingested via the QRadar DSM. Detects successful authentications flagged for high-risk country origin, legacy protocol usage, elevated identity risk level, or MFA bypass. LOGSOURCETYPEID 452 is the standard DSM identifier for Microsoft Azure Active Directory — verify and adjust this value for your deployment. Custom properties (CountryOrRegion, ClientAppUsed, RiskLevelDuringSignIn, AuthenticationRequirement, ConditionalAccessStatus) must be mapped via QRadar's Custom Properties DSM Editor from the raw Azure AD JSON payload fields.

Data Sources

Microsoft Azure Active Directory DSM for IBM QRadar

Required Tables

events

False Positives & Tuning

  • Security operations staff using VPN endpoints with exit nodes in flagged countries during threat intelligence research, red team simulations, or geo-testing exercises
  • Service accounts using SMTP AUTH for alerting pipelines or monitoring systems that are documented and approved in the change management system
  • Users behind carrier-grade NAT or CDN reverse-proxy exit nodes whose source IP resolves to a flagged country despite the user being physically located elsewhere
Download portable Sigma rule (.yml)

Other platforms for T1078.004


Testing Methodology

Validate this detection against 5 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1Azure CLI Authentication with Compromised Credentials

    Expected signal: Entra ID SigninLogs: successful interactive sign-in with AppDisplayName='Microsoft Azure CLI', DeviceDetail showing unregistered device, IPAddress of test machine. AuditLogs may show directory read operations. Risk signals may trigger if this is a new location or device for the account.

  2. Test 2Service Principal Authentication and Enumeration

    Expected signal: AADServicePrincipalSignInLogs: service principal authentication event with IPAddress, ResourceDisplayName, and AppId. AuditLogs: directory read operations. If run from a new IP, this will appear as an anomalous source for the service principal.

  3. Test 3Legacy Authentication Simulation via SMTP Basic Auth

    Expected signal: Entra ID SigninLogs: sign-in attempt with ClientAppUsed='Authenticated SMTP' or 'SMTP Auth', Protocol='SMTP', IsInteractive=false. The sign-in will be flagged as legacy authentication. If successful, ResultType=0; if legacy auth is blocked by CA policy, ResultType will reflect the block.

  4. Test 4Impossible Travel Simulation via Azure Resource Manager API

    Expected signal: Two sign-in events in SigninLogs from different IP addresses and geolocations for the same account within a short time window. Entra ID Identity Protection may generate an 'Impossible travel' or 'Unfamiliar sign-in properties' risk detection (AADUserRiskEvents). The second sign-in will have a different CountryOrRegion in LocationDetails.

  5. Test 5Add Credentials to Existing Service Principal (Persistence)

    Expected signal: AuditLogs: OperationName='Add service principal credentials' or 'Update application – Certificates and secrets management' with the initiating user's UPN, source IP, and target service principal name and ID. This is the exact pattern hunted by the Service Principal Credential Addition hunting query.

Unlock Pro Content

Get the full detection package for T1078.004 including response playbook, investigation guide, and atomic red team tests.

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections