Como criar e aplicar uma política de assinatura de código eficaz? Elabore um guia interno de políticas de assinatura de código
Conforme aumenta a necessidade de requisitos de assinatura bem definidos, as organizações e as equipes de desenvolvimento precisam elaborar e operar processos e políticas de assinatura robustos para proteger software. Ao criar e documentar uma política formal de assinatura de código, você capacita desenvolvedores e engenheiros a seguir as melhores práticas necessárias para proteger o software desenvolvido.
O que devo incluir em meu guia de políticas de assinatura de código?
Políticas eficazes de assinatura de código incluem diretrizes e procedimentos de emissão e uso de chaves de assinatura de código, incluindo questões como:
Emissão de chaves
Ao definir protocolos de gerenciamento, defina controles e procedimentos para quem pode emitir chaves e quando fazer isso. Os membros da equipe precisam saber quando é apropriado emitir chaves, segundo sua função. Gerencie os tipos de chaves emitidos, além dos atributos associados a elas. Isso ajuda a evitar a emissão de novas chaves com algoritmos fracos que introduzem vetores de ataque.
Gerenciamento de chaves
Defina controles e procedimentos para funções de usuário. Quem gerencia as chaves? Como o gerenciamento de chaves é dividido segundo a função dentro da equipe ou organização ou do estágio de produção? Esses procedimentos devem incluir o rastreamento de localização para todas as chaves da organização.
Armazenamento de chaves
As chaves precisam ser protegidas. Defina controles e procedimentos para o armazenamento de chaves quando elas estão em uso ou não. Eles devem incluir HSMs, tokens, USBs e chaves de acesso que usam a autenticação multifator. Os membros da equipe precisam saber como evitar perder ou armazenar chaves incorretamente.
Permissões de assinatura
Os membros da equipe precisam saber quem tem permissão para assinar e quando é apropriado fazer isso. Eles também precisam saber quando a permissão de assinatura não é concedida e como solicitar a assinatura caso a permissão não seja parte de sua função.
Uso de chaves
Como as chaves são usadas – ou não – é uma parte crucial dos procedimentos de assinatura corretos. As chaves precisam ser usadas no momento certo, pelas pessoas certas.
Como impedir o compartilhamento de chaves
O compartilhamento de chaves é uma prática comum. E também é uma prática perigosa. Os membros da equipe nunca devem compartilhar chaves, mesmo em repositórios ou servidores, sistemas e redes internos. As chaves precisam ser emitidas, controladas e armazenadas de forma exclusiva, pelo indivíduo apropriado, segundo sua função.
Assinatura contínua
Não encare a assinatura de código e software como mais uma etapa entediante ou uma tarefa de baixa prioridade. Todo pipeline CI/CD precisa incluir a Assinatura contínua (CS—Continuous Signing) para que a segurança do código seja uma prática correta e consistente.
Para uma explicação completa de como elaborar uma política interna de assinatura de código, leia nosso guia.