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

Concluído

A verificação de segurança costumava ser considerada uma atividade realizada uma vez por lançamento 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 ao fluxo de trabalho de uma equipe em vários pontos ao longo do caminho de desenvolvimento. O Secure DevOps pode ajudar a tornar todas as atividades de garantia de qualidade, incluindo segurança, contínua e automatizada.

Integração da análise de verificação de código de solicitação de pull.

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. Normalmente, uma PR é feita para cada pequena alteração em um processo de 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 as PRs incluem:

  • Mend. Ajuda a 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 sandbox do desenvolvedor.
  • Pato Negro da Synopsis. Uma ferramenta de auditoria para código de software livre para ajudar a identificar, corrigir e gerenciar a conformidade.

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

Compilação e liberação de verificação, análise e integração de código de definição

Os desenvolvedores precisam otimizar a CI para velocidade, a fim de obter feedback imediato sobre problemas de build. A verificação de código pode ser executada rapidamente o suficiente para integrar a definição de build de CI, impedindo uma compilação interrompida. Ele permite que os desenvolvedores restaurem o status de um build para pronto/verde corrigindo possíveis problemas imediatamente.

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

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

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

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