Dentro il database segreto di macOS: persone, luoghi e relazioni in un unico grafo

Un'indagine rivela come macOS colleghi contatti, fotografie e comunicazioni per dedurre relazioni e abitudini. Analizziamo i database di Apple e presentiamo iKnow, lo strumento che permette di esplorare le informazioni personali.

Il Mac conserva molte più informazioni personali di quelle che compaiono nelle applicazioni utilizzate ogni giorno. Non solo email, fotografie, appuntamenti e contatti: macOS può collegare questi elementi, individuare relazioni tra persone e ricostruire abitudini attraverso un grafo della conoscenza personale (Personal Knowledge Graph). Una struttura che permette al sistema operativo di formulare ipotesi sulla nostra vita privata, anche quando non abbiamo mai fornito esplicitamente certe informazioni.

La tecnologia ha radici precedenti all’arrivo di Apple Intelligence. Già nel 2023, alcuni ricercatori Apple descrivevano, nello studio Growing and Serving Large Open-domain Knowledge Graphs, tecniche per costruire grafi personali direttamente sui dispositivi, combinando informazioni provenienti dalle varie applicazioni. L’obiettivo era migliorare le ricerche, riconoscere le entità e fornire risposte personalizzate senza trasferire continuamente i dati a server remoti.

Un’indagine pubblicata da Dario Pasquini e Michał Bazyli, ricercatori di Eighth Rank, permette oggi di osservare più da vicino il funzionamento del sistema. Analizzando macOS 26, i due esperti hanno individuato 51 database SQLite, un vocabolario di 181 classi di entità e 278 predicati per descrivere proprietà e relazioni. Il risultato è una rappresentazione sorprendentemente articolata delle persone che frequentiamo, dei luoghi che visitiamo e delle attività che svolgiamo!

Due processi di macOS costruiscono una rete di informazioni personali

Il lavoro ruota attorno a due daemon di sistema: knowledgeconstructiond e intelligenceplatformd. Il primo analizza i contenuti disponibili sul dispositivo e contribuisce alla costruzione del grafo; il secondo collabora alla gestione delle informazioni e alle elaborazioni necessarie.

Non è un’interpretazione basata esclusivamente su attività di reverse engineering: la pagina del manuale di knowledgeconstructiond, consultabile dal Terminale di macOS con il comando man 8 knowledgeconstructiond, descrive esplicitamente un processo che analizza i contenuti del dispositivo per costruire un grafo rappresentativo dell’utente e del computer.

I ricercatori hanno individuato i database nella directory ~/Library/IntelligencePlatform.

Tra questi, graph.db contiene una parte fondamentale delle informazioni strutturate. I file utilizzano SQLite e non risultano cifrati individualmente; macOS ne limita però l’accesso attraverso i controlli di sicurezza del sistema, compreso TCC (Transparency, Consent, and Control) e il permesso Full Disk Access.

Le protezioni a livello di file system e la cifratura del dispositivo costituiscono ulteriori barriere, ma un processo che ottiene privilegi sufficienti potrebbe consultare una quantità molto elevata di informazioni personali.

Come funziona il database: persone, eventi e relazioni diventano un grafo

Un grafo della conoscenza collega entità differenti attraverso relazioni semanticamente riconoscibili. In termini tecnici, il sistema utilizza un modello a triple soggetto-predicato-oggetto: il soggetto identifica un’entità, il predicato descrive una proprietà o una relazione e l’oggetto contiene un valore oppure rimanda a un’altra entità.

Immaginiamo che nel calendario compaia una riunione con un collega e che lo stesso nominativo sia presente nella rubrica e in numerose fotografie aziendali. Il sistema può associare le informazioni alla medesima persona, collegarla all’organizzazione per cui lavora e rilevare la frequenza delle interazioni.

Il problema tecnico più interessante consiste proprio nel riconoscere quando record apparentemente separati si riferiscono alla stessa entità. Apple utilizza anche rappresentazioni vettoriali, chiamate embedding, per confrontare elementi e individuare corrispondenze. Secondo l’analisi di Eighth Rank, il sistema considera diversi segnali per risolvere l’identità di una persona.

Non tutti i collegamenti hanno la stessa affidabilità: il grafo prevede valori di “confidenza” compresi tra 0 e 1, che permettono di distinguere un’informazione direttamente ricavata da una sorgente da una relazione stimata.

Uno degli aspetti più significativi dell’indagine riguarda il riconoscimento delle relazioni familiari. I ricercatori hanno individuato due modelli Core ML che nel complesso considerano 144 caratteristiche numeriche: 20 riguardano prevalentemente l’identità, 40 le comunicazioni e 84 le fotografie. Tra i segnali figurano il cognome condiviso, l’indirizzo di casa, l’appartenenza a un gruppo Famiglia di iCloud, la frequenza dei contatti e la presenza delle stesse persone nelle immagini.

In pratica, il Mac può riconoscere una probabile relazione familiare anche senza trovare nella rubrica una voce esplicita come “madre”, “figlio” o “partner”. Basta una combinazione coerente di indizi.

