SOC Prime Bias: Critico

18 Feb 2026 16:17

SmartLoader Clona l’MCP dell’Oura Ring per Mettere in Scena un Attacco alla Catena di Fornitura

Author Photo
Ruslan Mikhalov Capo della Ricerca sulle Minacce presso SOC Prime linkedin icon Segui
SmartLoader Clona l’MCP dell’Oura Ring per Mettere in Scena un Attacco alla Catena di Fornitura
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Sommario

SmartLoader ha utilizzato falsi account GitHub e un server MCP clon di Oura Ring per contaminare i registri MCP. Il server trojanizzato ha poi distribuito l’infostealer StealC, progettato per rubare credenziali di sviluppatori, dati di cripto-portafogli e informazioni sanitarie. L’attività mostra come le integrazioni sanitarie abilitate dall’AI possano diventare un punto d’appoggio per la catena di fornitura.

Indagine

I ricercatori hanno mappato almeno cinque profili GitHub fabbricati che hanno forkato il vero repository Oura MCP e pubblicato somiglianze. Un fork dannoso è stato caricato sotto un nuovo account e inviato ai registri MCP. L’analisi dinamica ha trovato payload basati su LuaJIT organizzati nella cartella AppData dell’utente e la persistenza tramite task pianificati che si mascheravano da driver audio Realtek.

Mitigazione

Verificare gli inventari del server MCP, applicare controlli di provenienza prima dell’installazione e allertare sui task programmati che avviano eseguibili da AppData. Applicare controlli di uscita e bloccare il traffico verso endpoint noti di criptovaluta e C2. Convalidare la storia dei contributori GitHub e la genealogia del repository durante l’approvazione.

Risposta

Al rilevamento, isolare la workstation, terminare i task dannosi, rimuovere gli eseguibili non autorizzati da AppData e ruotare le credenziali esposte e le chiavi API. Revisionare forensicamente il server MCP compromesso e rafforzare la verifica delle dipendenze per prevenire la reinfezione.

