8 estratégias para aprimorar a segurança de assinatura de código

8 estratégias para aprimorar a segurança de assinatura de código

8 estratégias para aprimorar a segurança de assinatura de código PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

COMENTÁRIO

As notícias recentes de que hackers violaram empresa de soluções de acesso remoto AnyDesk lançou uma luz dura sobre a necessidade de as empresas analisarem detalhadamente as práticas de assinatura de código para ajudar a garantir uma cadeia de fornecimento de software mais segura.  

A assinatura de código adiciona uma assinatura digital ao software, firmware ou aplicativos que garante que o código do usuário vem de uma fonte confiável e não foi adulterado desde a última assinatura. Mas a assinatura de código é tão boa quanto a sua execução, e práticas inadequadas podem levar a injeções de malware, adulteração de código e software e ataques de falsificação de identidade. 

As chaves privadas precisam ser protegidas, mas muitos desenvolvedores (principalmente por razões de conveniência) mantêm as suas próprias e as armazenam em suas máquinas locais ou criam servidores. Isso os deixa vulneráveis ​​ao roubo e ao uso indevido e cria pontos cegos para as equipes de segurança.  

Seguindo as hack SolarWinds em 2020, o Fórum de Autoridade de Certificação/Navegador (CA/B) lançou um novo conjunto de requisitos básicos para manter certificados de assinatura de código que exigem o uso de módulos de segurança de hardware (HSMs), dispositivos que mantêm e protegem chaves criptográficas, bem como outras medidas para proteger chaves privadas. 

Os HSMs fornecem o mais alto nível de segurança, mas também aumentam os custos, a complexidade e as demandas de manutenção. A menos que possam ser integrados às ferramentas de assinatura de código usadas pela equipe de DevOps, a desconexão pode complicar o acesso à assinatura de código e retardar o processo.  

A migração para a nuvem tornou a segurança uma prioridade mais alta, mas a nuvem também oferece uma solução para assinatura de código. A assinatura de código em nuvem e os HSMs podem fornecer a velocidade e agilidade que os desenvolvedores desejam, bem como controle centralizado que suporta equipes de desenvolvimento distribuídas, integra-se aos processos de desenvolvimento e pode ser monitorado mais facilmente pela segurança. 

A jornada para a assinatura de código integrada 

Com as recentes mudanças do Fórum CA / B, é hora das organizações embarcarem em uma jornada para modernizar sua assinatura de código com controle centralizado para dar suporte às equipes de desenvolvimento. Muitas empresas permanecem no estágio “ad hoc”, onde as chaves são mantidas localmente e os desenvolvedores usam uma variedade de processos e ferramentas de assinatura de código. Outros centralizaram o controle para dar visibilidade e governança às equipes de segurança usando HSMs para proteger chaves, mas o uso de ferramentas de assinatura de código separadas ainda impacta a velocidade do desenvolvimento de software. 

A estrutura ideal e madura requer uma integração de segurança chave, ferramentas de assinatura de código e fluxos de trabalho de desenvolvimento para tornar o processo contínuo e simplificado em todas as compilações, contêineres, artefatos e executáveis. As equipes de segurança gerenciam os HSMs e obtêm visibilidade total da assinatura de código, enquanto os desenvolvedores agora contam com um pipeline de desenvolvimento ágil e rápido. 

Algumas práticas recomendadas podem ajudar a preparar o caminho nesta jornada: 

  • Proteja suas chaves: Armazene chaves de assinatura de código em um local seguro, como um HSM que esteja em conformidade com os requisitos criptográficos do CA/B Forum (FIPS 140-2 Nível 2 ou Common Criteria EAL 4+). Os HSMs são invioláveis ​​e impedem a exportação de chaves privadas.

  • Controle de acesso: Minimize o risco de acesso não autorizado e uso indevido de chaves privadas, limitando o acesso por meio de controle de acesso baseado em função. Defina fluxos de trabalho de aprovação e aplique políticas de segurança para regular o acesso apenas à equipe necessária e mantenha registros de auditoria que registram quem acionou a solicitação de assinatura, quem acessou as chaves e por quê. 

  • Girar teclas: Se uma chave for comprometida, todas as versões assinadas com ela correm o risco de serem comprometidas. Alterne as chaves de assinatura de código regularmente e use chaves exclusivas e separadas para assinar diferentes versões em várias equipes de DevOps. 

  • Código de carimbo de data/hora:  Os certificados de assinatura de código têm vida útil limitada – um a três anos e cada vez menor. O código de carimbo de data/hora durante a assinatura pode verificar a legitimidade de uma assinatura mesmo após o certificado ter expirado ou sido revogado, ampliando a confiança do código e software assinados.

  • Verifique a integridade do código: Execute uma revisão completa do código antes de assinar e liberar a compilação final, comparando o código no servidor de compilação com o repositório de código-fonte e verifique todas as assinaturas do desenvolvedor para garantir que estejam livres de adulterações. 

  • Centralize o gerenciamento: As empresas hoje são globais. Um processo centralizado de assinatura de código pode ajudar a monitorar atividades de assinatura e certificados em toda a empresa, independentemente de onde os desenvolvedores estejam localizados. Melhora a visibilidade, cria responsabilidade e elimina vulnerabilidades de segurança.

  • Aplicar políticas: Padronize o processo de assinatura de código definindo e mapeando políticas, incluindo permissões de uso de chaves, aprovações, expiração de chaves, tipo de CA, tamanho de chave, tipo de algoritmo de assinatura e muito mais. Automatize a aplicação de políticas para garantir que todos os códigos, arquivos e software sejam assinados com base nas políticas e estejam em conformidade com os padrões do setor. 

  • Simplifique a assinatura de código: A integração e automatização da assinatura de código com ferramentas de CI/CD simplifica o processo de DevOps sem comprometer a segurança, ao mesmo tempo que promove velocidade e agilidade.

Em um mundo de integração e implantação contínuas, as melhores práticas de assinatura de código fornecem uma maneira inestimável de construir confiança no processo de desenvolvimento e permitir uma cadeia de fornecimento de software mais segura.

Carimbo de hora:

Mais de Leitura escura