Un paio di giorni fa vi abbiamo messo in guarda per un grave bug in runC, la runtime di Docker; se avete corso e patchato il vostro sistema avete fatto un ottimo lavoro, ma se siete utenti delle diverse distribuzioni Canonical che utilizzano snapd (Ubuntu in primis) non potete ancora tirare un sospiro di sollievo.
Già perchè proprio in questi giorni Chris Moberly, ricercatore nell’ambito della sicurezza, ha scoperto un bug, battezzato “Dirty_Sock” (calzino sporco [nda]) che seppur affligga prevalentemente i sistemi Canonical, in realtà colpisce tutti i sistemi Linux che utilizzano il demone snapd.
Gli Snap, di cui abbiamo già parlato in articoli passati, sono applicazioni distribuite in pacchetti che contengono tutte le librerie, i file e gli eseguibili necessari all’esecuzione di quella specifica applicazione, rendendoli quindi autosufficienti e funzionanti anche senza dover direttamente installare nel sistema tutte le dipendenze necessarie.
Il bug, rilasciato in ben due versioni dirty_sockv1 e dirty_sockv2, permette tramite l’uso di diverse metodologie, di fare privilege escalation, permettendo quindi al contenuto del pacchetto, tipicamente eseguito come utente normale, di eseguire comandi con l’utente root, l’amministratore di sistema.
E, come ben sappiamo, quando qualcosa esegue senza la nostra esplicita conferma comandi come root, il sistema è da considerarsi compromesso.
Il problema è dato dal fatto che il demone snapd fornisce delle API per permettere agli sviluppatori di comunicare con esso, ad esempio per ottenere informazioni dal sistema che sta eseguendo lo snap; queste API utilizzano informazioni passate dall’utente che le lancia per capire il livello di privilegi che questo ha ed alcune (ad esempio quella per creare utenti sul sistema) richiedono che l’utente che le interroga abbia alti privilegi.
Chris è riuscito, costruendo chiamate ad-hoc a questo demone, ad ingannarlo facendogli pensare che le chiamate provenivano da utenti altamente privilegiati (uid=0, root quindi); questa tecnica è stata poi utilizzata nella v2 della vulnerabilità per creare un utente locale sulla macchina con privilegi molto elevati, al punto da poter eseguire tramite sudo qualsiasi comando di root. E’ ovvio che questo è solo un test di vulnerabilità, un reale utente malintenzionato potrebbe installare un trojan o una backdoor, e prendere possesso dell’intero sistema.
Il bug, fortunatamente, è già stato patchato da Canonical per tutte le versioni LTS di Ubuntu dalla 14.04 fino all’attuale 18.04, e per la versione 18.10 (non LTS), ma l’alta diffusione di quel demone anche su altri sistemi fa si che sia necessario stare molto attenti.
Vi lasciamo all’articolo approfondito di Chris in cui mostra il funzionamento del bug e, seppur magari avete patchato pochi giorni fa, mettetevi il cuore in pace e procedete nuovamente ad un update, almeno di snapd.
Leggi il contenuto originale su Mia mamma usa Linux!