SOC Prime Bias: Crítico

04 Nov 2025 09:05

Deteção do Backdoor SesameOp: Microsoft Descobre Novo Malware que Abusa da API de Assistentes OpenAI em Ciberataques

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
Deteção do Backdoor SesameOp: Microsoft Descobre Novo Malware que Abusa da API de Assistentes OpenAI em Ciberataques
shield icon

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

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/assistants carregando dados de comando criptografados. Como o backdoor é executado sob svchost.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.

    1. Iniciar o processo de backdoor (simulado aqui com PowerShell para evitar malware real).
    2. Enviar a carga útil maliciosa para o endpoint do OpenAI Assistants.
    3. Manter a conexão por um curto intervalo para gerar um visívelNetworkConnect evento.
  • 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