Attacco a GitHub Azioni per il mining di criptovaluta sui server GitHub

GitHub sta indagando su una serie di attacchi in cui gli aggressori sono riusciti a estrarre criptovaluta sull'infrastruttura cloud GitHub utilizzando il meccanismo GitHub Actions per eseguire il proprio codice. I primi tentativi di utilizzare GitHub Actions per il mining risalgono a novembre dello scorso anno.

GitHub Actions consente agli sviluppatori di codice di associare gestori per automatizzare varie operazioni in GitHub. Ad esempio, utilizzando GitHub Actions puoi eseguire determinati controlli e test durante il commit o automatizzare l'elaborazione di nuovi problemi. Per avviare il mining, gli aggressori creano un fork del repository che utilizza GitHub Actions, aggiungono un nuovo GitHub Actions alla loro copia e inviano una richiesta pull al repository originale proponendo di sostituire i gestori GitHub Actions esistenti con il nuovo ".github/workflows" /ci.yml” gestore.

La richiesta pull dannosa genera più tentativi di eseguire il gestore GitHub Actions specificato dall'utente malintenzionato, che dopo 72 ore viene interrotto a causa di un timeout, fallisce e quindi viene eseguito nuovamente. Per attaccare, un utente malintenzionato deve solo creare una richiesta pull: il gestore viene eseguito automaticamente senza alcuna conferma o partecipazione da parte dei manutentori del repository originale, che possono solo sostituire l'attività sospetta e interrompere l'esecuzione delle azioni GitHub.

Nel gestore ci.yml aggiunto dagli aggressori, il parametro "run" contiene codice offuscato (eval "$(echo 'YXB0IHVwZGF0ZSAt…' | base64 -d"), che, una volta eseguito, tenta di scaricare ed eseguire il programma di mining. Nelle prime varianti dell'attacco da diversi repository un programma chiamato npm.exe veniva caricato su GitHub e GitLab e compilato in un file ELF eseguibile per Alpine Linux (utilizzato nelle immagini Docker). Le forme più recenti dell'attacco scaricano il codice di un generico Miner XMRig dal repository ufficiale del progetto, che viene poi compilato con portafoglio di sostituzione degli indirizzi e server per l'invio dei dati.

Fonte: opennet.ru

Aggiungi un commento