SmartLoader Clona l’MCP dell’Oura Ring per Mettere in Scena un Attacco alla Catena di Fornitura
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
Rilevamenti
Task Programmato Sospetto (tramite controllo)
Visualizza
IOC (DestinationIP) da rilevare: SmartLoader Clona Oura Ring MCP per Distribuire Attacco alla Catena di Fornitura
Visualizza
IOC (SourceIP) da rilevare: SmartLoader Clona Oura Ring MCP per Distribuire Attacco alla Catena di Fornitura
Visualizza
Esecuzione Sospetta di Interprete LuaJIT in AppData [Creazione Processo Windows]
Visualizza
Rilevamento di Ecosistema Falso di SmartLoader su GitHub [Webserver]
Visualizza
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 tramitecurl. 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."