SOC Prime Bias: Crítico

18 Fev 2026 16:17

SmartLoader Clona o MCP do Anel Oura para Realizar um Ataque à Cadeia de Suprimentos

Author Photo
Ruslan Mikhalov Chefe de Pesquisa de Ameaças na SOC Prime linkedin icon Seguir
SmartLoader Clona o MCP do Anel Oura para Realizar um Ataque à Cadeia de Suprimentos
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Resumo

O SmartLoader usou contas falsas do GitHub e um servidor MCP do Oura Ring clonado para contaminar registros MCP. O servidor Trojanizado então entregou o StealC infostealer, projetado para roubar credenciais de desenvolvedores, dados de carteiras de criptomoedas e informações de saúde. A atividade mostra como integrações de saúde habilitadas por IA podem se tornar uma porta de entrada na cadeia de suprimentos.

Investigação

Pesquisadores mapearam pelo menos cinco perfis falsificados do GitHub que ramificaram o repositório real MCP do Oura e publicaram imitações. Um fork malicioso foi enviado sob uma nova conta e submetido aos registros MCP. A análise dinâmica encontrou cargas úteis baseadas em LuaJIT armazenadas na pasta AppData do usuário e persistência através de tarefas agendadas disfarçadas como drivers de áudio Realtek.

Mitigação

Audite inventários do servidor MCP, reforce verificações de procedência antes da instalação e alerte sobre tarefas agendadas iniciando executáveis de AppData. Aplique controles de saída e bloqueie tráfego para conhecidos endpoints de criptomoeda e C2. Valide o histórico de contribuidores do GitHub e a linhagem de repositórios durante a aprovação.

Resposta

Ao detectar, isole a estação de trabalho, termine as tarefas maliciosas, remova executáveis não autorizados do AppData e gire credenciais expostas e chaves API. Revise forensicamente o servidor MCP comprometido e aperte a verificação de dependências para prevenir reinfecção.

“graph TB %% Class Definitions classDef action fill:#99ccff classDef malware fill:#ffcc99 classDef process fill:#ff9999 classDef file fill:#cccccc classDef technique fill:#c0c0c0 %% Node definitions action_supply_chain[“<b>Ação</b> – <b>T1195.001 Compromisso da Cadeia de Suprimentos</b><br /><b>Descrição</b>: O adversário compromete uma cadeia de suprimentos de software para distribuir código malicioso.”] class action_supply_chain action malware_trojanized_server[“<b>Malware</b> – <b>Nome</b>: Servidor Oura MCP Trojanizado<br /><b>Propósito</b>: Entregue via pacote comprometido.”] class malware_trojanized_server malware action_developer_install[“<b>Ação</b> – <b>Instalar Pacote</b><br /><b>Descrição</b>: Desenvolvedor instala o pacote MCP comprometido.”] class action_developer_install action file_resource_txt[“<b>Arquivo</b> – <b>Nome</b>: resource.txt<br /><b>Técnicas</b>: T1027 Arquivos Obfuscados, T1059 Interpretador de Comando e Scripting”] class file_resource_txt file malware_luajit_script[“<b>Malware</b> – <b>Script LuaJIT</b><br /><b>Técnicas</b>: T1027, T1059”] class malware_luajit_script malware process_odmw[“<b>Processo</b> – <b>Nome</b>: ODMw.exe (interpretador LuaJIT)”] class process_odmw process process_odmy[“<b>Processo</b> – <b>Nome</b>: ODMy.exe (interpretador LuaJIT)”] class process_odmy process tech_T1053[“<b>Técnica</b> – T1053 Tarefa/Trabalho Agendado<br /><b>Descrição</b>: Cria tarefas agendadas para persistência.”] class tech_T1053 technique process_task_odmw[“<b>Processo</b> – <b>Tarefa Agendada</b>: RealtekAudioManager_ODMw”] class process_task_odmw process process_task_odmy[“<b>Processo</b> – <b>Tarefa Agendada</b>: AudioManager_ODMy”] class process_task_odmy process malware_socket3[“<b>Malware</b> – <b>Nome</b>: socket3.lua (carga útil C2)”] class malware_socket3 malware tech_T1102[“<b>Técnica</b> – T1102 Serviço Web<br /><b>Descrição</b>: Usa serviço web baseado em HTTP para comando e controle.”] class tech_T1102 technique tech_T1041[“<b>Técnica</b> – T1041 Exfiltração pelo Canal C2<br /><b>Descrição</b>: Envia dados roubados via o canal C2.”] class tech_T1041 technique malware_stealc[“<b>Malware</b> – <b>Nome</b>: StealC Infostealer”] class malware_stealc malware tech_T1555_003[“<b>Técnica</b> – T1555.003 Credenciais em Arquivos: Senhas/Cookies de Navegador<br /><b>Descrição</b>: Rouba credenciais de navegador salvas.”] class tech_T1555_003 technique tech_T1552_001[“<b>Técnica</b> – T1552.001 Credenciais em Arquivos: Armazenamento de Senhas<br /><b>Descrição</b>: Rouba tokens do Discord, carteiras de criptomoedas, chaves SSH e credenciais de API.”] class tech_T1552_001 technique %% Connections showing attack flow action_supply_chain u002du002d>|entrega| malware_trojanized_server malware_trojanized_server u002du002d>|instalado por| action_developer_install action_developer_install u002du002d>|cria| file_resource_txt file_resource_txt u002du002d>|contém| malware_luajit_script malware_luajit_script u002du002d>|solta| process_odmw malware_luajit_script u002du002d>|solta| process_odmy process_odmw u002du002d>|usa| tech_T1053 process_odmy u002du002d>|usa| tech_T1053 tech_T1053 u002du002d>|cria| process_task_odmw tech_T1053 u002du002d>|cria| process_task_odmy process_task_odmw u002du002d>|executa| process_odmw process_task_odmy u002du002d>|executa| process_odmy process_odmw u002du002d>|lança| malware_socket3 process_odmy u002du002d>|lança| malware_socket3 malware_socket3 u002du002d>|comunica via| tech_T1102 malware_socket3 u002du002d>|exfiltra via| tech_T1041 malware_socket3 u002du002d>|implanta| malware_stealc malware_stealc u002du002d>|rouba| tech_T1555_003 malware_stealc u002du002d>|rouba| tech_T1552_001 “

Fluxo do Ataque

Execução de Simulação

Pré-requisito: O Cheque de Pré-voo Telemetria & Baseline deve ter passado.

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 refletem diretamente os TTPs identificados e visam gerar a telemetria exata esperada pela lógica de detecção.

  • Narrativa do Ataque & Comandos:
    Um atacante hospeda um repositório falso do GitHub (por exemplo, https://github.com/SiddhiBagul/MCP-oura) copia a carga útil legítima do SmartLoader, renomeia-a e torna-a publicamente acessível. Um host interno comprometido posteriormente executa um script que baixa o repositório malicioso via curl. Esta ação produz uma solicitação HTTP GET registrada pelo proxy, correspondendo a um dos URLs indicadores na regra.

  • Script de Teste de Regressão:

    #!/usr/bin/env bash
    # Simulação de download falso do GitHub SmartLoader – aciona a regra Sigma
    
    MALICIOUS_URLS=(
        "https://github.com/SiddhiBagul/MCP-oura"
        "https://github.com/YuzeHao2023/MCP-oura"
        "https://github.com/punkpeye/MCP-oura"
        "https://github.com/dvlan26/MCP-oura"
        "https://github.com/halamji/MCP-oura"
        "https://github.com/yzhao112/MCP-oura"
    )
    
    for url in "${MALICIOUS_URLS[@]}"; do
        echo "[+] Buscando repositório malicioso: $url"
        # A flag -L segue redirecionamentos; -s silencia o progresso; -o descarta a saída.
        curl -s -L -o /dev/null "$url"
    done
    
    echo "[+] Simulação concluída."
  • Comandos de Limpeza:

    # Nenhum arquivo foi persistido, mas limpe o histórico do shell das URLs
    history -d $(history | grep -n "github.com" | cut -d: -f1)
    echo "[+] Limpeza concluída – URLs removidas do histórico."