# T1543.001 - Launch Agent ## Técnica Pai [[t1543-create-or-modify-system-process|T1543 - Criar ou Modificar Processo do Sistema]] ## Descrição Adversários criam ou modificam **Launch Agents** no macOS para executar payloads maliciosos de forma persistente. Quando um usuário realiza login, o processo `launchd` por usuário é iniciado e carrega os parâmetros definidos em arquivos Property List (`.plist`) localizados em três diretórios padrão: - `/System/Library/LaunchAgents/` - agentes do sistema (somente leitura) - `/Library/LaunchAgents/` - agentes globais (requer privilégios elevados) - `~/Library/LaunchAgents/` - agentes do usuário corrente (escrita permitida) Os arquivos `.plist` utilizam as chaves `Label`, `ProgramArguments` e `RunAtLoad` para definir o nome do agente, o caminho do executável e o momento de execução. Launch Agents legítimos são amplamente usados por softwares para atualizações automáticas e inicialização de serviços na sessão do usuário. Um adversário instala um novo Launch Agent criando um arquivo `.plist` nos diretórios acima com as chaves `RunAtLoad` ou `KeepAlive` definidas como `true`. O nome do agente pode ser camuflado para imitar componentes legítimos do sistema operacional ou de aplicações conhecidas. Como os Launch Agents são criados com permissões de nível de usuário, não é necessário escalação de privilégios para a persistência - bastando acesso à conta do usuário alvo. A técnica pode ser combinada com [[t1569-001-launchctl|T1569.001 - Launchctl]] para carregar ou descarregar agentes dinâmicamente, sem reinicialização. Grupos como [[g1052-contagious-interview|Contagious Interview]] utilizam esta técnica em campanhas direcionadas a desenvolvedores macOS, associando-a ao malware [[s0497-dacls|Dacls]] e [[s1016-macma|MacMa]]. ## Attack Flow ```mermaid graph TB A([Acesso Inicial]) --> B[Comprometer conta de usuário macOS] B --> C[Gravar arquivo .plist malicioso] C --> D{Diretório alvo} D --> E["~/Library/LaunchAgents/<br/>(nível usuário)"] D --> F["/Library/LaunchAgents/<br/>(requer root)"] E --> G["RunAtLoad = true<br/>KeepAlive = true"] F --> G G --> H[launchd carrega agente no próximo login] H --> I[Payload executado a cada sessão] I --> J([Persistência estabelecida]) J --> K[Movimentação lateral / Exfiltração] ``` ## Como Funciona **1. Criação do arquivo `.plist`** O adversário grava um arquivo Property List no diretório `~/Library/LaunchAgents/` - acessível sem privilégios elevados. O arquivo define o executável a ser lançado e as condições de disparo. **2. Chaves de persistência** - `RunAtLoad`: executa o programa imediatamente ao carregar o agente (no login do usuário) - `KeepAlive`: reinicia o processo caso sejá encerrado - garante resiliência **3. Camuflagem** O campo `Label` é preenchido com nomes que imitam agentes legítimos (`com.apple.mdmclient`, `com.google.keystone.agent`), dificultando a detecção visual. **4. Execução via `launchctl`** Além da persistência em login, o adversário pode usar [[t1569-001-launchctl|Launchctl]] para carregar o agente imediatamente (`launchctl load -w <plist>`), sem aguardar reinicialização. **5. Exemplos de malware que exploram esta técnica** - [[s0274-calisto|Calisto]] - backdoor macOS que instala Launch Agent para manter acesso - [[s0279-proton|Proton]] - RAT comercial que usa `.plist` para persistência e coleta de credenciais - [[s1016-macma|MacMa]] - backdoor atribuído ao APT vietnamita, usa Launch Agent com `KeepAlive` - [[s0497-dacls|Dacls]] - malware cross-platform do [[g0032-lazarus-group|Lazarus Group]], variante macOS usa esta técnica - [[s0595-thiefquest|ThiefQuest]] - ransomware/spyware macOS que persiste via Launch Agent - [[s0482-bundlore|Bundlore]] - adware macOS que instala agentes para manter presença ## Contexto Brasil/LATAM No Brasil e na América Latina, o uso de Launch Agents maliciosos em macOS ganhou relevância com o crescimento do ecossistema de startups, fintechs e empresas de tecnologia que adotaram MacBooks como dispositivos padrão de desenvolvimento. A campanha [[g1052-contagious-interview|Contagious Interview]], atribuída ao [[g0032-lazarus-group|Lazarus Group]], tem impactado desenvolvedores brasileiros na plataforma LinkedIn, onde falsas oportunidades de emprego levam à execução de pacotes npm maliciosos que instalam Launch Agents para manter persistência no macOS da vítima. O malware [[s0497-dacls|Dacls]], variante macOS do arsenal do [[g0032-lazarus-group|Lazarus Group]], utiliza exatamente esse mecanismo para manter conexão com servidores de [[t1071-application-layer-protocol|comando e controle]] mesmo após reinicializações. No contexto corporativo latino-americano, a ausência de soluções de MDM (Mobile Device Management) em muitas empresas de médio porte deixa dispositivos macOS sem monitoramento centralizado de `~/Library/LaunchAgents/`, tornando a detecção dependente de EDR endpoints. Equipes de blue team devem implementar regras de detecção focadas em criação de `.plist` por processos como `node`, `python` ou navegadores - vetores comuns de entrega inicial no cenário LATAM. ## Detecção **Monitoramento recomendado:** - Criação ou modificação de arquivos `.plist` em `~/Library/LaunchAgents/`, `/Library/LaunchAgents/` - Execução de `launchctl load` com parâmetros de `.plist` externos ao sistema - Processos filhos de `launchd` com executáveis em caminhos incomuns (`/tmp`, `~/.local`, `~/Downloads`) - Hashes de `.plist` desconhecidos em diretórios de LaunchAgents **Regra Sigma - Criação de Launch Agent suspeito:** ```yaml title: Suspicious macOS Launch Agent Creation id: a7e3f9b1-3c4d-4e8a-b2f1-9d0c5e7a8f3b status: experimental description: > Detecta criação ou modificação de arquivos .plist em diretórios de Launch Agents do macOS por processos não-padrão. logsource: category: file_event product: macos detection: selection: TargetFilename|contains: - '/Library/LaunchAgents/' TargetFilename|endswith: '.plist' filter_legitimate: Image|contains: - '/usr/sbin/installer' - '/Library/Apple/usr/' - '/System/Library/' condition: selection and not filter_legitimate falsepositives: - Instaladores legítimos de software de terceiros - Ferramentas de gestão de dispositivos (MDM) level: medium tags: - attack.persistence - attack.t1543.001 ``` ## Mitigação | ID | Mitigação | Descrição | |---|-----------|-----------| | M1022 | [[m1022-restrict-file-and-directory-permissions\|M1022 - Restrict File and Directory Permissions]] | Restringir permissões de escrita nos diretórios `/Library/LaunchAgents/` para usuários não-administrativos. Monitorar e auditar regularmente os agentes instalados. | ## Referências *Fonte: [MITRE ATT&CK - T1543.001](https://attack.mitre.org/techniques/T1543/001)*