ChatGPT, la nuova bomba atomica

digital oppenheimer

Il 16 luglio 1945, nel deserto del New Mexico, il Trinity Test segnò l’alba dell’era atomica, un momento epocale raccontato anche nel recente film Oppenheimer. Quella detonazione non solo cambiò il corso della storia per gli sviluppi bellici, ma contaminò per sempre l’ambiente con particelle radioattive. Secondo alcuni accademici, un evento simile è accaduto nel mondo digitale il 30 novembre 2022: il lancio di ChatGPT di OpenAI.

L’affermazione, forte e quasi apocalittica, paragona l’impatto di ChatGPT a quello della prima bomba atomica, non per il suo potenziale distruttivo, ma per una conseguenza più subdola e permanente: l’inquinamento dei dati.

L’acciaio a bassa contaminazione

Dopo il 1945, i metalli prodotti iniziarono a contenere tracce di radioattività a causa del fallout nucleare, rendendoli inadatti per strumenti scientifici di precisione e le apparecchiature mediche. Per queste applicazioni, divenne necessario trovare il cosiddetto “acciaio a bassa radioattività” (low-background steel), ovvero acciaio prodotto prima dell’era atomica. Una delle fonti più preziose divenne la flotta navale tedesca che l’ammiraglio Ludwig von Reuter autoaffondò nel 1919, molto prima che l’atomo venisse scisso. Maurice Chiodo, ricercatore a Cambridge, arriva a dire che quell’ammiraglio diede “il più grande contributo alla medicina nucleare del mondo” fornendo questa riserva enorme di metallo “pulito”.

La contaminazione dei dati

La preoccupazione principale è un fenomeno noto come “AI model collapse” o “Model Autophagy Disorder” che si verifica quando i modelli di IA vengono addestrati su dati sintetici prodotti da altri modelli di IA. In pratica, i modelli “si nutrono della propria produzione“, portando a un degrado delle loro capacità.

Model Distillation meme

Nell’analogia con l’acciaio, i dati “puliti” sono quelli creati da esseri umani prima del 2022. La versione pre-atomica!

La preoccupazione non riguarda solo il fatto che un’IA possa produrre informazioni false. Il problema più grave riguarda il potere.

Le grandi aziende tecnologiche che hanno sviluppato i primi modelli di IA hanno avuto il tempo di “aspirare” enormi quantità di dati “puliti” dal web, creati interamente da esseri umani. Ora che il web è sempre più saturo di contenuti sintetici, le startup e i futuri sviluppatori faranno una fatica enorme a trovare dataset di alta qualità e non contaminati o comunque sarà proibitivamente costoso o probabilmente impossibile ripulirli.

Come per l’era atomica, il lancio di ChatGPT potrebbe aver segnato un punto di non ritorno, lasciandoci in un mondo in cui la distinzione tra il creato dall’uomo e il sintetizzato dalla macchina diventa sempre più labile, con conseguenze che stiamo solo iniziando a comprendere.

Disclaimer

Questo contenuto non è ovviamente scritto da un umano 😉

Vai all’articolo originale

Local Mess: Come le BigTech ti spiano in barba alle normative sulla privacy

Recentemente è stata pubblica una ricerca che mostra una tecnica di tracciamento utilizzata da grandi attori del settore tech, come Meta e Yandex, che abusa una funzionalità di rete per collegare l’attività di navigazione web (anche da browser anonimi) all’identità dell’utente.

Non solo questa tecnica elude la “Cookie Law” – quella normativa europea che dovrebbe imporre un opt-in esplicito per raccogliere la volontà di essere tracciati – ma è anche difficilmente aggirabile con le comuni pratiche di protezione della privacy poiché questo metodo di tracciamento elude l’isolamento tra processi (partizionamento, sandboxing) e rende inutile anche la cancellazione esplicita dello stato (cookie, vari storage, ecc) lato client.

Come funziona?

Il meccanismo alla base di “Local Mess” è ingegnoso nella sua semplicità. Applicazioni Android ufficiali, come quelle di Facebook, Instagram o Yandex, una volta installate sul dispositivo, si mettono in ascolto su porte di rete locali usando l’interfaccia di loopback (127.0.0.1).

