Use Alternate Authentication Material: Application Access Token T1550.001

Tactic: Lateral Movement

Adversaries may use stolen application access tokens to bypass the typical authentication process and access restricted accounts, information, or services on remote systems. These tokens are typically stolen from users or services and used in lieu of login credentials.

Events covered

6 catalog events are tagged with this technique by at least one rule.

Authoring guide

Patterns shared across the 55 rules above: which fields they filter on, what specific values they look for, and what they exclude. The catalog normalizes field names across vendors so Sigma's Image, Elastic's process.name, and Splunk's process_name collapse into one row. Each rule contributes at most once per row.

Fields filtered most (140 distinct)

The fields most rules look at when detecting this technique. The How column shows the operators authors use (eq, wildcard, regex_match, match) and how often each appears. Sample values are concrete examples to start from, not an exhaustive list.

FieldRulesHowSample values
data_stream.dataset27eq 24, in 3azure.signinlogs, aws.cloudtrail, azure.graphactivitylogs, azure.activitylogs, o365.audit
EventType21eq 17, in 4, is_not_null 1AssumeRole, Sign-in activity, AssumeRoleWithWebIdentity, GetFederationToken, GetSigninToken
event.outcome17eq 17success
Provider_Name9eq 9sts.amazonaws.com, signin.amazonaws.com
aws::userIdentity.type8eq 8AssumedRole, IAMUser, AWSService
azure_ad::app_id7eq 4, in 2, is_not_null 129d9ed98-a469-4536-ade2-f981bc1d605e, 00b41c95-dab0-4487-9791-b9d2c32c80f2, 04b07795-8ddb-461a-bbee-02f9e1bf7b46, 0ec893e0-5785-4de6-99da-4ed124e5296c
event.dataset7eq 7aws.cloudtrail, github.audit
azure_ad::user_type6eq 5, is_not_null 1Member
event.category6eq 6authentication, configuration
aws::eventName5eq 5GetSessionToken, GetSigninToken, AssumeRoleWithSAML, UpdateSAMLProvider
aws::eventSource5eq 5sts.amazonaws.com, signin.amazonaws.com, iam.amazonaws.com
azure_ad::resource_id5eq 3, in 3, is_not_null 100000002-0000-0000-c000-000000000000, 00000003-0000-0000-c000-000000000000, 00000002-0000-0ff1-ce00-000000000000, 00000003-0000-0ff1-ce00-000000000000, 00000005-0000-0ff1-ce00-000000000000
OperationName4contains 3, eq 1certificates and secrets management, add service principal, Consent to application
displayName4eq 4, contains 3@, KeyDescription, ConsentAction.Permissions, ConsentContext.isAdminConsent, TargetId.ServicePrincipalNames
event.type4eq 4start, access, change

Top indicator values (395 distinct)

Specific (field, operator, value) combinations the rules check for, ranked by how many rules under this technique use each one. The Corpus reach column counts how many rules across the entire catalog (any technique) check the same combination. High numbers point to widely-used indicators that are likely noisy on their own; combine them with another condition for useful signal. Blank means the combination is specific to rules under this technique. Click a value to expand the rules under this technique that use it.

FieldKindValueRules (here)Corpus reach
event.outcomeeq
success
17251
data_stream.dataseteq
azure.signinlogs
1230
data_stream.dataseteq
aws.cloudtrail
6141
data_stream.dataseteq
azure.graphactivitylogs
35
Provider_Nameeq
sts.amazonaws.com
711
azure_ad::user_typeeq
Member
510
EventTypeeq
Sign-in activity
46
EventTypeeq
AssumeRole
33
EventTypeeq
GetFederationToken
22
aws::userIdentity.typeeq
AssumedRole
412
aws::userIdentity.typeeq
IAMUser
36
azure_ad::app_ideq
29d9ed98-a469-4536-ade2-f981bc1d605e
47
event.dataseteq
aws.cloudtrail
417
event.dataseteq
github.audit
314
keyeq
User-Agent
411
OperationNamecontains
certificates and secrets management
36
OperationNamecontains
add service principal
24
Resulteq
success
325
aws::eventSourceeq
sts.amazonaws.com
36
azure_ad::authentication_protocoleq
deviceCode
33
data_stream.datasetin
azure.signinlogs
35
displayNamecontains
@
35
displayNameeq
KeyDescription
36
event.categoryeq
authentication
331
event.categoryeq
configuration
311
github.programmatic_access_typein
Fine-grained personal access token
36
github.programmatic_access_typein
OAuth access token
36
keyUsageeq
Verify
34
typeeq
Application
34
userPrincipalNamecontains
@
35

Exclusions (162 distinct)

Field/operator/value combinations excluded by rules under this technique (top-level not() clauses), sorted by how many rules exclude each. These are the false-positive paths the community has learned to filter out. A new rule that ignores the high-count entries here will likely fire on the same noisy paths. Click a value to expand the rules under this technique that exclude it.

FieldKindValueRules excluding
azure_ad::app_idin
29d9ed98-a469-4536-ade2-f981bc1d605e
2
azure_ad::app_idin
4813382a-8fa7-425e-ab75-3b753aab3abb
2
azure_ad::app_idin
9ba1a5c7-f17a-4de9-a1f1-6178c8d51223
2
azure_ad::app_idin
ab9b8c07-8f02-4f72-87fa-80105867a763
2
azure_ad::app_idin
fc0f3af4-6835-4174-b806-f7db311fd2f3
2
resultSignaturene
SUCCESS
2
userAgentcontains
jersey/${project.version}
2
Esql.azure_signinlogs_properties_app_id_coalescein
00000007-0000-0000-c000-000000000000
1
Esql.azure_signinlogs_properties_app_id_coalescein
01fc33a7-78ba-4d2f-a4b7-768e336e890e
1
Esql.azure_signinlogs_properties_app_id_coalescein
0ec893e0-5785-4de6-99da-4ed124e5296c
1
Esql.azure_signinlogs_properties_app_id_coalescein
26a7ee05-5602-4d76-a7ba-eae8b7b67941
1
Esql.azure_signinlogs_properties_app_id_coalescein
27922004-5251-4030-b22d-91ecd9a37ea4
1
Esql.azure_signinlogs_properties_app_id_coalescein
394866fc-eedb-4f01-8536-3ff84b16be2a
1
Esql.azure_signinlogs_properties_app_id_coalescein
4354e225-50c9-4423-9ece-2d5afd904870
1
Esql.azure_signinlogs_properties_app_id_coalescein
52c2e0b5-c7b6-4d11-a89c-21e42bcec444
1

Rules under this technique

Every rule in the catalog tagged with this technique, grouped by vendor. Click a rule title for its full predicates, exclusions, and indicators.

Platform (all)
Domain (all)

Sigma 5 rules

Elastic 39 rules

Kusto 4 rules

YARA-L 2 rules

Panther 5 rules