# T1480 - Execution Guardrails > [!info] Técnica Pai > T1480 é a técnica-raiz para [[t1480-001-environmental-keying|T1480.001 - Environmental Keying]] e [[t1480-002-mutual-exclusion|T1480.002 - Mutual Exclusion]]. Adversários usam verificações ambientais para garantir que payloads só executem no alvo pretendido, reduzindo exposição e colateral. ## Descrição **Execution Guardrails** (Guardas de Execução) é uma técnica pela qual adversários condicionam a execução de um payload a verificações específicas do ambiente-alvo. Em vez de executar incondicionalmente, o malware consulta características do sistema - nome do host, domínio Active Directory, endereço IP, arquivos presentes, dispositivos físicos conectados, variáveis de ambiente, idioma do sistema operacional - e só prossegue se os valores conferem com os esperados. O objetivo central é a **contenção operacional**: o agente de ameaça desejá que sua ferramenta funcione exclusivamente no ambiente-alvo, evitando execução acidental em sistemas de análise, sandboxes de fornecedores de segurança, ou redes de terceiros. Ao contrário da [[Sandbox Evasion]] - que busca *ausência* de indicadores de sandbox - o Execution Guardrails busca a *presença* de marcadores específicos do alvo. Essa distinção é operacionalmente relevante para equipes de defesa: um artefato com guardas de execução pode passar completamente silencioso em um sandbox genérico (retornando código de saída 0 sem atividade maliciosa) e somente detonar no sistema correto. Isso torna a análise dinâmica em ambientes não-customizados práticamente ineficaz contra ameaças avançadas que empregam esta técnica. Além de verificações locais, adversários também podem filtrar **user-agents HTTP** em estágios de download ou C2, servindo payloads maliciosos apenas para agentes compatíveis (por exemplo, apenas Internet Explorer no Windows 7 em empresas industriais) enquanto respondem com conteúdo benigno para outros. Esse padrão é comum em campanhas de watering hole direcionadas. ## Como Funciona O fluxo de um payload com Execution Guardrails segue tipicamente quatro fases: 1. **Coleta de fingerprint ambiental** - O loader ou dropper coleta múltiplos atributos do host: hostname, domínio AD, SID do usuário, IP local, volume serial do disco, arquivos específicos em caminhos conhecidos, processos em execução, keys de registro, idioma do sistema. 2. **Verificação contra valores esperados** - Os valores coletados são comparados com constantes hardcoded, hashes de valores esperados (para evitar strings plaintext), ou válidados via criptografia (Environmental Keying - [[t1480-001-environmental-keying|T1480.001]]). 3. **Decisão de execução** - Se todos os critérios forem satisfeitos: executa o payload principal. Se falhar em qualquer critério: o programa termina normalmente, apaga rastros ou simula comportamento benigno. 4. **Mutex como guarda** - Em cenários de múltiplas infecções, um mutex global ([[t1480-002-mutual-exclusion|T1480.002]]) impede que o payload execute mais de uma instância no mesmo host, evitando duplicatas que poderiam acionar alertas de comportamento. ### Exemplos de verificações comuns | Tipo de Guarda | Exemplo | Propósito | |---------------|---------|-----------| | Hostname | `DESKTOP-FINANC01` | Garantir execução em host específico | | Domínio AD | `corp.empresa.com.br` | Restringir a redes corporativas | | IP local | `192.168.10.0/24` | Limitar à subnet alvo | | Arquivo sentinela | `C:\ProgramData\app\config.dat` | Token de autorização local | | Idioma do SO | `pt-BR` / `0x0416` | Targeting geográfico | | Volume serial | Hash do disco C: | Environmental Keying | | Mutex | `Global\{GUID}` | Anti-duplicata | | User-Agent | `Mozilla/5.0 (Windows NT 6.1; Trident/7.0)` | Filtro de watering hole | ## Attack Flow ```mermaid graph TB A([Adversário entrega payload]) --> B{Verificação de Ambiente} B --> C[Coleta fingerprint do host] C --> C1[Hostname / Domínio AD] C --> C2[IP local / subnet] C --> C3[Arquivos / Registry keys] C --> C4[Idioma do SO / Timezone] C --> C5[Volume serial do disco] C1 & C2 & C3 & C4 & C5 --> D{Valores batem com alvo?} D -->|NÃO| E[Encerra silenciosamente] E --> E1[Simula comportamento benigno] E --> E2[Auto-deleta artefatos] D -->|SIM| F{Mutex presente?} F -->|SIM - já rodando| G[Aborta instância duplicada] F -->|NÃO| H[Cria mutex T1480.002] H --> I[Executa payload principal] I --> J[C2 / Lateral Movement] I --> K[Exfiltração de dados] I --> L[Ransomware / Destruição] style A fill:#c0392b,color:#fff style D fill:#e67e22,color:#fff style F fill:#e67e22,color:#fff style E fill:#27ae60,color:#fff style I fill:#8e44ad,color:#fff style J fill:#2980b9,color:#fff style K fill:#2980b9,color:#fff style L fill:#2980b9,color:#fff ``` ## Exemplos de Uso ### Gamaredon Group - Operações contra a Ucrânia O [[g0047-gamaredon|Gamaredon Group]] (atribuído ao FSB russo) utiliza extensivamente guardas de execução baseadas em verificação de domínio Active Directory. Seus droppers VBS e PowerShell verificam se o host está ingressado em domínios `.ua` ou em organizações governamentais ucranianas específicas antes de baixar estágios adicionais. Scripts coletados em 2022-2024 apresentam verificações do tipo `If (domain LIKE "*.gov.ua")` antes de prosseguir. Isso explica a baixa taxa de detecção em análises genéricas e a alta efetividade contra alvos governamentais. ### BlackByte Ransomware - Verificação de idioma O [[g1043-blackbyte|BlackByte]] implementou uma guarda de execução que verifica o idioma configurado no Windows (LCID). Se o sistema está configurado com idiomas da CEI (Rússia, Ucrânia, Bielorrússia, Cazaquistão, etc.), o ransomware não executa - um padrão comum entre grupos de ransomware do leste europeu para evitar processos criminais locais. Esta verificação usa `GetSystemDefaultLCID()` e compara com lista hardcoded. ### Contagious Interview - Watering hole com User-Agent A campanha [[g1052-contagious-interview|Contagious Interview]] (atribuída à Coreia do Norte / Lazarus) distribui payloads JavaScript em plataformas de recrutamento. O servidor C2 verifica o User-Agent da vítima antes de servir o payload malicioso - apenas navegadores em sistemas macOS ou Windows com versões específicas recebem o código de exploração. Navegadores de análise ou headless browsers recebem JS benigno. ### DEADEYE / APT41 - Environmental Keying O [[s1052-deadeye|DEADEYE]], loader utilizado pelo [[g0096-apt41|APT41]], emprega Environmental Keying ([[t1480-001-environmental-keying|T1480.001]]): parte do payload é cifrada com uma chave derivada de atributos do host-alvo (ex: volume serial). Apenas o sistema correto consegue derivar a chave e decifrar o código real. Em análise dinâmica em sandbox, o resultado é apenas ruído criptográfico. ### RansomHub / DarkGaté - Mutex anti-duplicata Tanto o [[s1212-ransomhub|RansomHub]] quanto o [[darkgaté|DarkGaté]] criam mutexes globais com GUIDs específicos da campanha como guardas de execução. Isso serve dois propósitos: evitar re-infecção do mesmo host (o que poderia degradar o desempenho e acionar alertas) e funcionar como kill switch - operadores podem "queimar" o mutex públicando-o para que o malware encerre sozinho em sistemas já comprometidos ou em análise. ## Detecção > [!warning] Limitações de Detecção > Por design, Execution Guardrails resulta em **nenhuma atividade maliciosa detectável** quando o ambiente não corresponde ao alvo. Sandboxes genéricos são ineficazes. A detecção efetiva requer análise comportamental em ambientes que repliquem fielmente o ambiente-alvo, ou análise estática do código de verificação. ### Regra Sigma - Verificação de Idioma do Sistema ```yaml title: Suspicious System Language Check Before Execution id: a7f3e291-4b52-4c18-9d3e-f8a1c2b56d90 status: experimental description: > Detecta processos consultando o idioma/locale do sistema operacional seguidos de comportamento de rede ou escrita de arquivos - padrão de Execution Guardrails baseado em targeting geográfico. references: - https://attack.mitre.org/techniques/T1480/ author: RunkIntel daté: 2026-03-25 tags: - attack.defense_evasion - attack.t1480 logsource: category: process_creation product: windows detection: selection_locale_check: CommandLine|contains: - 'GetSystemDefaultLCID' - 'GetUserDefaultLCID' - 'GetLocaleInfo' - 'SystemLocale' selection_suspicious_parent: ParentImage|endswith: - '\wscript.exe' - '\cscript.exe' - '\mshta.exe' - '\powershell.exe' - '\cmd.exe' condition: selection_locale_check and selection_suspicious_parent falsepositives: - Aplicações legítimas de internacionalização - Instaladores com suporte multi-idioma level: medium ``` ### Regra Sigma - Criação de Mutex Suspeito ```yaml title: Global Mutex Creation as Execution Guardrail id: b9c4d782-5e63-4f29-8a7b-1d2e9f3c0a85 status: experimental description: > Detecta criação de mutexes globais com nomes baseados em GUIDs ou strings aleatórias - padrão associado ao T1480.002 (Mutual Exclusion) como guarda de execução de ransomware e loaders. references: - https://attack.mitre.org/techniques/T1480/002/ author: RunkIntel daté: 2026-03-25 tags: - attack.defense_evasion - attack.t1480 - attack.t1480.002 logsource: product: windows category: registry_event detection: selection_mutex: ObjectName|startswith: '\BaseNamedObjects\Global\' ObjectName|re: '.*[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}.*' filter_legitimate: Image|startswith: - 'C:\Program Files\' - 'C:\Windows\System32\' condition: selection_mutex and not filter_legitimate falsepositives: - Software legítimo usando GUIDs para instâncias únicas level: low ``` ### Estrategias de Detecção Complementares | Abordagem | Método | Eficácia | |-----------|--------|---------| | Análise estática | Extrair strings hardcoded de hostnames/domínios | Alta para samples não ofuscados | | Sandbox personalizado | Replicar ambiente-alvo (hostname, domínio, IP) | Alta quando target conhecido | | EDR comportamental | Detectar queries de `GetComputerName`, `GetDomainInfo` sem ação subsequente | Média | | Honeypot | Hospedar arquivos sentinela e monitorar acesso | Alta para guardas baseadas em arquivo | | Network IDS | Filtrar servidores que servem conteúdo diferente por User-Agent | Média para watering holes | ## Mitigação | ID | Mitigação | Implementação | Eficácia | |---|-----------|--------------|---------| | [[m1055-do-not-mitigaté\|M1055 - Do Not Mitigaté]] | Por design, as verificações ambientais são indistinguíveis de comportamento legítimo | Foco deve ser em detecção e análise estática | Baixa | > [!tip] Abordagem Recomendada > Como mitigação direta é classificada como não aplicável (M1055), a estratégia deve focar em: > - **Análise estática** de artefatos suspeitos para identificar código de verificação ambiental > - **Sandboxes customizados** que repliquem o ambiente de produção (hostname, domínio, IP) > - **Redução de superfície**: remover informações do ambiente de variáveis de ambiente públicas > - **Zero Trust**: assumir comprometimento possível independente de verificações do atacante ## Sub-técnicas - [[t1480-001-environmental-keying|T1480.001 - Environmental Keying]] - [[t1480-002-mutual-exclusion|T1480.002 - Mutual Exclusion]] ## Contexto Brasil/LATAM A técnica T1480 tem relevância crescente no contexto brasileiro, especialmente por três vetores: **Ransomware com verificação de idioma:** Grupos como [[g1043-blackbyte|BlackByte]], [[s1212-ransomhub|RansomHub]] e variantes do [[lockbit|LockBit]] verificam o LCID do sistema. O código de idioma do Brasil (`0x0416` - Português do Brasil) *não está* nas listas de exclusão de grupos russos/europeus orientais, o que significa que empresas brasileiras são alvos válidos mesmo nessas campanhas. O setor [[_sectors|financeiro]] e de infraestrutura crítica são os mais afetados. **Campanhas de espionagem industrial:** Adversários com interesse em empresas do setor de [[energy|energia]] e [[government|governo]] no Brasil têm usado verificações de domínio AD para garantir execução apenas em redes corporativas específicas. Esse padrão foi documentado em incidentes envolvendo o setor de petróleo e gás na região. **Watering holes setoriais:** Portais de notícias do setor financeiro brasileiro e plataformas de licitação governamental foram usados como staging para watering holes com filtro de User-Agent - servindo exploits apenas para versões específicas de browsers corporativos comuns em empresas brasileiras. **Implicação para SOCs locais:** Sandboxes genéricos (Cuckoo, Any.Run sem configuração) falham sistematicamente contra amostras com guardas ambientais. SOCs brasileiros devem: 1. Manter perfis de sandbox que repliquem ambientes corporativos locais (domínios `.com.br`, hostnames padrão, IPs de ASNs brasileiros) 2. Integrar análise estática via [[hybridanalysis-client|Hybrid Analysis]] para identificar verificações hardcoded 3. Correlacionar alertas de `GetComputerName` / `NetGetJoinInformation` sem ação maliciosa subsequente ## Referências - [MITRE ATT&CK - T1480 Execution Guardrails](https://attack.mitre.org/techniques/T1480/) - [MITRE ATT&CK - T1480.001 Environmental Keying](https://attack.mitre.org/techniques/T1480/001/) - [MITRE ATT&CK - T1480.002 Mutual Exclusion](https://attack.mitre.org/techniques/T1480/002/) - [Mandiant - APT41 DEADEYE Loader Analysis](https://www.mandiant.com/resources/blog/apt41-us-state-governments) - [BlackByte Ransomware Language Check - Sophos](https://news.sophos.com/en-us/2022/01/17/blackbyte-ransomware-bypasses-uac-exploits-legitimate-driver/) - [Gamaredon Group TTPs - CERT-UA](https://cert.gov.ua/article/18419) - [RansomHub Technical Analysis - GuidePoint Security](https://www.guidepointsecurity.com/blog/threat-intel-ransomhub-raas/) --- **Técnica pai:** Não aplicável (T1480 é técnica de nível 1) **Sub-técnicas:** [[t1480-001-environmental-keying|T1480.001 - Environmental Keying]] · [[t1480-002-mutual-exclusion|T1480.002 - Mutual Exclusion]] **Tática:** [[_defense-evasion|Defense Evasion]] *Fonte: [MITRE ATT&CK - T1480](https://attack.mitre.org/techniques/T1480)*