# T1564.014 - Extended Attributes ## Descrição Adversários podem abusar de **atributos estendidos** (extended attributes - xattrs) em sistemas macOS e Linux para ocultar dados maliciosos dentro dos metadados de arquivos legítimos, evadindo ferramentas de inspeção convencionais. Atributos estendidos são pares chave-valor vinculados a arquivos e diretórios no nível do sistema de arquivos. Eles são invisíveis para ferramentas comuns como `ls`, `cat`, `Finder` e a maioria dos antivírus que apenas inspecionam o conteúdo principal do arquivo. Esta técnica é classificada como subtécnica de [[t1564-hide-artifacts|T1564 - Hide Artifacts]], na tática de [[_defense-evasion|Defense Evasion]]. A característica central do abuso de xattrs é que o **hash do arquivo principal permanece inalterado** - somente o conteúdo dos metadados é modificado. Isso contorna verificações de integridade baseadas em hash (MD5, SHA256) que não levam em conta os atributos estendidos. No **macOS**, os xattrs são strings planas sem prefixo de namespace, tipicamente prefixados com `com.apple.*` (ex: `com.apple.quarantine`, `com.apple.metadata:_kMDItemUserTags`). O Gatekeeper usa o atributo `com.apple.quarantine` para rastrear arquivos baixados da internet. Um adversário pode remover esse atributo para evitar verificações de Gatekeeper ou armazenar payloads em atributos customizados como `com.attacker.payload`. No **Linux**, os xattrs são organizados em namespaces: `user.` (permissões de usuário), `trusted.` (requer root), `security.` (usado pelo SELinux e AppArmor), e `system.` (uso interno do kernel). Um adversário pode armazenar um payload codificado em Base64 no namespace `user.` de um arquivo legítimo usando `setfattr`, e um loader separado pode extraí-lo com `getfattr --only-values`, decodificá-lo e executá-lo via bash ou outro interpretador de scripts. > **Técnica pai:** [[t1564-hide-artifacts|T1564 - Hide Artifacts]] > **Tática:** [[_defense-evasion|Defense Evasion]] > **Mitigação principal:** [[m1040-behavior-prevention-on-endpoint|M1040 - Behavior Prevention on Endpoint]] --- ## Como Funciona O fluxo de ataque com abuso de xattrs ocorre em duas fases distintas: **armazenamento** e **execução**. ### Fase 1 - Armazenamento do Payload O adversário escolhe um arquivo legítimo no sistema (ex: um PDF, imagem PNG, ou binário do sistema) e grava um payload codificado nos atributos estendidos do arquivo. O conteúdo do arquivo em si não é alterado. **macOS (xattr):** ```bash # Gravar payload Base64 em atributo customizado xattr -w com.apple.sync.metadata "$(base64 -i /tmp/payload.sh)" /path/to/legit_file.pdf ``` **Linux (setfattr):** ```bash # Gravar payload Base64 no namespace user. setfattr -n user.sync.cache -v "$(base64 /tmp/payload.sh)" /path/to/legit_file ``` ### Fase 2 - Extração e Execução Um loader (script shell, Python, AppleScript, etc.) busca o atributo, decodifica e executa o payload inteiramente na memória - sem gravar nenhum arquivo adicional no disco. **macOS:** ```bash # Extrair e executar xattr -p com.apple.sync.metadata /path/to/legit_file.pdf | base64 -d | bash ``` **Linux:** ```bash # Extrair e executar getfattr --only-values -n user.sync.cache /path/to/legit_file | base64 -d | bash ``` ### Técnicas Complementares O abuso de xattrs é frequentemente combinado com outras técnicas de evasão: - [[t1027-obfuscated-files-or-information|T1027 - Obfuscated Files or Information]]: payload dentro do xattr é geralmente codificado ou cifrado - [[Decode Files]]: o loader decodifica o payload antes da execução - [[t1059-006-python|T1059.006 - Python]] ou [[t1059-004-unix-shell|T1059.004 - Unix Shell]]: interpretadores usados para execução do payload extraído - [[t1620-reflective-code-loading|T1620 - Reflective Code Loading]]: execução em memória sem arquivo em disco --- ## Attack Flow ```mermaid graph TB A["🎯 Acesso Inicial<br/>Acesso ao sistema alvo<br/>(macOS ou Linux)"] --> B B["📦 Armazenamento<br/>Payload codificado em Base64<br/>gravado via xattr/setfattr<br/>em arquivo legítimo"] --> C C{"🔍 Hash do arquivo<br/>principal inalterado?"} C -->|"Sim - AV/EDR não detecta"| D C -->|"Não - falha de OPSEC"| X["❌ Detecção potencial"] D["🔐 Persistência<br/>Loader agendado via cron,<br/>LaunchAgent ou systemd<br/>referencia o arquivo legítimo"] --> E E["⚙️ Extração<br/>xattr -p / getfattr --only-values<br/>recupera payload codificado"] --> F F["🔓 Decodificação<br/>base64 -d decodifica<br/>payload na memória"] --> G G["🚀 Execução<br/>Payload executado via bash/python<br/>sem tocar o disco<br/>fileless execution"] --> H H["🌐 C2 / Próxima fase<br/>Beacon para C2,<br/>movimentação lateral,<br/>coleta de dados"] style A fill:#c0392b,color:#fff style B fill:#e67e22,color:#fff style D fill:#8e44ad,color:#fff style G fill:#c0392b,color:#fff style H fill:#2c3e50,color:#fff style X fill:#7f8c8d,color:#fff ``` --- ## Exemplos de Uso ### macOS - Remoção de Quarantine para Bypass Gatekeeper O atributo `com.apple.quarantine` é aplicado automaticamente pelo macOS a arquivos baixados da internet. Adversários que entregam payloads via download (phishing, watering hole) frequentemente removem este atributo para evitar que o Gatekeeper bloqueie a execução. Esta técnica foi documentada em campanhas atribuídas a grupos que visam ambientes Apple corporativos. **Malware associado:** [[keydnap|Keydnap]], [[s0482-bundlore|Bundlore]], [[shlayer|Shlayer]] ### Linux - Evasão em Servidores de Produção Em ambientes Linux, a técnica é utilizada principalmente em servidores de produção comprometidos onde o adversário já possui acesso root. O payload é armazenado no namespace `trusted.` (requer root) de arquivos do sistema como bibliotecas `.so` ou arquivos de configuração, tornando-o invisível para auditorias de arquivo convencionais. **Grupos que utilizam técnicas similares:** - [[g0016-apt29|APT29 (Cozy Bear)]]: uso documentado de persistência fileless em Linux - [[g0032-lazarus-group|Lazarus Group]]: conhecido por técnicas de evasão avançadas em ambientes macOS (ex: campanha Operation In(ter)ception) ### Combinação com T1620 - Execução Fileless A técnica é especialmente poderosa quando combinada com [[t1620-reflective-code-loading|T1620 - Reflective Code Loading]]. O xattr armazena shellcode ou um loader refletivo, que ao ser extraído e executado carrega um módulo completo na memória sem jámais criar um arquivo em disco. Essa cadeia produz atividade práticamente invisível para soluções de segurança baseadas em análise de arquivo. --- ## Detecção ### Estrategia Geral A detecção efetiva exige **monitoramento de chamadas de sistema** que acessem xattrs: `getxattr`, `setxattr`, `removexattr` (macOS/Linux) e as ferramentas de espaço de usuário `xattr`, `setfattr`, `getfattr`. Ferramentas EDR com capacidade de auditoria de syscalls (Auditd, Falco, osquery) são necessárias - antivírus tradicionais geralmente não inspecionam xattrs. **Indicadores de suspeita:** - Uso de `xattr -w` ou `setfattr` por processos não esperados - Atributos estendidos com conteúdo de tamanho incomum (>1KB) - Remoção de `com.apple.quarantine` por scripts ou processos não-GUI - Pipeline: `getfattr | base64 -d | bash` ou `xattr -p | base64 -d | bash` ### Regra Sigma - Linux (setfattr Suspeito) ```yaml title: Suspicious setfattr Usage for Payload Storage id: a7f3c221-8e14-4b2c-9d01-f5c8e7a23bc1 status: experimental description: Detecta uso de setfattr para gravar dados em atributos estendidos, possível técnica de ocultação de payload (T1564.014) references: - https://attack.mitre.org/techniques/T1564/014/ author: RunkIntel daté: 2026-03-25 tags: - attack.defense_evasion - attack.t1564.014 logsource: category: process_creation product: linux detection: selection: Image|endswith: - '/setfattr' CommandLine|contains: - 'user.' - 'trusted.' filter_legitimate: CommandLine|contains: - 'selinux' - 'apparmor' condition: selection and not filter_legitimate falsepositives: - Ferramentas de backup legítimas (rsync, Bacula) - Operações SELinux/AppArmor administrativas level: medium ``` ### Regra Sigma - macOS (xattr com Apple Quarantine Removal) ```yaml title: macOS Quarantine Attribute Removal id: b8d4e332-9f25-5c3d-0e12-g6d9f8b34cd2 status: experimental description: Detecta remoção do atributo com.apple.quarantine - possível bypass do Gatekeeper (T1564.014 / T1553.001) references: - https://attack.mitre.org/techniques/T1564/014/ author: RunkIntel daté: 2026-03-25 tags: - attack.defense_evasion - attack.t1564.014 - attack.t1553.001 logsource: category: process_creation product: macos detection: selection: Image|endswith: - '/xattr' CommandLine|contains|all: - '-d' - 'com.apple.quarantine' condition: selection falsepositives: - Scripts legítimos de deployment (Homebrew, scripts de empresa) level: high ``` --- ## Mitigação | ID | Mitigação | Descrição | Prioridade | |----|-----------|-----------|------------| | [[m1040-behavior-prevention-on-endpoint\|M1040]] | Behavior Prevention on Endpoint | Implementar EDR com capacidade de monitorar syscalls de xattr (`setxattr`, `getxattr`, `removexattr`). Ferramentas como CrowdStrike Falcon, SentinelOne e Carbon Black têm suporte a macOS e Linux. | Alta | | - | Auditoria com Auditd (Linux) | Configurar regras auditd para registrar chamadas `setfattr`/`getfattr` e execuções de pipes suspeitos. Enviar logs para SIEM. | Alta | | - | Osquery (macOS/Linux) | Usar osquery para consultar `extended_attributes` periodicamente em arquivos críticos do sistema. Detectar atributos com conteúdo de grande volume. | Média | | - | Falco (Linux containers) | Em ambientes Kubernetes/Docker, usar Falco com regras para detectar `setfattr` dentro de containers de produção. | Média | | - | Monitoramento de LaunchAgents (macOS) | Auditar periodicamente LaunchAgents e LaunchDaemons que referenciam arquivos com xattrs suspeitos. | Média | | - | Princípio do Menor Privilégio | Restringir quais processos têm permissão para escrever xattrs em arquivos do sistema. Usar AppArmor/SELinux para restringir acesso ao namespace `trusted.` | Alta | --- ## Contexto Brasil/LATAM ### Adoção Corporativa de macOS no Brasil O Brasil experimenta crescimento acelerado na adoção de macOS em ambientes corporativos, especialmente em empresas de tecnologia, fintechs, e agências de publicidade. Este cenário aumenta a superfície de ataque para técnicas específicas de macOS como abuso de xattrs. Grupos que atacam o setor [[financial|financeiro]] brasileiro, onde macOS é comum em escritórios de alto nível, poderiam utilizar esta técnica para persistência furtiva. ### Servidores Linux em Infraestrutura Crítica A grande maioria dos servidores de [[critical-infrastructure|infraestrutura crítica]] brasileira (energia, telecomúnicações, governo) opera em Linux. Comprometimentos APT documentados no Brasil - frequentemente atribuídos a grupos como [[g0007-apt28|APT28]] ou [[g0032-lazarus-group|Lazarus Group]] em operações de espionagem - tendem a utilizar técnicas de evasão avançadas como xattrs em servidores pós-comprometimento para manter acesso furtivo. ### CERT.br e Relatórios Regionais O [[sources|CERT.br]] pública periodicamente relatórios de incidentes que, embora não detalhem TTPs avançadas como xattr abuse, documentam o aumento de incidentes em servidores Linux no Brasil. A combinação de Linux predominante + baixa maturidade em monitoramento de EDR fora das grandes empresas cria condições favoráveis para uso desta técnica. ### Referência a Campanhas LATAM Campanhas de [[espionagem|espionagem]] documentadas contra governos da América Latina (México, Colômbia, Chile) utilizaram técnicas de persistência fileless em Linux que, embora não explicitamente classificadas como T1564.014, compartilham características operacionais com o abuso de xattrs - específicamente o uso de metadados do sistema de arquivos como vetor de ocultação de payload. --- ## Referências - [MITRE ATT&CK - T1564.014](https://attack.mitre.org/techniques/T1564/014/) - [MITRE ATT&CK - T1564 (Técnica Pai)](https://attack.mitre.org/techniques/T1564/) - [Apple Developer - xattr(1) man page](https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man1/xattr.1.html) - [Linux - getfattr(1) man page](https://man7.org/linux/man-pages/man1/getfattr.1.html) - [Falco - Linux syscall rules](https://falco.org/docs/rules/) - [osquery - extended_attributes table](https://osquery.io/schema/current/#extended_attributes) - [CrowdStrike - macOS Threat Landscape 2025](https://www.crowdstrike.com/blog/) **Técnicas relacionadas:** [[t1564-hide-artifacts|T1564]], [[t1027-obfuscated-files-or-information|T1027]], [[t1140-deobfuscate-decode-files|T1140]], [[t1620-reflective-code-loading|T1620]], [[t1059-004-unix-shell|T1059.004]], [[t1553-001-gatekeeper-bypass|T1553.001]] --- *Fonte: [MITRE ATT&CK - T1564.014](https://attack.mitre.org/techniques/T1564/014)*