Testes de segurança com Snyk

Pedro Henrique Joioso Martins
Engenharia Arquivei
6 min readOct 25, 2023
Logo Snyk

O desenvolvimento de software está em constante evolução, e, juntamente com essas evoluções, surgem cade vez mais os desafios e riscos de segurança. A segurança da informação é uma preocupação fundamental para qualquer organização que lida com dados sensíveis; e ultimamente uma coisa que se tem escutado muito é; segurança da informação, código LGPD(Lei Geral de Proteção de Dados Pessoais), entre outras coisas que envolvem dados sensíveis.

E para conseguirmos diminuir um pouco esses riscos, precisamos cada vez mais se preocupar com a fase do ciclo de desenvolvimento de um software, incrementando cada vez mais as etapas de segurança durante os processos de desenvolvimento, e uma das etapas mais simples, é utilizando uma ferramenta de SAST(Teste Estático do Código).

A análise estática de código ou Static application security testing (SAST) é uma analise realizada por ferramentas que examinam o código fonte da a aplicação em busca de possíveis vulnerabilidades, más práticas de programação e outros problemas conhecidos.

Essa ferramenta, tem como objetivo alertar algo que poderia passar batido pelos desenvolvedores, seja durante um code review ou no momento da codificação.

E é aí que entra a Snyk, uma ferramenta que está muito direcionada para área de segurança, e que está evoluindo cada vez mais e está trazendo análise estática para linguagens cada vez mais recentes, como Golang, sem contar que acabou de sair no radar da Thoughtworks, como uma das ferramentas para serem adotadas.

Pré Requisitos

  • Conhecimento: Nenhum 🙌
  • Possuir algum projeto para rodar os testes 🧑‍💻

Falando um pouco mais sobre a Snyk; é uma ferramenta de segurança de software que desempenha um papel fundamental na proteção de containers. Especificamente, o Snyk é projetado para realizar análises de segurança automatizadas, identificando bibliotecas com falhas conhecidas e fornecendo informações detalhadas sobre as vulnerabilidades encontradas.

Além de sua funcionalidade de análise, o Snyk também ajuda na correção dessas vulnerabilidades por meio de integrações com ferramentas de construção e orquestração de containers, como Docker e Kubernetes. Ele oferece soluções para a correção automática das vulnerabilidades encontradas, seja atualizando as bibliotecas afetadas ou fornecendo recomendações claras sobre as ações a serem tomadas.

Sem contar que possui integração com diversos serviços conforme imagem abaixo:

Integrações Snyk

Utilizando Snyk na prática

No meu caso, eu resolvi utilizar como padrão, um projeto que eu já venho trabalhando, e que eu já sei que possui algumas vulnerabilidades, tudo isso para conseguir observar o comportamento dessa ferramenta, mas o passo-a-passo para realizar os testes serão os mesmo em qualquer projeto.

Para iniciarmos, precisamos primeiramente logar na ferramenta Snyk através do Browser na própria home page da ferramenta, no meu caso eu acessei utilizando a conta de e-mail pessoal do Google.

Após realizar o login, vão aparecer diversas formas para configurar o Snyk no projeto, conforme mostra imagem abaixo, no meu caso eu escolhi a primeira opção CLI, que nada mais é do que configurar por linha de comando.

Passo 1 de configuração do Snyk

Ao clicar para o próximo passo(Next step), basta selecionar o sistema operacional e copiar o comando informado pelo Snyk; com o comando copiado basta colar no seu terminal e executar o mesmo

Passo 2 de configuração do Snyk

💡 Caso ocorra algum erro de permissão durante a instalação, execute apenas o último comando mv à parte utilizando sudo conforme exemplo abaixo:

sudo ./snyk /usr/local/bin/

O próximo passo é basicamente igual ao anterior, basta copiar o código informado e executar no seu terminal para se autenticar no Snyk.

Passo 3 de configuração do Snyk

🙌 Após se autenticar uma tela parecida com a imagem abaixo deve ser exibida no browser:

Snyk autenticado

Com isso o Snyk já está instalado, configurado e autenticado, pronto para ser executado. Para isso basta seguir os dois últimos passos conforme mostra os passos da imagem abaixo, que são:

  1. Acessar a pasta raiz do seu projeto através do terminal.
  2. Executa o comando que o Snyk está informando para realizar os testes em todos os projetos.
Passo 4 de configuração do Snyk

Ao executar os testes, uma saída bem parecida com a imagem a baixo deve ser gerada:

Testes executados com Snyk

Após executar os testes, importar e analisar seu repositório, ao acessar o Snyk através browser, algo será exibido conforme a imagem abaixo:

Home Snyk

Ou seja, após executar os testes o Snyk detectou que meu repositório possui em suas dependências alguns tipos de ameaças, sendo elas com os seguintes níveis:

  • 3 — High severity;
  • 6 — Medium severity;
  • 0 — Low severity.

Ao clicar no projeto para expandir, todos os problemas serão exibidos conforme imagem abaixo:

Erros reportados pelo Snyk

Esse repositório possui várias dependências com vulnerabilidades dos mais diversos níveis de periculosidade. E para cada uma delas, uma descrição do problema e caso tenha correção, como resolvê-las, basta clicar em cada um dos erros em específicos que tudo estará bem detalhado — Caso você queira, o Snyk consegue abrir uma PR de forma automática sempre que ele fizer a análise. 👀

Você também pode configurá-lo para receber noticiações por e-mail, Slack, com que frequência os testes serão executados, entre outras funcionalidades bem interessantes.

E para finalizar, o Snyk também fornece uma CLI com comandos bem legais:

  • snyk test — Escaneia suas dependências em busca de vulnerabilidades;
  • snyk wizard — Mostra cada uma das vulnerabilidades encontradas e pergunta como você deseja resolvê-la, podendo ignorá-la, corrigi-lá, ou atualizá-la;
  • snyk protect — Aplicará patches de acordo com as políticas definidas ao executar o snyk wizard.

Obrigado por ler este artigo, espero que tenha ajudado em algo!

Cheers! 🍻

Caso tenha alguma dúvida, sugestão de melhoria ou algum problema, deixe seu comentário. 👌

Caso tenha gostado ou tudo tenha ocorrido direitinho, me siga no Medium e deixa seu like. 😘

Referências:

--

--

Pedro Henrique Joioso Martins
Engenharia Arquivei

Engenheiro de teste, cervejeiro, churrasqueiro e pai. Sabe aplicação funcionando, cerveja gelada, churrasco bem-feito e família reunida?Não gosto, eu amo!