# T1559 - Inter-Process Commúnication ## Descrição Comúnicação entre processos (IPC - Inter-Process Commúnication) é um conjunto de mecanismos que o sistema operacional fornece para que processos distintos troquem dados, sincronizem execução e coordenem tarefas. Pipes, sockets, memória compartilhada, filas de mensagens e sinais são exemplos clássicos de IPC em ambientes Unix/Linux. No Windows, os mecanismos mais relevantes incluem o [[t1559-001-component-object-model|Component Object Model (COM)]], [[t1559-002-dynamic-data-exchange|Dynamic Data Exchange (DDE)]], Named Pipes, e o [[t1021-003-distributed-component-object-model|Distributed Component Object Model (DCOM)]] para comunicação entre máquinas. No macOS, os [[t1559-003-xpc-services|XPC Services]] são o mecanismo nativo de IPC entre processos e daemons do sistema. Adversários abusam desses mecanismos para executar código ou comandos de forma encoberta, aproveitando que comúnicações legítimas de IPC são altamente volumosas e difíceis de monitorar sem instrumentação específica. A técnica permite que um processo malicioso injete instruções em processos confiáveis ou que componentes de malware se comuniquem internamente sem gerar tráfego de rede detectável. O abuso de COM no Windows, por exemplo, permite que um processo não privilegiado invoque métodos em objetos COM registrados no sistema que possuam mais permissões - um vetor clássico de escalada de privilégios local. O [[s1229-havoc|Havoc]] C2 framework e o [[s1130-raspberry-robin|Raspberry Robin]] worm utilizam Named Pipes para comunicação interna entre componentes, enquanto o [[s1244-medusa-ransomware|Medusa Ransomware]] e o [[s0687-cyclops-blink|Cyclops Blink]] empregam IPC para coordenar módulos de ataque. Em Linux, pipes nomeados (FIFOs) e sockets de domínio Unix são frequentemente usados por malware para passar comandos entre processos sem chamar shells visíveis. Ferramentas de pós-exploração como o [[s0022-uroburos|Uroburos]] rootkit (atribuído ao grupo Turla) fazem uso extensivo de IPC para construir canais de comunicação furtivos dentro do sistema comprometido. O [[s1200-stealbit|StealBit]] - exfiltrador do grupo LockBit - e o [[s1172-oilbooster|OilBooster]] também utilizam mecanismos IPC para coordenar suas operações de coleta e envio de dados sem depender de conexões de rede diretas em cada etapa. **Contexto Brasil/LATAM:** O abuso de IPC é especialmente relevante no contexto de ataques a ambientes Windows corporativos amplamente utilizados por empresas brasileiras. Ransomware groups que operam na região - incluindo variantes do [[s1244-medusa-ransomware|Medusa Ransomware]] - frequentemente utilizam Named Pipes e COM para movimentação lateral furtiva dentro de redes Active Directory antes da execução do payload de criptografia. A técnica também é comum em ataques a sistemas de automação industrial (OT/ICS) presentes no setor de energia e manufatura brasileiro, onde processos legados com permissões elevadas comúnicam-se via IPC sem monitoramento. ## Attack Flow ```mermaid graph TB A[Acesso Inicial / Execução] --> B[T1559 - IPC Abuse] B --> C[Injeção em Processo Confiável] C --> D[Escalada / Movimento Lateral] D --> E[Payload Final] ``` ## Como Funciona **1. Preparação - Identificação de mecanismos IPC disponíveis** O atacante mapeia os mecanismos IPC acessíveis no sistema alvo. Em Windows, isso inclui enumerar objetos COM registrados, Named Pipes existentes e instâncias DCOM disponíveis. Em Linux, verifica sockets de domínio Unix e pipes nomeados de processos privilegiados: ```bash # Artefato de detecção - enumeração de Named Pipes no Windows (via PowerShell) [System.IO.Directory]::GetFiles("\\.\pipe\") # ou via cmd: pipelist.exe ``` **2. Execução - Abuso do canal IPC** O atacante utiliza o mecanismo IPC identificado para injetar comandos ou código em processos com privilégios elevados. No caso do COM/DDE no Windows, isso pode ocorrer via criação de objetos COM que carregam DLLs maliciosas, ou via documentos Office com macros que exploram o [[t1559-002-dynamic-data-exchange|DDE]] para executar comandos sem macros. Em sistemas Unix, pipes nomeados são usados para passar instruções a daemons privilegiados: ```bash # Artefato de detecção - criação de Named Pipe suspeito por processo não-sistema (Windows Event) # Event ID 17 (Sysmon): Pipe Created # Event ID 18 (Sysmon): Pipe Connected # Campos relevantes: PipeName, Image, ProcessId ``` **3. Pós-execução - Comúnicação persistente e evasão** Uma vez estabelecido o canal IPC, o malware o mantém ativo para receber comandos adicionais do operador (funcionalidade de C2 interno) ou para coordenar múltiplos componentes de um ataque em estágios. Isso elimina a necessidade de conexões de rede entre módulos, dificultando a detecção por soluções de NDR/NTA. ## Detecção **Fontes de dados:** Sysmon Event IDs 17 e 18 (criação e conexão de Named Pipes), Windows Event Log 4688 (criação de processo com linha de comando), auditd no Linux para chamadas `open()` e `mkfifo()`, ETW (Event Tracing for Windows) para atividade COM, EDR com monitoramento de injeção de processo. ```yaml title: Suspicious Named Pipe Creation by Non-System Process id: 5e6f7a8b-9c0d-1e2f-3a4b-5c6d7e8f9a0b status: experimental description: Detecta criação de Named Pipe por processos que não são utilitários de sistema conhecidos - padrão associado a malware usando IPC para C2 interno ou movimento lateral logsource: category: pipe_created product: windows service: sysmon detection: selection: EventID: 17 filter_system: Image|startswith: - 'C:\Windows\System32\' - 'C:\Windows\SysWOW64\' - 'C:\Program Files\' condition: selection and not filter_system falsepositives: - Ferramentas legítimas de desenvolvimento e monitoramento que criam Named Pipes - Agentes de EDR e antivírus level: medium tags: - attack.execution - attack.t1559 ``` ## Mitigação | Mitigação | Recomendação Prática | |-----------|---------------------| | [[m1042-disable-or-remove-feature-or-program\|M1042 - Disable or Remove Feature or Program]] | Desabilitar funcionalidades IPC não utilizadas como DDE em aplicações Office (via GPO: `HKCU\Software\Microsoft\Office\<version>\<App>\Security\DisableDDEServerLaunch`) e remover objetos COM desnecessários do registro | | [[m1054-software-configuration\|M1054 - Software Configuration]] | Configurar políticas de AppLocker ou WDAC para restringir quais processos podem criar Named Pipes ou instanciar objetos COM; reforçar configurações de segurança COM via DCOMCNFG | | [[m1048-application-isolation-and-sandboxing\|M1048 - Application Isolation and Sandboxing]] | Isolar aplicações que processam conteúdo não confiável (browsers, leitores de documentos) em sandboxes que limitam acesso a mecanismos IPC do sistema operacional | | [[m1026-privileged-account-management\|M1026 - Privileged Account Management]] | Restringir permissões de objetos COM e DCOM para que apenas processos autorizados possam instanciar objetos com permissões elevadas; revisar ACLs de Named Pipes críticos | | [[m1040-behavior-prevention-on-endpoint\|M1040 - Behavior Prevention on Endpoint]] | Habilitar regras de ASR (Attack Surface Reduction) no Microsoft Defender que bloqueiam abuso de COM e DDE; utilizar EDR com detecção comportamental de injeção via IPC | | [[m1013-application-developer-guidance\|M1013 - Application Developer Guidance]] | Validar entradas em todos os pontos de IPC de aplicações customizadas; evitar expor objetos COM com permissões elevadas via registro; usar autenticação em Named Pipes corporativos | ## Sub-técnicas - [[t1559-001-component-object-model|T1559.001 - Component Object Model]] - [[t1559-003-xpc-services|T1559.003 - XPC Services]] ## Software Associado - [[s1229-havoc|Havoc]] - C2 framework que usa Named Pipes para comunicação interna entre agentes - [[s1200-stealbit|StealBit]] - exfiltrador do LockBit que coordena coleta de dados via IPC - [[s1130-raspberry-robin|Raspberry Robin]] - worm que usa Named Pipes como canal de C2 interno - [[s1244-medusa-ransomware|Medusa Ransomware]] - usa IPC para coordenar módulos de criptografia - [[s0687-cyclops-blink|Cyclops Blink]] - botnet que emprega IPC para comunicação entre componentes - [[s0022-uroburos|Uroburos]] - rootkit Turla com uso extensivo de IPC para canais furtivos - [[s0537-hyperstack|HyperStack]] - implante Turla que abusa de RPC/Named Pipes para C2 - [[s1172-oilbooster|OilBooster]] - malware que usa IPC para coordenar exfiltração sem tráfego de rede direto - [[s1150-roadsweep|ROADSWEEP]] - wiper que utiliza IPC para sincronização entre componentes destrutivos - [[s1123-pitstop|PITSTOP]] - implante associado a operações de espionagem que usa IPC para persistência ## Referências *Fonte: [MITRE ATT&CK - T1559](https://attack.mitre.org/techniques/T1559)*