Como usar a API da Snyk para encontrar e corrigir vulnerabilidades
Josh Emerson
3 de janeiro de 2018
0 minutos de leitura
Ilustração de Lou Reade.
Neste post, você vai aprender a usar a API da Snyk para recuperar todos os problemas associados a um determinado projeto. Isso pode ser útil por vários motivos, especialmente para incluí-los em relatórios e painéis, dando a gestores e desenvolvedores visibilidade sobre o status das vulnerabilidades nos portais e fluxos de trabalho que já usam.
Nas etapas a seguir, vamos usar a API para:
Buscar a lista de organizações às quais você tem acesso
Buscar todos os projetos de uma organização
Buscar a lista de problemas dos seus projetos
Pré-requisitos
A API da Snyk está disponível para clientes de um dos nossos planos pagos. Para começar a usar a API, faça login ou crie uma conta e obtenha sua chave de API em https://app.snyk.io. Você pode consultar todos os endpoints disponibilizados pela API em https://snyk.docs.apiary.io.
Se ainda não criou projetos, você pode fazer isso executando snyk monitor pela ferramenta de linha de comando da Snyk ou adicionar projetos de várias fontes (como GitHub, GitLab e Heroku) pelo site.
Você também precisa copiar sua chave de API em https://snyk.io/account e usá-la em todos os exemplos abaixo.
Como buscar organizações
O primeiro passo é usar o endpoint de organizações em https://snyk.io/api/v1/orgs.
Isso retornará uma lista das suas organizações.
Como buscar projetos
Agora, pegue o ID da organização cujos problemas de projeto você quer consultar e use-o no endpoint da API de projetos em https://snyk.io/api/v1/org//projects (substitua pela ID da sua organização).
Isso retornará uma lista dos seus projetos.
Como buscar problemas de projetos
Agora que temos uma lista de projetos, podemos buscar os problemas de qualquer projeto que nos interesse, acessando o endpoint de problemas mostrado abaixo e substituindo pela ID do projeto cujos problemas você quer consultar:
Isso retornará uma resposta JSON com um objeto de problemas que contém um array de vulnerabilidades e, se as licenças estiverem habilitadas para sua organização, um array de problemas de licença encontrados no projeto quando o último snapshot foi gerado.
O endpoint da API de problemas de projetos também permite filtrar por tipo de problema (vulnerabilidade ou problema de licença), gravidade (alta, média ou baixa) e por problemas ignorados ou corrigidos. Se quiséssemos ver apenas vulnerabilidades de alta gravidade que não foram corrigidas nem ignoradas, poderíamos fazer a seguinte solicitação:
A resposta não incluirá problemas de licença e mostrará apenas vulnerabilidades de alta gravidade que não foram ignoradas nem corrigidas.
Como usar a resposta
Agora que você recuperou os problemas do projeto, terá um payload JSON como este:
Digamos que você queira exibir o nome da vulnerabilidade, o pacote vulnerável e a URL para saber mais sobre cada vulnerabilidade. Usando jq como exemplo, você poderia fazer o seguinte:
E o resultado seria:
A API de relatórios
Em um próximo post, mostraremos como usar a API de relatórios empresarial para ir além do que é possível com o endpoint de problemas de projetos. Se quiser acompanhar os problemas ao longo do tempo, ver o tempo até a resolução e contar com recursos de filtragem mais avançados, entre em contato pelo e-mail enterprise@snyk.io para experimentar nossa API de relatórios.