# T1205.002 - Socket Filters ## Descrição A técnica **T1205.002 - Socket Filters** descreve o uso de filtros de socket de rede, especialmente programas **BPF (Berkeley Packet Filter)**, para monitorar tráfego de rede em busca de "pacotes mágicos" (*magic packets*) que ativam backdoors dormentes no host comprometido. Com permissões elevadas, adversários utilizam bibliotecas como `libpcap` (Linux/macOS) ou `WinPcap`/`Npcap` (Windows) para abrir raw sockets e instalar filtros que determinam quais pacotes acionam ações adicionais no sistema. O filtro pode ser aplicado a toda interface de rede do host. Ao receber um pacote que satisfaz os critérios configurados, o implante executa ações como iniciar um reverse shell, instalar payloads adicionais ou sinalizar o agente C2 com um callback. O mecanismo é especialmente difícil de detectar porque o backdoor permanece completamente inativo - sem portas abertas, sem conexões de rede, sem consumo de CPU - até que o pacote correto sejá recebido. Isso torna o implante práticamente invisível para ferramentas de monitoramento tradicionais baseadas em análise de conexões ativas. Esta técnica é subtécnica de [[t1205-traffic-signaling|T1205 - Traffic Signaling]] e frequentemente combinada com [[t1572-protocol-tunneling|T1572 - Protocol Tunneling]] para camuflar a comunicação C2 dentro de tráfego legítimo. > **Técnica pai:** [[t1205-traffic-signaling|T1205 - Traffic Signaling]] **Fontes de dados recomendadas:** - Socket-filter trigger → on-host raw-socket activity → reverse connection (T1205.002) - Monitoramento de syscalls `setsockopt` com opção `SO_ATTACH_FILTER` - Auditd (Linux): eventos de criação de raw sockets por processos não-privilegiados --- ## Como Funciona ### Mecanismo BPF e Magic Packets O **Berkeley Packet Filter (BPF)** é uma interface do kernel Linux/BSD originalmente desenvolvida para análise de pacotes de rede (como o `tcpdump`). Adversários abusam dessa capacidade para criar filtros que ficam aguardando pacotes específicos. O fluxo de exploração segue estas etapas: 1. **Instalação do implante**: O adversário, com acesso root, instala um programa que cria um raw socket e anexa um filtro BPF customizado usando `setsockopt(SO_ATTACH_FILTER)` ou `pcap_setfilter`. 2. **Definição do "magic packet"**: O filtro é configurado para aceitar apenas pacotes com características específicas - porta de destino específica, flags TCP/UDP/ICMP únicos, bytes em posições exatas no payload, ou combinação de IPs de origem. 3. **Estado dormente**: O implante permanece em `recvfrom()` em loop infinito, consumindo mínimos recursos, sem portas abertas nem conexões estabelecidas. 4. **Ativação remota**: O operador envia o magic packet de qualquer ponto da internet. O filtro captura o pacote antes que chegue a serviços normais do sistema. 5. **Execução do payload**: Ao detectar o magic packet, o implante executa a ação programada - tipicamente um reverse shell TCP/UDP para o IP embutido no próprio pacote. ### BPFDoor - Implementação de Referência O [[s1161-bpfdoor|BPFDoor]] é o exemplo mais documentado dessa técnica em uso operacional. Atribuído ao grupo chinês [[g0096-apt41|APT41]] (também rastreado como UNC4191), o BPFDoor: - Usa BPF para monitorar todos os protocolos (TCP, UDP, ICMP) simultaneamente - O magic packet contém um "número mágico" específico no payload - Após ativação, abre uma shell reversa ou um bind shell disfarçado - Pode "mascarar" o processo como um daemon legítimo do sistema (ex: `httpd`, `syslog`) - Remove seu próprio arquivo em disco após execução em algumas variantes ### Variantes de Implementação | Implementação | Biblioteca | Sistema Operacional | Notas | |---------------|-----------|---------------------|-------| | `setsockopt(SO_ATTACH_FILTER)` | Kernel nativo | Linux | Mais furtivo, sem dependência externa | | `pcap_setfilter()` | libpcap | Linux/macOS | Requer libpcap instalado | | WinPcap / Npcap | Userspace | Windows | Menos comum, requer driver adicional | | eBPF programs | Kernel eBPF | Linux 4.4+ | Variantes mais modernas e sofisticadas | --- ## Attack Flow ```mermaid graph TB A["🔓 Acesso Inicial<br/>RCE / Credenciais Comprometidas"] --> B["⚙️ Execução com Privilégio Root<br/>Instalação do Implante BPF"] B --> C["🔧 Configuração do Raw Socket<br/>setsockopt SO_ATTACH_FILTER"] C --> D["💤 Estado Dormente<br/>Sem portas abertas / Sem conexões"] D --> E{"📦 Magic Packet<br/>Recebido?"} E -- "Não" --> D E -- "Sim" --> F["🔑 Verificação do Filtro BPF<br/>Validação de bytes / flags / porta"] F --> G["💥 Ativação do Backdoor<br/>Execução do Payload"] G --> H["🐚 Reverse Shell<br/>Conexão TCP/UDP para C2"] G --> I["📥 Download de Payload<br/>Segunda Fase"] H --> J["🎯 Comando & Controle<br/>Persistência Estabelecida"] I --> J style A fill:#c0392b,color:#fff style D fill:#2c3e50,color:#fff style E fill:#8e44ad,color:#fff style G fill:#e74c3c,color:#fff style J fill:#c0392b,color:#fff ``` --- ## Exemplos de Uso ### BPFDoor - APT41 / UNC4191 O [[s1161-bpfdoor|BPFDoor]] foi amplamente documentado em 2022 após relatórios da PwC, Trend Micro e CrowdStrike. O implante foi detectado em infraestruturas de telecomúnicações, governo e retail na Ásia e Europa, com evidências de operação desde 2017. - **Operadores**: [[g0096-apt41|APT41]] / grupos nexo China - **Alvos**: Provedores de telecomúnicações, governo, retail - **Capacidade**: Monitoramento simultâneo de TCP/UDP/ICMP via BPF - **Referência**: Relatório PwC "BPFDoor: An Active Chinese Global Espionage Weapon" (2022) ### CASTLETAP - Operações de Espionagem O [[s1224-castletap|CASTLETAP]] é um implante atribuído a adversários com nexo China que utiliza socket filters para comúnicação C2 encoberta. Identificado em redes de organizações governamentais no Sudeste Asiático. ### PITSTOP - Implante Complementar O [[s1123-pitstop|PITSTOP]] é utilizado em conjunto com [[s1224-castletap|CASTLETAP]], com o PITSTOP atuando como segunda fase após a ativação via BPF socket filter. ### Penquin / Turla O [[s0587-penquin|Penquin]] (também chamado Penguin_x64), atribuído ao grupo russo [[g0010-turla|Turla]], é um backdoor Linux que utiliza raw socket filters para monitorar pacotes TCP/UDP em busca de magic numbers específicos no campo de sequência TCP. - **Operadores**: [[g0010-turla|Turla]] (FSB, Rússia) - **Plataforma**: Linux - servidores expostos à internet - **Técnica específica**: Monitora número de sequência TCP como trigger --- ## Detecção ### Sigma Rule - Detecção de Raw Socket com SO_ATTACH_FILTER ```yaml title: Suspicious Raw Socket BPF Filter Attachment id: d4e8f1a2-3b7c-4d9e-8f0a-1b2c3d4e5f6a status: experimental description: > Detecta uso de setsockopt com SO_ATTACH_FILTER em processos suspeitos, indicando possível instalação de backdoor BPF (ex: BPFDoor). author: RunkIntel daté: 2026/03/25 references: - https://attack.mitre.org/techniques/T1205/002/ - https://www.pwc.com/gx/en/issues/cybersecurity/cyber-threat-intelligence/bpfdoor.html logsource: product: linux category: process_creation detection: selection_syscall: Syscall: 'setsockopt' SockOptLevel: 'SOL_SOCKET' SockOptName: 'SO_ATTACH_FILTER' filter_legitimate: ParentImage|contains: - 'tcpdump' - 'wireshark' - 'tshark' - 'dhclient' condition: selection_syscall and not filter_legitimate falsepositives: - Ferramentas legítimas de captura de pacotes (tcpdump, Wireshark) - Agentes de monitoramento de rede corporativos level: high tags: - attack.defense_evasion - attack.t1205.002 - attack.persistence ``` ### Sigma Rule - Detecção de Processo com Raw Socket Sem Conexões Abertas ```yaml title: Process with Raw Socket and No Established Network Connections id: a1b2c3d4-e5f6-7890-abcd-ef1234567890 status: experimental description: > Detecta processos que possuem raw sockets abertos mas nenhuma conexão TCP/UDP estabelecida - padrão característico de backdoors BPF dormentes. author: RunkIntel daté: 2026/03/25 logsource: product: linux category: network_connection detection: selection: SocketType: 'SOCK_RAW' ConnectionState: 'NONE' filter_known_tools: Image|endswith: - '/ping' - '/traceroute' - '/nmap' condition: selection and not filter_known_tools falsepositives: - Ferramentas de diagnóstico de rede (ping, traceroute, nmap) level: medium tags: - attack.defense_evasion - attack.t1205.002 ``` ### Estrategias de Detecção Complementares | Camada | Método | Ferramenta | |--------|--------|-----------| | Syscall | Auditd: monitorar `socket(AF_PACKET)` e `setsockopt(SO_ATTACH_FILTER)` | auditd + auditctl | | Processo | Verificar processos com `AF_PACKET` sockets abertos via `/proc/net/packet` | Osquery | | Kernel | eBPF-based monitoring (Falco, Tetragon) - detecta criação de BPF programs | Falco / Tetragon | | Host | EDR com análise comportamental de raw sockets em processos não-esperados | CrowdStrike, SentinelOne | | Rede | Sistemas de análise de tráfego - detectar magic packets com payloads anômalos | Zeek / Suricata | --- ## Mitigação | ID | Mitigação | Descrição | Prioridade | |----|-----------|-----------|-----------| | [[m1037-filter-network-traffic\|M1037]] | Filter Network Traffic | Implementar regras de firewall que bloqueiem pacotes com estruturas anômalas (flags incomuns, payloads com bytes mágicos específicos) | Alta | | Princípio do Menor Privilégio | Restrição de root/CAP_NET_RAW | Raw sockets e BPF filters requerem `CAP_NET_RAW` ou root. Restringir capabilities a processos autorizados via SELinux/AppArmor | Crítica | | Monitoramento de Integridade | Verificação de binários do sistema | Adversários frequentemente mascaram implantes como processos legítimos. Usar FIM (AIDE, Tripwire) para detectar substituições | Alta | | EDR Comportamental | Detecção de uso de raw sockets | Soluções EDR modernas monitoram criação de raw sockets e BPF programs por processos não-esperados | Alta | --- ## Contexto Brasil/LATAM Embora o uso documentado de BPF socket filters sejá predominantemente associado a APTs com nexo China (como [[g0096-apt41|APT41]]) operando contra telecomúnicações e governo na Ásia, existe relevância crescente para o contexto brasileiro: **Infraestrutura de telecomúnicações como alvo prioritário**: Operadoras brasileiras de grande porte (Claro, Vivo, TIM, Oi) operam infraestrutura Linux-heavy com servidores expostos, tornando-as alvos atraentes para implantes como [[s1161-bpfdoor|BPFDoor]]. **Ataques a ICS/SCADA**: Empresas de energia elétrica (Eletrobras, distribuidoras estaduais) e óleo & gás (Petrobras, distribuidoras) frequentemente operam sistemas Linux em ambientes OT/ICS, onde implantes dormentes são particularmente perigosos por evitar alarmes em SIEMs corporativos. **Capacidade ofensiva de grupos LatAm**: Grupos de crime organizado com capacidade técnica elevada no Brasil começam a adotar técnicas antes exclusivas de APTs nacionais, incluindo persistência via raw sockets em servidores Linux. **Recomendação específica**: Equipes de segurança brasileiras devem incluir verificação periódica de processos com `AF_PACKET` sockets abertos em seus runbooks de threat hunting, especialmente em servidores de borda e sistemas Linux críticos. --- ## Software Associado - [[s1224-castletap|CASTLETAP]] - implante C2 com comúnicação via BPF socket filters - [[s1161-bpfdoor|BPFDoor]] - backdoor Linux de espionagem, nexo China, ativo desde 2017 - [[s1123-pitstop|PITSTOP]] - segunda fase de implante usado com CASTLETAP - [[s0587-penquin|Penquin]] - backdoor Linux do grupo [[g0010-turla|Turla]] (Rússia), usa raw TCP socket monitoring --- ## Referências - [MITRE ATT&CK - T1205.002](https://attack.mitre.org/techniques/T1205/002/) - [PwC - BPFDoor: An Active Chinese Global Espionage Weapon (2022)](https://www.pwc.com/gx/en/issues/cybersecurity/cyber-threat-intelligence/bpfdoor.html) - [Trend Micro - BPFDoor Analysis](https://www.trendmicro.com/en_us/research/23/g/detecting-bpfdoor-backdoor-variants-abusing-bpf-filters.html) - [CrowdStrike - BPFDoor Hunt](https://www.crowdstrike.com/blog/bpfdoor-stealthy-backdoor-leveraging-bpf/) - [SANS - Berkeley Packet Filter (BPF) Usage in Offensive Security](https://isc.sans.edu/diary/Berkeley+Packet+Filter+BPF+Usage+in+Offensive+Security/29050) - [Elastic - Linux BPF Backdoor Detection](https://www.elastic.co/security-labs/a-peek-behind-the-bpfdoor)