Qualche giorno fa ho indetto un contest denominato hacker buono contro cracker cattivo con in palio una SaggiaTshirt.01. Si doveva riuscire a trovare il miglior metodo per evitare che un malintenzionato potesse accedere ai nostri dati avendo a disposizione il nostro Mac. Il problema di fondo risiede nella modalità SUM (Single User Mode) la quale permette con la combinazione di tasti cmd+S all'avvio, di arrivare direttamente nella shell con privilegi root ed andare così a modificare la password del nostro account avendo accesso completo al sistema e ai file.

Non ho ricevuto molte risposte in effetti e alcune sono degli stessi autori che hanno proposto soluzioni differenti:

risposte

Piccola precisazione: se avete inviato una risposta e non siete presenti in questa lista probabilmente avete sbagliato l'oggetto del messaggio. Ho specificato che doveva essere esattamente contest-2011-01 non per un vezzo ma semplicemente perché l'unico modo che ho per trovare immediatamente tutte le risposte è quello di creare una casella smart automatica.

Non essendo io né un hacker, né un cracker, ho semplicemente provato a seguire le istruzioni indicate dagli utenti e valutato i risultati. Come da regolamento ho escluso le soluzioni che utilizzavano file di terze parti (quindi non Apple) e quelle che già io stesso sono in grado di aggirare. Ad esempio qualcuno mi ha proposto di mettere una password all'utente root, ma entrando in SUM non viene comunque richiesta. Oppure mi è stato detto di nascondere alcuni utenti dalla GUI al login, ma dalla shell un utente esperto riesce comunque ad ottenere una lista in altri modi. C'è anche chi pensava di bloccare con una password l'EFI Bios, ma pare che con una modifica hardware (basta togliere un banco RAM) e 3 reset della PRAM questa si azzeri nuovamente.

Tra le soluzioni che mi sembrano valide e che sono state spiegate passo-passo nell'email mi sembra interessante quella di Paolo Quadri ricevuta il 28 gennaio alle 21.19 (ricordandovi che c'era anche il fattore tempo in gioco, per cui risposte identiche successive "perdono"). La sua idea si basa su una che di base sarebbe inefficace, ovvero l'impostazione della password per l'utente root. Successivamente però utilizzando un file di Tiger (per cui non di terze parti) ed una modifica in /var/root/.profile si riesce a far richiedere la famosa password per root all'avvio in SUM. Non lo classifico direttamente come vincitore in quanto pur non essendo stato in grado di aggirare questa "protezione" vorrei prima vedere se qualcuno di voi ci riesce (fateci sapere nei commenti). Ecco quindi il percorso da effettuare:

Aprire il terminale ed impostare una password per l'utente root con il seguente comando:

sudo passwd -i file root

poi digitate

sudo pico /var/root/.profile

se avete Mac OS X Leopard o Snow Leopard modificare il file che si apre aggiungendo esattamente (attenzione agli spazi):

if [ "$TERM" = "vt100" ];
then
/usr/bin/lock -p -t 86343727;
fi

poi scaricate il file lock di Tiger da questo indirizzo e posizionatelo nella cartella /usr/bin
Se avete già Tiger questo file non è necessario e nel passaggio precedente nel file /var/root/.profile dovete inserire un codice leggermente diverso:

if [ "$VerboseFlag" = "-v" ];
then
/usr/bin/lock -p -t 86343727;
fi

A questo punto riavviando e tenendo premuto cmd+S ci viene richiesta una Key, che è la password impostata per l'utente root. Per me è stato uno scoglio insormontabile, ma vi invito a farmi sapere se voi riuscite ad aggirare la protezione. È ovvio che avendo il Mac nelle proprie mani si può smontare, togliere l'hard disk ed accedere comunque ai file, per questo motivo è invece interessante la soluzione proposta da Marco Rotatori il 29 gennaio alle 11.00. Lui suggerisce (tra le altre cose) di attivare FileVault da Preferenze di Sistema / Sicurezza. Questa funzione di Mac OS X serve a criptare tutta la nostra home in un file sparsebundle. La chiave di protezione non viene cambiata insieme a quella dell'utente operando da SUM con accesso root, per cui il malintenzionato anche modificando quella si troverebbe di fronte questo messaggio al login:

password filevault

Come però precisa lo stesso autore della soluzione, FileVault ha anche qualche svantaggio. In primo luogo porta ad un rallentamento del sistema (in che misura dipende dal Mac sul quale si attiva) e poi ci porta di fronte ad uno scoglio letteralmente insormontabile nel caso anche noi ne dimenticassimo la password. Il contenuto dello sparsebundle infatti, non sarà accessibile neanche avendo il disco nelle nostre mani e montandolo su un altro computer.

Nel contest avevo detto che avrei premiato la prima soluzione efficace ricevuta (e potrei considerare tale quella di Paolo Quadri a meno di smentite) e "forse" anche una seconda. Questa potrebbe andare proprio a Marco Rotatori, anche perché ha ipotizzato tante altre soluzioni interessanti nella sua email.