Chi ha recentemente installato PyTorch-nightly in Linux tramite pip ha ricevuto del codice maligno. Il team di PyTorch ha avviato le contromisure.
Come annunciato dal team di PyTorch, il framework di apprendimento automatico è diventato il bersaglio di un attacco alla catena di approvvigionamento. Gli sviluppatori che hanno installato PyTorch-nightly su Linux tramite pip tra il 25 e il 30 dicembre 2022 devono disinstallare immediatamente PyTorch e la dipendenza torchtriton e passare a una versione nightly più recente dopo il 30 dicembre 2022. Secondo il team di sviluppo, gli utenti della versione stabile non sono interessati.
Binario legge le informazioni e i file
I pacchetti Linux per PyTorch Nightly Builds scaricati nel periodo in questione installavano la dipendenza torchtriton compromessa nel repository di codice Python Package Index (PyPI) ed eseguivano un binario dannoso. Il codice maligno caricato su PyPI ha lo stesso nome della dipendenza torchtriton e, a causa della precedenza dell’indice PyPI, l’ha sostituita invece di installare torchtriton dal repository ufficiale di PyTorch.
L’esecuzione del codice seguente dovrebbe indicare se la vostra installazione è interessata:
python3 -c "import pathlib;import importlib.util;s=importlib.util.find_spec('triton'); affected=any(x.name == 'triton' for x in (pathlib.Path(s.submodule_search_locations[0] if s is not None else '/' ) / 'runtime').glob('*'));print('You are {}affected'.format('' if affected else 'not '))"
Gli sviluppatori interessati disinstallano PyTorch, compreso torchtriton, come segue:
$ pip3 uninstall -y torch torchvision torchaudio torchtriton
$ pip3 cache purge
Secondo il team di PyTorch, il binario legge principalmente le informazioni di sistema e il contenuto dei file, ad esempio da $HOME/.gitconfig e $HOME/.ssh/*, e carica queste informazioni su un dominio utilizzando query DNS crittografate. Tutti gli effetti scoperti del codice maligno sono elencati sul blog di PyTorch.
Contromisure
Il team di sviluppo ha rimosso torchtriton come dipendenza dei pacchetti nightly e lo ha sostituito con pytorch-triton. Il team di PyTorch ha anche registrato un pacchetto fittizio su PyPI per contrastare un nuovo attacco. Tutti i pacchetti Nightly che hanno torchtriton come dipendenza sono stati rimossi dagli indici dei pacchetti PyTorch fino a nuovo avviso. Inoltre, il team di PyTorch ha presentato una richiesta al team di sicurezza di PyPI per ottenere la proprietà del pacchetto torchtriton su PyPI e rimuovere la versione dannosa.
Solo il mese scorso, il team di PyTorch aveva chiesto l’uso di compilazioni notturne per poter utilizzare una nuova modalità di compilazione prevista per la versione 2.0.
Il team di PyTorch ha riassunto tutte le informazioni note sull’attacco alla catena di approvvigionamento ( supply chain ) in un post sul blog.
Maestro del Caos Digitale e Guardiano del Cyberspazio, naviga nel mare oscuro della sicurezza informatica da oltre vent’anni, armato di codice e un irresistibile papillon.
Con la precisione di un bisturi e l’umorismo di un hacker, ha trasformato centinaia di “comuni mortali IT” in veri e propri ninja dell’Ethical Hacking. La sua missione? Insegnare l’arte della difesa digitale a migliaia di ignare risorse aziendali, un firewall alla volta.
Tre segreti che lo rendono un unicorno nel mondo cyber:
Ha una relazione quasi ossessiva con le password. Alcuni collezionano francobolli, lui colleziona hash crittografici.
Il suo gatto si chiama Hash. Sì, come l’algoritmo. No, non miagola in binario (ancora).
Indossa sempre un papillon, perché chi ha detto che non si può hackerare con stile?
Se lo cercate, seguite la scia di bit verdi: è il suo colore preferito. Perché anche nel mondo digitale, è sempre primavera per la sicurezza!