# T1546.006 - LC_LOAD_DYLIB Addition
> [!abstract] Visão Geral
> **Tática:** Privilege Escalation / Persistence | **Plataforma:** macOS | **ID MITRE:** T1546.006
> Adversários modificam cabeçalhos Mach-O para carregar bibliotecas dinâmicas maliciosas toda vez que um binário legítimo é executado, estabelecendo persistência e potencialmente escalando privilégios no macOS.
## Descrição
A técnica **LC_LOAD_DYLIB Addition** explora a estrutura interna dos binários Mach-O, o formato executável nativo do macOS e do iOS. Binários Mach-O contêm uma série de cabeçalhos de carregamento (*load commands*) que instruem o sistema operacional sobre como preparar o processo antes da execução. O comando `LC_LOAD_DYLIB` específica quais bibliotecas dinâmicas (dylibs) devem ser carregadas e vinculadas ao binário em tempo de execução. Adversários exploram esse mecanismo inserindo referências a dylibs maliciosas diretamente nesses cabeçalhos, fazendo com que o código hostil sejá carregado automaticamente sempre que o binário alvo for executado - sejá pelo usuário, por um agendador de tarefas ou por outro processo do sistema.
A subtécnica está inserida na família [[t1546-event-triggered-execution|T1546 - Event Triggered Execution]], em que a execução maliciosa é acionada por eventos do sistema em vez de chamadas diretas. Ao injetar a dylib no cabeçalho do binário, o adversário garante que seu código sejá executado com exatamente o mesmo contexto de segurança do processo hospedeiro - o que pode incluir privilégios elevados caso o binário alvo sejá um aplicativo assinado da Apple, um utilitário do sistema ou um processo setuid. O uso de ferramentas como `insert_dylib` ou `optool` torna a operação acessível mesmo para atacantes com conhecimento técnico moderado.
Um aspecto crítico da técnica é a necessidade de contornar a verificação de assinatura de código (*code signing*). Qualquer modificação no binário inválida a assinatura digital existente; para remediar isso, os adversários frequentemente removem o comando `LC_CODE_SIGNATURE` do cabeçalho, impedindo que o sistema verifique a integridade do binário no momento do carregamento. Em combinação com [[t1553-bypass-user-account-control|técnicas de bypass de controles de integridade]], essa abordagem pode ser altamente eficaz em ambientes macOS onde a válidação de assinaturas não é enforçada por políticas de segurança adicionais, como o *System Integrity Protection* (SIP).
## Como Funciona
O formato **Mach-O** (Mach Object) é o formato de arquivo executável padrão do macOS. Cada binário Mach-O começa com um cabeçalho mágico seguido de uma sequência de *load commands* - estruturas que definem segmentos de código, dependências de bibliotecas, permissões de memória e outros atributos de carregamento. O `LC_LOAD_DYLIB` é um desses comandos, e cada instância aponta para o caminho de uma biblioteca que o *dynamic linker* (`dyld`) deve carregar quando o processo inicia.
O fluxo de ataque funciona da seguinte maneira:
1. **Identificação do alvo**: O adversário seleciona um binário Mach-O frequentemente executado - preferêncialmente um com privilégios elevados ou executado por múltiplos usuários. Aplicativos populares como navegadores, utilitários de sistema ou softwares corporativos são alvos comuns.
2. **Preparação da dylib maliciosa**: O adversário compila uma biblioteca dinâmica (`.dylib`) contendo o payload, sejá um backdoor, um downloader ou código de coleta de credenciais. A biblioteca pode ser projetada para executar o código malicioso em seu inicializador (`__attribute__((constructor))`), garantindo execução imediata no carregamento.
3. **Injeção do load command**: Usando ferramentas como `insert_dylib`, `optool` ou scripts personalizados em Python, o adversário adiciona um novo `LC_LOAD_DYLIB` ao cabeçalho do binário, apontando para o caminho da dylib maliciosa - geralmente em um diretório gravável pelo usuário, como `~/Library/` ou `/tmp/`.
4. **Remoção da assinatura**: Para evitar que o sistema rejeite o binário modificado, o adversário remove o `LC_CODE_SIGNATURE` ou utiliza ferramentas de re-assinatura ad-hoc (`codesign -f -s -`). Em sistemas sem SIP ativado ou com SIP parcialmente contornado, isso é suficiente.
5. **Execução persistente**: A próxima vez que o binário modificado for executado, o `dyld` carregará automaticamente a dylib maliciosa antes mesmo do código principal rodar, executando o payload com os privilégios do processo hospedeiro.
É importante notar que o *Hardened Runtime* da Apple e o SIP dificultam significativamente essa técnica em sistemas modernos e atualizados. No entanto, aplicativos de terceiros sem Hardened Runtime, binários legados e ambientes corporativos com configurações permissivas continuam vulneráveis.
## Attack Flow
```mermaid
graph TB
A["Reconhecimento<br/>Identificar binário Mach-O alvo<br/>(app popular, utilitário privilegiado)"] --> B["Preparação<br/>Compilar dylib maliciosa<br/>com constructor payload"]
B --> C["Modificação<br/>Injetar LC_LOAD_DYLIB no<br/>cabeçalho do binário com insert_dylib"]
C --> D["Evasão<br/>Remover LC_CODE_SIGNATURE<br/>ou re-assinar ad-hoc"]
D --> E["Distribuição<br/>Substituir binário original<br/>ou trojanizar instalador"]
E --> F["Execução<br/>Usuário executa binário modificado<br/>dyld carrega dylib maliciosa"]
F --> G["Impacto<br/>Payload executa com privilégios<br/>do processo hospedeiro<br/>Persistência estabelecida"]
```
## Exemplos de Uso
Embora o MITRE ATT&CK não liste atores de ameaça específicos que usam T1546.006 em escala ampla, a técnica foi documentada em pesquisas de segurança e em amostras de malware para macOS.
**OSX.Bundlore e adware macOS**: Diversas famílias de adware para macOS foram observadas modificando binários legítimos de aplicativos para carregar componentes de adware via `LC_LOAD_DYLIB`. O adware frequentemente se disfarça como atualizações de Flash Player ou codecs de vídeo, modificando o instalador para incluir a dylib maliciosa que persiste após a instalação do aplicativo legítimo.
**Pesquisa de Patrick Wardle (Objective-See)**: O pesquisador de segurança de macOS Patrick Wardle documentou extensivamente como a técnica de LC_LOAD_DYLIB pode ser usada para injetar código em aplicativos assinados da Apple, contornando Gatekeeper em versões mais antigas do macOS. Sua ferramenta `LittleSnitch` e outros trabalhos demonstraram vetores práticos de exploração que influenciaram as defesas da Apple no macOS Catalina e versões posteriores.
**Ameaças APT em macOS**: Grupos como [[g0032-lazarus-group|Lazarus Group]] e [[g0007-apt28|APT28]], conhecidos por atacar plataformas macOS, possuem capacidade técnica para empregar técnicas de modificação de binários. O [[g1049-applejeus|AppleJeus]], malware do Lazarus Group, demonstra sofisticação na manipulação de instaladores macOS, embora use principalmente [[t1546-016-installer-packages|T1546.016]] em vez de modificação direta de LC_LOAD_DYLIB.
**Ferramentas de Red Team**: Frameworks de Red Team como [[s0154-cobalt-strike|Cobalt Strike]] e ferramentas específicas para macOS como `EvilOSX` incluem módulos para LC_LOAD_DYLIB injection, indicando o uso da técnica em exercícios de simulação de adversário (Purple Team) em organizações brasileiras e globais.
## Detecção
A detecção de T1546.006 requer monitoramento de integridade de arquivos binários, análise de load commands em Mach-O e verificação de assinaturas de código. As seguintes estrategias são recomendadas:
**Monitoramento de integridade de arquivos (FIM)**: Detectar modificações em binários de aplicativos instalados, especialmente em `/Applications/`, `/usr/bin/`, `/usr/local/bin/` e diretórios de aplicativos de sistema.
**Análise de load commands**: Ferramentas como `otool -l <binary>` podem listar todos os load commands de um binário Mach-O. Soluções de EDR para macOS devem inspecionar binários recém-modificados em busca de novos `LC_LOAD_DYLIB` commands.
**Verificação de assinatura de código**: Monitorar execução de binários sem assinatura válida ou com assinatura ad-hoc (`codesign -v <binary>`). O macOS registra eventos de falha de verificação de assinatura no unified log.
**Regra de detecção (Sigma)**:
```yaml
title: Mach-O Binary LC_LOAD_DYLIB Modification Detected
id: a1b2c3d4-e5f6-7890-abcd-ef1234567890
status: experimental
description: Detecta modificação de load commands em binários Mach-O, possível indicador de LC_LOAD_DYLIB injection para persistência no macOS
logsource:
category: file_change
product: macos
detection:
selection_binary_modified:
TargetFilename|endswith:
- '.app/Contents/MacOS/'
TargetFilename|contains:
- '/Applications/'
- '/usr/bin/'
- '/usr/local/bin/'
filter_legitimate_updaters:
Image|contains:
- 'Software Updaté'
- 'MRT'
- 'XProtect'
condition: selection_binary_modified and not filter_legitimate_updaters
falsepositives:
- Atualizações legítimas de aplicativos
- Instalações via package managers (Homebrew)
level: high
tags:
- attack.privilege_escalation
- attack.persistence
- attack.t1546.006
```
**Monitoramento de processos com dylibs suspeitas**:
```yaml
title: Process Loading Dylib from Writable User Directory
id: b2c3d4e5-f6a7-8901-bcde-f12345678901
status: experimental
description: Detecta processos carregando dylibs de diretórios graváveis pelo usuário, indicativo de LC_LOAD_DYLIB injection
logsource:
category: process_creation
product: macos
detection:
selection:
DylibPath|contains:
- '/Users/'
- '/tmp/'
- '/var/folders/'
DylibPath|endswith: '.dylib'
filter_known_good:
DylibPath|contains:
- '/Users/*/Library/Application Support/'
- 'Frameworks'
condition: selection and not filter_known_good
level: high
tags:
- attack.privilege_escalation
- attack.t1546.006
```
## Mitigação
| ID | Mitigação | Descrição |
|----|-----------|-----------|
| [[m1047-audit\|M1047]] | Auditoria | Realizar auditoria periódica de binários críticos usando `codesign --verify --deep` e ferramentas de FIM. Monitorar a integridade de aplicativos instalados e verificar load commands com `otool -l`. |
| [[m1038-execution-prevention\|M1038]] | Prevenção de Execução | Habilitar e manter o *System Integrity Protection* (SIP) ativo (`csrutil enable`). Configurar políticas de Gatekeeper para bloquear aplicativos sem assinatura da Apple Developer. Considerar habilitar o *Hardened Runtime* em aplicativos desenvolvidos internamente. |
| [[m1045-code-signing\|M1045]] | Assinatura de Código | Exigir que todos os aplicativos corporativos sejam assinados com certificados válidos da Apple Developer e possuam *Hardened Runtime* habilitado. Implementar MDM (Mobile Device Management) para enforçar políticas de assinatura de código em endpoints macOS. |
**Controles adicionais recomendados**:
- Implementar solução de **EDR com suporte a macOS** (CrowdStrike Falcon, SentinelOne, Carbon Black) com capacidade de inspeção de load commands
- Manter **macOS atualizado** - versões recentes incluem proteções adicionais contra LC_LOAD_DYLIB injection em aplicativos do sistema
- Usar **Apple Business Manager + MDM** para controlar instalação de aplicativos e enforçar políticas de integridade em frotas corporativas
- Monitorar o **Unified Log** (`log show --predicaté`) para eventos relacionados a falhas de verificação de assinatura
## Contexto Brasil/LATAM
No contexto brasileiro e latino-americano, a técnica T1546.006 é particularmente relevante em cenários de ataques direcionados a profissionais de tecnologia, pesquisadores de segurança e executivos que utilizam dispositivos macOS - perfil crescente nas grandes empresas e startups da região.
**Adoção de macOS no Brasil**: O mercado corporativo brasileiro tem registrado crescimento significativo na adoção de MacBooks em empresas de tecnologia, fintechs e agências criativas, especialmente em São Paulo e Rio de Janeiro. Esse crescimento amplia a superfície de ataque para técnicas específicas de macOS como T1546.006.
**Vetor de entrega regional**: No Brasil, campanhas de malware frequentemente utilizam engenharia social adaptada ao contexto local - falsas atualizações de software corporativo, instaladores trojanizados de ferramentas populares no mercado brasileiro (ferramentas de contabilidade, sistemas ERP nacionais) ou aplicativos disfarçados de utilitários bancários. Um instalador `.pkg` malicioso combinando [[t1546-016-installer-packages|T1546.016]] com LC_LOAD_DYLIB injection representa um vetor sofisticado documentado em pesquisas de segurança.
**Grupos APT com interesse no Brasil**: O [[g0032-lazarus-group|Lazarus Group]], ativo contra o setor financeiro brasileiro, e outros grupos APT com histórico de ataques na América Latina demonstram capacidade técnica para empregar técnicas avançadas de macOS. Campanhas como a [[operation-dreamjob|Operation DreamJob]] do Lazarus, que usa ofertas de emprego falsas para distribuir malware macOS, são altamente relevantes para o ecossistema de segurança regional.
**Desafios de detecção local**: Muitas organizações brasileiras de médio porte que adotaram macOS carecem de soluções EDR especializadas e equipes SOC com expertise em análise de binários macOS, tornando a detecção de T1546.006 particularmente desafiadora no contexto regional.
## Referências
### Técnicas Relacionadas
- [[t1546-event-triggered-execution|T1546 - Event Triggered Execution]] - Técnica pai desta subtécnica
- [[t1546-016-installer-packages|T1546.016 - Installer Packages]] - Frequentemente usada em conjunto para entrega inicial
- [[t1574-002-dylib-hijacking|T1574.002 - DyLib Hijacking]] - Técnica relacionada de sequestro de dylib no macOS
- [[t1553-bypass-user-account-control|T1553 - Subvert Trust Controls]] - Complementar para bypass de code signing
- [[t1059-004-unix-shell|T1059 - Command and Scripting Interpreter]] - Frequentemente usado na cadeia de ataque
### Atores de Ameaça Relevantes
- [[g0032-lazarus-group|Lazarus Group]] - APT com histórico de malware macOS sofisticado
- [[g0007-apt28|APT28]] - Grupo com capacidade documentada em plataformas macOS
### Malware Associado
- [[g1049-applejeus|AppleJeus]] - Malware macOS do Lazarus Group com técnicas de manipulação de binários
- [[gmera|Gmera]] - Trojan macOS que utiliza técnicas de persistência via modificação de binários
### Recursos Externos
- [MITRE ATT&CK - T1546.006](https://attack.mitre.org/techniques/T1546/006)
- [Objective-See - macOS Malware Research](https://objective-see.org/malware.html)
- [Apple Security - System Integrity Protection](https://support.apple.com/en-us/102149)
---
*Fonte: [MITRE ATT&CK - T1546.006](https://attack.mitre.org/techniques/T1546/006)*