# 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]]