# 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)*