# T1555.002 - Securityd Memory > [!info] Técnica MITRE ATT&CK > **ID:** T1555.002 | **Tática:** Credential Access | **Plataformas:** Linux, macOS > **Técnica pai:** [[t1555-credentials-from-password-stores|T1555 - Credentials from Password Stores]] ## Descrição T1555.002 descreve uma técnica avançada de extração de credenciais exclusiva de sistemas macOS (e potencialmente Linux) na qual um adversário com acesso root lê a memória do processo `securityd` para recuperar a senha de login do usuário em texto claro e, por extensão, obter acesso completo ao **Keychain** da vítima - o cofre centralizado de credenciais do sistema operacional Apple. O `securityd` é o daemon de segurança do macOS responsável por implementar protocolos de autorização, criptografia e gerenciamento de chaves. Quando um usuário faz login, o macOS utiliza a senha de login como base para gerar uma chave mestra que desbloqueia automaticamente o Keychain do usuário - um comportamento de conveniência que elimina a necessidade de digitar a senha do Keychain separadamente. Para viabilizar esse desbloqueio automático, o `securityd` mantém informações derivadas da senha de login na memória. A implementação legada do Keychain no macOS (anterior ao macOS El Capitan / OS X 10.11) permitia que usuários com privilégios root acessassem senhas em texto claro do Keychain de usuários logados, pois a Apple cacheava essas credenciais para evitar prompts repetitivos. O mecanismo funciona assim: o `securityd` recebe a senha de login do usuário, a criptografa usando PBKDF2, e armazena a chave resultante na memória. Com essa chave mestra em mãos, o adversário precisa apenas iterar sobre os valores de criptografia para desbloquear todas as senhas do Keychain. Embora versões modernas do macOS implementem mitigações adicionais via SIP (System Integrity Protection) e novas APIs de Keychain, versões desatualizadas do sistema e variantes da técnica continuam sendo exploradas. O malware [[keydnap|Keydnap]] é um exemplo documentado de uso dessa técnica em ataques reais contra usuários macOS. --- ## Como Funciona ### Arquitetura do sistema de segurança macOS O sistema de segurança do macOS é construído em torno de dois componentes principais: **Keychain:** Banco de dados criptografado (AES-128-CBC ou AES-256) que armazena senhas de Wi-Fi, senhas de sites e aplicativos, certificados digitais, chaves privadas SSH/GPG, tokens de autenticação e notas seguras. Existe um Keychain de login (desbloqueado automaticamente no login) e keychains adicionais que podem exigir senhas separadas. **securityd:** Daemon que implementa o acesso ao Keychain, autorização e serviços de criptografia. Roda com altos privilégios e é o intermediário entre aplicações e o armazenamento de chaves. ### O mecanismo de exploração Em versões vulneráveis do macOS, o fluxo de ataque funciona da seguinte forma: 1. **Obtenção de root:** O adversário deve primeiro escalar privilégios para root no sistema alvo. Isso pode ser feito via [[t1068-exploitation-for-privilege-escalation|T1068 - Exploitation for Privilege Escalation]], abuso de binários SUID, configurações incorretas de sudoers, ou exploração de vulnerabilidades do kernel. 2. **Localização da chave mestra na memória do `securityd`:** O `securityd` armazena na memória uma representação derivada da senha de login (processada com PBKDF2). Usando ferramentas de leitura de memória de processo (disponíveis para root no macOS pré-El Capitan sem proteções adicionais), o adversário varre o heap do processo `securityd` procurando estruturas de dados que contenham a chave mestra. 3. **Descriptografia iterativa do Keychain:** Com a chave mestra identificada, o adversário itera sobre os demais valores de criptografia específicos do Keychain para derivar a chave de descriptografia final de cada item armazenado. 4. **Extração de credenciais em texto claro:** Senhas de Wi-Fi, credenciais de e-mail, senhas de websites (Safari), tokens OAuth, senhas de aplicativos, certificados e chaves privadas ficam disponíveis em texto claro. ### Variantes e técnicas relacionadas **Leitura via Security Framework APIs:** Aplicações com acesso autorizado ao Keychain (e rodando no contexto da sessão do usuário com as permissões corretas) podem usar as APIs oficiais de `SecItemCopyMatching` para acessar itens legítimos. Malwares que obtêm autorização (via engenharia social ou abuso de permissões) podem usar esse vetor legítimo para exportar credenciais sem acesso root. **securityd em Linux (gnome-keyring-daemon):** No Linux, o equivalente funcional é o `gnome-keyring-daemon`, usado em ambientes GNOME para gerenciar segredos do usuário. Técnicas análogas de leitura de memória do processo com root podem ser aplicadas para extrair segredos do gnome-keyring, expandindo o alcance desta técnica além do ecossistema Apple. **CVE-relevant:** Vulnerabilidades históricas no `securityd` e no Security.framework da Apple (como as exploradas pelo [[keydnap|Keydnap]]) demonstram que esse vetor permanece relevante mesmo com as melhorias introduzidas no macOS moderno. --- ## Attack Flow ```mermaid graph TB A["🍎 Alvo macOS<br/>Versão vulnerável ou<br/>SIP desabilitado"] --> B["🎯 Acesso Inicial<br/>Phishing, trojanized app<br/>ou exploit remoto"] B --> C["⬆️ Escalada de Privilégios<br/>CVE local / binário SUID<br/>Abuso de sudoers"] C --> D{"Root obtido?"} D -->|Sim| E["🔍 Reconhecimento do Processo<br/>Localizar PID do securityd<br/>Verificar versão macOS"] D -->|Não| F["🔄 Técnica alternativa<br/>Keychain API com<br/>persuasão de permissão"] E --> G["💾 Leitura de Memória do securityd<br/>Varredura do heap do processo<br/>Busca da chave mestra PBKDF2"] G --> H["🔑 Derivação da Chave de Descriptografia<br/>Iteração sobre valores<br/>de criptografia do Keychain"] H --> I["🗃️ Descriptografia do Keychain<br/>Extração de todos os itens<br/>em texto claro"] F --> J["📋 Acesso via API Legítima<br/>SecItemCopyMatching<br/>com permissão aprovada"] I --> K["💳 Credenciais Exfiltradas<br/>Senhas Wi-Fi, sites, apps<br/>Chaves SSH, certificados, tokens"] J --> K K --> L["🚀 Movimento Lateral / Persistência<br/>Uso das credenciais obtidas<br/>para acesso a serviços e sistemas"] ``` --- ## Exemplos de Uso ### Keydnap - Backdoor macOS O [[keydnap|Keydnap]] é um backdoor para macOS descoberto em 2016 e atribuído a um grupo de ameaça avançada. Sua funcionalidade mais notável era a capacidade de explorar a memória do `securityd` para extrair credenciais do Keychain do usuário. O malware era distribuído via arquivos ZIP contendo executáveis com ícone de documento de texto, enganando usuários ao clicar. Uma vez executado, escalava privilégios e extraía credenciais para exfiltração. O Keydnap demonstrou que mesmo sem acesso à senha mestra diretamente, um adversário com root pode recuperar senhas armazenadas no Keychain através da exploração do estado em memória do `securityd` - tornando qualquer credencial já cadastrada no Keychain vulnerável. ### Ataques a desenvolvedores macOS Desenvolvedores de software, designers e profissionais criativos são alvos frequentes de ataques usando T1555.002, pois frequentemente armazenam no Keychain credenciais de alto valor: - Chaves privadas SSH para acesso a servidores de produção e repositórios Git - Tokens de API para serviços cloud (AWS, GCP, Azure) - Certificados de desenvolvedor Apple para assinatura de apps - Credenciais de acesso a sistemas CI/CD (Jenkins, GitHub Actions) - Senhas de bancos de dados e ambientes de staging A exploração do Keychain via T1555.002 nesse perfil de vítima frequentemente resulta em comprometimento de supply chain ou acesso a infraestrutura de produção. ### Análise técnica - estrutura de memória do securityd Em versões vulneráveis, pesquisadores identificaram que o `securityd` mantém no heap estruturas do tipo `CKeychain` e `CKeychainItem` que contêm referências às chaves de criptografia dos itens do Keychain. A senha de login processada com PBKDF2 resulta em uma chave de 20 bytes que, combinada com um salt armazenado no arquivo do Keychain, permite a descriptografia iterativa de cada item. Ferramentas de análise forense como `OSXCollector` e técnicas documentadas por pesquisadores de segurança macOS demonstraram como varrer o espaço de memória do `securityd` para localizar essas estruturas - conhecimento que foi subsequentemente incorporado em frameworks de red team e malwares como o Keydnap. --- ## Detecção ### Indicadores de Comprometimento - Processos não-Apple acessando a memória do `securityd` via chamadas de sistema como `task_for_pid()`, `mach_vm_read()` ou `process_vm_readv()` - Escalada de privilégios para root precedendo acesso ao Keychain - Erros de autorização Keychain em logs do sistema para aplicações sem histórico de acesso - Execução de ferramentas de dump de memória em contexto de root no sistema - Acesso ao arquivo de Keychain (`~/Library/Keychains/login.keychain-db`) por processos inesperados - Logs do sistema mostrando múltiplas tentativas de acesso a itens do Keychain em curto período ### Regra de Detecção (Sigma) ```yaml title: Suspicious Access to securityd Process Memory on macOS status: experimental description: > Detecta tentativas de leitura da memória do processo securityd em sistemas macOS, indicando possível extração de credenciais do Keychain via T1555.002. logsource: category: process_access product: macos service: endpoint_security detection: selection: EventType: ES_EVENT_TYPE_AUTH_GET_TASK TargetProcessName: securityd filter_legitimate: SourceProcessName|contains: - "com.apple" - "Security" - "securityd" condition: selection and not filter_legitimate level: critical tags: - attack.credential_access - attack.t1555.002 falsepositives: - Ferramentas legítimas de monitoramento de sistema com permissões elevadas - Software de backup ou diagnóstico aprovado pela equipe de TI ``` ### Regra Complementar - Keychain File Access ```yaml title: Keychain Database Access by Unexpected Process on macOS status: experimental description: > Detecta acesso ao arquivo de banco de dados do Keychain por processos que não sejam os utilitários Apple autorizados. logsource: category: file_access product: macos service: unified_log detection: selection: FilePath|contains: - "Library/Keychains/login.keychain" - "Library/Keychains/login.keychain-db" filter_apple_processes: ProcessName|contains: - "securityd" - "keychain-access-groups" - "security" - "Keychain Access" condition: selection and not filter_apple_processes level: high tags: - attack.credential_access - attack.t1555.002 ``` ### Fontes de log recomendadas | Fonte | Dados relevantes | |-------|-----------------| | macOS Unified Log (`log stream`) | Eventos do Security.framework e acesso ao Keychain | | macOS Endpoint Security Framework | Chamadas de sistema para acesso à memória de outros processos | | macOS Audit Framework (BSM) | Chamadas `task_for_pid`, `proc_info`, `mach_vm_read` | | EDR para macOS (Jámf Protect, CrowdStrike, Kandji) | Comportamentos anômalos de acesso à memória de processos privilegiados | | Logs de Autorização macOS | `/var/log/authd.log` - tentativas de autorização incomuns | --- ## Mitigação > [!warning] Mitigações nativas limitadas > O MITRE ATT&CK não lista mitigações específicas para T1555.002, pois a técnica depende de acesso root que, uma vez obtido, oferece capacidades amplas no sistema. O foco deve ser em **prevenir a escalada de privilégios** que precede o ataque. ### Medidas de mitigação recomendadas **Atualização do sistema operacional:** - Manter macOS atualizado para versões modernas (macOS Ventura 13+, Sonoma 14+) que implementam SIP (System Integrity Protection), Gatekeeper aprimorado e restrições adicionais ao acesso de memória de processos privilegiados. - SIP impede que mesmo usuários root modifiquem determinadas áreas do sistema e restringe a capacidade de inspecionar processos do sistema. **Prevenção de escalada de privilégios:** - Aplicar patches de segurança regularmente para corrigir CVEs de escalada de privilégios locais que são o pré-requisito desta técnica. - Implementar EDR com detecção de escalada de privilégios em endpoints macOS. - Auditar e restringir configurações de `sudoers` - eliminar entradas NOPASSWD desnecessárias. - Revisar binários com bit SUID/SGID que possam ser abusados para escalada. **Hardening do Keychain:** - Criar um Keychain separado com senha distinta da senha de login para armazenar credenciais de alto valor - isso impede o desbloqueio automático pelo `securityd` no login. - Configurar itens do Keychain para exigir confirmação de acesso (`kSecAccessControlUserPresence`) em vez de acesso silencioso. - Usar "iCloud Keychain" com autenticação de dois fatores para credenciais pessoais. **Gerenciamento de dispositivos macOS (MDM):** - Usar soluções como Jámf Pro ou Apple Business Manager com perfis de configuração que impõem controles de segurança adicionais. - Implementar FileVault para criptografia em disco - impede acesso ao arquivo do Keychain em ataques offline. - Habilitar bloqueio de screen após inatividade para exigir reautenticação. **Detecção e resposta:** - Implementar Jámf Protect ou CrowdStrike Falcon para macOS com regras específicas para detecção de T1555.002. - Monitorar Unified Log para eventos de acesso ao Keychain fora do padrão normal do usuário. - Alertar para qualquer processo tentando usar `task_for_pid()` contra `securityd`. --- ## Contexto Brasil/LATAM Embora T1555.002 sejá uma técnica altamente especializada com escopo restrito a macOS e Linux, sua relevância no contexto brasileiro está crescendo rapidamente: **Adoção crescente de macOS em empresas brasileiras:** O mercado corporativo brasileiro tem visto adoção significativa de dispositivos Apple, especialmente em setores como tecnologia, finanças, publicidade, mídia e startups. Empresas como iFood, Nubank, XP Investimentos e grandes agências de publicidade operam frotas significativas de MacBooks, ampliando a superfície de ataque para técnicas específicas de macOS como T1555.002. **Desenvolvedores como vetores de supply chain:** O Brasil possui um dos maiores ecossistemas de desenvolvimento de software da América Latina, com mais de 500.000 desenvolvedores ativos. Desenvolvedores que usam macOS e armazenam credenciais no Keychain - especialmente chaves SSH para servidores de produção, tokens de API e certificados de assinatura de código - representam alvos de alto valor para adversários interessados em [[supply-chain|ataques à cadeia de suprimentos de software]]. **Grupos APT focados em LATAM com capacidades macOS:** APTs como o grupo iraniano por trás do [[s0652-markirat|MarkiRAT]] e grupos norte-coreanos como [[g0032-lazarus-group|Lazarus Group]] possuem malwares documentados para macOS. Embora ataques direcionados específicamente a T1555.002 no LATAM sejam menos documentados públicamente que outras técnicas, o histórico de operações desses grupos na região e o crescimento do parque macOS empresarial cria um cenário de risco real. **Setor financeiro e fintechs:** O Brasil lidera a América Latina em adoção de fintechs (mais de 1.000 registradas no Banco Central). Muitas dessas empresas operam com equipes predominantemente em macOS. Credenciais de acesso a sistemas de pagamento instantâneo (PIX), plataformas de câmbio e sistemas bancários armazenadas no Keychain representam alvos de alto impacto financeiro para adversários. **LGPD e requisitos de auditoria:** Incidentes envolvendo T1555.002 podem resultar em exfiltração massiva de credenciais pessoais e corporativas com implicações diretas sob a Lei Geral de Proteção de Dados. A extração do Keychain de um único desenvolvedor ou administrador de sistemas pode expor dados de clientes se as credenciais comprometidas derem acesso a sistemas de processamento de dados pessoais. --- ## Software Associado - [[keydnap|Keydnap]] (malware macOS) - demonstrou uso desta técnica em ataques documentados de 2016 --- ## Referências - [MITRE ATT&CK - T1555.002 Securityd Memory](https://attack.mitre.org/techniques/T1555/002) - [Apple Security - System Integrity Protection](https://support.apple.com/en-us/102149) - [Patrick Wardle - Analysis of macOS Keychain Security](https://objective-see.org/blog.html) - [ESET - Keydnap Analysis](https://www.welivesecurity.com/2016/07/06/new-osxkeydnap-malware-hungry-credentials/) - [[keydnap|Keydnap]] - malware macOS que explora securityd memory - [[t1555-credentials-from-password-stores|T1555 - Credentials from Password Stores]] - [[t1068-exploitation-for-privilege-escalation|T1068 - Exploitation for Privilege Escalation]] - [[t1555-005-password-managers|T1555.005 - Password Managers]] - [[t1555-001-keychain|T1555.001 - Keychain]] - [[g0032-lazarus-group|Lazarus Group]] - APT com capacidades macOS documentadas - [[s0652-markirat|MarkiRAT]] - malware com módulos de credential theft em macOS --- *Fonte: [MITRE ATT&CK - T1555.002](https://attack.mitre.org/techniques/T1555/002)*