# SUNSPOT
> [!info] Identidade do Malware
> **Tipo:** implante de build server · **MITRE:** [S0562](https://attack.mitre.org/software/S0562) · **Grupo:** [[g0016-apt29|APT29]] (Cozy Bear / SVR)
> **Plataformas:** Windows · **Período ativo:** fevereiro 2020 - dezembro 2020
> **Campanha:** [[solarwinds-supply-chain|SolarWinds Supply Chain Attack]] - um dos maiores ataques de supply chain da historia
## Visão Geral
[[s0562-sunspot|SUNSPOT]] e o componente mais insidioso do ataque SolarWinds de 2020 operado pelo [[g0016-apt29|APT29]] - um implante que nao ataca vitimas diretamente, mas compromete o PROCESSO DE BUILD do software SolarWinds Orion para injetar o backdoor [[s0559-sunburst|SUNBURST]] no código-fonte durante a compilacao. Esta técnica de supply chain ([[t1195-002-compromise-software-supply-chain|T1195.002]]) garantiu que updates legitimos e assinados digitalmente do Orion distribuissem automaticamente o [[s0559-sunburst|SUNBURST]] para ~18.000 organizacoes clientes.
O SUNSPOT ficou ativo no ambiente de build da SolarWinds por pelo menos 10 meses (outubro 2019 a dezembro 2020) sem detecção - uma demonstracao de paciencia operacional excepcional caracteristica do [[g0016-apt29|APT29]]. Quando o processo `MsBuild.exe` era detectado compilando o Orion, o SUNSPOT substituia temporiamente um arquivo de código-fonte por uma versao com o [[s0559-sunburst|SUNBURST]] embutido - depois restaurava o original, sem rastros na base de código.
## Como Funciona
O SUNSPOT monitorava continuamente o servidor de build da SolarWinds aguardando o processo de compilacao do Orion:
1. **Monitoramento de processos** - usa CreateToolhelp32Snapshot/Process32First para monitorar continuamente todos os processos em execução ([[t1057-process-discovery|T1057]]), aguardando `MsBuild.exe` com argumentos específicos do Orion
2. **Substituicao de código-fonte** - quando o processo correto e detectado, substitui o arquivo `InventoryManager.cs` por uma versao maliciosa contendo o código do [[s0559-sunburst|SUNBURST]] ([[t1565-001-stored-data-manipulation|T1565.001]])
3. **Aguarda conclusao do build** - monitora o build usando mutex ([[t1480-002-mutual-exclusion|T1480.002]]) para saber quando a compilacao terminou
4. **Restauracao e limpeza** - restaura o arquivo original e remove evidências ([[t1070-004-file-deletion|T1070.004]]), deixando a base de código aparentemente intacta
5. **Guardrails de execução** - verifica condicoes específicas antes de agir ([[t1480-execution-guardrails|T1480]]) para evitar ativacao em ambientes de análise ou fora do contexto correto
6. **Ofuscacao** - o código do SUNSPOT e obfuscado ([[t1027-obfuscated-files-or-information|T1027]]) e nomeado para parecer um componente legitimo do sistema ([[t1036-005-match-legitimate-resource-name-or-location|T1036.005]])
Esta técnica e fundamentalmente diferente de outros ataques de supply chain: o SUNSPOT nao compromete repositorios de código, mas o PROCESSO de build em tempo real - tornando-o invisivel para code review, git diff e comparacoes de hash de código-fonte.
## Attack Flow
```mermaid
graph TB
A["Comprometimento do ambiente SolarWinds<br/>Acesso ao servidor de build Orion<br/>APT29 - acesso inicial pre-2020"] --> B["SUNSPOT implantado<br/>no servidor de build<br/>Monitoramento continuo T1057"]
B --> C["MsBuild.exe detectado<br/>Compilando SolarWinds.Orion.Core.BusinessLayer<br/>Condicao ativada"]
C --> D["Substituicao InventoryManager.cs<br/>Versao maliciosa com SUNBURST<br/>T1565.001 stored data manipulation"]
D --> E["Build completado normalmente<br/>Binario assinado digitalmente SolarWinds<br/>SUNBURST embutido com legitim"]
E --> F["Arquivo original restaurado<br/>Remoção de evidencias T1070.004<br/>Base de código aparentemente intacta"]
F --> G["Updaté Orion distribuido<br/>18.000 organizacoes infectadas<br/>T1195.002 supply chain"]
classDef access fill:#e74c3c,color:#fff
classDef implant fill:#e67e22,color:#fff
classDef trigger fill:#f39c12,color:#fff
classDef inject fill:#27ae60,color:#fff
classDef build fill:#3498db,color:#fff
classDef cleanup fill:#9b59b6,color:#fff
classDef distribute fill:#2c3e50,color:#fff
class A access
class B implant
class C trigger
class D inject
class E build
class F cleanup
class G distribute
```
**Legenda:** [[g0016-apt29|APT29]] - [[t1195-002-compromise-software-supply-chain|T1195.002]] - [[s0559-sunburst|SUNBURST]] - [[solarwinds-supply-chain|SolarWinds Supply Chain]]
## Timeline do Ataque SolarWinds
```mermaid
timeline
title SUNSPOT e SolarWinds Supply Chain - 2019-2021
Out 2019 : APT29 compromete rede SolarWinds
: Testes iniciais de SUNSPOT
Fev 2020 : SUNSPOT plenamente operacional
: Injeta SUNBURST no Orion 2019.4
Mar 2020 : Primeiro update Orion malicioso
: SolarWinds Orion 2019.4.5200.9083
Jun 2020 : Updates maliciosos continuados
: Versao 2020.2.1 infectada
Dez 2020 : FireEye detecta SUNBURST
: Investigação SolarWinds iniciada
: CrowdStrike identifica SUNSPOT
Ján 2021 : Microsoft, CISA, NSA emitem avisos
: 100+ organizacoes confirmadas comprometidas
Mar 2021 : Relatorio completo Mandiant/FireEye
: 9 agencias US federais afetadas
```
## Técnicas Utilizadas (MITRE ATT&CK)
| Técnica | ID | Descrição |
|---------|-----|-----------|
| Supply Chain Compromise | [[t1195-002-compromise-software-supply-chain\|T1195.002]] | Injecao de backdoor no processo de build |
| Stored Data Manipulation | [[t1565-001-stored-data-manipulation\|T1565.001]] | Substituicao de arquivo de código-fonte |
| Process Discovery | [[t1057-process-discovery\|T1057]] | Monitoramento de MsBuild.exe |
| Execution Guardrails | [[t1480-execution-guardrails\|T1480]] | Ativacao apenas em condicoes específicas |
| Mutual Exclusion | [[t1480-002-mutual-exclusion\|T1480.002]] | Mutex para controle de timing do build |
| File Deletion | [[t1070-004-file-deletion\|T1070.004]] | Remoção de evidências após injecao |
| Obfuscation | [[t1027-obfuscated-files-or-information\|T1027]] | Código SUNSPOT ofuscado |
| Masquerading | [[t1036-005-match-legitimate-resource-name-or-location\|T1036.005]] | Disfarce como componente legitimo |
| File Discovery | [[t1083-file-and-directory-discovery\|T1083]] | Busca de arquivos de build para substituir |
| Token Manipulation | [[t1134-access-token-manipulation\|T1134]] | Elevação de privilegios no servidor |
## Relevância LATAM/Brasil
O [[s0562-sunspot|SUNSPOT]] representa o templaté mais sofisticado de ataque a cadeia de suprimentos de software registrado. Para o Brasil:
- **Fornecedores de software governamental** - empresas brasileiras como TOTVS, SENIOR, Linx e outras que fornecem software para governo federal, estados e municipios sao alvos analogos ao SolarWinds - um comprometimento de build server poderia distribuir malware para milhares de clientes
- **Integradores de TI** - empresas que distribuem updates de sistemas criticos (energia, saúde, financeiro) via pipelines automatizados sao vulneraveis ao mesmo modelo
- **Ambiente de build da Petrobras, Embraer e bancos** - organizacoes que desenvolvem software proprietario critico devem avaliar a segurança de seus pipelines CI/CD como vetores de ataque
- **Dependências de software importado** - o Brasil usa amplamente softwares de gestao e monitoramento importados; um ataque de supply chain equivalente ao SolarWinds afetaria diretamente organizacoes brasileiras
A técnica do SUNSPOT ensina que CODE REVIEW e HASH VERIFICATION do código-fonte NAO sao suficientes - o comprometimento ocorreu no processo de build, DEPOIS do código-fonte mas ANTES do binario final.
## Detecção
**Fontes de dados recomendadas:**
- **Build server monitoring:** processos acessando arquivos de código-fonte (`.cs`, `.cpp`, `.java`) DURANTE execução de `MSBuild.exe` ou equivalente - substituicao em tempo real
- **File integrity monitoring:** hashes de arquivos de código-fonte verificados antes E após execução de builds - inconsistencias indicam manipulação
- **Process creation events:** processos nao reconhecidos com `CreateToolhelp32Snapshot` em servidores de build - comportamento tipico do SUNSPOT
- **Mutex monitoring:** criação de named mutexes por processos do sistema em servidores de build - mecanismo de sincronizacao do SUNSPOT
**Regras de detecção:**
- **Build pipeline integrity:** implementar checksums de todos os source files antes e após cada build, alertando em qualquer diferenca
- **YARA:** strings caracteristicas do SUNSPOT - nomes de mutexes hard-coded, patterns de process enumeration específicos
- **CI/CD hardening:** builds devem ocorrer em ambientes efemeros (containers), com código-fonte em read-only mounts e auditoria completa de file access durante compilacao
## Referências
- [1](https://attack.mitre.org/software/S0562) MITRE ATT&CK - S0562 SUNSPOT (2024)
- [2](https://www.crowdstrike.com/blog/sunspot-malware-technical-analysis/) CrowdStrike - SUNSPOT: An Implant in the Build Process (2021)
- [3](https://www.mandiant.com/resources/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor) Mandiant - Evasive Attacker Leverages SolarWinds Supply Chain Compromises (2020)
- [4](https://www.solarwinds.com/securityadvisory) SolarWinds - Security Advisory (2020)
- [5](https://us-cert.cisa.gov/ncas/alerts/aa20-352a) CISA - Advanced Persistent Threat Compromise of Government Agencies (2020)
- [6](https://www.microsoft.com/en-us/security/blog/2021/01/20/deep-dive-into-the-solorigaté-second-stage-activation-from-sunburst-to-teardrop-and-raindrop/) Microsoft - Deep dive into the Solorigaté second-stage activation (2021)