Post-analisi: cosa si sa sull'ultimo attacco alla rete SKS Keyserver di server di chiavi crittografiche

Gli hacker hanno sfruttato una caratteristica del protocollo OpenPGP nota da più di dieci anni.

Vi diciamo qual è il punto e perché non possono chiuderlo.

Post-analisi: cosa si sa sull'ultimo attacco alla rete SKS Keyserver di server di chiavi crittografiche
/Unsplash/ Chunlea Ju

Problemi di rete

A metà giugno, sconosciuto effettuato un attacco ad una rete di server di chiavi crittografiche Server delle chiavi SKS, basato sul protocollo OpenPGP. Questo è uno standard IETF (RFC 4880), che viene utilizzato per crittografare e-mail e altri messaggi. La rete SKS è stata creata trent'anni fa per distribuire certificati pubblici. Include strumenti come GnuPG per crittografare i dati e creare firme digitali elettroniche.

Gli hacker hanno compromesso i certificati di due manutentori del progetto GnuPG, Robert Hansen e Daniel Gillmor. Il caricamento di un certificato danneggiato dal server provoca il fallimento di GnuPG: il sistema semplicemente si blocca. C'è motivo di credere che gli aggressori non si fermeranno qui e che il numero di certificati compromessi non farà altro che aumentare. Al momento, la portata del problema resta sconosciuta.

L'essenza dell'attacco

Gli hacker hanno approfittato di una vulnerabilità nel protocollo OpenPGP. È nota alla comunità da decenni. Anche su GitHub si può trovare exploit corrispondenti. Ma finora nessuno si è assunto la responsabilità di chiudere il “buco” (delle ragioni parleremo più approfonditamente in seguito).

Un paio di selezioni dal nostro blog su Habré:

Secondo le specifiche OpenPGP, chiunque può aggiungere firme digitali ai certificati per verificarne il proprietario. Inoltre, il numero massimo di firme non è regolamentato in alcun modo. E qui sorge un problema: la rete SKS consente di inserire fino a 150mila firme su un certificato, ma GnuPG non supporta tale numero. Pertanto, durante il caricamento del certificato, GnuPG (così come altre implementazioni OpenPGP) si blocca.

Uno degli utenti condotto un esperimento — l'importazione del certificato ha richiesto circa 10 minuti. Il certificato aveva più di 54mila firme e il suo peso era di 17 MB:

$ gpg --homedir=$PWD --recv C4BC2DDB38CCE96485EBE9C2F20691179038E5C6
gpg: key F20691179038E5C6: 4 duplicate signatures removed
gpg: key F20691179038E5C6: 54614 signatures not checked due to missing keys
gpg: key F20691179038E5C6: 4 signatures reordered
gpg: key F20691179038E5C6: public key "Daniel Kahn Gillmor <[email protected]>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1
$ ls -lh pubring.gpg
-rw-r--r--  1 filippo  staff    17M  2 Jul 16:30 pubring.gpg

A peggiorare le cose, i server delle chiavi OpenPGP non rimuovono le informazioni sul certificato. Questo viene fatto in modo da poter tracciare la catena di tutte le azioni con i certificati e impedirne la sostituzione. Pertanto è impossibile eliminare gli elementi compromessi.

Essenzialmente, la rete SKS è un grande “file server” su cui chiunque può scrivere dati. Per illustrare il problema, l'anno scorso residente su GitHub creato un file system, che archivia i documenti su una rete di server di chiavi crittografiche.

Perché la vulnerabilità non è stata chiusa?

Non c'era motivo di chiudere la vulnerabilità. In precedenza, non veniva utilizzato per attacchi hacker. Sebbene la comunità IT chiesto da molto tempo Gli sviluppatori SKS e OpenPGP dovrebbero prestare attenzione al problema.

Per essere onesti, vale la pena notare che a giugno sono ancora lanciato server di chiavi sperimentale chiavi.openpgp.org. Fornisce protezione contro questi tipi di attacchi. Tuttavia, il suo database è popolato da zero e il server stesso non fa parte di SKS. Pertanto, ci vorrà del tempo prima che possa essere utilizzato.

Post-analisi: cosa si sa sull'ultimo attacco alla rete SKS Keyserver di server di chiavi crittografiche
/Unsplash/ Rubén Bagües

Per quanto riguarda il bug del sistema originale, un complesso meccanismo di sincronizzazione ne impedisce la correzione. La rete di server chiave è stata originariamente scritta come prova di concetto per la tesi di dottorato di Yaron Minsky. Inoltre, per il lavoro è stato scelto un linguaggio piuttosto specifico, OCaml. Di secondo manutentore Robert Hansen, il codice è difficile da capire, quindi vengono apportate solo piccole correzioni. Per modificare l'architettura SKS, dovrà essere riscritta da zero.

In ogni caso, GnuPG non crede che la rete verrà mai riparata. In un post su GitHub gli sviluppatori hanno addirittura scritto che non consigliano di lavorare con SKS Keyserver. In realtà, questo è uno dei motivi principali per cui hanno avviato la transizione al nuovo servizio keys.openpgp.org. Possiamo solo osservare l'ulteriore sviluppo degli eventi.

Un paio di materiali dal nostro blog aziendale:

Fonte: habr.com

Aggiungi un commento