Parallelamente, quando l’utente visita un sito web che integra specifici script di tracciamento (come il Meta Pixel o Yandex Metrica), questi script inviano metadati della sessione di navigazione, cookie e persino comandi direttamente alle porte in ascolto sull’interfaccia di loopback.

L’app, quindi, riceve queste informazioni riuscendo così a collegare l’attività di navigazione web, che potrebbe altrimenti apparire anonima, all’identità associata all’account dell’app.

Questo permette di de-anonimizzare l’utente, superando difese comuni come la cancellazione dei cookie del browser, l’utilizzo della modalità di navigazione in incognito, vpn, ecc.

Dal punto di vista dei permessi Android, la situazione è particolarmente interessante. Non è richiesto alcun permesso speciale o invasivo per implementare questa tecnica. La semplice autorizzazione INTERNET, che la stragrande maggioranza delle app richiede per funzionare (per accedere a contenuti online, API, ecc.), è sufficiente per consentire a un’applicazione di aprire una socket in ascolto sull’interfaccia di loopback.

Ciò significa che l’utente, concedendo un permesso apparentemente innocuo e ubiquitario, sta inconsapevolmente abilitando questo potenziale canale di comunicazione locale tra il browser (e quindi la sua attività sul web) e le app installate.

Su iOS la ricerca è ancora a uno stato primordiale ma, tecnicamente, è possibile utilizzare lo stesso vettore. Così come potrebbe essere utilizzato in dispositivi diversi come Smart TV, eBook Reader, ecc, i quali non sono stati ancora indagati.

Spie

Le evidenze raccolte durante la ricerca, mostrano che non si tratta solo di un tecnicismo per il tracciamento ma è a tutti gli effetti una pratica “illecita” e nascosta che avviene senza avvertire l’utente e ovviamente senza raccogliere il suo consenso.

È palese che tali pratiche violino sia il GDPR che le policy degli Store dei dispositivi.
Infatti, il 3 giugno 2025, Facebook ha rimosso dalla libreria di Meta Pixel le funzionalità che sfruttano questa tecnica. Esattamente il giorno dopo la pubblicazione della ricerca!
¯\_(ツ)_/¯

Browser e mitigazioni

Per quanto non sia un fan di Brave e non ami le sue politiche, è risultato l’unico browser non sfruttabile da questa tecnica poiché le connessioni verso 127.0.0.1 richiedono un permesso esplicito (dal 2022).

Su DuckDuckGo è possibile includere 127.0.0.1 e localhost in blocklist.

Chrome, dalla versione 137 rilasciata il 26 maggio 2025, blocca le connessioni originate da Yandex e Meta. In futuro, l’adozione di un permesso esplicito sulle connessioni a localhost risolverebbe in maniera definitiva il problema.

La mitigazione su Firefox è work in progress.

Microsoft Edge non pervenuto.

Come mitigazione generale in ambito OpSec, è buona norma utilizzare una propria VPN (non parlo di servizi come N*rd VPN e simili) per accedere ad internet dai propri dispositivi ed utilizzare dei DNS propri che implementino una blocklist, ad esempio Pi-hole.
Meglio ancora, utilizzare come forwarder di Pi-hole dei propri resolver ricorsivi, ad esempio con unbound.
Questa contromisura, nonostante non impedisca al browser di connettersi a socket aperti in localhost, bloccherebbe la libreria JavaScript di tracciamento (come Meta Pixel e Yandex) prima che venga caricata ed eseguita dal browser.

Implicazioni sulle operazioni Offensive

Se da un lato la finalità primaria descritta è quella del tracciamento pubblicitario e dell’analisi del comportamento utente, le implicazioni di una simile architettura non si fermano qui e aprono scenari anche in ambito di operazioni offensive malevole.

Una applicazione malevola, anch’essa dotata del solo permesso INTERNET, potrebbe teoricamente tentare di “ascoltare” su queste stesse porte locali, intercettando il traffico destinato alle app legittime e/o scambiando dati con gli script web.

Inoltre, è stato già sollevato da tempo come socket in ascolto su indirizzamento locale possono essere abusati per fare data leakage o persistent tracking.

Leveraging Universal Embedding Geometry for Data Exfiltration

I modelli di embedding sono diventati la spina dorsale di moltissime applicazioni NLP (Natural Language Processing), dal recupero di informazioni tramite RAG (Retrieval Augmented Generation) alla classificazione e al clustering di documenti e informazioni.

