Skip to main content

Como usar o Snyk para implementar DevSecOps de ponta a ponta no Microsoft Azure

Escrito por

26 de maio de 2020

0 minutos de leitura

Temos o prazer de anunciar que adicionamos suporte ao Azure Repos Server, permitindo que desenvolvedores que usam o serviço DevOps local do Azure identifiquem e corrijam vulnerabilidades de segurança e problemas de licença em dependências de código aberto.

A nova integração complementa nosso suporte em todo o ecossistema Microsoft Azure — começando pelo Azure Repos (na nuvem e agora também local), passando pelo Azure Pipelines, pelo Azure Container Registry e pelo Azure Functions — e ajuda usuários do Azure a implementar DevSecOps em todo o ciclo de vida de desenvolvimento de software.

O Azure Repos Server faz parte do Azure DevOps Server, anteriormente conhecido como Team Foundation Server (TFS): um conjunto de ferramentas colaborativas de desenvolvimento de software hospedadas localmente. Ele permite que desenvolvedores gerenciem o fluxo de trabalho de desenvolvimento Git localmente, com pull requests e gerenciamento avançado de arquivos.

A nova integração permite que desenvolvedores que usam o Azure Repos Server:

  • Detectem vulnerabilidades existentes em projetos gerenciados no Azure Repos Server. Cada vulnerabilidade é exibida com informações contextuais e acionáveis, como o caminho exato da dependência que introduziu o problema, para agilizar a triagem.

  • Impeçam a introdução de novas vulnerabilidades com a análise de novos pull requests. Cada novo pull request é analisado no Azure Repos Server antes de ser integrado, para verificar se não introduz novas vulnerabilidades.

  • Corrijam os problemas identificados. O Snyk calcula a correção necessária para dependências diretas e transitivas e cria automaticamente um pull request de correção com as atualizações ou os patches necessários, tudo dentro do fluxo de trabalho do Azure Repos Server.

  • Monitorem continuamente novas vulnerabilidades. O Snyk monitora diariamente os projetos importados e notifica os desenvolvedores sempre que novas vulnerabilidades são divulgadas. É possível definir políticas para configurar o nível de gravidade das vulnerabilidades que impede a integração das alterações.

Vamos ver isso mais de perto.

Integrando o Snyk ao Azure Repos Server

Para configurar a integração, primeiro precisamos obter dois dados no Azure: a URL da organização no Azure Repos Server e um token de acesso.

Ao criar nosso token de acesso do Snyk, precisamos selecionar Custom defined e definir a data de expiração o mais distante possível. Além disso, em Scopes | Code, precisamos selecionar Read & write.

Janela do Azure DevOps para criar um token de acesso pessoal, exibindo a expiração personalizada e o escopo de leitura e gravação de código selecionados

Com esses dois dados em mãos, podemos acessar a página Integrações do Snyk e selecionar Azure Repos.

Página de integrações do Snyk que mostra o Azure Repos entre as integrações de controle de versão, com o GitHub indicado como configurado.

Agora, precisamos inserir a URL da organização no Azure Repos Server e o token que criamos acima.

Configurações de integração do Azure Repos exibindo campos de credenciais da conta, um token de acesso pessoal oculto, o botão Save e instruções para criar um token.

Depois de clicar no botão Save, uma mensagem de sucesso confirma que o Snyk foi integrado ao Azure Repos Server.

Configurações da integração do Snyk com o Azure Repos mostrando uma atualização bem-sucedida e credenciais do repositório conectadas.

Agora só precisamos clicar em Add your Azure Repos repositories to Snyk e selecionar os repositórios que queremos proteger com o Snyk.

Tela de importação do Azure Repos no Snyk para selecionar repositórios, adicionar caminhos de arquivo personalizados e excluir pastas das análises.

O Snyk importa nosso projeto e faz uma análise inicial em busca de vulnerabilidades de segurança e problemas de licença. Como vemos neste exemplo, nosso projeto de demonstração em node.js contém várias vulnerabilidades de diferentes níveis de gravidade.

Painel de projetos do Snyk mostrando um projeto do Azure Repos importado, chamado Demo/Demo, com o arquivo package.json e a quantidade de vulnerabilidades.

Corrigindo vulnerabilidades

Agora que configuramos a integração, podemos começar a usar o Snyk para encontrar e corrigir vulnerabilidades.

Ao abrir o projeto, vemos todos os problemas identificados pelo Snyk no repositório do Azure Repos Server: 66 vulnerabilidades de segurança e 2 problemas de licença, introduzidos pelas dependências de código aberto do projeto.

Visão geral do projeto da Snyk para Demo/package.json, mostrando vulnerabilidades, dependências e Azure Repos como origem

O Snyk oferece orientações práticas de correção para ajudar a resolver problemas rapidamente, incluindo o caminho completo da dependência que introduziu o problema, uma indicação de que a vulnerabilidade pode ou não ser explorada e a atualização necessária para corrigi-la.

Relatório de vulnerabilidade de segurança que mostra uma exploração madura, a versão 0.4.7 afetada do adm-zip e a recomendação de atualização para a versão 0.4.11

Ao clicar em Fix this vulnerability, um pull request é aberto automaticamente no Azure Repos Server com a atualização necessária.

Solicitação de pull do Azure DevOps intitulada “[Snyk] Atualização de segurança do adm-zip de 0.4.7 para 0.4.11”, indicando que não há conflitos de mesclagem e exibindo detalhes da correção de vulnerabilidades.

Segurança contínua

O Snyk mantém seguros os repositórios do Azure Repos Server com o monitoramento contínuo de novas vulnerabilidades.

Primeiro, o Snyk nos notifica quando uma nova vulnerabilidade é divulgada e identificada em nossos projetos, fornecendo todos os detalhes necessários para corrigi-la rapidamente.

Além disso, o Snyk garante que as alterações no código não introduzam novas vulnerabilidades. Sempre que um novo pull request é aberto no Azure Repos Server, o Snyk o analisa automaticamente em busca de vulnerabilidades de segurança e problemas de licença, para garantir que sejam resolvidos antes da integração.

DevSecOps em todo o ciclo de vida de desenvolvimento de software do Azure

Esta é a mais recente de uma série de integrações nativas que o Snyk oferece a usuários do Microsoft Azure, ajudando desenvolvedores a proteger suas aplicações durante todo o ciclo de vida de desenvolvimento de software (SDLC) — do desenvolvimento do código à CI/CD e à execução.

Para começar a usar qualquer uma dessas integrações, acesse a página Integrações do Snyk ou consulte a documentação da integração com o Azure Repos.

A integração é compatível com o TFS v2018 Update 2 e versões posteriores e está disponível somente nos planos Pro e Enterprise.

Proteja-se!