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