E se vi dicessi che potreste prendere il controllo di un qualsiasi Mac dotato di High Sierra semplicemente premendo il tasto Invio? D'accordo, non è proprio così semplice. Ma quasi. Andiamo con ordine: gli account utente locali su macOS possono essere di vari tipi. I due principali sono amministratore e standard, quest'ultimo con molti meno privilegi rispetto al primo, limitazioni volte ad evitare potenziali interventi realizzati con poca dimestichezza sulle conseguenze. Anche gli amministratori hanno comunque dei freni di emergenza, rappresentati dalle finestre d'inserimento password, dal comando "sudo" nel Terminale e in generale da operazioni di sistema non consentite nemmeno ad essi. Tutti i Mac, e più in generale tutti i sistemi Unix-based, hanno però un ulteriore account, denominato "root" (anche Windows ne ha uno simile, "Administrator"). Di standard, esso è disabilitato, con Apple che ne suggerisce l'attivazione solo in caso di estrema necessità, consapevoli di ciò che si andrà a fare.

Questo almeno stando alla procedura ufficiale. Ma torniamo alla domanda iniziale: e se vi dicessi che l'account "root" può essere in realtà utilizzato da chiunque? Di primo istinto, quando ho visto il tweet sottostante comparire nella mia timeline mi è sembrato impossibile fosse vera una falla del genere, così plateale.

Considerato però che era ritwittata da un utente che stimo molto (a proposito, grazie Gabriele per la segnalazione) e sono sicuro che per la serietà con cui affronta l'argomento infosec non dà risalto a cose a caso, ho voluto verificare di persona. Apro le Preferenze di Sistema, fingo di voler fare modifiche nella sezione Sicurezza e Privacy, premo sul lucchetto per abilitarmi alle modifiche e inserisco "root" al posto del mio nome utente.

Lascio il campo password vuoto, premo su "Sblocca": niente, mi viene negata l'autorizzazione. Noto però che aveva modificato nuovamente il nome utente, rimettendo il mio. Allora riprovo, metto "root", niente password e stavolta premo il tasto Invio. Il lucchetto si sblocca. In quel momento macOS mi ha dato accesso pressoché plenipotenziario per effettuare qualsiasi modifica. Ancor più preoccupante? Vado nella schermata di login e premo su "Altro...". Digito nel primo campo "root", lascio ancora una volta il campo password sgombro e premo Invio. Il sistema rimugina per un po', poi completa la configurazione come da prassi per il primo accesso da un nuovo account. E mi ritrovo davanti alla scrivania dell'utente "root".

L'unico posto dove non è replicabile la medesima procedura è il Terminale. Ovviamente lì ho provato partendo dal mio account utente: per elevarmi a "root" devo digitare "sudo su" e dunque la mia password, altrimenti non procede. Ma cos'è successo dietro le quinte? Perché ho ottenuto in maniera così facile l'accesso ad un utente di cui non dovrei praticamente mai essere a conoscenza nell'uso quotidiano? Ebbene, è stato merito del primo tentativo effettuato, con macOS che ha abilitato all'istante l'account "root", come spiegato nel tweet sottostante:

Il pericolo di questa falla è parecchio elevato, in quanto consente di fatto a qualsiasi persona di poter entrare nel nostro Mac, accedere ai nostri dati (se non protetti da FileVault) e anche farci qualche scherzetto. Non solo in locale, ma pure da remoto, dato che la falla può ben prestarsi ad exploit, soprattutto se l'uso del computer è condiviso. È un bug grave, che non avrebbe mai dovuto esserci, dato che l'attivazione di "root" si suppone sia ben regolamentata come da articolo del Supporto Apple linkato ad inizio articolo. Ancor più spiace constatarlo in una release, High Sierra, che Apple ha spinto proprio come perfezionamento rispetto la versione precedente.

La notizia sta facendo rapidamente il giro della rete, sulle principali testate internazionali di settore, e se ci ho messo così tanto è perché ho preferito documentarmi meglio, con annessi screenshot. Il lato positivo della vicenda è che molto probabilmente Apple correrà ai ripari entro la 10.13.2, ripristinando il comportamento corretto del sistema con l'account "root". Nel frattempo, come si può porre rimedio? Paradossalmente, la soluzione migliore è abilitare noi stessi "root", in modo da proteggere tale utente con una password. Ecco come fare, seguendo in parte proprio la procedura ufficiale Apple. La prima operazione consiste nel disattivare gli accessi ospite, qualora fossero attivi:

  • Aprire "Preferenze di Sistema" (dal menu , dal Launchpad, da Spotlight o dal Dock se avete l'icona pure lì)
  • Entrare nella sezione "Utenti e Gruppi"
  • Sbloccare le modifiche premendo sul lucchetto e inserendo la propria password amministratore
  • Selezionare l'Utente ospite
  • Rimuovere la spunta sull'apposita opzione di accesso

Fatto ciò, possiamo procedere intervenendo su "root":

  • Se sono state chiuse, riaprire "Preferenze di Sistema" (dal menu , dal Launchpad, da Spotlight o dal Dock se avete l'icona pure lì)
  • Entrare nella sezione "Utenti e Gruppi"
  • Sbloccare le modifiche premendo sul lucchetto e inserendo la propria password amministratore (ancor meglio, possiamo sfruttare il bug a nostro vantaggio inserendo "root" nella schermata di autenticazione e premendo Invio sulla tastiera)
  • Premere su "Opzioni login", dunque su "Accedi..."
  • Nel riquadro che compare a schermo, premere "Apri Utility Directory..."
  • Anche qui, sbloccare le modifiche premendo sul lucchetto come abbiamo fatto poco fa
  • Nel menu "Modifica", se non risulta già abilitato premere su Abilita utente root ed inserire una password, da annotare in un luogo sicuro
  • Se invece è già attivo, possiamo scegliere "Modifica la password dell'utente root..." per dargliene una, confermando infine con OK

Se si preferisce un approccio più testuale ad uno grafico, dal Terminale si fa anche prima: come segnalato su Twitter dagli amici di EasyApple, basterà digitare "sudo passwd" e fornire due password, quella del nostro utente e quella che vogliamo assegnare a "root". A seconda delle proprie preferenze, si può anche effettuare direttamente l'abilitazione dell'account elevato mantenendo inalterato l'accesso ospite. L'importante è rispettare l'ordine delle due procedure al fine di garantirne la completa efficacia (disabilitando dopo l'account ospite resta nella schermata di login l'opzione "Altro...").

AGGIORNAMENTO: Come riporta MacRumors, un portavoce di Apple ha confermato che sono al lavoro su un aggiornamento correttivo.