Questi modelli trasformano il testo in vettori numerici che ne catturano il significato semantico: testi simili avranno vettori vicini nello spazio.

Tuttavia, modelli diversi, magari addestrati su dati differenti o con architetture eterogenee, producono embedding in spazi vettoriali completamente incompatibili tra loro.

Immagina di avere due scatole di LEGO. Entrambe contengono mattoncini per costruire la stessa casa. Però, i mattoncini della prima scatola hanno incastri quadrati, mentre quelli della seconda scatola hanno incastri rotondi.
Anche se servono allo stesso scopo (costruire una casa) e rappresentano le stesse parti (pareti, tetto, ecc.), non puoi scambiare i mattoncini tra le due scatole perché gli incastri sono diversi.
Gli embedding sono come questi mattoncini: vettori che rappresentano il significato del testo. E i modelli diversi che li creano sono come le scatole: ognuno usa un suo “tipo di incastro” (cioè un suo modo di organizzare i vettori nello spazio), rendendoli incompatibili tra loro.

Recentemente, un gruppo di ricercatori ha introdotto un metodo chiamato vec2vec che promette di abbattere queste barriere. La loro ricerca (Harnessing the Universal Geometry of Embeddings) presenta la prima tecnica in grado di tradurre embedding testuali da uno spazio vettoriale all’altro senza bisogno di dati appaiati, encoder o set predefiniti di corrispondenze, praticamente non c’è bisogno di fare supervised learning

Questo approccio si basa sull’ipotesi, definita “Strong Platonic Representation Hypothesis” che suggerisce che il linguaggio in sé, nella sua essenza più profonda, possa essere rappresentato in uno spazio universale di significato, indipendentemente dalla lingua specifica o dal modello che lo elabora (che figata!).
In pratica, esiste una struttura semantica latente universale condivisibile tra tutte le lingue e tutti i modelli di embedding sufficientemente grandi.

Un altro paper precedente (Discovering Universal Geometry in Embeddings with ICA) del 2023, esplora concetti simili e tecniche di analisi per rivelare questa struttura semantica universale negli embedding.

Vec2Vec

L’idea di base di vec2vec è quella di “imparare” una rappresentazione latente condivisa in cui gli embedding provenienti da modelli diversi, e relativi a testi diversi, possano essere allineati.

Immagina di avere due libri scritti in linguaggi diversi, da autori diversi, ma che parlano degli stessi concetti. “Imparare una rappresentazione latente condivisa” significa che il sistema trova un modo per “tradurre” entrambi i libri in un linguaggio universale che permette di capire facilmente come i concetti in un libro si relazionano a quelli nell’altro, senza aver bisogno di un dizionario pre-esistente per ogni coppia di lingue.
Il sistema, attraverso l’addestramento (non supervisionato), scopre autonomamente queste regole di trasformazione.

I risultati ottenuti sono notevoli: le traduzioni di vec2vec raggiungono similarità elevate rispetto ai vettori originali nello spazio di destinazione e riescono ad accoppiare correttamente migliaia di embedding mescolati senza conoscere le corrispondenze in anticipo. Il metodo funziona bene anche tra modelli con architetture, numero di parametri e dataset di addestramento differenti.

Implicazioni per la Sicurezza

La capacità di tradurre embedding “sconosciuti” in uno spazio differente preservandone la geometria ha serie implicazioni per la sicurezza dei vector database.

Immaginate uno scenario del genere: un attaccante riesce a ottenere un dump di un vector db compromesso; normalmente, senza il modello originale, quei vettori sarebbero una black-box, dati incomprensibili.

  • L’attaccante usa vec2vec per tradurre gli embedding “sconosciuti” nello spazio di un modello a lui noto.
  • Una volta “comprensibili”, questi embedding possono essere interrogati con tecniche standard di inferenza di attributi (es. recuperare informazioni categoriche come sesso, età, tema del documento) o, peggio ancora, di inversione degli embedding (tentativo di ricostruire porzioni del testo originale).

Ad esempio, applicando queste tecniche ad un dataset di email della Enron (dataset pubblico di email interne di una defunta compagnia energetica), vec2vec è stato in grado di estrarre informazioni sensibili come nomi di persone e aziende, date, informazioni finanziarie e persino l’argomento di specifiche email, il tutto partendo solo dagli embedding e senza conoscere il modello che li aveva prodotti.
La percentuale di email per cui è stato possibile estrarre informazioni significative arriva fino all’80%!

