M1racles, il primo bug architetturale dei nuovi chip Apple M1
Con l’arrivo dei nuovi processori Apple, ormai arrivati anche su lato desktop con l’introduzione nei nuovi iMac dotati di chip M1, non hanno tardato ad arrivare i primi malware, come Silver Sparrow, software malevolo che agiva sfruttando delle falle e dei plug-in all’interno delle JVM (Java Virtual Machine). Ma non finisce qui: è stato infatti identificato il primo bug architetturale dei nuovi chip M1 di Apple, denominato M1racles.
Il nuovo processore di Apple ed in particolare la sua nuova architettura, o disegno logico, sembra essere affetto da un bug hardware e quindi architetturale. Il nome della nuova falla è M1racles, vulnerabilità della quale soffre il SoC di Apple, causata da un difetto nella progettazione del chip che consente una trasmissione “fantasma” di dati tra 2 processi.
Scoperta dal Programmatore e progettista Hector Martin, mentre lavorava ad una versione di Linux su chip M1, consente la trasmissione di dati in modo completamente trasparente per l’utente tra 2 processi in esecuzione, e linkati a diversi utenti. Viene in questo modo creato un canale nascosto con cui i 2 processi comunicano, come se fosse un fiume che passa sotto un ponte che permette, appunto, il passaggio di barche sotto il passaggio di auto, senza che le auto vedano cosa stia passando sotto di loro.
Il primo bug architetturale di Apple M1
Il bug, già comunicato ad Apple, è stato probabilmente causato dall’errore (umano ovviamente) di un ingegnere dell’azienda di Cupertino durante il design del nuovo processore. L’ingegnere ha infranto le specifiche ARM, consentendo al bug di violare il modello di sicurezza di macOS, poiché la trasmissione di dati a insaputa dell’utente è una delle tante prerogative dei sistemi Apple.
Il problema più grosso, come fa notare l’analista Pierluigi Paganini, fondatore della Cybaze, azienda nel settore della CyberSecurity, è che:
normalmente vulnerabilità che derivano dal disegno logico di chip siano estremamente pericolose perché difficili da individuare, complesse e talvolta impossibili da risolvere, ed infine perché possono consentire l’esecuzione di codici malevoli a livello chip e quindi completamente trasparenti al sistema operativo ed ai principali sistemi di difesa.
La spiegazione tecnica dietro a questa vulnerabilità
Tra i diversi registri di sistema messi a disposizione da ARM, troviamo il cosiddetto s3_5_c15_c10_1. Esso contiene in particolare due bit che possono essere letti o scritti (bits in posizione 0 e 1). Questo è un registro per cluster a cui è possibile accedere contemporaneamente da tutti i core nello stesso cluster.
Questo lo rende un canale nascosto a due bit che qualsiasi processo arbitrario può utilizzare per scambiare dati con un altro processo cooperante.
Una coppia di processi può creare un canale di comunicazione attraverso un protocollo definito ad hoc, per esempio un processo scrive “00” per richiedere dati e l’altro processo scrive “1-[data, 0-1]” a seguito di un “00” per inviare un nuovo dato. Ciò consente ai processi di scambiare una quantità arbitraria di dati, limitata solo dall’overhead della CPU. Alcune API messe a disposizione dalla CPU possono essere utilizzate per garantire che entrambi i processi girino sullo stesso cluster. E’ possibile ottenre, senza troppe ottimizzazioni, una velocità di trasferimento superiori a 1 MB/s (anche meno se si utilizza una qualche ridondanza dei dati).
Lo scopo originale di questo registro è sconosciuto, rendendolo così di fatto un bug a livello architetturale.
Chi ne è affetto?
Bug di questa portata sono molto pericolosi perchè agiscono a livello architetturale, avendo potenzialmente la capacità di insidiarsi nei registri utente della CPU, una delle parti più delicate di un computer poiché collegate con le informazioni più delicate dell’utente a livello di interazione uomo-macchina.
Stiamo comunque parlando di Chip proprietari in questo caso di Apple, azienda sempre molto attenta alla sicurezza dei propri utenti, per tanto, lo stesso Hector Martin tranquillizza li utenti affermando che per raggiungere livelli architetturali così bassi è necessaria una destrezza informatica non indifferente e che nonostante per risolvere il problema, sia necessario una aggiornamento a livello circuitale, gli utenti possono stare tranquilli in quanto Apple sicuramente troverà un modo per ovviare al problema.
Gli utenti momentaneamente a rischio sono coloro che usano i seguenti OS:
- macOS 11.0 e successive
- Linux 5.13 e successive
- OpenBSD
- AmigaOS
- Newton
Nella lista non è presente iOS poiché tutte le App presenti su App Store vengono scansione in fase di check pre-pubblicazione da Apple e a tutti i developers viene negata la possibilità di implementare nelle app la possibilità di creare codice dall’app stessa sia in fase di esecuzione, background e sessione terminata.
A cura di Giulio Montanaro.