graph TB %% Definizioni Classi classDef action fill:#99ccff classDef malware fill:#ffcc99 classDef process fill:#ff9999 classDef file fill:#cccccc classDef technique fill:#c0c0c0 %% Definizioni Nodi action_supply_chain[“<b>Azione</b> – <b>T1195.001 Compromissione della Supply Chain</b><br/><b>Descrizione</b>: Un avversario compromette una catena di fornitura software per distribuire codice malevolo.”] class action_supply_chain action malware_trojanized_server[“<b>Malware</b> – <b>Nome</b>: Trojanized Oura MCP Server<br/><b>Scopo</b>: Consegnato tramite pacchetto compromesso.”] class malware_trojanized_server malware action_developer_install[“<b>Azione</b> – <b>Installazione Pacchetto</b><br/><b>Descrizione</b>: Lo sviluppatore installa il pacchetto MCP compromesso.”] class action_developer_install action file_resource_txt[“<b>File</b> – <b>Nome</b>: resource.txt<br/><b>Tecniche</b>: T1027 File Offuscati, T1059 Interprete di Comandi e Script”] class file_resource_txt file malware_luajit_script[“<b>Malware</b> – <b>Script LuaJIT</b><br/><b>Tecniche</b>: T1027, T1059”] class malware_luajit_script malware process_odmw[“<b>Processo</b> – <b>Nome</b>: ODMw.exe (interprete LuaJIT)”] class process_odmw process process_odmy[“<b>Processo</b> – <b>Nome</b>: ODMy.exe (interprete LuaJIT)”] class process_odmy process tech_T1053[“<b>Tecnica</b> – T1053 Attività/Processo Pianificato<br/><b>Descrizione</b>: Crea attività pianificate per la persistenza.”] class tech_T1053 technique process_task_odmw[“<b>Processo</b> – <b>Attività Pianificata</b>: RealtekAudioManager_ODMw”] class process_task_odmw process process_task_odmy[“<b>Processo</b> – <b>Attività Pianificata</b>: AudioManager_ODMy”] class process_task_odmy process malware_socket3[“<b>Malware</b> – <b>Nome</b>: socket3.lua (payload C2)”] class malware_socket3 malware tech_T1102[“<b>Tecnica</b> – T1102 Servizio Web<br/><b>Descrizione</b>: Usa un servizio web basato su HTTP per comando e controllo.”] class tech_T1102 technique tech_T1041[“<b>Tecnica</b> – T1041 Esfiltrazione tramite Canale C2<br/><b>Descrizione</b>: Invia dati rubati tramite il canale C2.”] class tech_T1041 technique malware_stealc[“<b>Malware</b> – <b>Nome</b>: StealC Infostealer”] class malware_stealc malware tech_T1555_003[“<b>Tecnica</b> – T1555.003 Credenziali nei File: Password/Cookie del Browser<br/><b>Descrizione</b>: Ruba credenziali del browser salvate.”] class tech_T1555_003 technique tech_T1552_001[“<b>Tecnica</b> – T1552.001 Credenziali nei File: Archivi Password<br/><b>Descrizione</b>: Ruba token Discord, wallet di criptovalute, chiavi SSH e credenziali API.”] class tech_T1552_001 technique %% Connessioni che mostrano il flusso dell’attacco action_supply_chain –>|consegna| malware_trojanized_server malware_trojanized_server –>|installato da| action_developer_install action_developer_install –>|crea| file_resource_txt file_resource_txt –>|contiene| malware_luajit_script malware_luajit_script –>|rilascia| process_odmw malware_luajit_script –>|rilascia| process_odmy process_odmw –>|usa| tech_T1053 process_odmy –>|usa| tech_T1053 tech_T1053 –>|crea| process_task_odmw tech_T1053 –>|crea| process_task_odmy process_task_odmw –>|esegue| process_odmw process_task_odmy –>|esegue| process_odmy process_odmw –>|avvia| malware_socket3 process_odmy –>|avvia| malware_socket3 malware_socket3 –>|comunica tramite| tech_T1102 malware_socket3 –>|esfiltra tramite| tech_T1041 malware_socket3 –>|distribuisce| malware_stealc malware_stealc –>|ruba| tech_T1555_003 malware_stealc –>|ruba| tech_T1552_001

Flusso di Attacco

Esecuzione della Simulazione

Pre-requisito: Il Controllo Pre‑volo della Telemetria & Baseline deve essere passato.

Rationale: Questa sezione descrive l’esecuzione precisa della tecnica dell’avversario (TTP) progettata per attivare la regola di rilevamento. I comandi e il racconto riflettono direttamente i TTP identificati e mirano a generare la telemetria esatta attesa dalla logica di rilevamento.

  • Narraerzione di Attacco & Comandi:
    Un attaccante che ospita un repository GitHub contraffatto (ad esempio, https://github.com/SiddhiBagul/MCP-oura) copia il payload legittimo SmartLoader, lo ribrandizza e lo rende pubblicamente raggiungibile. Un host interno compromesso più tardi esegue uno script che scarica il repository dannoso tramite curl. Questa azione produce una richiesta HTTP GET registrata dal proxy, corrispondente a uno degli URL indicatore nella regola.

  • Script di Test di Regressione:

    #!/usr/bin/env bash
    # Simulazione download fake‑GitHub di SmartLoader – attiva la regola 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 "[+] Fetching malicious repo: $url"
        # The -L flag follows redirects; -s silences progress; -o discards output.
        curl -s -L -o /dev/null "$url"
    done
    
    echo "[+] Simulation complete."
  • Comandi di Pulizia:

    # No files were persisted, but clear the shell history of the URLs
    history -d $(history | grep -n "github.com" | cut -d: -f1)
    echo "[+] Cleanup completed – URLs removed from history."