Al Def Con 2019 dimostrata la vulnerabilità dell’app Contatti di iPhone con SQLite

Dimostrata la possibilità di usare una vecchia vulnerabilità nel database SQLite per eseguire codice arbitrario passando per l'app Contatti di iOS. Ma non è così facile e non si può fare a distanza.

Al Def Con 2019 dimostrata la vulnerabilità dell’app Contatti di iPhone con SQLite

Nell’ambito della conferenza dedicata alla sicurezza “Def Con 2019”, ricercatori hanno dimostrato un metodo per sfruttare il database SQLite per consentire a un attaccante di eseguire codice arbitrario usando l’app Contatti di iOS come prova.

I ricercatori di Check Point – spiega Appleinsider – hanno effettuato la dimostrazione usando una vulnerabilità nel formato di database di SQLite, un DBMS SQL di pubblico dominio. Alla Def Con 2019 i ricercatori specializzati in sicurezza hanno mostrato quanto da loro affermato sfruttando una vulnerabilità di gravità elevata in SQLite attivabile per manipolare l’app Contatti di Apple. Eseguire ricerche all’interno di quest’applicazione – in determiniate circostanze – può essere sufficiente a eseguire codice malevolo.

“SQLite è il motore di database più diffuso al mondo”, riferisce l’azienda in una dichiarazione. “È disponibile per qualsiasi sistema operativo, per sistemi desktop e mobile, e Windows 10, macOS, iOS, Chrome, Safari, Firefox e Android sono noti utilizzatori di SQLite”. “In poche parole, possiamo ottenere controllo su chiunque interroghi il nostro database controllato da SQLite”.

Quando si esegue la ricerca di un contatto o cercano informazioni in qualunque app, in realtà state eseguendo ricerche in un database e molto comunemente queste si effettuano usando SQLite.

Ricercatori hanno dimostrato una vulnerabilità nell’app Contatti di iOS usando SQLite

L’hack dimostrato da Check Point comporta la sostituzione di una parte dell’app Contatti e fa inoltre affidamento a un bug in SQLite non risolto da quattro anni. Il bug in questione è stato finora considerato poco importante perché si riteneva che potesse essere attivato solo da applicazioni sconosciute che accedono al database, e in un sistema chiuso come iOS non è possibile eseguire app sconosciute.

I ricercatori sono in qualche modo riusciti a manipolare un’app ritenuta “affidabile” dal sistema, inviando codice in grado di innescare e sfruttare il bug. Hanno sostituito uno specifico componente dell’app Contatti e rilevato che mentre app e qualsiasi codice eseguibile deve passare verifiche di Apple prima dell’avvio, un database SQLite non è considerato codice eseguibile.

“La persistenza (mantenere la possibilità di esecuzione di un malware sul dispositivo dopo un riavvio) è difficile da ottenere su iOS” – spiegano i ricercatori – “poiché tutti gli eseguibili devono essere firmati nell’ambito del Secure Boot di Apple. Per nostra fortuna il database SQLite non è firmato”.

È ad ogni modo necessario accedere fisicamente a un dispositivo sbloccato per installare il componente sostitutivo dell’app Contatti. Dopo questo passaggio, è possibile decidere cosa fare accadere quando si esegue una ricerca nell’app Contatti.

A fini dimostrativi, è stato scelto di mandare in crash l’app ma secondo i ricercatori sarebbe possibile manipolare l’app facendo in modo che rubi password. “Abbiamo stabilito che la semplice esecuzione di una query può non essere sicura come ci si aspetta”, riferiscono ancora i ricercatori. “Abbiamo dimostrato che i problemi di corruzione di memoria in SQLite ora possono sfruttati in modo affidabile”. Metodologie usati e altri dettagli sulle ricerche sono stati comunicati ad Apple.