Explorar a SCA (análise de composição de software)

Concluído

Duas áreas cruciais do pipeline DevOps seguro são o gerenciamento de pacotes e componentes de software OSS Open-Source.

Gerenciamento de pacotes

Assim como as equipes usam o controle de versão como uma única fonte de verdade para o código-fonte, o Secure DevOps depende de um gerenciador de pacotes como a fonte exclusiva de componentes binários.

Usando o gerenciamento de pacotes binários, uma equipe de desenvolvimento pode criar um cache local de componentes aprovados e um feed confiável para o pipeline de CI (Integração Contínua).

No Azure DevOps, o Azure Artifacts é uma parte integrante do fluxo de trabalho para organizar e compartilhar acesso aos seus pacotes. O Azure Artifacts permite que você:

  • Mantenha seus artefatos organizados. Compartilhe o código facilmente armazenando pacotes Apache Maven, npm e NuGet juntos. Você pode armazenar pacotes usando Pacotes Universais, eliminando a manutenção de binários no Git.
  • Proteja seus pacotes. Mantenha todos os pacotes de origem pública que você usa (incluindo pacotes de npmjs e NuGet .org) seguros no feed, onde somente você pode excluí-lo e ele é apoiado pelo SLA (Contrato de Nível de Serviço) do Azure de nível empresarial.
  • Integre a manipulação contínua de pacotes ao seu pipeline de Integração Contínua (CI)/ Desenvolvimento Contínuo (CD). Acesse facilmente todos os artefatos em builds e lançamentos. O Azure Artifacts integra-se nativamente à ferramenta CI/CD do Azure Pipelines.

Para obter mais informações sobre o Azure Artifacts, visite a página da Web. O que são artefatos do Azure?

Versões e compatibilidade

A tabela a seguir lista os tipos de pacote compatíveis com o Azure Artifacts. A disponibilidade de cada pacote no do Azure DevOps Services também é exibida.

A tabela a seguir detalha a compatibilidade de cada pacote com versões específicas do Servidor do Azure DevOps, anteriormente conhecido como TFS (Team Foundation Server).

Recurso Azure DevOps Services TFS
NuGet Sim TFS 2017
npm Sim TFS 2017 atualização 1 e posterior
Especialista Sim Versão 1 e posterior do TFS 2017
Gradle Sim TFS 2018
Universal Sim Não
Python Sim Não

Pacotes Maven, npm e NuGet podem ser suportados por equipes de qualquer tamanho, provenientes de fontes públicas e privadas. O Artefato do Azure vem com o Azure DevOps, mas a extensão também está disponível no Visual Studio Marketplace.

Captura de tela do Azure DevOps com artefatos realçados no painel de menus.

Nota

Depois de publicar uma versão de pacote específica em um feed, esse número de versão é permanentemente reservado.

Nota

Você não pode carregar um pacote de revisão mais recente com esse mesmo número de versão ou excluir essa versão e carregar um novo pacote com o mesmo número de versão. A versão publicada é imutável.

A função dos componentes do OSS

O trabalho de desenvolvimento é mais produtivo devido à ampla disponibilidade de componentes do OSS (software de software livre) reutilizáveis.

Essa abordagem prática para reutilizar inclui runtimes, que estão disponíveis em sistemas operacionais Windows e Linux, como Microsoft .NET Core e Node.js.

No entanto, a reutilização de componentes OSS vem com o risco de que dependências reutilizadas possam ter vulnerabilidades de segurança. Como resultado, muitos usuários encontram vulnerabilidades de segurança em seus aplicativos devido às versões do pacote Node.js que consomem.

O OSS oferece um novo conceito chamado SCA (Análise de Composição de Software) de para resolver essas preocupações de segurança, mostrado na imagem a seguir.

Captura de tela de uma imagem do fluxo de trabalho para criar dependências de software livre com segurança.

Ao consumir um componente do OSS, se você estiver criando ou consumindo dependências, você normalmente desejará seguir estas etapas de alto nível:

  1. Comece com a versão mais recente e correta para evitar vulnerabilidades antigas ou uso indevido de licença.
  2. Valide se os componentes do OSS são os binários corretos para sua versão. No pipeline de lançamento, valide os binários para garantir a precisão e manter uma lista rastreável de materiais.
  3. Obtenha notificações de vulnerabilidades de componente imediatamente, corrija-as e reimplante o componente automaticamente para resolver vulnerabilidades de segurança ou uso indevido de licença de software reutilizado.