# T1037.005 - Startup Items ## Técnica Pai [[t1037-boot-or-logon-initialization-scripts|T1037 - Boot or Logon Initialization Scripts]] ## Descrição Adversários podem abusar do mecanismo legado de Startup Items do macOS para executar código malicioso automaticamente durante a fase final do processo de boot, com privilégios de root e sem interação do usuário. Um Startup Item é um diretório colocado em `/Library/StartupItems/` que contém um executável e um arquivo de configuração `StartupParameters.plist` - a combinação desses dois componentes instrui o sistema a executar o item em uma sequência específica durante a inicialização. Embora a Apple tenha descontinuado oficialmente essa tecnologia em favor dos mecanismos modernos de Launch Daemons e Launch Agents (representados pela técnica [[t1543-004-launch-daemon|T1543.004 - Launch Daemon]]), o diretório `/Library/StartupItems/` ainda é processado em instalações legadas do macOS e em ambientes onde o hardening de sistema não foi aplicado adequadamente. A combinação de execução com privilégios elevados e ausência de controles modernos de integridade torna essa superfície relevante em cenários de comprometimento de longa duração. A sub-técnica está subordinada a [[t1037-boot-or-logon-initialization-scripts|T1037 - Boot or Logon Initialization Scripts]], que agrupa mecanismos de execução de código via scripts acionados durante boot ou logon em múltiplas plataformas. ## Como Funciona Um Startup Item válido é composto por dois elementos dentro de um diretório em `/Library/StartupItems/{NomeDoItem}/`: **Executável principal:** script shell (geralmente Bash) ou binário compilado que contém a lógica a ser executada. Deve ter permissão de execução e ser propriedade de root. **StartupParameters.plist:** arquivo de propriedades em formato XML ou OpenStep que define metadados do item - incluindo descrição, ordem de execução em relação a outros serviços (`Requires`, `Uses`, `Provides`) e comportamento em caso de falha. O sistema lê o arquivo plist durante o boot e executa o executável correspondente antes do login do usuário. Por operar nessa fase inicial com contexto de root, qualquer código inserido aqui opera sem restrições de permissão de usuário comum e antes que ferramentas de segurança de endpoint orientadas a sessão de usuário estejam completamente ativas. Para criar um Startup Item malicioso, o adversário precisa de acesso com privilégios suficientes para criar arquivos em `/Library/StartupItems/` - tipicamente acesso de administrador ou root obtido via escalada de privilégios após comprometimento inicial. ## Attack Flow ```mermaid graph TB A[Comprometimento inicial macOS<br/>via phishing ou exploit] --> B[Escalada de privilégios<br/>para root ou admin] B --> C[Cria diretório em<br/>/Library/StartupItems/NomeItem/] C --> D[Deposita executável<br/>malicioso no diretório] D --> E[Cria StartupParameters.plist<br/>com metadados válidos] E --> F{Próximo boot do sistema} F --> G[launchd processa<br/>StartupItems no boot] G --> H{Plist válido?} H -->|Sim| I[Executa payload<br/>como root] H -->|Não| J[Item ignorado<br/>sem erro visível] I --> K[Persistência ativa<br/>a cada reinicialização] K --> L[C2, exfiltração<br/>ou movimento lateral] ``` ## Exemplos de Uso ### Lazarus Group - Campanhas macOS em Setor de Criptomoedas O [[g0032-lazarus-group|Lazarus Group]] documenta uso de mecanismos de persistência macOS em campanhas direcionadas a desenvolvedores e empresas de criptomoedas. O grupo distribui malware macOS via [[t1566-001-spearphishing-attachment|T1566.001 - Spearphishing Attachment]] com arquivos de aplicação trojanizados. Uma vez com acesso ao sistema, o payload instala componentes de persistência em diretórios do sistema. Em versões de macOS onde o suporte a StartupItems ainda existe, o mecanismo é preferido por sua simplicidade e baixa visibilidade comparada a LaunchDaemons, que são mais frequentemente auditados por ferramentas de segurança. ### jRAT - Persistência Multiplataforma O malware [[s0283-jrat|jRAT]] (também conhecido como Jácksbot) é um Remote Access Trojan desenvolvido em Java com suporte a múltiplas plataformas, incluindo macOS. Em suas variantes documentadas, o componente de persistência para macOS inclui lógica para depositar scripts de inicialização em `/Library/StartupItems/` quando o sistema alvo roda versões mais antigas do macOS. A abordagem permite que o RAT sobreviva a reinicializações sem depender de mecanismos modernos que exigem assinatura de código ou aprovação do usuário em versões recentes do macOS. ### Cenários de Espionagem Corporativa Em operações de espionagem direcionadas a executivos e pesquisadores que utilizam macOS - perfil comum em empresas de tecnologia e órgãos governamentais brasileiros - Startup Items representam um vetor de persistência para implantes de coleta de dados de longo prazo. A técnica é combinada com [[t1036-masquerading|T1036 - Masquerading]] para nomear o diretório do item de forma similar a software legítimo (ex: `AdobeUpdater`, `DropboxSync`), reduzindo a probabilidade de detecção em revisões manuais de segurança. ## Detecção ```yaml title: Detecção de Startup Item Malicioso no macOS status: experimental logsource: category: file_event product: macos detection: selection_directory: TargetFilename|startswith: '/Library/StartupItems/' EventType: - FileCreaté - FileModify filter_known_software: TargetFilename|contains: - '/Library/StartupItems/VirtualBox' - '/Library/StartupItems/Parallels' condition: selection_directory and not filter_known_software level: high tags: - attack.persistence - attack.t1037.005 ``` ## Mitigação | ID | Mitigação | Descrição | |----|-----------|-----------| | [[m1022-restrict-file-and-directory-permissions\|M1022]] | Restrict File and Directory Permissions | Restringir permissões de escrita em `/Library/StartupItems/` apenas ao usuário root; auditar periodicamente o conteúdo do diretório; implementar File Integrity Monitoring (FIM) com alertas para novas entradas | Recomendações adicionais: - Manter macOS atualizado para versões que descontinuam processamento de StartupItems (macOS Monterey e posteriores têm suporte removido) - Habilitar System Integrity Protection (SIP) - quando ativo, impede modificações em diretórios protegidos do sistema - Auditar periodicamente o conteúdo de `/Library/StartupItems/` via script de inventário centralizado - Implementar MDM corporativo com políticas de conformidade que detectem diretórios não autorizados ## Contexto Brasil/LATAM No Brasil, o uso de macOS cresceu significativamente em empresas de tecnologia, startups, escritórios jurídicos, consultorias e agências de publicidade - segmentos que representam alvos de interesse para espionagem corporativa e roubo de propriedade intelectual. Grupos como o [[g0032-lazarus-group|Lazarus Group]] e atores com motivação financeira direcionam campanhas específicas para usuários macOS em países com alta adoção da plataforma na América Latina. A maioria das equipes de SOC brasileiras possui ferramentas e processos orientados a Windows, criando uma lacuna de cobertura para endpoints macOS. Startup Items se beneficiam dessa lacuna - enquanto mecanismos equivalentes em Windows como [[t1547-001-registry-run-keys-startup-folder|T1547.001 - Registry Run Keys]] são amplamente monitorados, o equivalente macOS frequentemente passa sem detecção em organizações sem MDM corporativo ou ferramentas de EDR com suporte completo a macOS. Setores como [[financial|financeiro]] e [[government|governo]] que adotam macOS para usuários técnicos e executivos são os mais expostos. ## Referências - [[t1037-boot-or-logon-initialization-scripts|T1037 - Boot or Logon Initialization Scripts]] - técnica pai - [[t1543-004-launch-daemon|T1543.004 - Launch Daemon]] - mecanismo moderno equivalente no macOS - [[t1543-001-launch-agent|T1543.001 - Launch Agent]] - persistência por usuário no macOS via launchd - [[m1022-restrict-file-and-directory-permissions|M1022 - Restrict File and Directory Permissions]] - mitigação principal - [[g0032-lazarus-group|Lazarus Group]] - grupo com uso documentado de persistência macOS - [[s0283-jrat|jRAT]] - malware multiplataforma com módulo de Startup Items para macOS - [[t1566-001-spearphishing-attachment|T1566.001 - Spearphishing Attachment]] - vetor de acesso inicial comum em campanhas macOS - [[t1036-masquerading|T1036 - Masquerading]] - técnica combinada para disfarçar nome do Startup Item - [[t1547-001-registry-run-keys-startup-folder|T1547.001 - Registry Run Keys]] - técnica equivalente em Windows *Fonte: MITRE ATT&CK - T1037.005 Startup Items, v16.2*