Deteção do Backdoor SesameOp: Microsoft Descobre Novo Malware que Abusa da API de Assistentes OpenAI em Ciberataques
Detection stack
- AIDR
- Alert
- ETL
- Query
Ataques de Malware SesameOp
Pesquisadores da Microsoft descobriram uma nova backdoor chamada SesameOp que usa a API do OpenAI Assistants como um canal encoberto de comando e controle. O malware é entregue via um carregador malicioso Netapi64.dll que é injetado em processos .NET usando a injeção AppDomainManager. Ele armazena a configuração nos recursos do DLL e se comunica com endpoints OpenAI para receber comandos e exfiltrar resultados. A ameaça é projetada para espionagem a longo prazo em hosts Windows.
Investigação
A investigação identificou um DLL carregador (Netapi64.dll) ofuscado com Eazfuscator.NET que cria arquivos marcadores e um mutex, depois decodifica e executa um componente de backdoor chamado OpenAIAgent.Netapi64. O backdoor analisa uma configuração delimitada por pipe contendo uma chave de API OpenAI, uma chave de dicionário e um proxy opcional. Ele interage com a API do OpenAI Assistants para buscar armazéns de vetores, assistentes e mensagens que codificam comandos ou cargas úteis, que são descriptografadas, descomprimidas e executadas via um motor JScript.
Mitigação
A Microsoft recomenda fortalecer firewalls e configurações de proxy, habilitar proteção contra adulteração e proteção em tempo real no Defender, e usar o modo de bloqueio para aplicativos potencialmente indesejados. Monitorar o tráfego de saída para api.openai.com e detectar a criação do mutex específico e arquivos temporários pode ajudar a detectar a atividade. Implementar EDR com modo de bloqueio e automatizar ações de remediação também é aconselhado.
Resposta
Após a detecção, isolar o host afetado, terminar os processos maliciosos, deletar o Netapi64.dll e arquivos temporários relacionados, e revogar a chave API OpenAI comprometida. Conduzir uma revisão forense completa para mecanismos de persistência adicionais e mudar todas as credenciais privilegiadas. Atualizar as regras de detecção para procurar pelo mutex identificado, caminhos de arquivo e conexões de saída para a API do OpenAI Assistants.
graph TB %% Class Definitions classDef action fill:#99ccff classDef process fill:#ffcc99 classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef operator fill:#ff9900 %% Nodes action_initial_loader[“<b>Ação</b> – Implantação do Loader Inicial<br/><b>Técnicas</b>: T1546.010 DLLs AppInit, T1546.009 DLLs AppCert, T1546.007 DLL Helper do Netsh”] class action_initial_loader action process_dll_loaded[“<b>Processo</b> – DLL Carregada (Netapi64.dll)”] class process_dll_loaded process action_hijack_flow[“<b>Ação</b> – Sequestro do Fluxo de Execução: AppDomainManager<br/><b>Técnica</b>: T1574.014 (Modificar Fluxo de Execução para Persistência e Escalonamento de Privilégios)”] class action_hijack_flow action action_inject_code[“<b>Ação</b> – Injeção de Código .NET Malicioso<br/><b>Técnica</b>: T1027 (Arquivos ou Informações Ofuscadas)”] class action_inject_code action malware_backdoor[“<b>Malware</b> – Backdoor Ofuscado (OpenAIAgent.Netapi64)<br/>Ofuscação: Eazfuscator.NET, XOR, Base64, GZIP”] class malware_backdoor malware tool_mavinject[“<b>Ferramenta</b> – Mavinject<br/><b>Técnica</b>: T1218.013 (Execução por Proxy de Binário do Sistema)”] class tool_mavinject tool action_js_injection[“<b>Ação</b> – Injeção de Entrada via JScriptEngine (Eval.JScriptEvaluate)”] class action_js_injection action action_execute_payloads[“<b>Ação</b> – Execução de Payloads do Atacante”] class action_execute_payloads action action_archive_data[“<b>Ação</b> – Arquivamento de Dados Coletados (AES/GZIP)<br/><b>Técnica</b>: T1560.003 (Arquivar Dados Coletados)”] class action_archive_data action action_send_results[“<b>Ação</b> – Envio de Resultados via API OpenAI Assistants<br/><b>Técnicas</b>: T1071.001 (Protocolos Web HTTPS), T1102.002 (Serviço Web), T1001.003 (Ofuscação de Dados – Personificação de Protocolo)”] class action_send_results action action_cleanup[“<b>Ação</b> – Limpeza de Artefatos<br/><b>Técnicas</b>: T1070.004 (Exclusão de Arquivos), T1027.005 (Remoção de Indicadores de Ferramentas)”] class action_cleanup action %% Edges action_initial_loader u002du002d>|carrega| process_dll_loaded process_dll_loaded u002du002d>|sequestra| action_hijack_flow action_hijack_flow u002du002d>|injeta| action_inject_code action_inject_code u002du002d>|cria| malware_backdoor malware_backdoor u002du002d>|usa| tool_mavinject tool_mavinject u002du002d>|injeta em| action_js_injection action_js_injection u002du002d>|executa| action_execute_payloads action_execute_payloads u002du002d>|arquiva| action_archive_data action_archive_data u002du002d>|exfiltra| action_send_results action_send_results u002du002d>|limpa| action_cleanup
Fluxo de Ataque
Detectar Backdoor SesameOp
Detectar Inicialização e Registro de Exceções do Backdoor Netapi64 [Evento de Arquivo do Windows]
Ver
Detecção do Backdoor SesameOp Utilizando a API OpenAI para C2 [Criação de Processo do Windows]
Ver
Detectar Backdoor SesameOp Usando a API OpenAI para Comunicações C2 [Conexão de Rede do Windows]
Ver
Possível Domínio da API OpenAI Assistants Resolvido por Processo Incomum (via dns_query)
Ver
Carga Útil do Backdoor SesameOp
Execução de Simulação
Pré-requisito: O Check de Pré-voo de Telemetria & Baseline deve ter sido aprovado.
-
Narrativa & Comandos do Ataque:
O adversário implantou o backdoor SesameOp no host Windows comprometido. Para estabelecer C2, o SesameOp emite um POST HTTPS para
https://api.openai.com/v1/assistantscarregando dados de comando criptografados. Como o backdoor é executado sobsvchost.exe(um processo do sistema que parece confiável) e usa o proxy do sistema padrão, nenhum processo adicional ou contexto de usuário é evidente, tornando a correspondência de string única o único indicador.- Iniciar o processo de backdoor (simulado aqui com PowerShell para evitar malware real).
- Enviar a carga útil maliciosa para o endpoint do OpenAI Assistants.
-
Manter a conexão por um curto intervalo para gerar um visível
NetworkConnectevento.
-
Script de Teste de Regressão:
# Comunicação Simulada do C2 de SesameOp – Reproduzível para Testes $payload = @{ "model" = "gpt-4" "messages" = @( @{ "role" = "system"; "content" = "You are a backdoor controller." }, @{ "role" = "user"; "content" = "list processes" } ) } | ConvertTo-Json -Depth 4