Non serve leggere i messaggi per ricostruire le abitudini di una persona

Il grafo non contiene soltanto informazioni ricavate dal contenuto delle applicazioni. La ricerca documenta anche registrazioni relative alle comunicazioni: interlocutore, data, ora, applicazione utilizzata e direzione dello scambio.

Vi ricordate quando parlavamo di metadati WhatsApp e cosa può sapere Meta senza leggere i messaggi cifrati degli utenti? Ecco, anche nel caso di macOS, i metadati delle comunicazioni possono raccontare moltissimo senza rivelare una sola parola dei messaggi.

Un’analisi degli orari delle chiamate e delle conversazioni permette, per esempio, di riconoscere periodi di attività lavorativa, abitudini serali e intervalli di inattività compatibili con il riposo notturno.

Lo stesso vale per le foto: la frequenza con cui due volti compaiono insieme, i luoghi e le occasioni in cui vengono fotografati possono suggerire appartenenze familiari, amicizie e rapporti professionali.

Le informazioni cancellate possono sopravvivere nel database

Accanto alle informazioni correnti, l’indagine ha individuato una tabella chiamata expired_stable_graph, destinata a conservare relazioni che il sistema non considera più valide. Quando una voce scompare dalle sorgenti originali, il grafo può eliminare il collegamento attivo senza cancellarne immediatamente ogni traccia. La tabella conserva anche informazioni sulla provenienza e sull’affidabilità delle relazioni precedenti.

I ricercatori hanno osservato elementi apparentemente soggetti a una conservazione di circa 48 ore, ma anche record molto più vecchi. Non hanno potuto stabilire una regola generale sulla durata della persistenza.

iKnow: lo strumento open source per vedere cosa sa il Mac

Per rendere accessibili queste informazioni, gli autori hanno sviluppato iKnow, un’applicazione open source disponibile su GitHub con licenza Apache 2.0. Lo strumento utilizza Python 3 e la sua libreria standard, senza richiedere Flask, npm o servizi esterni.

Per provarlo, è sufficiente clonare il repository con git clone https://github.com/8rank/iKnow.git, entrare nella directory usando cd iKnow e avviare python3 server.py.

iKnow informazioni personali raccolte macOS

Il programma crea un server HTTP locale sull’indirizzo 127.0.0.1 sulla porta 8765. All’avvio genera un token casuale e mostra nel Terminale l’URL da aprire nel browser.

iKnow apre i database in sola lettura e permette di esplorare il grafo delle relazioni personali, le persone riconosciute nelle fotografie, le valutazioni sui legami familiari, le comunicazioni e alcuni dati relativi agli appuntamenti.

Per accedere agli archivi protetti bisogna autorizzare l’applicazione Terminale, o l’ambiente da cui si avvia Python, in Impostazioni di Sistema, Privacy e sicurezza, Accesso completo al disco. Dopo aver concesso il permesso basta chiudere e riaprire l’applicazione.

Una precauzione importante: terminata l’analisi, conviene interrompere il server con Ctrl+C e revocare al Terminale il permesso di accesso completo al disco. Il permesso riguarda infatti l’applicazione autorizzata, non soltanto lo script iKnow.

Apple Intelligence, privacy e il rischio di concentrare troppe informazioni

Apple sostiene che l’elaborazione locale rappresenti uno dei principali strumenti di tutela della privacy. La documentazione ufficiale spiega che molte operazioni di Apple Intelligence avvengono direttamente sul dispositivo; per richieste più complesse può intervenire Private Cloud Compute, progettato per elaborare i dati necessari senza conservarli sui server.

Le osservazioni di Eighth Rank non dimostrano una trasmissione indiscriminata del grafo personale ad Apple, né che un modello linguistico remoto possa interrogarlo integralmente. Gli autori stessi non hanno ricostruito tutti i percorsi attraverso i quali i servizi del sistema consultano le informazioni.

La criticità riguarda piuttosto la concentrazione dei dati: un aggressore che ottenga accesso sufficiente al dispositivo potrebbe ricavare dalla combinazione di contatti, appuntamenti, fotografie e relazioni inferite informazioni ben più delicate rispetto a quelle contenute in un singolo archivio.

Conoscere gli orari di una famiglia, identificare i suoi componenti o individuare i luoghi frequentati può facilitare tentativi di social engineering estremamente credibili. Non serve immaginare una vulnerabilità specifica di Apple Intelligence: basta considerare le conseguenze dell’accesso non autorizzato a una base di conoscenza così ricca.

Per ridurre l’esposizione conviene mantenere macOS aggiornato, controllare periodicamente le applicazioni autorizzate all’accesso completo al disco, proteggere il dispositivo con FileVault e limitare la quantità di informazioni personali condivise con software non indispensabili. Disattivare Apple Intelligence, da solo, non costituisce una procedura documentata per cancellare l’intero grafo, le cui componenti hanno origini precedenti alle funzioni generative.

Ti consigliamo anche

Link copiato negli appunti