C0024 SolarWinds Compromise
The SolarWinds Compromise was a sophisticated supply chain cyber operation conducted by APT29 that was discovered in mid-December 2020. APT29 used customized malware to inject malicious code into the SolarWinds Orion software build process that was later distributed through a normal software update; they also used password spraying, token theft, API abuse, spear phishing, and other supply chain attacks to compromise user accounts and leverage their associated access. Victims of this campaign included government, consulting, technology, telecom, and other organizations in North America, Europe, Asia, and the Middle East. Industry reporting initially referred to the actors involved in this campaign as UNC2452, NOBELIUM, StellarParticle, Dark Halo, and SolarStorm.10114121387
In April 2021, the US and UK governments attributed the SolarWinds Compromise to Russia’s Foreign Intelligence Service (SVR); public statements included citations to APT29, Cozy Bear, and The Dukes.9125 The US government assessed that of the approximately 18,000 affected public and private sector customers of Solar Winds’ Orion product, a much smaller number were compromised by follow-on APT29 activity on their systems.3
Item | Value |
---|---|
ID | C0024 |
Associated Names | |
First Seen | August 2019 |
Last Seen | January 2021 |
Version | 1.0 |
Created | 24 March 2023 |
Last Modified | 14 April 2023 |
Navigation Layer | View In ATT&CK® Navigator |
Groups
ID | Name | References |
---|---|---|
G0016 | APT29 | 9125 |
Techniques Used
Domain | ID | Name | Use |
---|---|---|---|
enterprise | T1087 | Account Discovery | During the SolarWinds Compromise, APT29 obtained a list of users and their roles from an Exchange server using Get-ManagementRoleAssignment .1 |
enterprise | T1087.002 | Domain Account | During the SolarWinds Compromise, APT29 used PowerShell to discover domain accounts by exectuing Get-ADUser and Get-ADGroupMember .222 |
enterprise | T1098 | Account Manipulation | - |
enterprise | T1098.001 | Additional Cloud Credentials | During the SolarWinds Compromise, APT29 added credentials to OAuth Applications and Service Principals.142 |
enterprise | T1098.002 | Additional Email Delegate Permissions | During the SolarWinds Compromise, APT29 added their own devices as allowed IDs for active sync using Set-CASMailbox , allowing it to obtain copies of victim mailboxes. It also added additional permissions (such as Mail.Read and Mail.ReadWrite) to compromised Application or Service Principals.11423 |
enterprise | T1098.003 | Additional Cloud Roles | During the SolarWinds Compromise, APT29 granted company administrator privileges to a newly created service principle.2 |
enterprise | T1098.005 | Device Registration | During the SolarWinds Compromise, APT29 registered devices in order to enable mailbox syncing via the Set-CASMailbox command.1 |
enterprise | T1583 | Acquire Infrastructure | - |
enterprise | T1583.001 | Domains | For the SolarWinds Compromise, APT29 acquired C2 domains, sometimes through resellers.1516 |
enterprise | T1071 | Application Layer Protocol | - |
enterprise | T1071.001 | Web Protocols | During the SolarWinds Compromise, APT29 used HTTP for C2 and data exfiltration.1 |
enterprise | T1560 | Archive Collected Data | - |
enterprise | T1560.001 | Archive via Utility | During the SolarWinds Compromise, APT29 used 7-Zip to compress stolen emails into password-protected archives prior to exfltration; APT29 also compressed text files into zipped archives.1182 |
enterprise | T1059 | Command and Scripting Interpreter | - |
enterprise | T1059.001 | PowerShell | During the SolarWinds Compromise, APT29 used PowerShell to create new tasks on remote machines, identify configuration settings, exfiltrate data, and execute other commands.182 |
enterprise | T1059.003 | Windows Command Shell | During the SolarWinds Compromise, APT29 used cmd.exe to execute commands on remote machines.18 |
enterprise | T1059.005 | Visual Basic | For the SolarWinds Compromise, APT29 wrote malware such as Sibot in Visual Basic.21 |
enterprise | T1584 | Compromise Infrastructure | - |
enterprise | T1584.001 | Domains | For the SolarWinds Compromise, APT29 compromised domains to use for C2.15 |
enterprise | T1555 | Credentials from Password Stores | During the SolarWinds Compromise, APT29 used account credentials they obtained to attempt access to Group Managed Service Account (gMSA) passwords.18 |
enterprise | T1555.003 | Credentials from Web Browsers | During the SolarWinds Compromise, APT29 stole users’ saved passwords from Chrome.2 |
enterprise | T1213 | Data from Information Repositories | During the SolarWinds Compromise, APT29 accessed victims’ internal knowledge repositories (wikis) to view sensitive corporate information on products, services, and internal business operations.2 |
enterprise | T1213.003 | Code Repositories | During the SolarWinds Compromise, APT29 downloaded source code from code repositories.7 |
enterprise | T1005 | Data from Local System | During the SolarWinds Compromise, APT29 extracted files from compromised networks.1 |
enterprise | T1074 | Data Staged | - |
enterprise | T1074.002 | Remote Data Staging | During the SolarWinds Compromise, APT29 staged data and files in password-protected archives on a victim’s OWA server.1 |
enterprise | T1140 | Deobfuscate/Decode Files or Information | During the SolarWinds Compromise, APT29 used 7-Zip to decode their Raindrop malware.20 |
enterprise | T1587 | Develop Capabilities | - |
enterprise | T1587.001 | Malware | For the SolarWinds Compromise, APT29 used numerous pieces of malware that were likely developed for or by the group, including SUNBURST, SUNSPOT, Raindrop, and TEARDROP.41918 |
enterprise | T1484 | Domain Policy Modification | - |
enterprise | T1484.002 | Domain Trust Modification | During the SolarWinds Compromise, APT29 changed domain federation trust settings using Azure AD administrative permissions to configure the domain to accept authorization tokens signed by their own SAML signing certificate.2217 |
enterprise | T1482 | Domain Trust Discovery | During the SolarWinds Compromise, APT29 used the Get-AcceptedDomain PowerShell cmdlet to enumerate accepted domains through an Exchange Management Shell.1 They also used AdFind to enumerate domains and to discover trust between federated domains.218 |
enterprise | T1568 | Dynamic Resolution | During the SolarWinds Compromise, APT29 used dynamic DNS resolution to construct and resolve to randomly-generated subdomains for C2.1 |
enterprise | T1114 | Email Collection | - |
enterprise | T1114.002 | Remote Email Collection | During the SolarWinds Compromise, APT29 collected emails from specific individuals, such as executives and IT staff, using New-MailboxExportRequest followed by Get-MailboxExportRequest .121 |
enterprise | T1546 | Event Triggered Execution | - |
enterprise | T1546.003 | Windows Management Instrumentation Event Subscription | During the SolarWinds Compromise, APT29 used a WMI event filter to invoke a command-line event consumer at system boot time to launch a backdoor with rundll32.exe .1817 |
enterprise | T1048 | Exfiltration Over Alternative Protocol | - |
enterprise | T1048.002 | Exfiltration Over Asymmetric Encrypted Non-C2 Protocol | During the SolarWinds Compromise, APT29 exfiltrated collected data over a simple HTTPS request to a password-protected archive staged on a victim’s OWA servers.1 |
enterprise | T1190 | Exploit Public-Facing Application | During the SolarWinds Compromise, APT29 exploited CVE-2020-0688 against the Microsoft Exchange Control Panel to regain access to a network.121 |
enterprise | T1133 | External Remote Services | For the SolarWinds Compromise, APT29 used compromised identities to access networks via SSH, VPNs, and other remote access tools.152 |
enterprise | T1083 | File and Directory Discovery | During the SolarWinds Compromise, APT29 obtained information about the configured Exchange virtual directory using Get-WebServicesVirtualDirectory .1 |
enterprise | T1606 | Forge Web Credentials | - |
enterprise | T1606.001 | Web Cookies | During the SolarWinds Compromise, APT29 bypassed MFA set on OWA accounts by generating a cookie value from a previously stolen secret key.1 |
enterprise | T1606.002 | SAML Tokens | During the SolarWinds Compromise, APT29 created tokens using compromised SAML signing certificates.1422 |
enterprise | T1589 | Gather Victim Identity Information | - |
enterprise | T1589.001 | Credentials | For the SolarWinds Compromise, APT29 conducted credential theft operations to obtain credentials to be used for access to victim environments.2 |
enterprise | T1562 | Impair Defenses | - |
enterprise | T1562.001 | Disable or Modify Tools | During the SolarWinds Compromise, APT29 used the service control manager on a remote system to disable services associated with security monitoring products.18 |
enterprise | T1562.002 | Disable Windows Event Logging | During the SolarWinds Compromise, APT29, used AUDITPOL to prevent the collection of audit logs.18 |
enterprise | T1562.004 | Disable or Modify System Firewall | During the SolarWinds Compromise, APT29 used netsh to configure firewall rules that limited certain UDP outbound packets.18 |
enterprise | T1070 | Indicator Removal | During the SolarWinds Compromise, APT29 temporarily replaced legitimate utilities with their own, executed their payload, and then restored the original file.4 |
enterprise | T1070.004 | File Deletion | During the SolarWinds Compromise, APT29 routinely removed their tools, including custom backdoors, once remote access was achieved.4 |
enterprise | T1070.006 | Timestomp | During the SolarWinds Compromise, APT29 modified timestamps of backdoors to match legitimate Windows files.18 |
enterprise | T1070.008 | Clear Mailbox Data | During the SolarWinds Compromise, APT29 removed evidence of email export requests using Remove-MailboxExportRequest .1 |
enterprise | T1105 | Ingress Tool Transfer | During the SolarWinds Compromise, APT29 downloaded additional malware, such as TEARDROP and Cobalt Strike, onto a compromised host following initial access.4 |
enterprise | T1036 | Masquerading | During the SolarWinds Compromise, APT29 set the hostnames of their C2 infrastructure to match legitimate hostnames in the victim environment. They also used IP addresses originating from the same country as the victim for their VPN infrastructure.4 |
enterprise | T1036.004 | Masquerade Task or Service | During the SolarWinds Compromise, APT29 named tasks \Microsoft\Windows\SoftwareProtectionPlatform\EventCacheManager in order to appear legitimate.1 |
enterprise | T1036.005 | Match Legitimate Name or Location | During the SolarWinds Compromise, APT29 renamed software and DLLs with legitimate names to appear benign.18 |
enterprise | T1003 | OS Credential Dumping | - |
enterprise | T1003.006 | DCSync | During the SolarWinds Compromise, APT29 used privileged accounts to replicate directory service data with domain controllers.17182 |
enterprise | T1069 | Permission Groups Discovery | During the SolarWinds Compromise, APT29 used the Get-ManagementRoleAssignment PowerShell cmdlet to enumerate Exchange management role assignments through an Exchange Management Shell.1 |
enterprise | T1069.002 | Domain Groups | During the SolarWinds Compromise, APT29 used AdFind to enumerate domain groups.2 |
enterprise | T1057 | Process Discovery | During the SolarWinds Compromise, APT29 used multiple command-line utilities to enumerate running processes.1182 |
enterprise | T1090 | Proxy | - |
enterprise | T1090.001 | Internal Proxy | During the SolarWinds Compromise, APT29 used SSH port forwarding capabilities on public-facing systems, and configured at least one instance of Cobalt Strike to use a network pipe over SMB.220 |
enterprise | T1021 | Remote Services | - |
enterprise | T1021.001 | Remote Desktop Protocol | During the SolarWinds Compromise, APT29 used RDP sessions from public-facing systems to internal servers.2 |
enterprise | T1021.002 | SMB/Windows Admin Shares | During the SolarWinds Compromise, APT29 used administrative accounts to connect over SMB to targeted users.2 |
enterprise | T1021.006 | Windows Remote Management | During the SolarWinds Compromise, APT29 used WinRM via PowerShell to execute commands and payloads on remote hosts.20 |
enterprise | T1018 | Remote System Discovery | During the SolarWinds Compromise, APT29 used AdFind to enumerate remote systems.18 |
enterprise | T1053 | Scheduled Task/Job | - |
enterprise | T1053.005 | Scheduled Task | During the SolarWinds Compromise, APT29 used scheduler and schtasks to create new tasks on remote host as part of their lateral movement. They manipulated scheduled tasks by updating an existing legitimate task to execute their tools and then returned the scheduled task to its original configuration. APT29 also created a scheduled task to maintain SUNSPOT persistence when the host booted.1419 |
enterprise | T1558 | Steal or Forge Kerberos Tickets | - |
enterprise | T1558.003 | Kerberoasting | During the SolarWinds Compromise, APT29 obtained Ticket Granting Service (TGS) tickets for Active Directory Service Principle Names to crack offline.18 |
enterprise | T1539 | Steal Web Session Cookie | During the SolarWinds Compromise, APT29 stole Chrome browser cookies by copying the Chrome profile directories of targeted users.2 |
enterprise | T1553 | Subvert Trust Controls | - |
enterprise | T1553.002 | Code Signing | During the SolarWinds Compromise, APT29 was able to get SUNBURST signed by SolarWinds code signing certificates by injecting the malware into the SolarWinds Orion software lifecycle.4 |
enterprise | T1195 | Supply Chain Compromise | - |
enterprise | T1195.002 | Compromise Software Supply Chain | During the SolarWinds Compromise, APT29 gained initial network access to some victims via a trojanized update of SolarWinds Orion software.1142118 |
enterprise | T1218 | System Binary Proxy Execution | - |
enterprise | T1218.011 | Rundll32 | During the SolarWinds Compromise, APT29 used Rundll32.exe to execute payloads.1418 |
enterprise | T1082 | System Information Discovery | During the SolarWinds Compromise, APT29 used fsutil to check available free space before executing actions that might create large files on disk.18 |
enterprise | T1016 | System Network Configuration Discovery | - |
enterprise | T1016.001 | Internet Connection Discovery | During the SolarWinds Compromise, APT29 used GoldFinder to perform HTTP GET requests to check internet connectivity and identify HTTP proxy servers and other redirectors that an HTTP request travels through.15 |
enterprise | T1199 | Trusted Relationship | During the SolarWinds Compromise, APT29 gained access through compromised accounts at cloud solution partners, and used compromised certificates issued by Mimecast to authenticate to Mimecast customer systems.212 |
enterprise | T1552 | Unsecured Credentials | - |
enterprise | T1552.004 | Private Keys | During the SolarWinds Compromise, APT29 obtained PKI keys, certificate files, and the private encryption key from an Active Directory Federation Services (AD FS) container to decrypt corresponding SAML signing certificates.1721 |
enterprise | T1550 | Use Alternate Authentication Material | During the SolarWinds Compromise, APT29 used forged SAML tokens that allowed the actors to impersonate users and bypass MFA, enabling APT29 to access enterprise cloud applications and services.1722 |
enterprise | T1550.001 | Application Access Token | During the SolarWinds Compromise, APT29 used compromised service principals to make changes to the Office 365 environment.2 |
enterprise | T1550.004 | Web Session Cookie | During the SolarWinds Compromise, APT29 used stolen cookies to access cloud resources and a forged duo-sid cookie to bypass MFA set on an email account.12 |
enterprise | T1078 | Valid Accounts | During the SolarWinds Compromise, APT29 used different compromised credentials for remote access and to move laterally.41521 |
enterprise | T1078.002 | Domain Accounts | During the SolarWinds Compromise, APT29 used domain administrators’ accounts to help facilitate lateral movement on compromised networks.2 |
enterprise | T1078.003 | Local Accounts | During the SolarWinds Compromise, APT29 used compromised local accounts to access victims’ networks.2 |
enterprise | T1078.004 | Cloud Accounts | During the SolarWinds Compromise, APT29 used a compromised O365 administrator account to create a new Service Principal.2 |
enterprise | T1047 | Windows Management Instrumentation | During the SolarWinds Compromise, APT29 used WMI for the remote execution of files for lateral movement.1718 |
Software
ID | Name | Description |
---|---|---|
S0552 | AdFind | 82 |
References
-
Cash, D. et al. (2020, December 14). Dark Halo Leverages SolarWinds Compromise to Breach Organizations. Retrieved December 29, 2020. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
CrowdStrike. (2022, January 27). Early Bird Catches the Wormhole: Observations from the StellarParticle Campaign. Retrieved February 7, 2022. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
FBI, CISA, ODNI, NSA. (2022, January 5). Joint Statement by the Federal Bureau of Investigation (FBI), the Cybersecurity and Infrastructure Security Agency (CISA), the Office of the Director of National Intelligence (ODNI), and the National Security Agency (NSA). Retrieved March 26, 2023. ↩
-
FireEye. (2020, December 13). Highly Evasive Attacker Leverages SolarWinds Supply Chain to Compromise Multiple Global Victims With SUNBURST Backdoor. Retrieved January 4, 2021. ↩↩↩↩↩↩↩↩↩↩
-
Mandiant. (2020, April 27). Assembling the Russian Nesting Doll: UNC2452 Merged into APT29. Retrieved March 26, 2023. ↩↩
-
Microsoft Threat Intelligence Center (MSTIC). (2021, May 27). New sophisticated email-based attack from NOBELIUM. Retrieved May 28, 2021. ↩
-
MSRC Team. (2021, February 18). Microsoft Internal Solorigate Investigation – Final Update. Retrieved May 14, 2021. ↩↩
-
MSTIC. (2020, December 18). Analyzing Solorigate, the compromised DLL file that started a sophisticated cyberattack, and how Microsoft Defender helps protect customers . Retrieved January 5, 2021. ↩↩↩↩↩
-
NSA, FBI, DHS. (2021, April 15). Russian SVR Targets U.S. and Allied Networks. Retrieved April 16, 2021. ↩↩
-
SolarWinds. (2020, December 24). SolarWinds Security Advisory. Retrieved February 22, 2021. ↩
-
Sudhakar Ramakrishna . (2021, January 11). New Findings From Our Investigation of SUNBURST. Retrieved January 13, 2021. ↩↩
-
UK NCSC. (2021, April 15). UK and US call out Russia for SolarWinds compromise. Retrieved April 16, 2021. ↩↩
-
Unit 42. (2020, December 23). SolarStorm Supply Chain Attack Timeline. Retrieved March 24, 2023. ↩
-
MSRC. (2020, December 13). Customer Guidance on Recent Nation-State Cyber Attacks. Retrieved December 30, 2020. ↩↩↩↩
-
Nafisi, R., Lelli, A. (2021, March 4). GoldMax, GoldFinder, and Sibot: Analyzing NOBELIUM’s layered persistence. Retrieved March 8, 2021. ↩↩↩↩↩
-
Smith, L., Leathery, J., Read, B. (2021, March 4). New SUNSHUTTLE Second-Stage Backdoor Uncovered Targeting U.S.-Based Entity; Possible Connection to UNC2452. Retrieved March 12, 2021. ↩
-
Microsoft 365 Defender Team. (2020, December 28). Using Microsoft 365 Defender to protect against Solorigate. Retrieved January 7, 2021. ↩↩↩↩↩↩
-
MSTIC, CDOC, 365 Defender Research Team. (2021, January 20). Deep dive into the Solorigate second-stage activation: From SUNBURST to TEARDROP and Raindrop . Retrieved January 22, 2021. ↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩↩
-
CrowdStrike Intelligence Team. (2021, January 11). SUNSPOT: An Implant in the Build Process. Retrieved January 11, 2021. ↩↩
-
Symantec Threat Hunter Team. (2021, January 18). Raindrop: New Malware Discovered in SolarWinds Investigation. Retrieved January 19, 2021. ↩↩↩
-
NCSC, CISA, FBI, NSA. (2021, May 7). Further TTPs associated with SVR cyber actors. Retrieved July 29, 2021. ↩↩↩↩↩↩↩
-
Secureworks CTU. (n.d.). IRON RITUAL. Retrieved February 24, 2022. ↩↩↩↩
-
Microsoft Threat Intelligence Center. (2021, October 25). NOBELIUM targeting delegated administrative privileges to facilitate broader attacks. Retrieved March 25, 2022. ↩
-
Check Point Research. (2020, December 22). SUNBURST, TEARDROP and the NetSec New Normal. Retrieved January 6, 2021. ↩
-
Stephen Eckels, Jay Smith, William Ballenthin. (2020, December 24). SUNBURST Additional Technical Details. Retrieved January 6, 2021. ↩
-
Symantec Threat Hunter Team. (2021, January 22). SolarWinds: How Sunburst Sends Data Back to the Attackers. Retrieved January 22, 2021. ↩