SOC Prime Bias: Crítico

16 Dez 2025 19:22

Análise de Ciberespionagem do APT15: Campanhas e TTPs

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
Análise de Ciberespionagem do APT15: Campanhas e TTPs
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

APT15 é um grupo de ciberespionagem patrocinado pelo estado chinês ativo desde 2010, visando principalmente agências governamentais, missões diplomáticas e organizações militares. Os atores dependem de spear-phishing, exploração de aplicativos voltados para o público e backdoors personalizados para obter acesso inicial e manter a presença a longo prazo. Seu kit de ferramentas inclui esteganografia, disfarce, manipulação de registro e canais C2 criptografados embutidos em cabeçalhos HTTP ou tráfego DNS. A campanha continua a evoluir com novas ferramentas como Graphican e a rede de retransmissão ORB3.

Investigação

A investigação mapeou várias famílias de malware (BS2005, TidePool, MirageFox, Graphican, etc.) e um conjunto abrangente de técnicas ATT&CK abrangendo acesso inicial, execução, persistência, elevação de privilégios, evasão de defesa, acesso a credenciais, descoberta, coleta, exfiltração e comando e controle. Analistas extraíram indicadores concretos incluindo domínios, caminhos de arquivos, chaves de registro e linhas de comando dos dados do caso. A infraestrutura do grupo utiliza domínios como goback.stranged.net and finance.globaleducat.com para operações C2.

Mitigação

As medidas recomendadas de defesa incluem escaneamento rigoroso de anexos de e-mail, aplicação rápida de patches nos aplicativos Microsoft Exchange, SharePoint e VPN, e monitoramento de modificações suspeitas no registro, tarefas agendadas anormais e execução de payloads baseados em rundll32 ou COM. O monitoramento da rede deve focar em atividade atípica de cookies HTTP e consultas DNS TXT alinhadas a padrões conhecidos de C2. Lista branca de aplicativos e análises comportamentais podem ajudar a bloquear o uso de archivers renomeados e payloads baseados em esteganografia em PNG.

Resposta

Quando a atividade do APT15 é detectada, isole o host afetado, capture dados voláteis e todos os artefatos IOC relacionados, e bloqueie os domínios e endereços IP C2 identificados. Realize uma análise forense completa para localizar atalhos persistentes, tarefas agendadas e alterações no registro, depois erradique os componentes maliciosos e redefina quaisquer credenciais comprometidas. Informe os usuários impactados e atualize as regras de detecção para cobrir as linhas de comando observadas, caminhos de arquivos e indicadores de infraestrutura.

