Condividi Facebook Twitter

Un ricercatore della sicurezza ha scoperto una vulnerabilità critica in alcuni dei client di crittografia e-mail più diffusi e utilizzati al mondo, che per la crittografia e la firma digitale dei messaggi, si basano sullo standard OpenPGP e su GnuPG.

La rivelazione arriva quasi un mese dopo che i ricercatori hanno scoperto una serie di difetti, soprannominati eFail, negli strumenti di crittografia PGP e S/Mime, potrebbero consentire agli aggressori di rivelare le email crittografate in formato plaintext, interessano una varietà di programmi di posta elettronica, tra cui Thunderbird, Apple Mail e Outlook.

Marcus Brinkmann, sviluppatore di software, ha scoperto che la vulnerabilità della disinfezione degli input degli ingressi, da lui soprannominata SigSpoof, consente agli aggressori di falsificare le firme digitali con la chiave pubblica o l’ID della chiave di qualcuno, senza richiedere nessuna delle chiavi private o pubbliche coinvolte.

La vulnerabilità, tracciata come CVE-2018-12020 (riguarda le applicazioni e-mail più diffuse, tra cui GnuPG, Enigmail, GPGTools e python-gnupg), ora è stata corretta con patch degli ultimi aggiornamenti software disponibili.

Il protocollo OpenPGP come spiegato dal ricercatore, permette di includere il parametro “nome file” del file d’input originale nei messaggi firmati o crittografati, combinandolo con i messaggi di stato di GnuPG (incluse le informazioni sulla firma) in un unico data pipe (pacchetti di dati letterali) aggiungendo una parola chiave predefinita per separarli.

Werner Koch, responsabile di GnuPG, ha detto:

«Questi messaggi di stato sono analizzati dai programmi per ottenere informazioni da gpg sulla validità di una firma e di altri parametri. L’applicazione client durante la decodifica del messaggio alla fine del destinatario divide le informazioni utilizzando quella parola chiave, visualizzando il messaggio con una firma valida, se l’utente ha l’opzione verbose abilitata nel proprio file gpg.conf.

Ho scoperto che il nome file incluso, che può contenere fino a 255 caratteri, non è adeguatamente disinfettato dagli strumenti interessati, consentendo potenzialmente a un utente malintenzionato di includere feed di linea o altri caratteri di controllo in esso contenuti.

La scappatoia può essere utilizzata per iniettare messaggi di stato GnuPG arbitrari (falsi) nell’analizzatore di applicazioni nel tentativo di falsificare i risultati della verifica della firma e della decifrazione dei messaggi.

L’attacco è molto potente, il messaggio non ha nemmeno bisogno di essere crittografato: un singolo pacchetto di dati letterali (“plaintext”) è un messaggio OpenPGP perfettamente valido, anche se non c’è crittografia, contiene già il “nome del file crittografato” utilizzato nell’attacco.

Credo che il difetto abbia anche il potenziale di influenzare “gran parte della nostra infrastruttura principale” che va ben oltre l’e-mail crittografata, poiché “GnuPG non è utilizzato solo per la sicurezza delle e-mail, ma anche per garantire backup, aggiornamenti software nelle distribuzioni e codice sorgente nei sistemi di controllo della versione come Git.

Ho condiviso tre dimostrazioni di concetto, mostrano come le firme possono essere contraffatte in Enigmail e GPGTools, come la firma e la crittografia possono essere contraffatte in Enigmail e come una firma può essere falsificata sulla riga di comando».

In conclusione, poiché i gestori di tre popolari client di posta elettronica hanno corretto il problema, si consiglia agli utenti di aggiornare il software alle versioni più recenti:

– aggiornamento a GnuPG 2.2.8 o GnuPG 1.4.23;

– aggiornamento a Enigmail 2.0.7;

– aggiornamento agli strumenti GPGTools 2018.3.

Se sei uno sviluppatore, si consiglia di aggiungere –no-verbose a tutte le invocazioni di GPG e passare a python-gnupg 0.4.3.

Le applicazioni che utilizzano GPGME come motore per la crittografia sono sicure. Inoltre, GnuPG con il flag –status-fd e il flag –verbose non impostati sono sicuri.