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