L'ANALISI TECNICA

Shrootless, la vulnerabilità in macOS che consente di prendere il controllo dei dispositivi Apple

Shrootless è una vulnerabilità identificata in macOS (e ora corretta da Apple) che, se sfruttata, potrebbe consentire a un attaccante di aggirare la tecnologia SIP (System Integrity Protection) e installare rootkit per prendere il controllo dei dispositivi. Ecco tutti i dettagli

02 Nov 2021
D
Manuel De Stefano

IT Process Expert

È stata soprannominata Shrootless la vulnerabilità in macOS tracciata come CVE-2021-30892 (e ora corretta con gli aggiornamenti dello scorso 26 ottobre per le versioni Catalina, Big Sur e Monterey) che può consentire agli aggressori di aggirare funzionalità di sicurezza System Integrity Protection (SIP) del sistema operativo Apple, ottenere i privilegi di root e installare rootkit per prendere il controllo dei dispositivi.

Il difetto è stato segnalato ad Apple tramite Microsoft Security Vulnerability Research (MSVR). “La vulnerabilità risiede nel modo in cui vengono installati i pacchetti firmati da Apple con script post-installazione”, ha dichiarato in un articolo Jonathan Bar Or del Microsoft 365 Defender Research Team che ha identificato la vulnerabilità Shrootless.

Shrootless: che c’è da sapere

In dettaglio, questa nuova vulnerabilità, prima della risoluzione, avrebbe potuto consentire a un utente malintenzionato di aggirare le restrizioni di sicurezza in macOS ed assumere il controllo completo del dispositivo per eseguire operazioni arbitrarie senza essere segnalato dai tradizionali sistemi di sicurezza.

WHITEPAPER
Cosa serve per risparmiare davvero sull’energia? L’IoT da solo non basta!

System Integrity Protection (nota anche come modalità rootless) è una funzionalità di sicurezza di macOS introdotta nel 2015 in OS X El Capitan (OS X 10.11). La tecnologia SIP impedisce a un utente root di eseguire operazioni che potrebbero compromettere l’integrità del sistema.

In base alla progettazione, SIP consente solo ai processi firmati da Apple o da quelli con diritti speciali (ad esempio, aggiornamenti software Apple e programmi di installazione Apple) di modificare queste parti protette di macOS.

I ricercatori, però, hanno riferito la possibilità di creare un file predisposto per dirottare il processo di installazione.

“Durante la valutazione dei processi macOS autorizzati a bypassare le protezioni SIP, ci siamo imbattuti nel daemon system_installd (un processo di background di lunga durata), che ha privilegi elevati del processo com.apple.rootless.install.inheritable; con questo privilegio, qualsiasi processo figlio di system_installd sarebbe in grado di ignorare del tutto le restrizioni del filesystem SIP”, si legge nel post pubblicato da Microsoft.

Il bug di CVE-2021-30892 consentirebbe così ad un’applicazione dannosa di modificare parti protette del file system, inclusa la capacità di installare driver del kernel dannosi (noti anche come rootkit), sovrascrivere file di sistema o installare malware persistenti e non rilevabili.

Gli esperti Microsoft hanno scoperto il difetto di sicurezza Shrootless dopo aver notato che il daemon_system_installd aveva un’autorizzazione che consentiva a qualsiasi processo figlio di ignorare completamente le restrizioni del filesystem SIP.

Ecco come funziona la vulnerabilità Shrootless

Microsoft ha implementato il seguente algoritmo per creare un exploit POC (proof-of-concept) per sovrascrivere l’elenco di esclusione delle estensioni del kernel:

  1. Scarica un pacchetto firmato da Apple (usando wget) che è noto per avere uno script post-installazione.
  2. Installa un /etc/zshenv dannoso che controlli il suo processo genitore; se è system_installd, allora scriverebbe in posizioni limitate.
  3. Richiama l’utilità di installazione per installare il pacchetto.

Precisazione riguardo la shell per utenti Linux

Gli utenti Linux (e, sempre più, gli utenti Windows con il sottosistema per Linux installato) hanno probabilmente più familiarità con bash, che era la shell di comando preferita da Apple, ma Apple ha adottato la variante zsh.

Come molte shell di comando, zsh consulta una serie di diversi file di configurazione all’avvio, in modo che gli amministratori di sistema possano modificare il suo comportamento in base alle esigenze aziendali e i singoli utenti possano aggiungere la propria personalizzazione in aggiunta a ciò.

Alcune utilità di sistema hanno file singoli che adattano il loro comportamento, come ad esempio /etc/resolv.conf per controllare come il software DNS di basso livello del sistema operativo cerca i nomi dei server online.

Altri servizi hanno sottodirectory per dire loro come comportarsi all’avvio, come /etc/ssh/ per configurare le opzioni vitali utilizzate dal software di accesso remoto SSH.

E alcuni software hanno entrambi, come bash e varie altre shell Unix, che consultano sia il file /etc/profile che il contenuto della directory /etc/profile.d/ per cercare script di shell da eseguire prima di avviare lo script scelto dall’utente o aprendo una finestra di terminale.

Quindi, zsh ha un set completo di file di configurazione pre-esecuzione propri, tra cui:

  • /etc/zshenv
  • /etc/zprofile
  • /etc/zshrc
  • /etc/zlogin
  • /etc/zlogout
  • $ZDOTDIR/.zshenv
  • $ZDOTDIR/.zprofile
  • $ZDOTDIR/.zshrc
  • $ZDOTDIR/.zlogin
  • $ZDOTDIR/.zlogout

Nell’elenco sopra, ripreso dalla pagina di manuale di zsh, la stringa di testo $ZDOTDIR/ è solitamente, ma non necessariamente, sostituita con il nome della home directory, ad esempio /home/yourusername/.

Installiamo la patch per correggere il bug Shrootless

Ci sono molti posti in cui una persona malintenzionata potrebbe installare il proprio codice di script per sovvertire il comportamento di quasi lancio della shell e gli script di shell sono ampiamente utilizzati non solo dagli utenti che desiderano automatizzare attività ripetitive (nello stesso modo in cui gli utenti Windows distribuiscono file BAT o PS1), ma anche dalle utility di configurazione e installazione del sistema.

Ovviamente, chiunque disponga già dei poteri di sysdmin tramite l’account root (ID utente zero) su un sistema tradizionale simile a Unix e che potrebbe quindi modificare file come /etc/zshenv, avrebbe già questo grado di privilegio.

Apple ha risolto il problema con il rilascio degli aggiornamenti di sicurezza del 26 ottobre e la stessa società ha accreditato Jonathan Bar Or di Microsoft per l’individuazione di questo problema.

“Un’applicazione dannosa potrebbe essere in grado di modificare parti protette del file system.” afferma l’avviso di sicurezza pubblicato da Apple. “Descrizione: un problema relativo alle autorizzazioni ereditate è stato risolto con ulteriori restrizioni”.

WHITEPAPER
Come cambia il Retail tra ecommerce, piccoli rivenditori e la spinta al cashless
@RIPRODUZIONE RISERVATA

Articolo 1 di 3