“graph TB %% Class definitions classDef technique fill:#99ccff classDef operator fill:#ff9900 %% Node definitions node_initial[“<b>Técnica</b> – <b>T1566.001 Spearphishing Attachment</b><br /><b>Descrição</b>: Enviar e-mails direcionados com anexos maliciosos para obter acesso inicial.”] class node_initial technique node_valid[“<b>Técnica</b> – <b>T1078 Contas Válidas</b><br /><b>Descrição</b>: Usar credenciais legítimas comprometidas para acessar sistemas.”] class node_valid technique node_exploit[“<b>Técnica</b> – <b>T1190 Exploração de Aplicações Expostas à Internet</b><br /><b>Descrição</b>: Explorar vulnerabilidades em serviços expostos à internet para obter acesso.”] class node_exploit technique node_cmd[“<b>Técnica</b> – <b>T1059.003 Shell de Comando do Windows</b><br /><b>Descrição</b>: Executar comandos via cmd.exe para rodar código malicioso.”] class node_cmd technique node_shortcut[“<b>Técnica</b> – <b>T1547.009 Modificação de Atalho</b><br /><b>Descrição</b>: Criar ou modificar atalhos LNK para persistência.”] class node_shortcut technique node_task[“<b>Técnica</b> – <b>T1053 Tarefa Agendada</b><br /><b>Descrição</b>: Usar tarefas agendadas para executar cargas úteis em tempos definidos.”] class node_task technique node_active[“<b>Técnica</b> – <b>T1547.014 Configuração Ativa</b><br /><b>Descrição</b>: Aproveitar chaves de registro de Configuração Ativa para persistência.”] class node_active technique node_token[“<b>Técnica</b> – <b>T1134.003 Manipulação de Token de Acesso</b><br /><b>Descrição</b>: Assumir privilégios mais altos ao alterar tokens de acesso.”] class node_token technique node_steg[“<b>Técnica</b> – <b>T1027.003 Esteganografia</b><br /><b>Descrição</b>: Ocultar dados dentro de outros arquivos para evitar detecção.”] class node_steg technique node_masq[“<b>Técnica</b> – <b>T1036 Mascaramento</b><br /><b>Descrição</b>: Renomear arquivos ou disfarçá-los como legítimos para evitar detecção.”] class node_masq technique node_icon[“<b>Técnica</b> – <b>T1027.012 Contrabando de Ícones LNK</b><br /><b>Descrição</b>: Incorporar código malicioso nos recursos de ícones LNK.”] class node_icon technique node_proxy[“<b>Técnica</b> – <b>T1218 Execução de Proxy Binário do Sistema</b><br /><b>Descrição</b>: Abusar de binários de sistema confiáveis para rodar código malicioso.”] class node_proxy technique node_guard[“<b>Técnica</b> – <b>T1480.001 Guardrails de Execução</b><br /><b>Descrição</b>: Verificar condições do ambiente antes da execução.”] class node_guard technique node_sandbox[“<b>Técnica</b> – <b>T1497 Evasão de Sandbox</b><br /><b>Descrição</b>: Detectar e evadir ambientes de análise em sandbox.”] class node_sandbox technique node_keylog[“<b>Técnica</b> – <b>T1056.001 Keylogging</b><br /><b>Descrição</b>: Capturar as teclas digitadas para obter credenciais.”] class node_keylog technique node_dump[“<b>Técnica</b> – <b>T1003 Despejo de Credenciais do SO</b><br /><b>Descrição</b>: Extrair hashes de senha do sistema operacional.”] class node_dump technique node_sysinfo[“<b>Técnica</b> – <b>T1082 Descoberta de Informações do Sistema</b><br /><b>Descrição</b>: Coletar detalhes do SO, hardware e software.”] class node_sysinfo technique node_inet[“<b>Técnica</b> – <b>T1016.001 Descoberta de Conexão à Internet</b><br /><b>Descrição</b>: Identificar conexões de rede ativas e endereços IP.”] class node_inet technique node_stage[“<b>Técnica</b> – <b>T1074.001 Dados Prepostos</b><br /><b>Descrição</b>: Acumular dados localmente antes de exfiltrar.”] class node_stage technique node_archive[“<b>Técnica</b> – <b>T1560.001 Arquivar via Utilitário</b><br /><b>Descrição</b>: Comprimir dados usando utilitários como zip.”] class node_archive technique node_email[“<b>Técnica</b> – <b>T1114.002 Coleta Remota de E-mails</b><br /><b>Descrição</b>: Acessar contas de e-mail para coletar mensagens.”] class node_email technique node_http[“<b>Técnica</b> – <b>T1071.001 Protocolos Web HTTP</b><br /><b>Descrição</b>: Usar HTTP para comunicações de comando e controle.”] class node_http technique node_obfusc[“<b>Técnica</b> – <b>T1001 Ofuscação de Dados</b><br /><b>Descrição</b>: Codificar ou encriptar dados para ocultar seu conteúdo.”] class node_obfusc technique node_dead[“<b>Técnica</b> – <b>T1102.001 Resolver de Dead Drop</b><br /><b>Descrição</b>: Recuperar comandos ou dados de locais ocultos.”] class node_dead technique node_encrypt[“<b>Técnica</b> – <b>T1573.001 Canal Encriptado</b><br /><b>Descrição</b>: Encriptar tráfego de C2 para esconder comunicações.”] class node_encrypt technique node_exfil[“<b>Técnica</b> – <b>T1048.003 Exfiltração via Protocolo Não C2 Não Encriptado</b><br /><b>Descrição</b>: Transferir dados usando protocolos não associados a C2 sem encriptação.”] class node_exfil technique %% Connections node_initial u002du002d>|leads_to| node_valid node_initial u002du002d>|leads_to| node_exploit node_valid u002du002d>|leads_to| node_cmd node_cmd u002du002d>|enables| node_shortcut node_cmd u002du002d>|enables| node_task node_cmd u002du002d>|enables| node_active node_cmd u002du002d>|enables| node_token node_cmd u002du002d>|enables| node_steg node_cmd u002du002d>|enables| node_masq node_cmd u002du002d>|enables| node_icon node_cmd u002du002d>|enables| node_proxy node_cmd u002du002d>|enables| node_guard node_cmd u002du002d>|enables| node_sandbox node_cmd u002du002d>|enables| node_keylog node_cmd u002du002d>|enables| node_dump node_cmd u002du002d>|enables| node_sysinfo node_cmd u002du002d>|enables| node_inet node_sysinfo u002du002d>|feeds| node_stage node_inet u002du002d>|feeds| node_stage node_stage u002du002d>|includes| node_archive node_stage u002du002d>|includes| node_email node_archive u002du002d>|used_by| node_http node_email u002du002d>|used_by| node_http node_http u002du002d>|uses| node_obfusc node_http u002du002d>|uses| node_dead node_http u002du002d>|uses| node_encrypt node_http u002du002d>|exfiltrates_via| node_exfil “

