Como usar o Snyk para implementar DevSecOps de ponta a ponta no Microsoft Azure
26 de maio de 2020
0 minutos de leituraTemos 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.

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

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

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

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

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.

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.

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.

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.](https://res.cloudinary.com/snyk/image/upload/f_auto,w_2560,q_auto/v1615809441/wordpress-sync/azure_repos_fix_pr.png)
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!