Os hackers usaram o recurso de protocolo OpenPGP, conhecido há mais de dez anos.
Nós dizemos qual é a essência e por que eles não podem fechá-la.
/ Unsplash / Chunlea JuProblemas de rede
Em meados de junho,
pessoas desconhecidas
atacaram uma rede de
servidores de chaves criptográficas
SKS Keyserver , criados com base no protocolo OpenPGP. Este é o padrão IETF (
RFC 4880 ), usado para criptografar emails e outras mensagens. A rede SKS foi criada há trinta anos para distribuir certificados públicos. Ferramentas como o
GnuPG para criptografar dados e criar assinaturas digitais eletrônicas estão conectadas a ele.
Os hackers comprometeram os certificados de dois mantenedores do projeto GnuPG - Robert Hansen e Daniel Gillmor. Baixar um certificado corrompido do servidor causa uma falha no GnuPG - o sistema congela. Há motivos para acreditar que os invasores não param por aí e o número de certificados comprometidos aumentará apenas. Atualmente, a extensão do problema permanece desconhecida.
Essência do ataque
Os hackers exploraram uma vulnerabilidade no protocolo OpenPGP. É conhecido pela comunidade há décadas. Mesmo no GitHub,
você pode encontrar as explorações apropriadas. Mas até agora ninguém assumiu a responsabilidade de fechar o "buraco" (falaremos mais sobre os motivos abaixo).
Algumas opções do nosso blog em Habré:
De acordo com a especificação do OpenPGP, qualquer pessoa pode adicionar assinaturas digitais aos certificados para confirmar sua propriedade. Além disso, o número máximo de assinaturas não é regulado de forma alguma. E aqui surge um problema - a rede SKS permite que você coloque até 150 mil assinaturas para um certificado, mas o GnuPG não suporta esse número. Portanto, ao carregar um certificado, o GnuPG (como, aliás, outras implementações do OpenPGP) trava.
Um dos usuários
conduziu um experimento - a importação de um certificado levou cerca de 10 minutos. O certificado tinha mais de 54 mil assinaturas e seu peso era de 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 <dkg@fifthhorseman.net>" 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 situação é agravada pelo fato de os servidores principais com OpenPGP não excluirem as informações do certificado. Isso é feito para que você possa rastrear a cadeia de todas as ações com certificados e impedir sua substituição. Portanto, é impossível eliminar elementos comprometidos.
De fato, a rede SKS é um grande "servidor de arquivos" no qual qualquer pessoa pode gravar dados. Para ilustrar o problema, no ano passado, um morador do GitHub
criou um sistema de arquivos que armazena documentos em uma rede de servidores de chave criptográfica.
Por que a vulnerabilidade não está fechada
Não havia motivo para fechar a vulnerabilidade. Anteriormente, não era usado para realizar ataques de hackers. Embora a comunidade de TI
solicite há muito tempo aos desenvolvedores do SKS e do OpenPGP que prestem atenção ao problema.
Para ser justo, vale a pena notar que em junho eles ainda
lançaram o servidor de chaves experimental
keys.openpgp.org . Ele implementa proteção contra esses tipos de ataques. No entanto, seu banco de dados é preenchido do zero e o próprio servidor não faz parte do SKS. Portanto, o tempo passará antes que possa ser usado.
/ Unsplash / Rubén BagüésQuanto ao bug no sistema original, o complicado mecanismo de sincronização evita corrigi-lo. A rede de servidores principais foi originalmente escrita como prova de conceito para defender uma dissertação de doutorado de Yaron Minsky. Além disso, uma linguagem OCaml bastante específica foi escolhida para o trabalho. Segundo o mantenedor Robert Hansen, é difícil entender o código, portanto, apenas pequenas correções são feitas nele. Para modificar a arquitetura SKS, você precisará reescrevê-la do zero.
De qualquer forma, o GnuPG não acredita que a rede seja fixa. Em um post no GitHub, os desenvolvedores chegaram a escrever que não recomendavam trabalhar com o SKS Keyserver. Na verdade, esse é um dos principais motivos pelos quais eles iniciaram a transição para o novo serviço keys.openpgp.org. Só podemos assistir ao desenvolvimento futuro dos eventos.
Alguns materiais do nosso blog corporativo: