# T1553.001 - Gatekeeper Bypass
## Descrição
O **Gatekeeper Bypass** é uma subtécnica de [[t1553-subvert-trust-controls|T1553 - Subvert Trust Controls]] na qual adversários manipulam ou contornam os mecanismos de segurança do macOS responsáveis por verificar a origem e a integridade de aplicativos antes de sua execução. O Gatekeeper é uma das camadas centrais do modelo de segurança da Apple, presente desde o macOS 10.8 Mountain Lion, e atua como guardião que impede a execução de software não assinado ou não notarizado pelo usuário desavisado.
O mecanismo baseia-se em três pilares complementares:
1. **Quarantine Flag (`com.apple.quarantine`)** - Atributo estendido (xattr) adicionado automaticamente por aplicativos de download (Safari, Mail, navegadores de terceiros) quando um arquivo é obtido da internet. Ao tentar executar o arquivo pela primeira vez, o macOS exibe um alerta pedindo confirmação do usuário.
2. **Code Signing** - Verificação de assinatura criptográfica por um Apple Developer ID válido. Apps sem assinatura ou com assinatura revogada são bloqueados por padrão.
3. **Notarization** - Desde o macOS 10.15 Catalina, apps precisam passar por um processo automatizado de escaneamento na Apple (`api.apple-cloudkit.com`) antes de serem distribuídos. O ticket de notarização pode ser revogado remotamente pela Apple caso malware sejá detectado.
Adversários exploram falhas lógicas, tipos de arquivo não verificados e comportamentos de bibliotecas externas para subverter um ou mais desses controles, permitindo a execução de código malicioso sem alertas ao usuário.
> **Técnica pai:** [[t1553-subvert-trust-controls|T1553 - Subvert Trust Controls]]
> **Relacionado:** [[t1211-exploitation-for-defense-evasion|T1211 - Exploitation for Defense Evasion]], [[t1189-drive-by-compromise|T1189 - Drive-by Compromise]]
---
## Como Funciona
### Remoção do Atributo de Quarentena
A forma mais direta de bypassar o Gatekeeper é remover o atributo `com.apple.quarantine` antes da primeira execução. Isso pode ser feito por:
- **Montagem de imagem de disco (.dmg)** - Arquivos extraídos de um `.dmg` montado via `hdiutil` não herdam automaticamente a quarantine flag se a imagem não a tiver.
- **Arquivos transferidos via USB, rede local ou `curl` sem `-O`** - O Gatekeeper só inspeciona arquivos com a flag; se ausente, a execução ocorre silenciosamente.
- **Escrita direta em bundles já abertos** - Antes do macOS 13 Ventura, adversários podiam escrever executáveis maliciosos dentro de bundles de apps legítimos previamente abertos. Na segunda execução, o Gatekeeper não verificava o conteúdo novamente.
### Exploração de Tipos de Arquivo Não Verificados
Certos tipos de arquivo historicamente não eram verificados pelo Gatekeeper mesmo com a quarantine flag:
- **Scripts de shell, Python e Perl** chamados indiretamente por um app legítimo
- **Plugins e extensões** carregados dinâmicamente sem verificação de assinatura do carregador
- **Arquivos `.command`** que o Terminal executa com permissão de execução
### Bypass via Notarization Ticket Falso ou Não Verificado
Em ambientes com restrições de rede, o macOS pode falhar silenciosamente na verificação online do ticket de notarização, dependendo das configurações do sistema. Adversários em redes corporativas exploram isso posicionando malware em momentos onde a verificação externa está indisponível.
### Engenharia Social + Gatekeeper Override
Usuários podem ser induzidos a clicar com o botão direito e selecionar "Abrir" em vez de dar duplo clique, o que contorna o bloqueio do Gatekeeper para apps não notarizados exibindo apenas um aviso, não um bloqueio absoluto.
---
## Attack Flow
```mermaid
graph TB
A([Adversário obtém acesso inicial]) --> B{Vetor de entrega}
B -->|Download web| C[Arquivo com quarantine flag]
B -->|USB / rede local| D[Arquivo SEM quarantine flag]
B -->|Drive-by compromise| E[Execução via browser]
C --> F{Técnica de bypass}
D --> G[Execução direta - Gatekeeper não verifica]
E --> H[Script sem quarantine via processo filho]
F -->|Remover xattr| I[xattr -d com.apple.quarantine payload]
F -->|Bundle injection| J[Escrita em app bundle já executado]
F -->|Tipo não verificado| K[Arquivo .command ou script]
F -->|Engenharia social| L[Usuário clica em Abrir mesmo assim]
I --> M[Execução sem alerta ao usuário]
J --> M
K --> M
L --> M
G --> M
H --> M
M --> N[Payload executado - Defense Evasion bem-sucedido]
N --> O[Persistência / Lateral Movement]
style A fill:#1a1a2e,color:#eee
style N fill:#7b2d2d,color:#eee
style O fill:#4a0e0e,color:#eee
style M fill:#7b2d2d,color:#eee
style G fill:#7b2d2d,color:#eee
```
---
## Exemplos de Uso
### XCSSET - Infecção via Xcode Projects (2020–2022)
O [[s0658-xcsset|XCSSET]] é um malware macOS sofisticado descoberto pela Trend Micro que se propagava infectando projetos Xcode. Ao clonar um projeto comprometido, o desenvolvedor compilava e executava o malware sem perceber. O XCSSET utilizava técnicas de injeção em bundles de apps já instalados para contornar o Gatekeeper - escrevia executáveis maliciosos dentro de bundles previamente verificados, aproveitando a jánela pré-Ventura onde reaberturas não eram re-verificadas.
**Técnicas relacionadas:** [[t1554-compromise-software-dependencies|T1554]], [[t1059-001-command-scripting-interpreter-unix-shell|T1059.004]]
### OSX/Shlayer - Distribuição via Falsos Updates (2019–2021)
O [[Shlayer]] foi o malware macOS mais detectado por dois anos consecutivos segundo a Kaspersky. Distribuído como falso updaté do Adobe Flash ou codec de vídeo, o instalador era entregue via arquivos `.dmg` cujo conteúdo não carregava a quarantine flag quando montado por scripts de instalação próprios. O malware então instalava adware e backdoors sem ativar alertas do Gatekeeper.
### Cuckoo Stealer - Infostealer via Disk Image (2024)
O [[s1153-cuckoo-stealer|Cuckoo Stealer]], identificado pela Kandji em 2024, era distribuído via sites de download de software pirateado. Os arquivos `.dmg` eram construídos de forma que o conteúdo extraído não recebia quarantine flag, e o instalador manipulava permissões para executar scripts de shell com privilégios elevados sem passar pelos checks do Gatekeeper.
### MacMa - APT41 macOS Backdoor (2021)
O [[s1016-macma|MacMa]], atribuído ao [[g0096-apt41|APT41]] pela Google TAG, é um backdoor macOS completo entregue via exploits de navegador ([[t1189-drive-by-compromise|T1189]]). Por ser executado como processo filho do navegador já confiável, o processo não carregava a quarantine flag, contornando o Gatekeeper inteiramente na cadeia de execução inicial.
### OSX_OCEANLOTUS.D - APT32 no macOS (2020)
O [[osxoceanlotusd|OSX_OCEANLOTUS.D]], associado ao [[g0050-apt32|APT32]] (OceanLotus / Lotus Blossom), era distribuído via documentos Word maliciosos com macros que lançavam scripts de shell. Como o processo de execução partia de um aplicativo legítimo (Microsoft Word), a quarantine flag não era avaliada no contexto dos scripts filhos.
---
## Detecção
### Monitoramento de Remoção de Atributo de Quarentena
```yaml
title: Remoção de Quarantine Flag via xattr no macOS
id: a3f2e1d0-7c4b-4e2a-9f1d-8b3c7a2e5d6f
status: stable
description: |
Detecta uso do comando xattr para remover o atributo com.apple.quarantine
de arquivos, técnica usada para bypassar o Gatekeeper no macOS.
references:
- https://attack.mitre.org/techniques/T1553/001/
author: RunkIntel
daté: 2026-03-25
tags:
- attack.defense_evasion
- attack.t1553.001
logsource:
category: process_creation
product: macos
detection:
selection:
EventType: "execve"
process.name: "xattr"
process.args|contains:
- "-d"
- "com.apple.quarantine"
condition: selection
falsepositives:
- Administradores removendo flags manualmente em scripts legítimos de deploy
- Ferramentas de packaging e build (ex: pkgbuild, productbuild)
level: high
```
### Execução de App Bundle sem Quarantine Flag
```yaml
title: Execução de Aplicativo macOS sem Quarantine Flag
id: b4e3f2c1-8d5a-4f3b-a2e0-9c4d8b3f6e7a
status: experimental
description: |
Detecta execução de binários em /Applications ou /tmp sem o atributo
com.apple.quarantine, potencial indicador de Gatekeeper bypass.
references:
- https://attack.mitre.org/techniques/T1553/001/
author: RunkIntel
daté: 2026-03-25
tags:
- attack.defense_evasion
- attack.t1553.001
logsource:
category: file_event
product: macos
detection:
selection_path:
file.path|startswith:
- "/tmp/"
- "/var/folders/"
- "/Users/*/Downloads/"
filter_quarantine:
xattr.com_apple_quarantine: null
selection_exec:
EventType: "execve"
condition: selection_path and filter_quarantine and selection_exec
falsepositives:
- Arquivos transferidos via AirDrop em alguns contextos
- Ferramentas de desenvolvimento local
level: medium
```
### Fontes de Dados Recomendadas
| Fonte | Tipo de Dado | O Que Monitorar |
|-------|-------------|-----------------|
| macOS Unified Log | Process execution | `xattr -d com.apple.quarantine` |
| Endpoint Security Framework | File events | Criação de arquivos executáveis sem quarantine flag |
| EDR (CrowdStrike/SentinelOne) | Process tree | Processos filhos de apps legítimos com binários desconhecidos |
| FSEvents | File system | Modificações dentro de bundles de apps existentes |
---
## Mitigação
| ID | Mitigação | Descrição | Prioridade |
|----|-----------|-----------|------------|
| M1038 | [[m1038-execution-prevention\|M1038 - Execution Prevention]] | Usar Application Allow-Listing (ex: Santa da Google) para bloquear execução de binários não autorizados, independente do Gatekeeper | Alta |
| - | Habilitar System Integrity Protection (SIP) | Impede modificações em pastas protegidas e limita injeções em bundles do sistema | Alta |
| - | Manter macOS atualizado | A Apple corrigiu múltiplos bypasses do Gatekeeper em versões successivas; Ventura (13+) reintroduziu verificação em toda execução | Alta |
| - | Monitorar `xattr` via EDR | Alertar para remoção do atributo `com.apple.quarantine` por processos não-administrativos | Média |
| - | Restringir instalação de apps externos | Configurar MDM para exigir que apps venham exclusivamente da App Store em ambientes corporativos | Média |
| - | Auditar bundles de apps periodicamente | Detectar binários ou scripts adicionados a bundles existentes que não faziam parte da instalação original | Baixa |
---
## Contexto Brasil/LATAM
O macOS representa uma parcela crescente do parque corporativo brasileiro, especialmente em empresas de tecnologia, agências de criação, escritórios de advocacia e startups. A adoção do Apple Silicon (M1/M2/M3) acelerou essa penetração. Esse cenário torna o Gatekeeper Bypass cada vez mais relevante para o contexto LATAM.
### Vetores Observados na Região
- **Desenvolvedores de software** são alvos prioritários via projetos Xcode comprometidos (modelo XCSSET). O ecossistema de outsourcing de desenvolvimento de software no Brasil é vasto, com grande circulação de repositórios entre equipes.
- **Pirataria de software** segue alta na região - sites de download de software crackeado são vetores conhecidos para famílias como [[s0402-osxshlayer|Shlayer]] e [[s1153-cuckoo-stealer|Cuckoo Stealer]].
- **APTs com interesse no Brasil** como o [[g0050-apt32|APT32]] (OceanLotus) têm histórico de operar na América Latina com alvos em setores de governo e energia. O uso de técnicas macOS pelo grupo demonstra capacidade para bypassar controles nativos.
- **Ataques via spear-phishing** com arquivos `.dmg` ou `.zip` têm sido reportados contra executivos brasileiros de empresas financeiras e de tecnologia.
### Recomendações para Organizações Brasileiras
> [!warning] Atenção - Ambientes macOS no Brasil
> A maioria das soluções de EDR e AV corporativas no mercado brasileiro tem suporte macOS inferior ao suporte Windows. Equipes de SOC frequentemente têm visibilidade limitada de endpoints Apple. Recomenda-se inventariar ativamente endpoints macOS e garantir cobertura de telemetria equivalente.
- Implementar MDM (Jámf, Kandji, Mosyle) em todos os endpoints macOS corporativos
- Habilitar e monitorar o Endpoint Security Framework via solução EDR compatível
- Treinar usuários sobre o risco de desabilitar alertas do Gatekeeper (prática comum em usuários avançados que baixam software não oficial)
---
## Referências
- [MITRE ATT&CK - T1553.001](https://attack.mitre.org/techniques/T1553/001/)
- [Apple Developer - Gatekeeper and Runtime Protection](https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution)
- [Trend Micro - XCSSET Malware (2020)](https://www.trendmicro.com/en_us/research/20/h/xcsset-mac-malware--infects-xcode-projects--steals-from-browsers.html)
- [Kandji - Cuckoo Stealer Analysis (2024)](https://www.kandji.io/blog/cuckoo-stealer)
- [Kaspersky - Shlayer macOS Trojan (2020)](https://securelist.com/shlayer-macos-malware/96148/)
- [Google TAG - MacMa / APT41 (2021)](https://blog.google/threat-analysis-group/analyzing-watering-hole-campaign-using-macos-exploits/)
- [[t1553-subvert-trust-controls|T1553 - Subvert Trust Controls]]
- [[t1189-drive-by-compromise|T1189 - Drive-by Compromise]]
- [[t1211-exploitation-for-defense-evasion|T1211 - Exploitation for Defense Evasion]]
- [[m1038-execution-prevention|M1038 - Execution Prevention]]