Pós-análise: o que se sabe sobre o último ataque à rede SKS Keyserver de servidores de criptografia

Os hackers usaram um recurso do protocolo OpenPGP conhecido há mais de dez anos.

Nós dizemos qual é o objetivo e por que eles não conseguem fechá-lo.

Pós-análise: o que se sabe sobre o último ataque à rede SKS Keyserver de servidores de criptografia
/Remover/ Chunlea Ju

Problemas de rede

Em meados de junho, desconhecido realizou um ataque para uma rede de servidores de chaves criptográficas Servidor de chaves SKS, construído no protocolo OpenPGP. Este é um padrão IETF (RFC 4880), que é usado para criptografar e-mails e outras mensagens. A rede SKS foi criada há trinta anos para distribuir certificados públicos. Inclui ferramentas como GnuPG para criptografar dados e criar assinaturas digitais eletrônicas.

Os hackers comprometeram os certificados de dois mantenedores do projeto GnuPG, Robert Hansen e Daniel Gillmor. Carregar um certificado corrompido do servidor causa falha no GnuPG – o sistema simplesmente congela. Há razões para acreditar que os invasores não irão parar por aí e que o número de certificados comprometidos só aumentará. No momento, a extensão do problema permanece desconhecida.

A essência do ataque

Os hackers aproveitaram uma vulnerabilidade no protocolo OpenPGP. Ela é conhecida da comunidade há décadas. Mesmo no GitHub pode encontrar explorações correspondentes. Mas até agora ninguém assumiu a responsabilidade de fechar o “buraco” (falaremos dos motivos com mais detalhes posteriormente).

Algumas seleções do nosso blog no Habré:

De acordo com a especificação OpenPGP, qualquer pessoa pode adicionar assinaturas digitais aos certificados para verificar o seu proprietário. Além disso, o número máximo de assinaturas não é regulamentado de forma alguma. E aqui surge um problema - a rede SKS permite colocar até 150 mil assinaturas em um certificado, mas o GnuPG não suporta esse número. Assim, ao carregar o certificado, o GnuPG (assim como outras implementações do OpenPGP) congela.

Um dos usuários conduziu um experimento — importar o certificado demorou cerca de 10 minutos. O certificado contava com mais de 54 mil assinaturas e pesava 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

Para piorar a situação, os servidores de chaves OpenPGP não removem informações de certificados. Isso é feito para que você possa rastrear a cadeia de todas as ações com certificados e evitar sua substituição. Portanto, é impossível eliminar os elementos comprometidos.

Essencialmente, a rede SKS é um grande “servidor de arquivos” no qual qualquer pessoa pode gravar dados. Para ilustrar o problema, residente do GitHub no ano passado criou um sistema de arquivos, que armazena documentos em uma rede de servidores de chaves criptográficas.

Por que a vulnerabilidade não foi fechada?

Não havia razão para fechar a vulnerabilidade. Anteriormente, não era usado para ataques de hackers. Embora a comunidade de TI perguntou por muito tempo Os desenvolvedores SKS e OpenPGP devem prestar atenção ao problema.

Para ser justo, vale a pena notar que em Junho ainda lançado servidor de chaves experimental chaves.openpgp.org. Ele fornece proteção contra esses tipos de ataques. No entanto, seu banco de dados é preenchido do zero e o servidor em si não faz parte do SKS. Portanto, levará algum tempo até que possa ser usado.

Pós-análise: o que se sabe sobre o último ataque à rede SKS Keyserver de servidores de criptografia
/Remover/ Rubén Bagué

Quanto ao bug do sistema original, um mecanismo complexo de sincronização impede que ele seja corrigido. A rede de servidores chave foi originalmente escrita como uma prova de conceito para a tese de doutorado de Yaron Minsky. Além disso, uma linguagem bastante específica, OCaml, foi escolhida para o trabalho. Por palavras mantenedor Robert Hansen, o código é difícil de entender, então apenas pequenas correções são feitas nele. Para modificar a arquitetura SKS, ela terá que ser reescrita do zero.

De qualquer forma, o GnuPG não acredita que a rede algum dia será consertada. Em uma postagem no GitHub, os desenvolvedores até escreveram que não recomendam trabalhar com o SKS Keyserver. Na verdade, esta é uma das principais razões pelas quais iniciaram a transição para o novo serviço keys.openpgp.org. Só podemos observar o desenvolvimento dos eventos.

Alguns materiais do nosso blog corporativo:

Fonte: habr.com

Adicionar um comentário