Spiegazioni sulla falla di sicurezza nel comando sudo

È stata recentemente discussa (anche sul Forum di Tevac) una falla di sicurezza che consente di usare il comando sudo pur senza conoscere la relativa parola d’ordine. Yoann Gini, specialista Apple, ha pubblicato sul suo blog un articolo particolarmente interessante a riguardo ed ha gentilmente autorizzato Tevac a tradurlo.

Come avrete certamente letto sui vari siti di attualità Mac, esiste una falla di sicurezza sui nostri sistemi OS X attuali. Il comando sudo, che permette di eseguire un comando in qualità di root od altro utente, ha un problema di sicurezza. Questo articolo vuole spiegare l’origine del problema, per capire quindi come difendersene.

Iniziamo con lo struttare noi stessi questa falla per capirne il funzionamento.

Il problema è repertoriato con il codice CVE-2013-1775 (dove CVE sta per Common Vulnerabilities and Exposures)) ed indica che certe versioni del comando sudo hanno un problema nella gestione del tempo e della cache di autentificazione.

Questa è la situazione: dal profilo di un utente che dispone dei privilegi necessari per usare il comando sudo e che ha già usato questo comando, è possibile diventare root senza parola d’ordine a condizione di cambiare la data del sistema e spostarla al 1 Gennaio 1970, l’epoch UNIX

Per procedere, identificatevi sul vostro Mac con un profilo di amministratore ed eseguite un sudo -s. Chiudete il terminale, lasciate passare 5 miuti, ritentate di lanciare un sudo ed il sistema vi chiederà la parola d’ordine. Al di sotto de 5 minuti il sistema vi autorizza ad usare nuovamente il comando sudo senza fornire nuovamente la parola d’ordine.

Ora che siete certi di avere eseguito almeno una volta il comando sudo nella vostra vita, potrete tentare di attaccare il vostro sistema.

Per farlo iniziate con il comando sudo -k, rendetevi poi nelle Preferenze di Sistema e quindi nella sezione “Data e Ora” per disattivare l’uso dei server per spostarvi nel 1 Gennaio 1970 all’una di mattina.

Ora tornate nel vostro terminale e fate sudo -s: non avete bisogno della parola d’ordine per essere qualificati come root.

La procedura sfrutta un problema nella gestione della cache di autentificazione del comando quando la data del sistema è prossima all’origine del tempo in UNIX.

Quello che è interessante qui è capire come il sistema gestisca la cache di autentificazione del comando, cosa spiegata nella sua documentazione.

/var/db/sudo Directory containing time stamps

Effettivamente se guardiamo in questa posizione, vedremo che una cartella vuota viene creata al momento dell’ultimo uso del comando sudo e che ha per nome il nome dell’utente.

yoanngini@Yoann-Air ~ 20:22 % sudo ls -l /var/db/sudo
total 0
drwx------ 2 root wheel 68 29 aoû 20:22 yoanngini

La data di creazione della cartella serve come timestamp dell’autentificazione.

Se cancelliamo questa cartella, il comando sudo perde la memoria e vi ridomanda la parola d’ordine.

Ora che sapete come funziona il comando e cosa causa la falla, è semplice capire come difendersene, il tempo di aspettare un aggiornamento di sicurezza da parte di Apple.

Per esempio, potrete aggiungere due servizi a launchd. Il primo, attivo all’avvio del sistema, cancellerà tutto il contenuto della cartella /var/db/sudo. Il secondo sorveglierà ogni cambiamento in questa stessa cartella per, di nuovo, cancellarlo.

In questo modo avrete un doppio risultato:

  • cancellare ogni documento creato con il sistema a freddo, al momento dell’avvio;
  • cancellare i timestamp di sudo non appena creati.

Certo, questo vorrà dire dover fornire la parola d’ordine ad ogni uso di sudo, ma vi proteggerà. Altre soluzioni sono ovviamente possibili: a ciascuno di scegliere quella che gli si confà di più e di approntarla.

Per chi fosse interessato, segnaliamo che Yoann Gini è autore di un manuale in francese su OS X Server, edito da Mac Génération.

Tags: ,

Shortlink: http://www.tevac.com/?p=12943

Trackbacks/Pingbacks

  1. Se l’installazione di Mavericks non va a buon fine - - tevac - 30 ottobre 2013

    […] suo blog Yohann Gini (che i Tevacchiani già conoscono) ha segnalato un problema che ha potuto verificare sulla sua macchina (un Mac Pro 3,1): per due […]

Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

%d blogger hanno fatto clic su Mi Piace per questo: