Il chip M1 di Apple ha un difetto affascinante

La nuova M1 di Apple La CPU ha un difetto che crea un canale nascosto che due o più app dannose, già installate, possono utilizzare per trasmettersi informazioni l’una all’altra, ha scoperto uno sviluppatore.

La comunicazione surrettizia può avvenire senza utilizzare la memoria del computer, socket, file o qualsiasi altra funzionalità del sistema operativo, sviluppatore Hector Martin disse. Il canale può collegare processi in esecuzione come utenti diversi e con diversi livelli di privilegio. Queste caratteristiche consentono alle app di scambiare dati in un modo che non può essere rilevato, o almeno senza attrezzature specializzate.

Martin ha affermato che il difetto è principalmente innocuo perché non può essere utilizzato per infettare un Mac e non può essere utilizzato da exploit o malware per rubare o manomettere i dati memorizzati su una macchina. Piuttosto, il difetto può essere abusato solo da due o più app dannose che sono già state installate su un Mac con mezzi estranei al difetto M1.

Tuttavia, il bug, che Martin chiama M1racles, soddisfa la definizione tecnica di vulnerabilità. In quanto tale, è dotato di una propria designazione di vulnerabilità: CVE-2021-30747.

“Viola il modello di sicurezza del sistema operativo”, ha spiegato Martin in a post pubblicato mercoledì. “Non dovresti essere in grado di inviare dati da un processo a un altro in segreto. E anche se innocuo in questo caso, non dovresti nemmeno essere in grado di scrivere su registri di sistema della CPU casuali dallo spazio utente.”

Altri ricercatori con esperienza in CPU e altri sistemi di sicurezza basati su silicio hanno concordato con tale valutazione.

“Il bug scoperto non può essere utilizzato per dedurre informazioni su alcuna applicazione sul sistema”, ha affermato Michael Schwartz, uno dei ricercatori che ha contribuito a scoprire il più grave Fusione e Spettro vulnerabilità nelle CPU Intel, AMD e ARM. “Può essere utilizzato solo come canale di comunicazione tra due applicazioni collusive (dannose)”.

Ha continuato a elaborare:

La vulnerabilità è simile a una “casella postale” anonima, consente alle due applicazioni di scambiarsi messaggi. Questo è più o meno invisibile ad altre applicazioni e non esiste un modo efficiente per prevenirlo. Tuttavia, poiché nessun’altra applicazione utilizza questa “casella postale”, non perdono dati o metadati di altre applicazioni. Quindi c’è la limitazione, che può essere utilizzato solo come canale di comunicazione tra due applicazioni in esecuzione su macOS. Tuttavia, ci sono già così tanti modi in cui le applicazioni possono comunicare (file, pipe, socket, …), che un canale in più non ha un impatto negativo sulla sicurezza. Tuttavia, è un bug che può essere abusato come canale di comunicazione non intenzionale, quindi penso che sia giusto chiamarlo vulnerabilità.

Un canale nascosto potrebbe avere maggiori conseguenze sugli iPhone, ha detto Martin, perché potrebbe essere utilizzato per aggirare il sandboxing integrato nelle app iOS. In condizioni normali, un’app per tastiera dannosa non ha mezzi per perdere la pressione dei tasti perché tali app non hanno accesso a Internet. Il canale nascosto potrebbe aggirare questa protezione passando la pressione dei tasti a un’altra app dannosa, che a sua volta la invierebbe su Internet.

Anche in questo caso, le possibilità che due app superino il processo di revisione di Apple e poi vengano installate sul dispositivo di un obiettivo sono inverosimili.

Il difetto deriva da un registro di sistema per cluster nelle CPU ARM accessibile da EL0, una modalità riservata alle applicazioni utente e quindi con privilegi di sistema limitati. Il registro contiene due bit che possono essere letti o scritti. Questo crea il canale nascosto, poiché è possibile accedere al registro contemporaneamente da tutti i core del cluster.

Martino ha scritto:

Una coppia dannosa di processi cooperanti può costruire un canale robusto da questo stato a due bit, utilizzando un protocollo di clock e dati (ad esempio, un lato scrive 1x per inviare dati, l’altro scrive 00 per richiedere il bit successivo) . Ciò consente ai processi di scambiare una quantità arbitraria di dati, vincolati solo dal sovraccarico della CPU. Le API di affinità del core della CPU possono essere utilizzate per garantire che entrambi i processi siano pianificati sullo stesso cluster del core della CPU. È disponibile un PoC che dimostra questo approccio per ottenere un trasferimento dati robusto e ad alta velocità Qui. Questo approccio, senza troppe ottimizzazioni, può raggiungere velocità di trasferimento superiori a 1 MB/s (meno con ridondanza dei dati).

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *