Explorar a SCA (análise de composição de software)
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.
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.
Ao consumir um componente do OSS, se você estiver criando ou consumindo dependências, você normalmente desejará seguir estas etapas de alto nível:
- Comece com a versão mais recente e correta para evitar vulnerabilidades antigas ou uso indevido de licença.
- 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.
- 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.