Você já se perguntou como os desenvolvedores de software garantem que seus aplicativos, drivers, executáveis e softwares sejam autênticos, íntegros e seguros? A resposta é a assinatura de código ou Code Signing, como também é conhecido, um processo que usa certificados digitais e criptografia para verificar a identidade do editor e a integridade do código.
De forma resumida, Code Signing é baseada em uma tecnologia chamada infraestrutura de chave pública (PKI), que usa pares de chaves públicas e privadas para criar assinaturas digitais.
A chave privada é usada para assinar o código e a chave pública é usada para verificar a assinatura. A chave pública é vinculada a um certificado digital que contém informações sobre o editor, como nome, organização entre outros.
Mas como os editores protegem suas chaves privadas, que são o segredo mais importante do Code Signing?
Afinal, se alguém roubar ou comprometer a chave privada, poderá assinar código malicioso em nome do editor e enganar os usuários finais.
É aí que entram os HSMs na Assinatura de Código para garantir a segurança de softwares e aplicativos.
O Papel Fundamental dos HSMs na Assinatura de Código
Os ataques de assinatura de código nos últimos anos tem sido um risco real e tem impactado diferentes fornecedores de tecnologia, incluindo de forma reincidente.
-
Violação da Adobe – 2012
Cibercriminosos violaram um servidor de compilação com acesso ao sistema de assinatura de código da Adobe. Uma vez lá dentro, os hackers usaram o servidor para assinar malware com um certificado válido.
A Adobe respondeu revogando o certificado, impactando três de seus aplicativos e milhões de usuários.
-
Incidente Bit9 – 2013
A Bit9 recebeu relatórios de seus clientes de que o malware foi descoberto em suas redes – malware que foi assinado digitalmente pelo próprio certificado de assinatura de código da Bit9.
Posteriormente, foi descoberto que cibercriminosos se infiltraram em uma máquina virtual e roubaram um certificado para assinar e distribuir o malware a pelo menos três clientes Bit9.
-
Vazamento D-Link – 2015
Os cibercriminosos nem sempre precisam roubar um certificado de assinatura de código válido, especialmente quando os próprios fabricantes o publicam sem saber.
Em 2015, desenvolvedores do fabricante de equipamentos de rede D-Link publicaram acidentalmente quatro chaves privadas de assinatura de código em firmware de código aberto.
Nenhum malware conhecido foi assinado com essas chaves, mas a D-Link recebeu duras críticas pelo incidente.
-
D-Link (de novo) – 2018
As empresas de tecnologia D-Link e Changing Information Technology, sediadas em Taiwan, foram alvo de outro grupo APT conhecido como BlackTech.
Pelo menos dois certificados de assinatura de código foram roubados e usados para assinar malware do Windows conhecido como PLEAD, que rouba senhas inseridas nos navegadores de máquinas infectadas.
-
Malware Incorporado – ASUS – 2019
A ASUS, conhecida fabricante de tecnologia, sem saber, enviou malware a milhares de seus clientes durante pelo menos cinco meses.
Este sofisticado ataque à cadeia de fornecimento de software ficou conhecido como “Operação ShadowHammer”.
Os hackers comprometeram dois certificados de assinatura de código da ASUS e espalharam malware assinado através do ASUS Live Update Utility, inserindo backdoors em pelo menos 1 milhão de dispositivos.
À medida que mais transações, comunicações e operações migram para o espaço digital, a segurança das informações se tornou nossa maior preocupação e o foco de avanços significativos.
Foi aí que os HSMs (Módulos de Segurança de Hardware) emergiram como uma ferramenta robusta na garantia da segurança na assinatura de códigos.
Mas por que são tão importantes? E como eles garantem a Segurança de Chave Privada?
HSMs na Assinatura de Código: Fechando a Porta para Ameaças
Code Signing é um dos principais processos para manter a integridade e veracidade dos códigos. Além disso, é sobre estabelecer a confiança do usuário e garantir que os códigos e aplicativos não tenham sido alterados ou corrompidos desde sua criação.
E os HSMs cumprem esse importante papel crucial nesse processo.
Os Módulos de Segurança de Hardware são dispositivos físicos dedicados que geram, armazenam e protegem chaves criptográficas. Eles funcionam como um cofre virtual que facilita as transações seguras e autênticas em qualquer operação eletrônica, incluindo assinatura digital de códigos.
Na prática, os HSMs ajudam a proteger a chave privada usada na assinatura de código contra acesso não autorizado e inserção de código mal-intencionado. A Infraestrutura de Chaves é o “segredo” que o emissor da assinatura precisa proteger.
Sem a proteção de um HSM, as chaves privadas podem ser vulneráveis a ataques cibernéticos, colocando em risco todo o sistema.
Assinatura de Código em 4 Etapas:
1. Geração, Aquisição e Armazenamento de Certificados Digitais:
A assinatura de código não apenas envolve a utilização de chaves criptográficas, mas também de certificados digitais, que são fundamentais para estabelecer uma cadeia de confiança durante o processo de verificação da assinatura.
Muito similar a assinaturas digitais de documentos, atestados médicos, contratos, entre outros que são amplamente utilizados nos dias de hoje.
- Geração de Chaves e Solicitação de Certificados:
Primeiramente você deve escolher uma autoridade certificadora que irá trabalhar para conhecer o processo, tecnologia e detalhes que serão importantes para geração das chaves criptográficas.
Ao conhecer isso é importante certificar que a autoridade certificadora suporte a geração de certificados digitais de assinatura de código em de forma segura dentro do HSM.
O processo normal é criar uma Solicitação de Assinatura de Certificado (CSR – Certificate Signing Request), que será enviada para uma Autoridade Certificadora (CA).
- Aquisição de Certificados Digitais:
Certificados digitais podem ser adquiridos de diversas Autoridades Certificadoras reconhecidas e confiáveis no mercado, sendo as mais conhecidas GlobalSign, DigiCert e Comodo.
- Importância dos Certificados Digitais:
O certificado digital contém a chave pública e é assinado pela CA, atestando a propriedade e autenticidade da chave pública.
Durante o processo de verificação da assinatura de código, o certificado, que geralmente fica embutido com a aplicação, no qual veremos mais a frente, ajuda a estabelecer uma cadeia de confiança, permitindo que os usuários verifiquem a integridade e origem do código assinado.
- Armazenamento Seguro:
O armazenamento seguro das chaves privadas associadas aos certificados digitais é crucial para prevenir comprometimentos e uso indevido das credenciais de assinatura.
Utilizando HSMs, as chaves privadas são armazenadas em um ambiente altamente seguro e resistente a tentativas de extração e acesso não autorizado.
Ao garantir que as chaves privadas estejam seguras e que os certificados digitais sejam adquiridos de CAs confiáveis, estabelece-se uma base sólida para um processo de assinatura de código que é tanto seguro quanto confiável para os usuários finais.
2. Preparação do Código para Assinatura
O código que será assinado deve ser preparado, o que geralmente envolve a compilação e o empacotamento do software em um formato adequado.
Em seguida, é gerado um resumo criptográfico (hash) do código, que servirá como uma representação única do conteúdo do software. E é importante se atentar nessa etapa, pois após a geração do hash que será assinado, não há mais espaço para alterações no código fonte.
Qualquer correção de bug, melhoria, ou qualquer outra alteração no código precisará ser preparada, assinada e distribuída. Portanto cuidado para evitar retrabalho.
3. Assinatura do Código
A assinatura do código ocorre dentro do HSM. O hash gerado a partir do código é enviado ao HSM, e a chave privada armazenada dentro do dispositivo é utilizada para assinar esse hash.
O HSM retorna a assinatura digital, que é então anexada ao pacote de software ou distribuída junto com ele.
4. Distribuição do Código Assinado
A distribuição do código assinado envolve a entrega do software e sua assinatura digital aos usuários finais de uma maneira que preserve a integridade da assinatura e facilite a verificação automática da mesma.
Isso é geralmente feito embutido no aplicativo, no qual podemos verificar como o caso do Microsoft Word abaixo.
Mudanças na emissão de certificados de assinatura de código
O Certificate Authority/Browser (CA/B) solicitou que fosse alterado a emissão de Certificados de Assinatura de Código.
Essas atualizações estipulam que uma chave privada deve ser gerada e protegida em dispositivos compatíveis com FIPS 140‐2 Level 2 ou Common Criteria EAL 4+ para ambos os Certificados de Assinatura de Código Padrão e EV.
O objetivo é aumentar a proteção das chaves privadas associadas aos Certificados de Assinatura de Código e minimizar os riscos de assinatura de malware usando essas chaves.
Clique aqui para maiores informações sobre essa nova determinação que será obrigatório.
HSMs na Assinatura de Código: a Chave para o Futuro Seguro
Como vimos no decorrer do artigo, os HSMs desempenham um papel fundamental na promoção da segurança com uso de Code Signing e na proteção da chave privada.
Eles minimizam os riscos de ataques cibernéticos, garantem a integridade de seus códigos e asseguram a confiança em suas aplicações.
Considerando o nosso cenário digital de rápida evolução, a cibersegurança não é apenas essencial – é indispensável.
Abrace o futuro se comprometendo com a segurança de sua chave privada e a integridade de seu código. Torne os HSMs seu aliado na batalha pela segurança cibernética impenetrável.
Quando se trata de segurança, não há compromissos e não pode haver meias-medidas.
Se você quer saber mais sobre como os HSMs podem ajudar na assinatura de código, entre em contato com a Eval hoje mesmo e descubra como podemos ajudá-lo a proteger seu software e seus clientes.
Sobre a Eval
Com uma trajetória de liderança e inovação que remonta a 2004, a Eval não apenas acompanha as tendências tecnológicas, mas também estamos em uma busca incessante para trazer novidades oferecendo soluções e serviços que fazem a diferença na vida das pessoas.
Com valor reconhecido pelo mercado, as soluções e serviços da Eval atendem aos mais altos padrões regulatórios das organizações públicas e privadas, tais como o SBIS, ITI, PCI DSS, e a LGPD. Na prática, promovemos a segurança da informação e o compliance, o aumento da eficiência operacional das empresas, além da redução de custos.
Inove agora, lidere sempre: conheça as soluções e serviços da Eval e leve sua empresa para o próximo nível.
Eval, segurança é valor.
Artigo escrito por Arnaldo Miranda e Evaldo.Ai, revisado por Marcelo Tiziano, Design Caio Silva.