# BPFDoor
> [!critical] Backdoor Linux Passivo com 5 Anos de Invisibilidade - Telecomúnicações e Governo
> BPFDoor é um backdoor Linux de longa duração usado pelo grupo chinês Red Menshen, que permaneceu indetectado em dezenas de organizações por até **5 anos** antes de ser exposto em 2022. Sua característica mais perigosa: **não abre portas de escuta** - usa filtros Berkeley Packet Filter para monitorar passivamente todo o tráfego de rede e ativar apenas ao receber "magic packets" específicos. Impossível detectar via portscans convencionais.
## Visão Geral
BPFDoor (MITRE S1161, também conhecido como JustForFun) é um backdoor passivo para Linux e Solaris atribuído ao grupo de espionagem chinês [[red-menshen|Red Menshen]] (também rastreado como Earth Longzhi pela Trend Micro). O malware foi descoberto e exposto públicamente em maio de 2022 pela PwC e pelo pesquisador Kevin Beaumont - mas análise forense revelou amostras em atividade desde pelo menos 2016, representando até 6 anos de operação encoberta em infraestruturas de telecomúnicações, governos e empresas de tecnologia na Ásia, Oriente Médio e África.
A inovação técnica central do BPFDoor é o uso de filtros Berkeley Packet Filter (BPF) - o mesmo mecanismo usado por ferramentas legítimas como `tcpdump` - para monitorar passivamente todo o tráfego de rede de um sistema Linux sem abrir uma única porta de escuta. Enquanto scanners de rede, soluções de firewall e ferramentas de detecção de intrusão baseadas em varredura de portas não encontram nada incomum, o BPFDoor monitora silenciosamente todo pacote que atravéssa o sistema. Ao receber um "magic packet" com payload específico em qualquer protocolo (TCP, UDP ou ICMP) e qualquer porta, o malware ativa e estabelece um canal de comunicação - seja um shell local ou uma conexão reversa.
O BPFDoor empilha múltiplas técnicas de evasão simultaneamente para permanecer indetectado: sobrescreve seus próprios argumentos de processo em `/proc/PID/cmdline` para mascarar sua presença em listagens `ps`, desabilita o histórico de comandos do shell, apaga artefatos do disco com timestamps manipulados, e usa MUTEX para evitar instâncias duplicadas. O malware é compilado em C com ofuscação de strings e implementa sua própria criptografia RC4 para proteger as comúnicações com o operador.
A escala das operações revelada em 2022 foi alarmante: organizações comprometidas incluíam operadoras de telecomúnicações no Oriente Médio, fornecedores de tecnologia na Índia e empresas governamentais na Ásia. O grupo [[red-menshen|Red Menshen]] usou o BPFDoor específicamente para coletar tráfego de SMS e dados de roaming de operadoras de telecomúnicações - informações com alto valor de inteligência para espionagem de Estado.
| Campo | Detalhe |
|-------|---------|
| **Tipo** | Backdoor passivo APT (Linux/Solaris) |
| **Linguagem** | C (compilado estático) |
| **Primeira versão** | 2016 (estimada por amostras forenses) |
| **Status** | Ativo - variantes pós-exposição documentadas em 2023-2024 |
| **MITRE ID** | S1161 |
| **Plataformas** | Linux, Solaris |
| **Alvo principal** | Telecomúnicações, governo, tecnologia - Ásia e Oriente Médio |
## Como Funciona
**Implantação em sistemas Linux de produção:** O BPFDoor é colocado em diretórios como `/dev/shm/` ou `/var/run/` com nomes mascarados como processos legítimos (`kdmtmpflush`, `kauditd`, `dbus-srv`). O vetor inicial de comprometimento varia - exploração de serviços públicos e credenciais fracas são os mais prováveis com base nos alvos observados.
**Registro de filtro BPF passivo:** Ao iniciar, o malware registra um filtro BPF usando a syscall `bpf()` que inspeciona todos os pacotes TCP, UDP e ICMP que passam pelas interfaces de rede - sem abrir sockets de escuta convencionais visíveis em `netstat` ou `ss`.
**Ativação por magic packet:** O operador envia um pacote com payload específico (contendo um número mágico e senha RC4) para qualquer porta do host comprometido. O filtro BPF captura este pacote, o malware válida a assinatura e ativa o canal de comunicação com o operador.
**Shell local ou reverso sob demanda:** Dependendo do comando recebido, o BPFDoor pode: iniciar um shell local acessível via bind TCP (com regra iptables temporária adicionada e depois removida), ou estabelecer uma conexão reversa para um IP controlado pelo operador. Ambos os modos permitem execução de comandos arbitrários no host comprometido.
**Evasão em camadas:** Sobrescreve `/proc/PID/cmdline` com nome legítimo; sinaliza `SIGTERM` e `SIGHUP` como ignorados (T1564.011) para sobreviver a tentativas de encerramento; apaga arquivos criados com timestomping (T1070.006); usa `prctl(PR_SET_DUMPABLE, 0)` para impedir geração de core dumps que facilitariam análise.
**Persistência sem persistência óbvia:** O BPFDoor foi frequentemente instalado em sistemas sem mecanismo tradicional de persistência (cron, systemd) - a implantação era feita em memória ou em sistemas com alta disponibilidade que raramente reinicializavam, com re-implantação manual pelo operador se necessário.
## Attack Flow
```mermaid
graph TB
A["Comprometimento inicial<br/>RCE ou credenciais fracas<br/>Serviço público exposto"] --> B["Implantação BPFDoor<br/>Binario em /dev/shm<br/>Nome mascarado como processo legit"]
B --> C["Filtro BPF registrado<br/>Monitora todo trafego passivamente<br/>T1205.002 Socket Filters"]
C --> D["Magic packet recebido<br/>TCP UDP ou ICMP qualquer porta<br/>Indetectavel por portscans"]
D --> E["Evasão em camadas<br/>Overwrite cmdline T1036.011<br/>Disable history T1562.003"]
E --> F["Shell ativado sob demanda<br/>Regra iptables temporaria<br/>T1562.004 Firewall Modification"]
F --> G["Espionagem de longo prazo<br/>Coleta SMS roaming dados<br/>Telecom governo tecnologia"]
classDef initial fill:#c0392b,color:#fff
classDef implant fill:#8e44ad,color:#fff
classDef passive fill:#2980b9,color:#fff
classDef evade fill:#7f8c8d,color:#fff
classDef shell fill:#e67e22,color:#fff
classDef persist fill:#27ae60,color:#fff
class A initial
class B implant
class C,D passive
class E evade
class F shell
class G persist
```
## Timeline
```mermaid
timeline
title BPFDoor - Cinco Anos Invisivel
2016 : Primeiras amostras estimadas
: BPFDoor implantado em alvos iniciais
2018 : Expansão de operações Red Menshen
: Telecomúnicacoes Oriente Medio e Asia
2021 : Pico de atividade documentada
: Dezenas de organizacoes comprometidas
2022-05 : Kevin Beaumont e PwC publicam
: Exposicao publica das operacoes
2022-06 : Trend Micro atribui ao Earth Longzhi
: Análise técnica completa publicada
2022-07 : Variante atualizada com mais ofuscacao
: Resposta rapida pos-exposicao
2023 : Novas variantes com criptografia aprimorada
: Red Menshen continua operacoes
2024 : Novas amostras detectadas em APAC
: Alvos em telecom e governo
```
## TTPs Mapeados
| Tática | Técnica | Uso Específico |
|--------|---------|----------------|
| Evasão | [[t1205-002-socket-filters\|T1205.002]] | Filtro BPF monitora passivamente todo tráfego sem abrir portas de escuta |
| Evasão | [[t1036-011-overwrite-process-arguments\|T1036.011]] | Sobrescreve `/proc/PID/cmdline` para mascarar processo em listagens ps |
| Evasão | [[t1036-009-break-process-trees\|T1036.009]] | Manipula árvore de processos para dificultar correlação com processo pai |
| Evasão | [[t1562-003-impair-command-history-logging\|T1562.003]] | Desabilita histórico shell (`HISTFILE=/dev/null`) para anti-forense |
| Evasão | [[t1564-011-ignore-process-interrupts\|T1564.011]] | Ignora SIGTERM e SIGHUP para resistir a encerramento |
| Evasão | [[t1070-006-timestomp\|T1070.006]] | Manipulação de timestamps de arquivos criados pelo malware |
| Evasão | [[t1070-004-file-deletion\|T1070.004]] | Deleção de artefatos temporários após uso |
| Evasão | [[t1070-indicator-removal\|T1070]] | Remoção geral de indicadores de comprometimento |
| Evasão | [[t1480-002-mutual-exclusion\|T1480.002]] | MUTEX para garantir instância única e detectar análise |
| Evasão | [[t1480-execution-guardrails\|T1480]] | Guardrails de execução para evitar análise em sandbox |
| Evasão | [[t1027-obfuscated-files-or-information\|T1027]] | Ofuscação de strings e binário com criptografia RC4 interna |
| Evasão | [[t1562-004-disable-or-modify-system-firewall\|T1562.004]] | Adiciona e remove regras iptables temporárias para shell reverso |
| Execução | [[t1059-004-unix-shell\|T1059.004]] | Shell Unix executado sob demanda via ativação por magic packet |
## Grupos que Usam
- [[red-menshen|Red Menshen]] (Earth Longzhi) - grupo APT chinês com foco em espionagem de telecomúnicações, governo e tecnologia na Ásia e Oriente Médio
## Relevância LATAM/Brasil
O BPFDoor representa uma ameaça direta ao Brasil por múltiplas razões. O Brasil possui uma das maiores infraestruturas de telecomúnicações da América Latina, com operadoras como Claro, Vivo, TIM e Oi operando extensas infraestruturas Linux de produção que correspondem exatamente ao perfil de alvos documentados do [[red-menshen|Red Menshen]].
A característica mais preocupante para o contexto brasileiro é a capacidade do BPFDoor de coletar dados de SMS e roaming de sistemas de telecomúnicações - precisamente os dados que permitem rastrear comúnicações de indivíduos de interesse estratégico. Com o Brasil ocupando papel central em negociações multilaterais (G20, OMC, BRICS) e possuindo relevância geopolítica crescente, representações de governos e executivos de grandes corporações brasileiras são alvos potenciais de espionagem via comprometimento de operadoras.
Adicionalmente, o modelo de implantação do BPFDoor em servidores Linux de alta disponibilidade (servidores de banco de dados, servidores web, sistemas de mensageria) é diretamente aplicável à infraestrutura tecnológica do setor financeiro brasileiro (FEBRABAN, BTG Pactual, Itaú, XP Inc.) e de empresas de tecnologia que hospedam dados de alto valor. A natureza passiva do BPFDoor - invisível a portscans e logs de conexão convencionais - exige threat hunting proativo para detecção efetiva.
## Detecção
**Fontes de dados recomendadas:**
- **Linux Auditd:** Monitorar syscalls `bpf()` por processos não-privilegiados - o uso de filtros BPF por processos que não são ferramentas de rede legítimas (`tcpdump`, `Wireshark`) é anomalia significativa. Regra: `auditctl -a always,exit -F arch=b64 -S bpf -k bpf_filter`
- **Telemetria de rede:** Monitorar hosts Linux que recebem pacotes ICMP ou UDP com payloads de tamanho fixo incomum seguidos de conexões de saída imediatas - padrão característico de ativação por magic packet
- **Process monitoring:** Alertar para processos que sobrescrevem seus próprios argumentos após inicialização (`/proc/PID/cmdline` modificado) - indicador de T1036.011
- **iptables audit:** Monitorar modificações de regras iptables fora de janelas de manutenção aprovadas - BPFDoor adiciona e remove regras temporariamente (T1562.004)
**Regras de detecção:**
- Sigma: `lnx_auditd_bpf_filter.yml` - monitoramento de uso de filtros BPF por processos não-kernel
- YARA: `BPFDoor.yar` - strings RC4 internas, estruturas de "magic packet" e padrões de syscall (PWC e Trend Micro IoC repositories)
- Hunting: verificar processos em `/dev/shm/` ou `/var/run/` com nomes similares a daemons de sistema mas sem link para packages instalados via `dpkg -S` ou `rpm -q`
## Referências
- [1](https://attack.mitre.org/software/S1161/) MITRE ATT&CK - S1161 BPFDoor
- [2](https://www.pwc.com/gx/en/issues/cybersecurity/cyber-threat-intelligence/red-menshen.html) PwC - Red Menshen BPFDoor Analysis (2022)
- [3](https://doublepulsar.com/bpfdoor-an-active-chinese-global-surveillance-tool-54b078f1a896) Kevin Beaumont - BPFDoor: Active Chinese Global Surveillance Tool (2022)
- [4](https://www.trendmicro.com/en_us/research/22/f/how-we-uncovered-a-five-year-old-apt-linux-backdoor.html) Trend Micro - Earth Longzhi Five-Year Backdoor (2022)
- [5](https://malpedia.caad.fkie.fraunhofer.de/details/elf.bpfdoor) Malpedia - BPFDoor malware family analysis