La buona notizia è che il bug di sicurezza di sette anni fa nel polkit di Linux systemd, utilizzato in molte distribuzioni Linux, è stato corretto. La cattiva notizia è che è sempre stato lì in primo luogo. Polkit, che systemd utilizza al posto di sudo, consente agli utenti non autorizzati di eseguire processi privilegiati che altrimenti non potrebbero eseguire. Si è scoperto che potresti anche abusare di polkit per ottenere l'accesso root a un sistema.
Puoi dire “Ow!”?
Il potere di ottenere i privilegi di root è il male supremo nei sistemi Unix e Linux. Kevin Backhouse, un membro del GitHub Security Lab, ha scoperto la falla di sicurezza di Polkit nel corso delle sue funzioni. Lo ha rivelato ai responsabili del polkit e al team di sicurezza di Red Hat. Quindi, quando una correzione è stata rilasciata il 3 giugno 2021, è stata resa pubblica come CVE-2021-3560.
Backhouse ha scoperto che un utente locale non autorizzato potrebbe facilmente ottenere una shell di root su un sistema utilizzando alcuni strumenti di shell standard come bash, kill e dbus-send. Abbastanza stranamente, mentre il bug è piuttosto vecchio, solo di recente ha iniziato a essere distribuito nelle distribuzioni Linux più popolari. Ad esempio, se stai eseguendo Red Hat Enterprise Linux (RHEL) 7; Debian 10; o Ubuntu 18.04; sei invulnerabile a questa falla di sicurezza. Ma, se stai eseguendo il più recente RHEL 8, Debian testing; o Ubuntu 20.04, puoi essere attaccato con esso.
Perché? Perché questo codice difettoso non era stato utilizzato nella maggior parte delle distribuzioni Linux. Di recente, tuttavia, il codice vulnerabile è stato riportato nelle versioni di spedizione di polkit. Una vecchia falla di sicurezza ha avuto una nuova prospettiva di vita.
Non è l'unico motivo per cui questo insetto si è nascosto in bella vista per così tanto tempo. Backhouse ha spiegato che il buco di sicurezza non viene attivato ogni volta che si eseguono programmi che possono chiamarlo. Perché? Si scopre che polkit chiede a dbus-daemon l'UID [User ID] del processo richiedente più volte, su codepath diversi. La maggior parte di questi codepath gestisce correttamente l'errore, ma uno di essi no. Se interrompi il comando dbus-send in anticipo, viene gestito da uno dei codepath corretti e la richiesta viene rifiutata. Per attivare il codepath vulnerabile, devi disconnetterti al momento giusto. E poiché sono coinvolti più processi, i tempi di quel “momento giusto” variano da una corsa all'altra. Ecco perché di solito ci vogliono alcuni tentativi prima che l'exploit abbia successo. Immagino che sia anche il motivo per cui il bug non è stato scoperto in precedenza.
È una piccola cosa subdola.
Ma, quando Backhouse ha detto che non può essere sempre sfruttato, non c'è motivo per non preoccuparsene. Puoi facilmente scrivere uno script che lo attiverà sicuramente dopo alcuni minuti di tentativi. Red Hat avverte: “La minaccia maggiore di questa vulnerabilità riguarda la riservatezza e l'integrità dei dati, nonché la disponibilità del sistema”.
Pertanto, come sottolinea Backhouse, poiché è “molto semplice e veloce da sfruttare… è importante aggiornare le proprie installazioni Linux il prima possibile”.
Allora, sai cosa fare adesso, vero? Mettiti al lavoro con le patch: ti consigliamo di aggiornare polkit alla versione 0.119 o successiva.
Storie correlate:
CloudLinux rilascia lo strumento di sicurezza UChecker per server LinuxLinux e le comunità open source affrontano la sfida della sicurezza informatica di Biden
Rete Linux ad alta severità buchi di sicurezza trovati, corretti
Argomenti correlati:
Sicurezza software aziendale Gestione dati TV CXO Data Center