Fluxo de Ataque

Execução de Simulação

Pré-requisito: O Teste Prévio de Telemetria & Base deve ter passado.

Narrativa e Comandos do Ataque:

  1. Preparação: O adversário já comprometeu uma conta de usuário e acessou o ponto de extremidade.
  2. Armazenamento de Dados (T1059.003): Usando o exato xcopy sintaxe observada na atividade histórica do APT15, o atacante copia os arquivos da área de trabalho da vítima para uma pasta temporária oculta WMI, preservando os carimbos de data/hora (/D:09-29-2021) para se misturar com a atividade legítima do sistema.
  3. Execução de Payload (T1218.002): O atacante então invoca rundll32.exe com um caminho de nome curto (C:DOCUME~1ALLUSE~1IEHelpermshtml.dll) para executar um JavaScript malicioso que estabelece persistência.
  4. Resultado: Ambos os comandos geram eventos de criação de processo distintos que correspondem à seleção 1 and 2 da regra Sigma, desencadeando um alerta.

Script de Teste de Regressão:

# -------------------------------------------------
# Script de Simulação APT15 – aciona regra Sigma
# -------------------------------------------------

# 1. Criar diretórios de armazenamento e arquivos de teste
$src = "C:usersREDACTEDDesktop"
$dst = "C:windowstempwmi"
New-Item -Path $src -ItemType Directory -Force | Out-Null
New-Item -Path $dst -ItemType Directory -Force | Out-Null
Set-Content -Path "$srcsecret.txt" -Value "dados sensíveis" -Encoding UTF8

# 2. Executar o comando exato xcopy usado pelo APT15
$xcopyCmd = "xcopy /D:09-29-2021 /S/Y/C c:usersREDACTEDDesktop c:windowstempwmi"
Invoke-Expression $xcopyCmd

# 3. Implantar o DLL malicioso (simulado copiando um DLL legítimo)
$malDllSrc = "$env:SystemRootSystem32mshtml.dll"
$malDllDst = "C:DOCUME~1ALLUSE~1IEHelpermshtml.dll"
New-Item -Path (Split-Path $malDllDst) -ItemType Directory -Force | Out-Null
Copy-Item -Path $malDllSrc -Destination $malDllDst -Force

# 4. Executar rundll32 com o exato padrão de argumento APT15
$rundllCmd = "rundll32.exe C:DOCUME~1ALLUSE~1IEHelpermshtml.dll, IEHelper"
Invoke-Expression $rundllCmd

# -------------------------------------------------
# Fim da simulação
# -------------------------------------------------

Comandos de Limpeza:

# Remover arquivos e diretórios de armazenamento
Remove-Item -Path "C:usersREDACTEDDesktopsecret.txt" -Force -ErrorAction SilentlyContinue
Remove-Item -Path "C:windowstempwmi" -Recurse -Force -ErrorAction SilentlyContinue

# Remover a pasta e DLL falsas do IEHelper
Remove-Item -Path "C:DOCUME~1ALLUSE~1IEHelper" -Recurse -Force -ErrorAction SilentlyContinue

# Opcional: parar Sysmon (apenas se necessário para o teste)
# & "$env:ProgramFilesSysinternalsSysmon.exe" -u