Caso GitHub: o que aprendemos sobre roubo de certificados de assinatura de código criptografado

Caso GitHub: o que aprendemos sobre roubo de certificados de assinatura de código criptografado

8 de março de 2023 Off Por Ray Santos
Compartilhar

Foto: arquivo

Por Dean Coclin *

Em 31 de janeiro, a popular plataforma de hospedagem de código GitHub relatou que um usuário não autorizado obteve acesso a seus sistemas em 6 de dezembro de 2022 e roubou três certificados de assinatura de código criptografados (um certificado Apple Developer ID e dois certificados emitidos pela DigiCert). Uma vez detectado, o GitHub revogou imediatamente as credenciais não autorizadas. Pouco depois, a empresa anunciou que, como precaução adicional, revogaria os certificados no dia 2 de fevereiro.

Os certificados de assinatura de código são uma forma comprovada de os desenvolvedores de aplicativos de software “assinarem” seu código para afirmar sua origem e são essenciais para criar confiança na cadeia de suprimentos de software.

Os ataques de assinatura de código aumentaram em gravidade e frequência, conforme demonstrado com o incidente da Nvidia, e listou as melhores práticas para garantir a segurança da assinatura de código. Como fornecedora líder de confiança digital, a DigiCert gostaria de lançar alguma luz sobre o assunto e fornecer orientação sobre como manter as chaves de assinatura de código digital seguras para ajudar a evitar que isso aconteça novamente.

Aprendendo com os erros do GitHub

De acordo com o GitHub, “em 6 de dezembro de 2022, os repositórios de nosso Atom, desktop e outras organizações obsoletas de propriedade do GitHub foram clonados por um Personal Access Token (PAT) comprometido associado a uma conta de máquina”.

A empresa revogou o acesso ao usuário não autorizado em 7 de dezembro e descobriu que três certificados de assinatura de código do GitHub foram roubados; no entanto, não há evidências de que o invasor tenha conseguido descriptografar e usar os certificados.

O primeiro certificado DigiCert expirou em 4 de janeiro e o segundo expirou em 1º de fevereiro. O certificado Apple Developer ID, no entanto, era válido até 2027 e, como tal, a Apple está monitorando todos os arquivos executáveis ​​assinados com o certificado.

As sérias consequências de certificados de assinatura de código roubados

As consequências de uma chave de assinatura de código roubada podem ser extremamente prejudiciais para a reputação e os resultados financeiros da sua empresa.

O software malicioso assinado com uma chave roubada pode se espalhar com rapidez e facilidade, pois os usuários têm maior probabilidade de confiar no software assinado com uma chave confiável.

Isso pode levar a violações de segurança generalizadas, roubo de dados e até mesmo danos à infraestrutura crítica. As consequências de chaves de assinatura de código roubadas significam problemas do mundo real.

Assim, quando os Estados Unidos emitiram recentemente uma ordem executiva para melhorar a segurança cibernética do país, uma das principais etapas incluídas foi o uso de assinatura de código para garantir a integridade do código.

Nesse caso, a investigação do GitHub descobriu que “não havia risco para os serviços do GitHub.com como resultado desse acesso não autorizado e nenhuma alteração não autorizada foi feita nesses projetos”. Além disso, “os certificados foram protegidos por senha e não temos evidências de uso malicioso”.

O GitHub diz que revogar os certificados é uma medida preventiva, mas o dano poderia ter sido muito pior se os certificados não fossem criptografados e protegidos por senha.

Protegendo um certificado de assinatura de código e chaves de assinatura de código

Felizmente, existem etapas que você pode seguir para evitar que um incidente semelhante aconteça com você. Primeiro, é fundamental que as organizações protejam e controlem o uso de suas chaves de assinatura de código.

Assim, o controle e a visibilidade são essenciais para proteger as chaves de assinatura de código. A capacidade de impor direitos de assinatura, controlar quem tem acesso às chaves de assinatura e gerar relatórios que mostram quem assinou o quê, quando e onde fornece um alto nível de visibilidade e permite que você resolva rapidamente quaisquer problemas que possam surgir.

Além disso, as chaves precisam ser armazenadas com segurança para reduzir a capacidade de roubá-las dos invasores. No caso do GitHub, suas chaves foram criptografadas, o que é uma prática recomendada. No entanto, também recomendamos armazenar chaves off-line e apenas colocá-las on-line para assinatura.

Além disso, uma estratégia de rotação de chaves é crucial para a segurança da assinatura de código. Confiar em uma única chave para assinar tudo pode levar a grandes interrupções se a chave for comprometida.

Usar a mesma chave para assinar vários trechos diferentes de código será desastroso porque, se a chave for comprometida e precisar ser revogada, todo o código assinado com essa chave será invalidado. Ao implementar uma estratégia de rotação de chaves forte e frequente, usando chaves exclusivas e tendo acesso a chaves sob demanda, você pode limitar os danos de uma violação de segurança.

Por fim, embora não esteja diretamente vinculado à própria proteção de chave, antes de assinar o código, é importante executar uma verificação de vírus para garantir que o código esteja livre de conteúdo malicioso. Isso proporcionará tranquilidade e ajudará a evitar ameaças à segurança.

A verificação pode ser feita no nível do código-fonte (Static Application Security Testing, ou SAST) e no software compilado (Dynamic Application Security Testing, ou DAST), e ambas são práticas recomendadas. Essas medidas complementam a assinatura de código para ajudar a proteger a cadeia de suprimentos de software.

Em conclusão, o incidente com a chave de assinatura de código roubada do GitHub serve como um lembrete da importância de manter as chaves de assinatura de código digital seguras.

Ao tomar as medidas necessárias para proteger suas chaves, você pode evitar incidentes semelhantes e garantir a segurança e a confiança de seu software.

Dean Coclin *, diretor sênior de desenvolvimento de negócios da DigiCert.

Sobre a DigiCert, Inc.: A DigiCert é fornecedora líder mundial de soluções escalonáveis ​​TLS/SSL e PKI para identidade e criptografia. As empresas mais inovadoras, incluindo 89% das empresas da Fortune 500 e 97 dos 100 maiores bancos globais, escolhem a DigiCert por sua experiência em identidade e criptografia para servidores da Web e dispositivos da Internet das Coisas.

A DigiCert oferece suporte a TLS/SSL e outros certificados digitais para implantações de PKI em qualquer escala por meio de sua plataforma de gerenciamento de ciclo de vida de certificados, CertCentral®.

A empresa é reconhecida por sua plataforma de gerenciamento de certificados de nível empresarial, suporte ao cliente rápido e experiente e soluções de segurança líderes de mercado.

Para obter as notícias e atualizações mais recentes da DigiCert, visite digicert.com ou siga@digicert.

isource@marketing


Compartilhar