# T1565.003 - Runtime Data Manipulation ## Descrição **Runtime Data Manipulation** (Manipulação de Dados em Tempo de Execução) é uma sub-técnica da família [[t1565-data-manipulation|T1565 - Data Manipulation]], classificada na tática de [[_impact|Impact]] do MITRE ATT&CK. Diferentemente das técnicas que alteram dados armazenados em disco ou em trânsito pela rede, esta sub-técnica atua diretamente na **memória de processos em execução** ou modifica **binários de aplicações** que renderizam e apresentam informações ao usuário final. O princípio fundamental é enganar a percepção: o adversário não altera o dado na fonte, mas garante que **o que o usuário vê (ou o que o sistema processa)** sejá diferente da realidade. Isso cria uma dissociação entre o estado real do sistema e a representação apresentada, permitindo que operações fraudulentas ocorram enquanto operadores humanos e sistemas de monitoramento observam uma realidade falsificada. Há duas abordagens primárias: **1. Modificação de Binários de Aplicação:** O adversário substitui ou patcha executáveis legítimos responsáveis por exibir dados - dashboards financeiros, interfaces de SCADA, painéis de monitoramento - de forma que os dados apresentados sejam falsificados. O processo continua rodando e aparenta normalidade, mas os valores exibidos foram manipulados pelo binário comprometido. **2. Manipulação de Memória de Processo em Execução:** Usando injeção de processo, hooking de API (via técnicas como [[t1055-process-injection|T1055 - Process Injection]]) ou modificação direta de memória com acesso elevado, o adversário altera valores na memória de um processo legítimo em execução. O processo original não foi modificado em disco, tornando a detecção ainda mais desafiadora. Essa técnica tem implicações críticas em ambientes onde **decisões de alto impacto** são tomadas com base em dados exibidos por sistemas digitais: salas de operação de energia elétrica, sistemas bancários de back-office, plataformas de negociação de valores mobiliários, sistemas de controle de manufatura e registros médicos eletrônicos. O [[g0082-apt38|APT38]] documentou o uso desta técnica em ataques ao sistema bancário SWIFT, alterando a interface visual dos sistemas para que operadores não vissem as transações fraudulentas em execução - efetivamente tornando os humanos cegos ao ataque enquanto ele progredia. **Técnica pai:** [[t1565-data-manipulation|T1565 - Data Manipulation]] --- ## Como Funciona ### Modificação de Binários de Apresentação O adversário identifica executáveis responsáveis por exibir dados críticos ao operador. Esses binários são substituídos (após ganhar acesso suficiente) por versões modificadas que: - Filtram entradas específicas de tabelas ou dashboards (ex: ocultam transações fraudulentas de um extrato) - Alteram valores numéricos antes de renderizá-los (ex: exibem saldo incorreto) - Substituem textos em tempo de renderização (ex: trocar nome de conta de destino na confirmação de pagamento) A modificação pode ser feita via patching direto do binário em disco, ou por meio de DLL hijacking - injetando uma biblioteca maliciosa que a aplicação carrega como dependência e que intercepta chamadas de renderização. ### Hook de API e Injeção de Processo A forma mais sofisticada envolve [[t1055-process-injection|injeção de código]] no processo alvo em execução, sem modificar o binário em disco. O código injetado instala hooks nas funções de API Windows (como `ReadFile`, `GetWindowText`, funções de UI do WinForms/WPF) ou nas funções de banco de dados (ODBC, JDBC) para interceptar e modificar dados antes que sejam exibidos ou processados. Variações desta abordagem incluem: - **Userland rootkit**: hooks em ntdll.dll que modificam saída de chamadas de sistema - **COM object hijacking**: substituição de objetos COM que aplicações usam para acessar dados - **Clipboard hijacking**: interceptar dados copiados (ex: código PIX, endereço de carteira crypto) e substituir antes da colagem - implementação comum em trojans bancários brasileiros ### Mascaramento via Associação de Arquivo Combinada com [[t1546-001-change-default-file-association|T1546.001 - Change Default File Association]], o adversário pode garantir que ao abrir um arquivo de dados específico (como um relatório CSV ou um documento de configuração), um visualizador comprometido sejá invocado em vez do legítimo - garantindo que os dados sejam apresentados de forma manipulada. ### [[t1036-masquerading|Masquerading]] de Interface Em ataques de phishing avançados e malware bancário, overlays visuais são sobrepostos à interface legítima da aplicação. O usuário acredita interagir com a interface real do banco, mas está na verdade inserindo dados em uma tela falsa que captura e manipula as informações antes de passá-las (ou não) ao sistema legítimo. --- ## Attack Flow ```mermaid graph TB A["Acesso Inicial<br/>(T1190 / T1566 Phishing)"] --> B["Escalada de Privilégios<br/>(T1068 / T1078)"] B --> C["Reconhecimento de Alvos<br/>Identificar processos/binários críticos<br/>de apresentação de dados"] C --> D{"Abordagem de Manipulação"} D --> E["Modificação de Binário<br/>Patch/substituição do executável<br/>ou DLL hijacking"] D --> F["Injeção em Processo<br/>T1055 - code injection<br/>API hooking em memória"] D --> G["Overlay Visual<br/>Sobrepor interface falsa<br/>sobre aplicação legítima"] E --> H["Ativação da Manipulação<br/>Início da falsificação de dados<br/>para operadores/sistemas"] F --> H G --> H H --> I["Cobertura de Rastros<br/>(T1070) - apagar logs<br/>de atividade anômala"] I --> J["Impacto<br/>Decisões incorretas, fraude<br/>mascarada, operação comprometida"] style A fill:#c0392b,color:#fff style D fill:#e67e22,color:#fff style H fill:#8e44ad,color:#fff style J fill:#2c3e50,color:#fff ``` --- ## Exemplos de Uso ### APT38 - Invisibilidade Operacional em Ataques SWIFT Durante os ataques do [[g0082-apt38|APT38]] a instituições bancárias, os adversários não apenas executavam as transferências fraudulentas - eles garantiam que operadores humanos monitorando os terminais SWIFT não vissem as transações em tempo real. O software de monitoramento SWIFT (Alliance Access) era comprometido para filtrar as entradas fraudulentas de sua interface, tornando o ataque invisível para a equipe de operações. Somente após as transferências serem confirmadas pelo banco receptor é que a atividade anômala era descoberta - geralmente horas depois. ### Malware Bancário Brasileiro - Clipboard Hijacking Famílias de [[t1587-001-malware|malware]] bancário amplamente distribuídas no Brasil implementam uma variante clássica de runtime manipulation: o **clipboard hijacker**. Quando o usuário copia uma chave PIX, número de conta bancária ou endereço de carteira de criptomoeda para a área de transferência, o malware detecta o padrão e substitui o valor por uma conta controlada pelo atacante - tudo antes que o usuário cole no campo de destino. O dado exibido no campo de confirmação da transação pode ainda mostrar a conta original (via hook na interface do app), enquanto a transação real vai para a conta do adversário. Famílias documentadas com essa capacidade no Brasil: [[s0531-grandoreiro|Grandoreiro]], [[mekotio|Mekotio]], [[s0528-javali|Javali]], [[lampion|Lampion]]. ### Manipulação de Sistemas SCADA/HMI Em cenários de ataque a infraestrutura crítica, adversários com acesso à rede OT podem comprometer a **HMI (Human Machine Interface)** - o painel visual que operadores usam para monitorar o estado de plantas industriais. Modificar o binário da HMI ou injetar código em seu processo garante que operadores vejam leituras falsas (pressão, temperatura, fluxo "normais") enquanto os parâmetros reais estão fora de controle. Pesquisadores apontam este como um possível vetor no ataque à [[s0604-industroyer|Crashoverride]] (2016), que causou blackouts na Ucrânia. --- ## Detecção ### Estrategia Geral A detecção de runtime data manipulation exige monitoramento de integridade em múltiplas dimensões: 1. **Integridade de binários**: comparar hashes de executáveis críticos com baselines conhecidos 2. **Monitoramento de injeção de processo**: detectar abertura de handles de memória entre processos não relacionados 3. **Monitoramento de hooks de API**: ferramentas como Sysmon (EventID 10) podem capturar acesso cruzado a processos 4. **Auditoria de carga de DLLs**: detectar DLLs não assinadas carregadas por aplicações críticas ### Regra de Detecção - Sigma ```yaml title: Injeção de Processo em Aplicação Financeira ou de Monitoramento Crítico status: experimental logsource: category: process_access product: windows detection: selection: TargetImage|endswith: - '\alliance.exe' - '\scada_hmi.exe' - '\banking_client.exe' - '\swift_client.exe' GrantedAccess|contains: - '0x1fffff' - '0x143a' - '0x40' filter_legit: SourceImage|startswith: - 'C:\Windows\System32\csrss.exe' - 'C:\Windows\System32\lsass.exe' condition: selection and not filter_legit level: high tags: - attack.impact - attack.t1565.003 - attack.t1055 ``` ### Indicadores Comportamentais - Hashes de binários de aplicações críticas diferentes dos instalados pelo fabricante - DLLs sem assinatura digital carregadas por processos de aplicações financeiras ou SCADA - Acesso de memória cruzado (process handle com `PROCESS_VM_WRITE`) em processos de alto valor - Clipboard modificado de forma automatizada (troca rápida entre copy e paste detectável por análise comportamental do endpoint) - Divergência entre logs de transações gerados pela aplicação e registros no servidor de banco de dados --- ## Mitigação | ID | Mitigação | Descrição | |----|-----------|-----------| | M1030 | [[m1030-network-segmentation\|M1030 - Network Segmentation]] | Isolar sistemas críticos de apresentação de dados (terminais SWIFT, HMIs de SCADA, workstations financeiras) em segmentos de rede dedicados, restringindo acesso lateral que permitiria injeção remota de código. | | M1022 | [[m1022-restrict-file-and-directory-permissions\|M1022 - Restrict File and Directory Permissions]] | Restringir permissões de escrita em diretórios de instalação de aplicações críticas para impedir substituição de binários e DLL hijacking. Usar DACL granulares em Windows e filesystem ACLs em Linux. | | M1045 | [[m1045-code-signing\|M1045 - Code Signing]] | Implementar verificação obrigatória de assinatura digital para todos os executáveis e DLLs que podem ser carregados por aplicações críticas. Windows Defender Application Control (WDAC) e AppLocker são controles práticos. | | M1038 | [[m1038-execution-prevention\|M1038 - Execution Prevention]] | Usar listas de permissão de aplicações (allowlisting) para garantir que apenas binários aprovados possam executar em workstations de operações críticas - especialmente efetivo contra substituição de binários. | | M1054 | [[m1054-software-configuration\|M1054 - Software Configuration]] | Configurar sistemas operacionais para habilitar proteções como Protected Process Light (PPL), Credential Guard e Secure Boot para dificultar acesso de memória privilegiado por código não autorizado. | --- ## Contexto Brasil/LATAM ### Ecosistema de Malware Bancário Brasileiro O Brasil desenvolveu um dos mais prolíficos e sofisticados ecossistemas de malware bancário do mundo, e a manipulação de dados em tempo de execução é uma das técnicas centrais desse universo. Pesquisadores da Kaspersky, ESET e Trend Micro documentaram extensivamente famílias brasileiras que operam na região LATAM e crescentemente na Europa. O **overlay banking** - onde o malware exibe uma tela falsa sobre o site legítimo do banco - é uma manifestação direta de runtime data manipulation. Famílias como [[s0531-grandoreiro|Grandoreiro]] e [[s0530-melcoz|Melcoz]] exibem popups convincentes solicitando tokens de autenticação, enquanto em segundo plano executam transações fraudulentas com as credenciais já capturadas. ### Regulamentação e Resposta O **Banco Central do Brasil** (BCB) implementou o programa LIFT (Laboratório de Inovações Financeiras e Tecnológicas) e emitiu resoluções de cibersegurança (Resolução CMN 4.893/2021) que obrigam instituições financeiras a implementar controles específicos contra manipulação de dados em sistemas críticos. A **FEBRABAN** coordena o **CERT.FI** (CERT do setor financeiro), que monitora e responde a incidentes envolvendo malware bancário. ### Setores de Alto Risco no Brasil | Setor | Risco | Justificativa | |-------|-------|---------------| | [[financial\|Financeiro]] | Crítico | Volume PIX, sistemas legados bancários, ecosistema malware bancário | | [[energy\|Energia Elétrica]] | Alto | ONS, distribuidoras com redes OT mistas, HMIs de geração | | [[petróleo-e-gás\|Petróleo e Gás]] | Alto | Petrobras e fornecedoras com SCADA em plataformas | | [[healthcare\|Saúde]] | Médio-Alto | HIS/prontuários eletrônicos, sistemas de farmácia hospitalar | --- ## Referências - [MITRE ATT&CK - T1565.003](https://attack.mitre.org/techniques/T1565/003) - [APT38 - Financial Threat Report (Mandiant)](https://www.mandiant.com/resources/apt38-details-on-new-north-korean-regime-backed-threat-group) - [Grandoreiro Banking Malware - ESET Research](https://www.welivesecurity.com/en/eset-research/grandoreiro-how-engorged-can-the-banker-grow/) - [Melcoz/Mekotio Banking Trojan - Kaspersky](https://securelist.com/melcoz-a-new-banking-trojan-from-brazil/) - [FEBRABAN - Pesquisa CIAB 2025](https://portal.febraban.org.br/) - [Resolução CMN 4.893/2021 - Banco Central do Brasil](https://www.bcb.gov.br/) - [MITRE D3FEND - Process Segment Execution Prevention](https://d3fend.mitre.org/) --- *Fonte: [MITRE ATT&CK - T1565.003](https://attack.mitre.org/techniques/T1565/003)*