Integrar verificações de análise de composição de software a pipelines

Concluído

A verificação de segurança costumava ser pensada como uma atividade concluída uma vez por versão por uma equipe de segurança dedicada cujos membros tinham pouco envolvimento com outros grupos.

Essa prática cria um padrão perigoso no qual especialistas em segurança encontram grandes lotes de problemas no momento exato em que os desenvolvedores estão sob maior pressão para lançar um produto de software.

A pressão geralmente resulta na implantação de software com vulnerabilidades de segurança que precisam ser resolvidas após o lançamento de um produto, integrando a verificação no fluxo de trabalho de uma equipe em vários pontos ao longo do caminho de desenvolvimento. O Secure DevOps pode ajudar a criar todas as atividades de controle de qualidade, incluindo segurança, contínua e automatizada.

Fazer uma solicitação de pull para integração da análise de verificação de código.

As equipes de DevOps podem enviar alterações propostas para a base de código (principal) de um aplicativo usando PRs (solicitações de pull). Para evitar a introdução de novos problemas, os desenvolvedores precisam verificar os efeitos das alterações de código antes de criar uma PR. Uma PR normalmente é feita para cada pequena alteração em um processo do DevOps. As alterações são mescladas continuamente com a base de código principal para manter a base de código principal atualizada. O ideal é que um desenvolvedor verifique se há problemas de segurança antes de criar uma PR.

As extensões do Azure Marketplace que ajudam a integrar verificações durante PRs incluem:

  • Mend. Ajuda para validar dependências com sua impressão digital binária.
  • Checkmarx. Fornece uma verificação incremental das alterações.
  • Veracode. Implementa o conceito de uma área restrita do desenvolvedor.
  • Black Duck by Synopsis. Uma ferramenta de auditoria para código de código aberto para ajudar a identificar, corrigir e gerenciar a conformidade.

Essas extensões permitem que os desenvolvedores experimentem as alterações antes de encaminhá-las como uma PR.

Verificação, análise e integração de código de definição de compilação e lançamento

Os desenvolvedores precisam otimizar a CI para obter velocidade para que recebam comentários imediatos sobre problemas de compilação. A verificação de código pode ser executada rapidamente o suficiente para integrar a definição de compilação de CI, impedindo uma compilação interrompida. Ele permite que os desenvolvedores restaurem o status de uma compilação para pronto/verde ao corrigirem possíveis problemas imediatamente.

Ao mesmo tempo, a CD precisa ser rigorosa. No Azure DevOps, o CD normalmente é gerenciado por meio de definições de versão (que movem a saída da compilação entre ambientes) ou outras definições de compilação.

As definições de compilação podem ser agendadas (diariamente) ou disparadas com cada confirmação. Em ambos os casos, a definição de compilação pode fazer uma verificação de análise estática mais longa (conforme ilustrado na imagem a seguir).

Você pode examinar o projeto de código completo e examinar todos os erros ou avisos offline sem bloquear o fluxo de CI.

Diagrama mostrando um fluxo de trabalho que explica como uma definição de compilação pode disparar uma verificação de análise estática do código-fonte.