Integrando segurança acionável ao fluxo de CI/CD e aos sistemas de build com os testes do Snyk
13 de dezembro de 2019
0 minutos de leituraConectar o Snyk aos repositórios armazenados em um sistema de gerenciamento de código-fonte, como GitHub ou GitLab, e importar seus projetos para o Snyk é uma ótima maneira de aproveitar os testes de segurança de aplicações ao longo dos principais fluxos de desenvolvimento. Você conta imediatamente com o monitoramento de segurança contínua para detectar novas vulnerabilidades nos manifestos de bibliotecas do seu projeto. Melhor ainda: você pode automatizar a criação de pull requests para corrigir esses problemas de segurança.
Assista ao nosso vídeo e veja como começar a usar nossa ferramenta de CLI.
Além dessas integrações básicas com o Git, o Snyk também se integra às suas ferramentas de CI/CD (integração contínua e desenvolvimento contínuo), com base na nossa CLI, para ser executado em um processo de build ou CI, como o Jenkins. A CLI do Snyk é uma solução muito flexível, que ajuda desenvolvedores a começar facilmente a detectar e corrigir vulnerabilidades de código aberto em suas aplicações e também em seus contêineres. Não é surpresa que engenheiros de DevOps estejam incorporando cada vez mais essa ferramenta de CLI aos pipelines.
Como posso oferecer aos desenvolvedores informações úteis sobre segurança de aplicações?
Se você trabalha com DevOps ou DevSecOps, sem dúvida já se fez essa pergunta pelo menos uma vez.
Testar a segurança de aplicações no seu CI/CD é um grande avanço. Mas oferecer aos desenvolvedores orientações práticas de correção para ajudá-los a resolver problemas quando um build falha é ainda melhor. Isso também ajuda a reduzir o ruído — por exemplo, evita interromper o build por problemas que não podem ser corrigidos e deixar os desenvolvedores sem saber o que fazer.
Para oferecer orientações úteis, o foco principal deve ser a possibilidade de agir.
Isso é fácil de fazer diretamente na interface do Snyk e com as integrações de gerenciamento de código-fonte, como mostra a imagem abaixo. Mas como fazer o mesmo para desenvolvedores que trabalham com a ferramenta de CLI?

Se você usa a CLI do Snyk para encontrar problemas de segurança, provavelmente já conhece a lista de vulnerabilidades exibida de forma clara, que é útil ao analisar os resultados de um build. Mas sabia que também é possível obter esses resultados em formato JSON? E como isso pode ajudar os desenvolvedores a agir para corrigir esses problemas de segurança?

Filtrando a saída JSON dos testes da CLI do Snyk
A CLI do Snyk oferece vários argumentos de linha de comando muito úteis para obter as informações desejadas em um teste. Também disponibilizamos uma folha de consulta da CLI do Snyk como referência.
Um desses argumentos úteis de linha de comando é a opção --json. A saída JSON dos testes do Snyk, combinada com o comando analisador JSON jq, pode ser muito útil para filtrar e manipular os resultados de vulnerabilidades.
Com esse argumento, você pode filtrar facilmente os resultados para exibir apenas os problemas que podem ser corrigidos com a atualização da biblioteca vulnerável ou a aplicação de um patch. Isso, para mim, é bem prático!
snyk test --json | jq '.vulnerabilities |= map(select(.isUpgradable == true or .isPatchable == true))'
Da saída JSON gerada por máquinas à visualização
Ter um formato JSON estruturado para manipular é ótimo, mas seria ainda melhor poder transformar os resultados em uma visualização atraente. Assim, podemos enviar a versão filtrada a desenvolvedores, líderes de equipe ou outras partes interessadas para acompanhar as ações e mitigar as vulnerabilidades de segurança dos nossos projetos.
Felizmente, podemos usar a CLI snyk-to-html. Com essa ferramenta, você pode exportar os resultados em JSON para uma página HTML estática — reunida em um único arquivo que pode ser enviado por e-mail ou compartilhado como preferir.
Para começar, instale a ferramenta:
$ npm install --global snyk-to-html
Agora, encaminhe a saída JSON do teste da CLI do Snyk para o jq para filtrá-la e, por fim, para o snyk-to-html, que converterá o JSON em um arquivo HTML:
$ snyk test —json | snyk-to-html -o results.html
Isso gera um relatório HTML estático e bem formatado, que pode ser enviado às partes interessadas relevantes — como este:

Resumo
Conhecer as vulnerabilidades de segurança é importante, mas não se esqueça: é ainda mais poderoso combinar esse conhecimento com orientações práticas que capacitem seus desenvolvedores a agir e manter as aplicações protegidas.
Confira estes recursos para explorar melhor a saída da CLI do Snyk:
Comece a usar nossa ferramenta de CLI assistindo ao nosso vídeo rápido e consulte também nossa referência completa da CLI.
Saiba mais sobre nossos argumentos de comando com esta prática folha de consulta da CLI do Snyk.
Para conhecer filtros e outros operadores, consulte a documentação do jq.
Por fim, você pode ler uma publicação mais detalhada sobre como aproveitar ao máximo o comando `snyk test` com saída em JSON.
Comece a participar de desafios de Capture the Flag
Aprenda a resolver desafios de Capture the Flag assistindo sob demanda ao nosso workshop virtual introdutório.
