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

Os hackers usaram uma vulnerabilidade do protocolo OpenPGP, que é conhecida há mais de dez anos.

Explicamos qual é a essência e por que não podem fechar isso.

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

Problemas na rede

No meio de junho, desconhecidos realizaram um ataque na rede de servidores de chaves criptográficas SKS Keyserver, construído com base no protocolo OpenPGP. Este é um padrão IETF (RFC 4880), utilizado para criptografar e-mails e outras mensagens. A rede SKS foi criada há trinta anos para a disseminação de certificados públicos. Ferramentas como GnuPG são conectadas para a criptografia de dados e criação de assinaturas digitais.

Os hackers comprometeram os certificados de dois mantenedores do projeto GnuPG — Robert Hansen e Daniel Gillmor. O download de um certificado comprometido do servidor leva a falhas na operação do GnuPG — o sistema simplesmente trava. Há motivos para suspeitar que os criminosos não vão parar por aí, e o número de certificados comprometidos deve aumentar. Atualmente, a magnitude do problema permanece desconhecida.

A essência do ataque

Os hackers exploraram uma vulnerabilidade no protocolo OpenPGP. Isso é conhecido pela comunidade há várias décadas. Até no GitHub incluindo empresas como WIRED, Ford, General Motors, SpaceX, GitHub e GitLab, entre outras milhares. existem exploits correspondentes. Mas até agora, ninguém se responsabilizou por fechar a 'brecha' (abordaremos as razões mais adiante).

Algumas seleções do nosso blog no Habr:

De acordo com a especificação do OpenPGP, qualquer um pode adicionar assinaturas digitais aos certificados para confirmar a propriedade. Além disso, o número máximo de assinaturas não é regulamentado. E aqui surge o problema — a rede SKS permite até 150 mil assinaturas em um único certificado, mas o GnuPG não suporta essa quantidade. Assim, ao fazer o download do certificado, o GnuPG (assim como outras implementações do OpenPGP) trava.

Um dos usuários realizou um experimento — a importação do certificado levou cerca de 10 minutos. O certificado tinha mais de 54 mil assinaturas, e seu tamanho totalizou 17 MB:

$ gpg --homedir=$PWD --recv C4BC2DDB38CCE96485EBE9C2F20691179038E5C6
gpg: chave F20691179038E5C6: 4 assinaturas duplicadas removidas
gpg: chave F20691179038E5C6: 54614 assinaturas não verificadas devido a chaves faltantes
gpg: chave F20691179038E5C6: 4 assinaturas reordenadas
gpg: chave F20691179038E5C6: chave pública "Daniel Kahn Gillmor " importada
gpg: nenhuma chave ultimamente confiável encontrada
gpg: Total de processadas: 1
gpg:               importada: 1
$ ls -lh pubring.gpg
-rw-r--r--  1 filippo  staff    17M  2 Jul 16:30 pubring.gpg

A situação é agravada pelo fato de que os servidores de chaves OpenPGP não removem informações sobre os certificados. Isso é feito para que seja possível rastrear toda a cadeia de ações com os certificados e evitar sua substituição. Portanto, não é possível eliminar elementos comprometidos.

Na verdade, a rede SKS é como um grande "servidor de arquivos", onde qualquer pessoa pode gravar dados. Para ilustrar o problema, no ano passado, um residente do GitHub criou um sistema de arquivos, que armazena documentos na rede de servidores de chaves criptográficas.

Por que a vulnerabilidade não foi corrigida

Não havia motivo para corrigir a vulnerabilidade. Antes, ela não havia sido utilizada para realizar ataques hackers. Embora a comunidade de TI há muito tenha pedido aos desenvolvedores do SKS e do OpenPGP que prestassem atenção ao problema.

Para ser justo, vale mencionar que em junho eles finalmente lançaram um servidor de chaves experimental keys.openpgp.org. Ele implementa proteção contra esses tipos de ataques. No entanto, sua base de dados está sendo preenchida do zero, e o servidor não faz parte do SKS. Portanto, levará tempo até que possa ser utilizado.

Pós-análise: o que se sabe sobre o último ataque à rede de servidores de chaves criptográficas SKS Keyserver
/ Unsplash / Rubén Bagüés

Quanto ao bug no sistema original, corrigi-lo é dificultado por um complexo mecanismo de sincronização. A rede de servidores de chaves foi inicialmente escrita como um proof of concept para proteger a dissertação de doutorado de Yaron Minsky. Para isso, foi escolhida uma linguagem bastante específica, OCaml. Segundo palavras o mantenedor Robert Hansen, entender o código é difícil, então apenas pequenas correções são feitas. Para modificar a arquitetura do SKS, será necessário reescrevê-la do zero.

De qualquer forma, no GnuPG não acreditam que a rede consiga ser corrigida algum dia. Em um post no GitHub, os desenvolvedores até mencionaram que não recomendam trabalhar com o servidor de chaves SKS. De fato, essa é uma das principais razões pelas quais iniciaram a transição para o novo serviço keys.openpgp.org. Resta-nos apenas acompanhar o desenvolvimento dos acontecimentos.

Alguns materiais do nosso blog corporativo:

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster