# T1555.001 - Keychain > [!info] Identificação MITRE ATT&CK > **Tática:** Credential Access · **ID:** T1555.001 · **Plataforma:** macOS · **Versão:** 16.2 ## Descrição A técnica **T1555.001 - Keychain** descreve como adversários exploram o sistema de gerenciamento de credenciais nativo do macOS para extrair senhas, chaves privadas, certificados e dados sensíveis de aplicativos armazenados no Keychain. O **Keychain** (ou Keychain Services) é o gerenciador de credenciais padrão do macOS, integrado ao sistema operacional desde as primeiras versões do Mac OS X. Ele armazena de forma centralizada: credenciais de contas de e-mail, senhas de Wi-Fi, chaves SSH e GPG, certificados TLS/SSL, tokens de autenticação, dados sensíveis de aplicativos, informações de pagamento e notas seguras. Existem três tipos principais de Keychain no macOS: - **Login Keychain** - o padrão para cada usuário; protegido pela senha de login do usuário; armazena a maioria das credenciais pessoais - **System Keychain** - compartilhado entre usuários do sistema; contém itens acessados pelo próprio SO e daemons - **Local Items (iCloud) Keychain** - sincronizado com o serviço iCloud da Apple; utilizado por apps que precisam de credenciais disponíveis em múltiplos dispositivos Apple Os arquivos do Keychain residem em locais previsíveis no sistema de arquivos, o que facilita o acesso por adversários com as permissões adequadas: - `~/Library/Keychains/` - Keychain do usuário atual - `/Library/Keychains/` - Keychain do sistema - `/Network/Library/Keychains/` - Keychain de rede A extração pode ocorrer por duas vias principais: por meio do utilitário de linha de comando `security` (nativo do macOS) ou por leitura direta dos arquivos `.keychain-db`. Ambas as abordagens exigem conhecimento da senha atual do usuário, que normalmente é a mesma senha de login - um obstáculo de baixo custo para um adversário que já comprometeu a sessão do usuário. Essa técnica está diretamente relacionada a [[t1555-credentials-from-password-stores|T1555 - Credentials from Password Stores]] como subtécnica, e frequentemente é encadeada com [[ta0006-credential-access|Credential Access]] para preparar movimentação lateral. ## Como Funciona ### 1. Acesso via utilitário `security` O macOS inclui o utilitário nativo `security`, que permite interação programática com o Keychain. O comando mais crítico para extração de credenciais é: ```bash security dump-keychain -d ~/Library/Keychains/login.keychain-db ``` A flag `-d` instrui o utilitário a descriptografar e exibir as senhas em texto claro. O sistema exibirá um diálogo de permissão ao usuário - a menos que o adversário já tenha acesso à senha do Keychain (igual à senha de login) ou estejá operando em uma sessão já desbloqueada. Outros comandos relevantes: ```bash # Listar itens sem descriptografar security list-keychains # Encontrar senha de item específico security find-generic-password -a <account> -s <service> -w # Listar certificados security find-certificaté -a -p ``` ### 2. Leitura direta do arquivo de banco de dados Os arquivos `.keychain-db` são bancos de dados SQLite cifrados com AES-256. Adversários sofisticados como [[s1185-lightspy|LightSpy]] e [[s1016-macma|MacMa]] implementam rotinas de extração direta que: 1. Copiam o arquivo `login.keychain-db` para um diretório temporário 2. Obtêm a chave de descriptografia da memória do processo `securityd` 3. Descriptografam o banco de dados e extraem todas as entradas ### 3. Exploração via processo `securityd` O daemon `securityd` (Security Server) gerencia todas as operações do Keychain em execução. Adversários com acesso root podem: - Ler a memória do processo `securityd` para extrair chaves de criptografia - Injetar código no processo via técnicas de [[t1055-process-injection|Process Injection]] - Usar a API `/usr/lib/security/securityd` para operações privilegiadas ### 4. Ferramentas utilizadas por adversários Diversas ferramentas documentadas implementam extração de Keychain: - **[[s0349-lazagne|LaZagne]]** - ferramenta open-source multiplataforma com módulo dedicado ao Keychain macOS - **[[s0363-empire|Empire]]** - framework de pós-exploração com módulo `osx/keychain_dump` - **[[s1246-beavertail|BeaverTail]]** - backdoor associado ao [[g1052-contagious-interview|Contagious Interview]] (grupo DPRK) com funcionalidade de dump de Keychain - **[[s1153-cuckoo-stealer|Cuckoo Stealer]]** - infostealer macOS identificado em 2024 com capacidade de extração de Keychain ## Attack Flow ```mermaid graph TB A[Acesso Inicial ao macOS<br/>Phishing / Malware / Engenharia Social] --> B[Execução de Código<br/>Script malicioso / Aplicativo trojanizado] B --> C[Persistência Estabelecida<br/>LaunchAgent / cron / Login Item] C --> D[Elevação de Privilégios<br/>Bypass TCC / sudo / CVE local] D --> E{Método de Extração} E --> F[Via utilitário 'security'<br/>security dump-keychain -d] E --> G[Leitura direta do arquivo<br/>~/Library/Keychains/login.keychain-db] E --> H[Injeção em securityd<br/>Process Injection / Memory Read] F --> I[Credenciais em Texto Claro<br/>Senhas Wi-Fi, e-mail, SSH, tokens] G --> I H --> I I --> J[Exfiltração<br/>C2 / Upload HTTPS / DNS tunneling] J --> K[Movimentação Lateral<br/>Acesso a sistemas internos com credenciais roubadas] ``` ## Exemplos de Uso ### Contagious Interview (Lazarus Group - DPRK) O grupo norte-coreano [[g1052-contagious-interview|Contagious Interview]] utiliza essa técnica como parte de uma cadeia de ataque sofisticada voltada a desenvolvedores de software e profissionais de criptomoedas. A campanha envolve: 1. Contato via LinkedIn se passando por recrutadores de tecnologia 2. Envio de projeto Node.js ou Python "para teste técnico" 3. O projeto contém o [[s1246-beavertail|BeaverTail]] - um infostealer que extrai o Keychain 4. Credenciais de exchanges de criptomoedas e carteiras digitais são o alvo principal O [[s1246-beavertail|BeaverTail]] foi identificado em múltiplas variantes entre 2023 e 2025, com capacidade de exfiltrar o arquivo `login.keychain-db` completo para servidores C2 controlados pelo grupo. ### LightSpy (APT ligado à China) O [[s1185-lightspy|LightSpy]] - spyware modular atribuído a atores chineses - inclui um plugin específico para extração de Keychain no macOS. A extração abrange: - Senhas salvas no Safari e Chrome (armazenadas via Keychain) - Credenciais de VPN - Tokens OAuth de apps corporativos - Senhas de Wi-Fi (incluindo histórico de redes visitadas) ### MacMa / MACMA O [[s1016-macma|MacMa]] (também referênciado como MACMA), backdoor macOS atribuído a grupo APT vinculado à China, implementa extração direta de Keychain como parte de seu conjunto de capacidades de espionagem. Visto em ataques contra ativistas tibetanos e organizações de mídia em Hong Kong. ### Proton / Calisto O [[s0279-proton|Proton]] e o [[s0274-calisto|Calisto]] são malwares macOS que implementam extração de Keychain para roubo de credenciais de e-mail (especialmente clientes de e-mail como Apple Mail e Outlook para Mac), permitindo subsequente acesso a contas corporativas. ## Detecção ### Sigma Rule - Acesso suspeito ao Keychain via CLI ```yaml title: Suspicious macOS Keychain Access via security Utility status: experimental description: > Detecta uso do utilitário nativo 'security' para dump de credenciais do Keychain. Geração de alerta quando o comando inclui a flag -d (decrypt) ou dump-keychain. logsource: category: process_creation product: macos detection: selection: Image|endswith: '/security' CommandLine|contains: - 'dump-keychain' - 'find-generic-password' - 'find-internet-password' filter_legitimate: ParentImage|contains: - '/Applications/Keychain Access.app' - '/System/Library/' condition: selection and not filter_legitimate falsepositives: - Administradores realizando auditoria legítima de Keychain - Ferramentas de segurança corporativas (ex: Jámf, Mosyle) - Scripts de onboarding de TI level: high tags: - attack.credential_access - attack.t1555.001 ``` ### Sigma Rule - Cópia suspeita de arquivo Keychain ```yaml title: Suspicious Copy of macOS Keychain Database File status: experimental description: > Detecta tentativas de copiar ou acessar o arquivo login.keychain-db por processos não autorizados fora das aplicações legítimas do sistema. logsource: category: file_access product: macos detection: selection: TargetFilename|contains: - 'login.keychain-db' - 'login.keychain' - '/Library/Keychains/' filter_system: Image|contains: - '/System/Library/' - 'securityd' - 'Keychain Access' condition: selection and not filter_system level: high tags: - attack.credential_access - attack.t1555.001 ``` ### Indicadores de Comprometimento | Indicador | Tipo | Contexto | |-----------|------|---------| | `security dump-keychain -d` na linha de comando | Processo | Dump direto do Keychain | | Processo não-sistema acessando `login.keychain-db` | Arquivo | Leitura direta do banco de dados | | Conexão de saída após acesso ao Keychain | Rede | Exfiltração de credenciais | | `securityd` com processo filho inesperado | Processo | Possível injeção de processo | | LaunchAgent/LaunchDaemon não assinado criado por app | Persistência | Malware estabelecendo persistência | ### Fontes de Log Recomendadas - **macOS Unified Log** (`log stream` ou `log show`) - registra operações do Keychain Services - **Endpoint Security Framework (ESF)** - eventos de criação/acesso a processos em tempo real - **OpenBSM/auditd** - auditoria de chamadas de sistema (syscalls) relacionadas a acesso a arquivos - **EDR com cobertura macOS** (CrowdStrike Falcon, SentinelOne, Jámf Protect) - telemetria de processo ## Mitigação | ID | Mitigação | Descrição | |----|-----------|-----------| | M1027 | [[m1027-password-policies\|M1027 - Password Policies]] | Exigir senha forte e única para o usuário macOS; a senha do Login Keychain é a mesma senha de login, tornando senhas fracas um vetor crítico | | M1038 | Proteção de Integridade do Sistema (SIP) | Manter o SIP habilitado no macOS para impedir acesso não autorizado a arquivos do sistema e injeção em processos do sistema como `securityd` | | M1017 | [[m1017-user-training\|M1017 - User Training]] | Treinar usuários para não executar aplicativos de fontes não verificadas, especialmente "testes técnicos" recebidos via redes sociais (vetor do Contagious Interview) | | M1042 | Desabilitar ou Remover Funcionalidades Desnecessárias | Restringir acesso ao utilitário `security` para usuários não-administrativos via políticas MDM (Jámf, Mosyle) | | M1053 | Controle de Aplicativos | Utilizar Gatekeeper + Notarization para permitir apenas aplicativos assinados pela Apple; configurar MDM para bloquear apps não gerenciados | ### Hardening Adicional para macOS 1. **Habilitar FileVault** - criptografia de disco completo protege os arquivos do Keychain em repouso se o dispositivo for roubado 2. **Configurar TCC (Transparency, Consent, and Control)** via MDM para controlar quais apps acessam dados sensíveis 3. **Monitorar com Jámf Protect ou similar** - detecção de acesso anômalo ao Keychain em ambientes corporativos 4. **Separar keychains por criticidade** - senhas corporativas devem estar em Keychains separados protegidos por senhas distintas ## Contexto Brasil/LATAM No Brasil e na América Latina, a técnica T1555.001 tem relevância crescente pelo aumento do uso de dispositivos macOS em ambientes corporativos, especialmente em: **Setores em risco:** - **Fintechs e bancos digitais** - profissionais usam Mac com credenciais de sistemas financeiros armazenadas no Keychain (tokens de API, senhas de VPN bancária, acesso a ambientes AWS/GCP com credenciais financeiras críticas) - **Startups de tecnologia** - desenvolvedores frequentemente armazenam tokens SSH, chaves de API e credenciais de repositórios no Keychain - **Empresas de criptomoedas** - o [[g1052-contagious-interview|Contagious Interview]] (Lazarus Group, DPRK) tem histórico documentado de atacar funcionários de exchanges LATAM via falsas ofertas de emprego no LinkedIn **Campanhas observadas na região:** O grupo [[g1052-contagious-interview|Contagious Interview]] tem realizado campanhas de recrutamento falso em português brasileiro, mirando desenvolvedores de blockchain e profissionais de finanças descentralizadas (DeFi) no Brasil. A técnica de entregar "projetos de teste técnico" contendo [[s1246-beavertail|BeaverTail]] foi adaptada para o contexto regional. **Tendência 2024-2025:** O crescimento do trabalho remoto pós-pandemia elevou o número de desenvolvedores brasileiros com Macs pessoais acessando sistemas corporativos. A mistura de credenciais pessoais e corporativas no mesmo Keychain amplifica o impacto de um comprometimento bem-sucedido. **Recomendação para SOC Brasil:** - Implementar monitoramento de EDR em dispositivos macOS corporativos (obrigação regulatória em ambientes BACEN/CMN para instituições financeiras) - Registrar inventário de dispositivos macOS e versão de SO via MDM - Treinar equipes de segurança para reconhecer campanhas de engenharia social via LinkedIn em português ## Referências - [MITRE ATT&CK - T1555.001 Keychain](https://attack.mitre.org/techniques/T1555/001) - [Apple - Keychain Services API](https://developer.apple.com/documentation/security/keychain_services) - [Jámf - macOS Security Compliance Project](https://github.com/usnistgov/macos_security) - [Elastic - Detecting macOS Credential Access](https://www.elastic.co/blog/detecting-credential-access-on-macos) - [SentinelOne - BeaverTail Infostealer Analysis](https://www.sentinelone.com/) - [Kaspersky - LightSpy Technical Analysis](https://securelist.com/) - [CISA - North Korean Threat Actors Targeting Crypto](https://www.cisa.gov/) --- **Técnica pai:** [[t1555-credentials-from-password-stores|T1555 - Credentials from Password Stores]] **Tática:** [[ta0006-credential-access|TA0006 - Credential Access]] *Fonte: [MITRE ATT&CK - T1555.001](https://attack.mitre.org/techniques/T1555/001)*