Crittografia non sicura? Scoperte 14 vulnerabilità in GnuPG, Sequoia-PGP e altri software

Presentate 14 vulnerabilità in quattro strumenti crittografici di ampio utilizzo, GnuPG compreso. Si tratta di errori di implementazione che possono ingannare l'utente o eseguire codice: molte non sono ancora corrette.

Al 39esimo Chaos Communication Congress i ricercatori Lexi Groves e Liam Wachter hanno rivelato una serie di vulnerabilità pratiche (presentazione completa) in strumenti usati per cifrare e firmare dati. In totale sono state identificate 14 vulnerabilità distribuite su quattro progetti: si tratta prevalentemente di errori di implementazione e non di difetti nei metodi crittografici di base. Ciò significa che le primitive rimangono teoricamente sicure, ma le concrete implementazioni possono produrre risultati fuorvianti e pericolosi per gli utenti.

Le falle evidenziate spaziano da classici problemi di gestione di stringhe C e byte null, a capacità di manipolare l’output della shell tramite sequenze ANSI, fino a vettori che permettono l’esecuzione di programmi attraverso sistemi di plugin. Gli strumenti esaminati includono implementazioni popolari come GnuPG, la più recente Sequoia-PGP, il tool di firme Minisign e il nuovo strumento di cifratura age. I risultati completi sono raccolti sul sito gpg.fail.

Dettagli tecnici principali delle vulnerabilità nei software GPG

Le categorie di problemi documentate sono principalmente le seguenti:

  • Iniezione di byte null: errori nella gestione di buffer e terminatori di stringa hanno permesso di far apparire firme false come valide o di anteporre testo non firmato ai dati firmati senza che la firma ne rilevasse la modifica.
  • Output fuorviante e codice ANSI: sfruttando sequenze di escape ANSI, gli strumenti software che stampano messaggi nella finestra del terminale possono produrre output arbitrario o sovrascrivere prompt di conferma, inducendo l’utente ad approvare azioni pericolose credendo che provengano dallo strumento stesso.
  • Bug logici e condizioni errate: codice manifestamente sbagliato che può generare risultati fuorvianti o crash sfruttabili per attivare comportamenti indesiderati.
  • Sistemi di plugin: in age i ricercatori hanno dimostrato la possibilità di invocare programmi arbitrari presenti sul sistema target tramite il meccanismo di plugin.

Impatto pratico

Come evidenziato in precedenza, gli attaccanti che sfruttano le vulnerabilità descritte non rompono gli algoritmi crittografici: piuttosto, manipolano il modo in cui i programmi interpretano e mostrano dati.

Le conseguenze pratiche includono la gestione di firme fasulle come valide, l’inganno dell’utente tramite messaggi da riga di comando contraffatti e, nel caso di plugin malevoli, l’esecuzione di codice locale. Sono problematiche particolarmente insidiose perché colpiscono la fiducia dell’utente nel risultato ottenuto avvalendosi degli strumenti crittografici.

Stato delle correzioni

Alcune vulnerabilità sono già state corrette nelle versioni correnti dei progetti interessati, ma molte restano aperte per diverse ragioni: in alcuni casi la patch risulta accettata ma non ancora pubblicata in una nuova release; in altri gli sviluppatori non ritengono il comportamento un bug da correggere.

Per age la reazione è stata particolarmente positiva: oltre alle correzioni, la specifica è stata aggiornata per prevenire il problema, e il suo sviluppatore Filippo Valsorda ha ringraziato i ricercatori pubblicamente.

Mitigazioni e buone pratiche

I ricercatori offrono raccomandazioni sia per gli sviluppatori che per gli utenti:

  • Aggiornare regolarmente i tool crittografici non appena le patch sono rilasciate.
  • Per gli sviluppatori: validare correttamente buffer e gestione delle stringhe C, sanificare l’output verso il terminale, rivedere i meccanismi di plugin per limitare l’esecuzione di codice non fidato.
  • Per gli utenti: considerare seriamente anche messaggi d’errore apparentemente innocui e seguire i consigli della documentazione.
  • Riconsiderare l’uso di strumenti crittografici direttamente da riga di comando se non si ha piena certezza dell’integrità dell’ambiente terminale, poiché le sequenze ANSI possono alterare la percezione dell’output.
  • Consultare il sito gpg.fail per maggiori dettagli tecnici e indicatori di compromissione relativi alle singole problematiche.

Conclusione

Le scoperte presentate al Chaos Communication Congress sottolineano che la sicurezza reale dipende tanto dall’accuratezza delle implementazioni quanto dalla robustezza delle primitive crittografiche.

Anche progetti consolidati come GnuPG possono nascondere difetti pratici che minacciano la fiducia degli utenti. La combinazione di aggiornamenti tempestivi, revisione del codice e attenzione degli utenti ai messaggi di avviso rimane la difesa più efficace contro questi vettori d’attacco.

Ti consigliamo anche

Link copiato negli appunti