Introdução ao uso do COM por ameaças no Windows
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumo
Esta pesquisa examina como malware abusa do Windows Component Object Model (COM) para suportar ações maliciosas como movimentação lateral, persistência e evasão de defesa. Explica como o COM permite que diferentes linguagens de programação interajam com os serviços Windows e mostra como os atores de ameaça escondem funcionalidades por trás de chamadas vtable indiretas através de interfaces COM. O artigo inclui estudos de caso técnicos sobre famílias de malware como Qakbot, Gh0stRAT, Attor e WarmCookie para demonstrar esses métodos na prática.
Investigação
A investigação se concentra em reverter binários pesados em COM para traduzir GUIDs opacos e offsets de vtable em classes Windows e chamadas de método significativas. Os pesquisadores usaram ferramentas como OleView.NET e ComView para inspecionar registros de registro e definições de interface. Os estudos de caso mostraram que analisar APIs de ativação COM pode expor o verdadeiro propósito e comportamento de uma amostra de malware.
Mitigação
O artigo está mais focado em análise e detecção do que em medidas específicas de robustecimento. Ainda assim, sugere que o monitoramento de comportamentos incomuns de ativação COM e a auditoria de entradas de registro vinculadas a CLSIDs e IIDs podem melhorar a visibilidade. Um forte entendimento dos serviços expostos por COM, como BITS e Task Scheduler, também é importante para monitoramento eficaz e caça a ameaças.
Resposta
Quando uma atividade COM suspeita é identificada, os respondedores devem analisar o processo que inicia a ativação do COM e determinar quais CLSID e IID estão sendo chamados. Também é importante rastrear o processo pai e procurar tarefas agendadas ou trabalhos BITS relacionados. Ferramentas de instrumentação dinâmica e registros focados em COM podem ajudar a reconstruir toda a cadeia de atividade maliciosa de API.
"flowchart TD step_initial_access["Acesso Inicial: Qakbot distribuído via e-mails de phishing para servir como um carregador."] step_c2_ingress["C2 e Transferência de Ferramenta de Ingresso: Attor usa BITS (IBackgroundCopyJob) para entrega confiável de payload."] step_persistence["Persistência: Gh0stRAT e WarmCookie usam interfaces COM do Agendador de Tarefas (ITaskService) para criar tarefas agendadas."] rules_for_persistence("<b>Nome da Regra</b>: Possível Tarefa Agendada via Objeto COM (via linha de comando)<br/><b>ID da Regra</b>: 75015b1f-6813-4288-aa82-b92bb31d8473") step_lateral_movement["Movimentação Lateral e Execução Remota: Uso de DCOM para ativação remota de objetos através da rede."] step_initial_access –>|leads_to| step_c2_ingress step_c2_ingress –>|leads_to| step_persistence step_persistence –>|leads_to| step_lateral_movement step_persistence -.->|detected_by| rules_for_persistence "
Fluxo de Ataque
Detecções
Possível Bypass de UAC via Objetos COM (via linha de comando)
Visualizar
Possível Execução de Script VB Inline (via criação de processo)
Visualizar
Possível Movimentação Lateral via DCOM [Excel/Visio/Word/Access/PowerPoint.Application] (via linha de comando)
Visualizar
Possível Tarefa Agendada via Objeto COM (via linha de comando)
Visualizar
Detectar Criação de Objeto COM com PowerShell e WMI para Automação e Agendamento de Tarefas [Windows Powershell]
Visualizar
Detecção de Inicialização de Segurança COM e DCOM [Criação de Processo Windows]
Visualizar
Execução de Simulação
Pré-requisito: O Check de Telemetria & Baseline Pre-flight deve ter sido aprovado.
Justificativa: Esta seção detalha a execução precisa da técnica do adversário (TTP) projetada para acionar a regra de detecção. Os comandos e a narrativa DEVEM refletir diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção. Exemplos abstratos ou não relacionados levarão a um diagnóstico incorreto.
-
Narrativa de Ataque & Comandos: O adversário pretende realizar movimentação lateral ou manipulação de serviço remoto. Para evitar detecção simples baseada em assinatura que procura padrões comuns de ferramentas, eles usam uma utilidade especializada (simulada aqui como
exemplo.exe) e passam argumentos específicos que acionam a inicialização de segurança COM/DCOM. Ao passarCoCreateInstanceExandCoInitializeSecuritycomo argumentos de linha de comando, o atacante está tentando configurar o contexto de segurança para uma interface COM fora do processo para facilitar a interação remota. -
Script de Teste de Regressão:
# NOTA: Este script assume que 'exemplo.exe' existe em System32 conforme a lógica da regra. # Como é um espaço reservado, vamos criar um arquivo de exemplo para simular o executável para o teste. $targetPath = "C:WindowsSystem32example.exe" # Crie um executável de exemplo, se não existir, para fins de simulação if (-not (Test-Path $targetPath)) { Write-Host "Criando executável de exemplo para simulação..." New-Item -Path $targetPath -ItemType File -Force } # Simule a execução do comando suspeito # Este comando é projetado para acionar a seleção da regra de detecção de CommandLine Start-Process -FilePath $targetPath -ArgumentList "--action CoCreateInstanceEx --setup CoInitializeSecurity" -Wait -
Comandos de Limpeza:
# Remover o executável de exemplo criado para simulação Remove-Item -Path "C:WindowsSystem32example.exe" -Force