Detect Transfer Data to Cloud Account in Google Chronicle
Adversaries may exfiltrate data by transferring it to another cloud account they control on the same service. This technique abuses native cloud APIs, storage sharing mechanisms, and CLI tools (such as AzCopy, megatools, or AWS CLI) to move data across cloud account boundaries while blending into normal cloud traffic. Detection is complicated because the traffic stays within the provider's internal network and may not trigger perimeter data loss controls. Common methods include: sharing VM disk snapshots or AMIs to attacker-controlled accounts, generating shared access signature (SAS) URIs or pre-signed S3 URLs for anonymous access, using AzCopy or AWS S3 sync to copy storage contents cross-account, and creating cloud instance backups then exporting them to external subscriptions.
MITRE ATT&CK
- Tactic
- Exfiltration
- Technique
- T1537 Transfer Data to Cloud Account
- Canonical reference
- https://attack.mitre.org/techniques/T1537/
YARA-L Detection Query
rule T1537_Transfer_Data_To_Cloud_Account {
meta:
author = "Argus Detection Engineering"
description = "Detects T1537: data exfiltration via cross-account cloud transfer using AzCopy, SAS token generation, snapshot sharing, or MEGA upload tools."
severity = "HIGH"
mitre_attack_technique = "T1537"
mitre_attack_tactic = "Exfiltration"
reference = "https://attack.mitre.org/techniques/T1537/"
created = "2026-04-20"
events:
$e.metadata.event_type = "PROCESS_LAUNCH"
$e.metadata.product_event_type != ""
(
(
re.regex($e.target.process.file.full_path, `(?i)(^|[/\\])azcopy(\.exe)?$`) and
(
re.regex($e.target.process.command_line, `(?i)blob\.core\.windows\.net`) or
re.regex($e.target.process.command_line, `(?i)mega\.nz`) or
re.regex($e.target.process.command_line, `(?i)(megatools|megacopy|megaput)`) or
re.regex($e.target.process.command_line, `(?i)s3\.amazonaws\.com`)
)
) or
(
re.regex($e.target.process.file.full_path, `(?i)(powershell|pwsh|az\.cmd|python)(\.exe)?$`) and
(
re.regex($e.target.process.command_line, `(?i)New-AzStorage(Blob|Container|Account)SASToken`) or
re.regex($e.target.process.command_line, `(?i)az storage (blob|container|account) generate-sas`) or
re.regex($e.target.process.command_line, `(?i)GenerateSasUri`) or
re.regex($e.target.process.command_line, `(?i)generate-sas`)
) and
(
re.regex($e.target.process.command_line, `(?i)(--expiry|-ExpiryTime|--permissions|rwdl|racwdl)`)
)
) or
(
re.regex($e.target.process.file.full_path, `(?i)(powershell|pwsh|az\.cmd|aws|python)(\.exe)?$`) and
re.regex($e.target.process.command_line, `(?i)(az snapshot (create|grant-access)|az disk create|New-AzSnapshot|Grant-AzSnapshotAccess|ec2 (copy-snapshot|modify-snapshot-attribute|create-image|modify-image-attribute)|CreateSnapshot|CopySnapshot)`)
) or
(
re.regex($e.target.process.file.full_path, `(?i)(megacopy|megaput|megals|MegaSync|megatools|megacmd|mega-put|mega-copy)(\.exe)?$`) or
re.regex($e.target.process.command_line, `(?i)(mega\.nz|megatools|megacopy|megaput|MegaSync)`)
)
)
condition:
$e
} Google Chronicle YARA-L 2.0 rule for T1537 using the Unified Data Model (UDM). Matches PROCESS_LAUNCH events where the target process command line or executable path indicates AzCopy exfiltration to external cloud storage, SAS token generation with write/delete permissions, cloud snapshot creation and cross-account export (Azure/AWS), or execution of MEGA upload utilities. Requires Chronicle's endpoint telemetry ingestion with process command line normalization.
Data Sources
Required Tables
False Positives & Tuning
- Authorized AzCopy usage by storage teams replicating data between business units operating in separate Azure subscriptions but within the same enterprise agreement.
- Infrastructure automation (Terraform, CloudFormation, Pulumi) that creates snapshots or AMIs for golden image distribution to multiple AWS accounts under an Organization.
- Security engineering teams generating scoped SAS tokens with write access for approved penetration testing exercises or red team engagements with documented change tickets.
Other platforms for T1537
Testing Methodology
Validate this detection against 4 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.
- Test 1AzCopy Transfer to External Azure Blob Storage
Expected signal: Sysmon Event ID 1: Process Create with Image=azcopy.exe (or azcopy path), CommandLine containing 'copy' and 'blob.core.windows.net' with a SAS token signature. Sysmon Event ID 3: Network Connection from azcopy.exe to TESTACCOUNT.blob.core.windows.net:443. Sysmon Event ID 11: File access events for the source files being read. AzCopy job log created at %USERPROFILE%\.azcopy\*.log.
- Test 2Azure SAS Token Generation via PowerShell
Expected signal: Sysmon Event ID 1: Process Create with Image=powershell.exe, CommandLine containing 'New-AzStorageContainerSASToken', '-Permission', 'rwdl', and '-ExpiryTime'. PowerShell ScriptBlock Log Event ID 4104 with full script contents including the SAS generation call. Sysmon Event ID 3: Network connection from powershell.exe to management.azure.com:443 for the Az module API calls.
- Test 3Azure Snapshot Creation and Export via Azure CLI
Expected signal: Sysmon Event ID 1 (two events): (1) az.cmd process with CommandLine 'az snapshot create ... --source /subscriptions/...'. (2) az.cmd with CommandLine 'az snapshot grant-access ... --duration-in-seconds 3600'. Sysmon Event ID 3: Network connections from az.cmd to management.azure.com:443. Azure Activity Log entries: OperationName=Microsoft.Compute/snapshots/write (Success) and Microsoft.Compute/snapshots/beginGetAccess/action (Success) — visible in AzureActivity table in Log Analytics within ~5 minutes.
- Test 4Mega.nz Upload Tool Execution (megatools)
Expected signal: Sysmon for Linux (or auditd) process creation event: Image=/usr/bin/megaput, CommandLine containing '--username', '--path', and the local file path. Sysmon Event ID 3 (Linux): Network connection from megaput to g.api.mega.co.nz:443 (initial API auth) and *.userstorage.mega.co.nz:443 (actual upload). Auditd SYSCALL record type=EXECVE with megaput binary. Linux /var/log/auth.log or syslog may record the process execution depending on auditing configuration.
References (14)
- https://attack.mitre.org/techniques/T1537/
- https://tldrsec.com/p/blog-lesser-known-aws-attacks
- https://docs.microsoft.com/en-us/rest/api/storageservices/delegate-access-with-shared-access-signature
- https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview
- https://docs.microsoft.com/en-us/azure/storage/blobs/snapshots-overview
- https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-modifying-snapshot-permissions.html
- https://cdn.cnn.com/cnn/2018/images/07/13/gru.indictment.pdf
- https://www.microsoft.com/en-us/security/blog/2024/09/26/storm-0501-ransomware-attacks-expanding-to-hybrid-cloud-environments/
- https://www.secureworks.com/research/gold-ionic-inc-ransom
- https://www.group-ib.com/resources/research/redcurl/
- https://learn.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-v10
- https://github.com/megous/megatools
- https://learn.microsoft.com/en-us/azure/azure-monitor/reference/tables/azureactivity
- https://learn.microsoft.com/en-us/defender-endpoint/advanced-hunting-devicenetworkevents-table
Unlock Pro Content
Get the full detection package for T1537 including response playbook, investigation guide, and atomic red team tests.