In un altro esperimento, utilizzando un dataset di cartelle cliniche (MIMIC), il sistema è riuscito a inferire attributi relativi a descrizioni di malattie MedCAT, anche se queste erano scarsamente presenti nei dati di addestramento di vec2vec.

Questo suggerisce che lo spazio latente appreso da vec2vec è effettivamente una rappresentazione universale, capace di generalizzare anche a concetti molto specifici.

È pazzesco come, nonostante siamo noi a progettare queste AI, pezzo per pezzo, neurone dopo neurone, alla fine ci ritroviamo ad osservare i loro comportamenti come se stessimo studiando un fenomeno naturale.
La scoperta di questa “geometria universale” negli embedding ci mostra che c’è ancora moltissimo da capire. E soprattutto, ci ricorda che quando si parla di sicurezza e AI, mai dare nulla per scontato.


Bit4id – Autenticazione CNS e Firma Digitale su Linux Debian/Ubuntu

Anche se “l’anno di Linux sul desktop sarà l’anno prossimo” (cit.), ormai le distro moderne funzionano senza troppi problemi anche per gli utenti meno tecnici.
A complicare le cose, spesso, ci si mettono gli altri. Nello specifico la TS-CNS italiana (Tessera Sanitaria/Carta Nazionale dei Servizi) e il middleware sviluppato da Bit4id.

Normalmente ci sarebbe OpenSC per interagire con i certificati presenti all’interno della Smart Card, tramite le API PKCS#11 fornite dalla libreria opensc-pkcs11.so.
Ma la CNS italiana è “speciale” e quindi ha bisogno di un middleware proprietario. Ci pensa Bit4id ed è scaricabile da qui oppure da qui come riportato anche nel Wiki di Ubuntu, ma voi non fatelo!.

Fantastico che ci sia la versione per Linux, ma il pacchetto .deb per le distro Debian/Ubuntu utilizza un PATH non standard e installa all’interno delle directory di sistema destinate alle librerie alcuni file (con estensioni .rc e .conf) non conformi agli standard, dove normalmente dovrebbero essere presenti esclusivamente file con estensione .so (ELF shared object). La libreria bit4id richiede che i file .conf siano nella stessa directory 🙁

A seguito dell’installazione, il sistema genera dei warning ogni qual volta venga eseguito ldconfig.

Warning all’esecuzione di ldconfig

Ho segnalato la questione a Bit4id. Nel frattempo possiamo sfruttare InfoCert GoSign che si porta dietro la stessa libreria middleware (libbit4xpki.so) evitando così di installare il pacchetto buggato.

GoSign è un software per la firma digitale e, visto che supporta la TS-CNS, ha bisogno di quel middleware. InfoCert l’ha inclusa nel suo pacchetto di installazione di GoSign per Debian/Ubuntu.

Autenticazione CNS e Firma Digitale con TS-CNS su Linux Debian/Ubuntu, un’installazione pulita senza warning

Firma Digitale

Autenticazione CNS con Firefox

  • Scaricare e installare InfoCert GoSign se non l’avete già fatto
  • Aprire Firefox, andare su impostazioni, Privacy & Sicurezza, scorrere fino alla sezione Certificati e cliccare “Dispositivi di Sicurezza
  • Cliccare su Carica
  • Inserire come Nome Modulo quello che volete, ad esempio Bit4id e come file /usr/lib/gosigndesktop/resources/app/node_modules/@ice/dike-core-js/node_modules/@ice/dike-core-linux/native/lib/libbit4xpki.so e date OK a tutto
  • Fine

Autenticazione CNS con Chrome o Chromium

sudo apt install libnss3-tools opensc-pkcs11
  • Aggiungere il middleware al DB tramite il comando
modutil -force -dbdir sql:$HOME/.pki/nssdb -add Bit4id -libfile /usr/lib/gosigndesktop/resources/app/node_modules/@ice/dike-core-js/node_modules/@ice/dike-core-linux/native/lib/libbit4xpki.so
  • Fine

Dev & Hacking

Tool non necessari al funzionamento di cui sopra, ma utili per interagire con la Smart Card

pcscd libpcsclite1 pcsc-tools libccid libnss3-tools opensc-pkcs11