Attacco ai Sistemi *NIX tramite CUPS
Nel panorama della sicurezza informatica, le vulnerabilità nei sistemi *NIX rappresentano una minaccia significativa. Recentemente, il ricercatore di sicurezza Simone Margaritelli, noto anche come “EvilSocket”, ha scoperto una serie di vulnerabilità nel sistema di stampa CUPS (Common Unix Printing System). Queste vulnerabilità permettono a un attaccante remoto di eseguire comandi arbitrari sul sistema bersaglio. Simone Margaritelli è un hacker italiano. È nato a Siracusa e ha trascorso gran parte della sua vita e carriera a Roma.
La notizia delle vulnerabilità di CUPS è stata riportata da diverse fonti di informazione. Simone Margaritelli, il ricercatore di sicurezza che ha scoperto le vulnerabilità, ha pubblicato i dettagli sul suo blog. Successivamente, la notizia è stata ripresa da varie testate specializzate in sicurezza informatica, tra cui CSO Online, Snyk, FOSSA.
Simone Margaritelli ha incontrato notevoli difficoltà nel far accettare alla comunità la gravità delle vulnerabilità, che hanno un punteggio di 9.9 su 10 nella scala CVSS (Common Vulnerability Scoring System). Nonostante le sue ripetute segnalazioni, ci sono voluti 22 giorni di discussioni per convincere gli sviluppatori di CUPS a prendere sul serio il problema.
Panoramica delle Vulnerabilità
Le vulnerabilità identificate sono state catalogate con i seguenti codici CVE (Common Vulnerabilities and Exposures), che sono principalmente assegnati dal MITRE Corporation, l’organizzazione responsabile della gestione del sistema CVE. Tuttavia, anche altre organizzazioni autorizzate, note come CVE Numbering Authorities (CNA), possono assegnare CVE. Il National Institute of Standards and Technology (NIST) gestisce il National Vulnerability Database (NVD), che utilizza i CVE assegnati da MITRE e dalle CNA per fornire dettagli aggiuntivi e punteggi di gravità:
- CVE-2024-47176: La versione di
cups-browsed
fino alla 2.0.1 si lega all’indirizzo UDP (User Datagram Protocol) INADDR_ANY:631, accettando pacchetti da qualsiasi fonte per attivare una richiesta IPP (Internet Printing Protocol) a un URL controllato dall’attaccante. - CVE-2024-47076: La versione di
libcupsfilters
fino alla 2.1b1 non valida o sanifica gli attributi IPP restituiti da un server IPP, permettendo l’inserimento di dati controllati dall’attaccante nel sistema CUPS. - CVE-2024-47175: La versione di
libppd
fino alla 2.1b1 non valida o sanifica gli attributi IPP quando li scrive in un file PPD (PostScript Printer Description) temporaneo, consentendo l’iniezione di dati controllati dall’attaccante. - CVE-2024-47177: La versione di
cups-filters
fino alla 2.0.1 permette l’esecuzione di comandi arbitrari tramite il parametro FoomaticRIPCommandLine nel file PPD.
Oltre a un paio di altri bug che sono presumibilmente problemi di sicurezza ma sono stati praticamente ignorati durante la conversazione con gli sviluppatori e il CERT. Sono ancora lì, insieme a diversi altri bug che sono più o meno sfruttabili.
Impatto delle Vulnerabilità
Un attaccante remoto non autenticato può sostituire silenziosamente gli URL IPP delle stampanti esistenti (o installarne di nuove) con un URL malevolo. Questo porta all’esecuzione di comandi arbitrari sul computer quando viene avviato un lavoro di stampa. Potenzialmente consente un grave attacco ai sistemi *NIX tramite CUPS.
Punti di Ingresso
- WAN (Wide Area Network) / Internet Pubblica: Un attaccante remoto invia un pacchetto UDP alla porta 631 senza necessità di autenticazione.
- LAN (Local Area Network): Un attaccante locale può falsificare annunci zeroconf / mDNS / DNS-SD per ottenere lo stesso percorso di codice che porta all’esecuzione di comandi arbitrari.
Sistemi Interessati
Le vulnerabilità riguardano principalmente CUPS e cups-browsed
, che sono pacchettizzati per la maggior parte dei sistemi UNIX, incluse molte distribuzioni GNU/Linux e alcuni sistemi BSD. In sintesi questi sono i sistemi operativi interessati:
- la maggior parte delle distribuzioni GNU/Linux
- alcune BSD.
- Probabilmente Google Chromium/ChromeOS
- Oracle Solaris
Cos’è e Come Funziona IPP
Il Internet Printing Protocol (IPP) è un protocollo di comunicazione specializzato per la stampa di documenti su una rete, solitamente tramite Internet. IPP permette ai client (computer, telefoni cellulari, tablet, ecc.) di inviare uno o più lavori di stampa a una stampante collegata in rete o a un server di stampa, e di eseguire operazioni come la verifica dello stato della stampante, l’ottenimento dello stato dei lavori di stampa o la cancellazione di singoli lavori di stampa. A differenza di altri protocolli di stampa, IPP supporta il controllo degli accessi, l’autenticazione e la crittografia, rendendolo un meccanismo di stampa molto più sicuro e capace rispetto ai protocolli più vecchi.
Misure di Sicurezza
Per mitigare queste vulnerabilità, è consigliabile aggiornare i pacchetti interessati alle versioni più recenti e riavviare il servizio CUPS. Ecco i comandi per le distribuzioni basate su Debian:
sudo apt update && sudo apt upgrade
sudo systemctl restart cups.service
Per ulteriori dettagli e le osservazioni del ricercatore che ha individuato queste problematiche in CUPS, vi invitiamo a leggere l’articolo sul suo blog che è la fonte di questo articolo. Qui, egli descrive anche le difficoltà incontrate nel portare queste vulnerabilità all’attenzione degli esperti del settore.
Conclusione
Le vulnerabilità nel sistema di stampa CUPS rappresentano una minaccia significativa per la sicurezza dei sistemi *NIX tra cui Linux. È essenziale che gli amministratori di sistema prendano misure immediate per aggiornare i pacchetti vulnerabili e proteggere i loro sistemi da potenziali attacchi.
Fonte: https://www.evilsocket.net/2024/09/26/Attacking-UNIX-systems-via-CUPS-Part-I/
Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!
Hai dubbi o problemi? Ti aiutiamo noi!
Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.