Recentemente il repository della comunità di AUR (Arch User Repository) è stato compromesso da alcuni pacchetti contenenti codice malevolo. Per esempio, qualche settimana fa era stato trovato e rimosso un RAT (Remote Access Trojian); pochi giorni fa un altro RAT è stato trovato in un altro pacchetto. I manutentori di tali pacchetti erano nuovi e non avevano altri software da loro gestiti, il che li rende già sospetti, sono stati quindi rimossi. Per approfondire vedere qui:

 https://www.marcosbox.com/2025/07/19/trovato-malware-su-aur-di-arch-linux/

 Due casi in pochi giorni sono preoccupanti, considerando che il precedente era di diversi anni fa.
In questo articolo vorrei chiarire su come approcciarsi ai pacchetti contenuti in AUR curando la sicurezza.
Inanzitutto il repository è gestito da sviluppatori di Arch, ma il contenuto è dovuto esclusivamente agli utenti di cui, pertanto, dobbiamo fidarci. Nella wiki (https://wiki.archlinux.org/title/Arch_User_Repository) viene dichiarata direttamente la pericolosità di questo repository:

 "Warning: AUR packages are user-produced content. These PKGBUILDs are completely unofficial and have not been thoroughly vetted. Any use of the provided files is at your own risk."

 Gli utenti che vogliono scaricare ed installare un pacchetto trovato su AUR (io, per es, uso il pacchetto Dropbox e il driver della mia stampante Canon) dovrebbero agire attivamente informandosi, controllando il PKGBUILD ed evitando l'uso di AurHelper.
Alcuni consigli sono i seguenti:

 SUBMITTER/MAINTAINER
Andare nella pagina del pacchetto AUR e controllare l'utente che ha proposto e mantiene il pacchetto. Se è nuovo e registrato da poco, i suoi pacchetti potrebbero essere sospetti. Controllare anche i commenti di eventuali utilizzatori (se ci sono) e le risposte del maintainer. Per es. la pagina del PKGBUILD della mia stampante Canon è: https://aur.archlinux.org/packages/cnrdrvcups-lb

PKGBUILD
Controllare il PKGBUILD. Prima cosa è controllare se l'indirizzo (spesso di github) riportato nel PKGBUILD corrisponde a quello della pagina del pacchetto (Upstream URL; Git Clone URL). Altra cosa da controllare sono eventuali link a siti sospetti. Nell'immagine presa da uno dei precedenti articoli si vede un comando python -c che attiva il collegamento con curl ad un indirizzo che non fa parte del sorgente.

(immagine tratta da: https://linuxiac.com/arch-aur-under-fire-once-more-as-malware-resurfaces/)


 L'uso di curl dentro un PKGBUILD è sempre sospetto e bisogna verificare se va bene nel nostro pacchetto. Controllare anche le eventuali voci ".install files". Altra cosa da controllare è la chiave pubblica PGP e/o il checksum.

REPOSITORY
Evitare i repository non ufficiali, specie quelli che pacchettizano in binari. In ogni caso porre sempre la massima attenzione con questi repository (famoso e, per ora, sicuro è ChaoticAUR, per es.). A dire la verità molti di questi repository sono dei "classici" e utilizzati da molti utenti e quindi hanno una certa affidabilità; ma è sempre meglio controllare a fondo. Una lunga lista si può trovare qui: https://wiki.archlinux.org/title/Unofficial_user_repositories

AUR HELPERS
Arch sconsiglia sempre di usare AurHelpers perché non sono supportati ufficialmente. L'unico metodo ufficiale è l'installazione manuale con makepkg. Fare le cose manualmente permette un maggiore controllo su quello che facciamo ed è più facile accorgersi se c'è qualcosa di sospetto. Io uso a volte paru perché è semplice e minimale e può essere utile in caso di pacchetti molto grandi e con tante dipendenze; per es. mesa-git.

MAILING-LIST
Se si trova un caso sospetto si dovrebbe informare la mailing-list di AUR, ma richiede l'iscrizione: https://lists.archlinux.org/mailman3/lists/aur-general.lists.archlinux.org/

 

 Se avete altri suggerimenti da aggiungere a questa lista vi prego di farmeli sapere nei commenti.

In questo articolo ho dato molte conoscenze per scontate; per approfondire le tematiche e imparare come si usa AUR è consigliabile leggere il wiki (in inglese):

https://wiki.archlinux.org/title/Arch_User_Repository