Exfiltration Over Web Service T1567

Tactic: Exfiltration

Adversaries may use an existing, legitimate external Web service to exfiltrate data rather than their primary command and control channel. Popular Web services acting as an exfiltration mechanism may give a significant amount of cover due to the likelihood that hosts within a network are already communicating with them prior to compromise. Firewall rules may also already exist to permit traffic to these services.

Events covered

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

Authoring guide

Patterns shared across the 153 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 (185 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
EventType25eq 24, in 1exec, message, ConnectionEvent, CreateInstanceExportTask, CreateStoreImageTask
EventID18eq 17, in 14688, 1, change_acl_editors, change_document_access_scope, change_document_visibility
process_name17eq 8, match 4, is_not_null 2, regex_match 2, starts_with 2, in 1(?i)mega(sync|cmd), (?i)megasync\.exe|megacmd, (?i)rclone, node, python
CommandLine16contains 11, match 3, in 2, regex_match 2 --data , --data-, --form, (?i)\s+(((copy|move|moveto|copyto)\s+.*\S+:\S+\s+.*\S+:\S..., * account add*
data_stream.dataset16eq 16aws.cloudtrail, github.audit, azure.platformlogs, o365.audit, windows.sysmon
DestinationHostname13ends_with 9, contains 5, eq 1, starts_with 1, wildcard 1tunnel.ap.ngrok.com, tunnel.au.ngrok.com, tunnel.eu.ngrok.com, *.s3*.amazonaws.com, .4shared.com
Image10ends_with 8, eq 2, contains 1, starts_with 1/curl, /aws, /azcopy, /gsutil, /wget
event.outcome9eq 9success
event.type9eq 9start, change
sourcetype9eq 9o365:management:activity, cisco:sfw:estreamer, cisco:nvm:flowdata, gws:reports:drive
Initiated7eq 7true
Provider_Name7eq 7dynamodb.amazonaws.com, sns.amazonaws.com, OneDrive, ec2.amazonaws.com, rds.amazonaws.com
Operation6eq 5, starts_with 1AdminMailAccess, DLPRuleMatch, FileDownloaded, fileaccessed, filedownloaded
OriginalFileName6eq 5, ends_with 1certreq.exe, configsecuritypolicy.exe, datasvcutil.exe, gdrive.exe, net1.exe
QueryName6contains 6.anonfiles.com, ufile.io, userstorage.mega.co.nz

Top indicator values (1362 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
9251
data_stream.dataseteq
aws.cloudtrail
8141
data_stream.dataseteq
github.audit
518
Initiatedeq
true
750
event.typeeq
start
6606
event.typeeq
change
377
sourcetypeeq
o365:management:activity
580
EventIDeq
4688
4313
EventIDeq
1
3237
EventTypeeq
exec
3171
EventTypeeq
message
38
NetworkDirectioneq
outbound
34
countgt
50
35
resultTypein
Succeeded
351
resultTypein
Success
351
Activeeq
true
268
CommandLinecontains
--data
23
CommandLinecontains
--data-
22
CommandLinecontains
--form
22
CommandLinecontains
--upload-file
22
CommandLinecontains
://127.0.0.1
2
CommandLinecontains
://localhost
2
CommandLinein
* account add*
22
CommandLinein
* download *
23
CommandLinein
* drives *
22
CommandLinein
* files *
22
CommandLinein
* list*
22
CommandLinein
* share *
22
CommandLinein
* sync *
22
CommandLinein
* update *
22

Exclusions (187 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
CommandLinecontains
://127.0.0.1
2
CommandLinecontains
://localhost
2
process.code_signature.trustedeq
true
2
process_namematch
(?i)(cmd|powershell).exe
2
user.idin
S-1-5-18
2
user.idin
S-1-5-19
2
DestinationHostnameends_with
.azurewebsites.net
1
DestinationHostnameends_with
.b-cdn.net
1
DestinationHostnameends_with
.blob.core.windows.net
1
DestinationHostnameends_with
.blob.storage.azure.net
1
DestinationHostnameends_with
.blogspot.com
1
DestinationHostnameends_with
.sharepoint.com
1
DestinationHostnameeq
api.onedrive.com
1
DestinationHostnameeq
drive.google.com
1
DestinationHostnameeq
onedrive.live.com
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 29 rules

Elastic 25 rules

Splunk 25 rules

Kusto 37 rules

YARA-L 7 rules

Panther 30 rules