El 7 de junio, se modificó un paquete AUR con algún código malicioso, recordando a los usuarios de Arch Linux (y a los usuarios de Linux en general) que todos los paquetes generados por los usuarios deberían verificarse (cuando sea posible) antes de la instalación.
AUR, o el repositorio de usuarios de Arch (Linux) contiene descripciones de paquetes, también conocidas como PKGBUILDs, que hacen que compilar paquetes desde la fuente sea más fácil. Si bien estos paquetes son muy útiles, nunca deben tratarse como seguros, y los usuarios siempre deben verificar sus contenidos antes de usarlos, cuando sea posible. Después de todo, la página web de AUR indica en negrita que “los paquetes de AUR son contenido producido por el usuario. Cualquier uso de los archivos proporcionados es bajo su propio riesgo”.
El descubrimiento de un paquete AUR que contiene código malicioso lo demuestra. Acrored fue modificado el 7 de junio (parece que anteriormente era “huérfano”, lo que significa que no tenía mantenedor) por un usuario llamado “xeactor” para incluir un comando curl que descargó un script de un pastebin. La secuencia de comandos luego descargó otra secuencia de comandos e instaló una unidad systemd para ejecutar esa secuencia de comandos periódicamente.
Parece que otros dos paquetes de AUR se modificaron de la misma manera. Se eliminaron todos los paquetes ofensivos y se suspendió la cuenta de usuario (que se registró el mismo día en que se actualizaron esos paquetes) que se utilizó para cargarlos.
El código malicioso no hizo nada verdaderamente dañino: solo intentó cargar información del sistema, como la ID de la máquina, el resultado de uname -a (que incluye la versión del kernel, arquitectura, etc.), información de la CPU, información de pacman, y la salida de las unidades de lista systemctl (que enumera la información de las unidades del sistema) a pastebin.com. Estoy diciendo “intentó” porque no se cargó información del sistema debido a un error en el segundo script (la función de carga se llama “upload”, pero el script intentó llamarlo usando un nombre diferente, “uploader”).
Además, la persona que agrega estos scripts maliciosos a AUR dejó la clave personal Pastebin en el script en texto claro, lo que demuestra una vez más que no saben exactamente lo que están haciendo.
El propósito de intentar cargar esta información en Pastebin no está claro, especialmente debido a que se pudieron haber cargado datos mucho más confidenciales, como las claves GPG / SSH.
Actualización: el usuario de Reddit xanaxdroid_ menciona que el mismo usuario llamado “xeactor” también publicó algunos paquetes de minería de criptomonedas, por lo que especula que “xeactor” probablemente estaba planeando agregar algún software de minería de criptomonedas oculto a AUR (este también fue el caso con algunos paquetes Snap de Ubuntu hace dos meses). Es por eso que “xeactor” probablemente estaba tratando de obtener diversa información del sistema. Todos los paquetes cargados por este usuario de AUR han sido eliminados, así que no puedo verificar esto.
Otra actualización: ¿qué debería verificar exactamente en los paquetes generados por los usuarios, como los que se encuentran en AUR? Esto varía y no puedo decirte exactamente, pero puedes comenzar buscando cualquier cosa que intentes descargar algo usando curl, wget y otras herramientas similares, y ver qué es exactamente lo que están intentando descargar. También verifica el servidor desde el que se descarga el origen del paquete y asegúrate de que sea la fuente oficial. Lamentablemente, esta no es una “ciencia” exacta. Para los PPA de Launchpad, por ejemplo, las cosas se vuelven más complicadas ya que debe saber cómo funciona el empaquetado de Debian, y la fuente puede modificarse directamente, ya que está alojada en el PPA y cargada por el usuario. Se vuelve aún más complicado con los paquetes de Snap, porque no puede verificar dichos paquetes antes de la instalación (hasta donde yo sé). En estos últimos casos, y como una solución genérica, supongo que solo debes instalar paquetes generados por el usuario en el que confías.