Skip to main content

Snyk Code adiciona análise de segurança para Go

Escrito por

Frank Fischer

blog feature snyk code green

14 de outubro de 2021

0 minutos de leitura

Nota da edição (10 de janeiro de 2022): O suporte a Go no Snyk Code já está disponível de forma geral.


O Snyk Code foi lançado no início de 2021 e, desde então, evoluiu muito em pouco tempo. Como ferramenta de segurança pensada para desenvolvedores, oferece uma interface intuitiva e uma CLI, integra-se aos IDEs mais populares, recomenda correções práticas e realiza análises em tempo real, com alta precisão e velocidade de ponta. Além disso, tudo é baseado em algoritmos de aprendizado de máquina que aprendem com a comunidade global de desenvolvedores, ampliando exponencialmente sua sólida base de conhecimento.

Desde o lançamento, temos adicionado cada vez mais linguagens. O Snyk Code já oferece suporte a JavaScript, TypeScript, Java, Python, C#, PHP (beta) e agora... rufem os tambores... suporte a Go em versão beta!

Vamos ver como o Snyk Code chegou à versão beta da análise de segurança para Go e como você pode começar a aproveitar esses recursos.

A jornada de Go no Snyk Code

Em geral, o processo de inclusão de uma nova linguagem começa com a adição de um parser ao mecanismo do Snyk Code, que gera uma representação intermediária do código original. Essa representação independe da linguagem e dá suporte a todas as características das linguagens modernas de uso geral. Em seguida, um processo baseado em aprendizado de máquina gera uma base de conhecimento de regras. Cada linguagem tem um ambiente de execução ou conjunto de bibliotecas próprio, e o mecanismo aprende quais são as funções de origem e de destino específicas.

Como você pode imaginar, esse é um processo iterativo e, por isso, a base de conhecimento cresce exponencialmente a cada dia. Quando os primeiros testadores nos dizem que conseguem identificar problemas de segurança que outras ferramentas não detectavam, incorporamos a nova base de conhecimento à produção. Marcamos as regras como “beta” porque o trabalho ainda não terminou, mas queremos oferecer valor o quanto antes e continuar aprimorando-as. Depois, seguimos adicionando novas regras todos os dias. Os resultados podem ainda não incluir tudo, mas a cobertura aumenta continuamente. Quando nossas medições e testes internos comprovam que alcançamos a cobertura e a precisão desejadas, o suporte à linguagem sai da versão beta e passa a ser completo.

Agora, estamos usando esse processo para adicionar mais uma linguagem: Go. Ela é relativamente nova, mas ganhou bastante adoção nos últimos anos. Go foi criada para preencher uma lacuna. Linguagens que oferecem controle e alto desempenho, como C++, são vistas como complexas e trabalhosas. Já linguagens fáceis de entender e ler, como Python, parecem ter um desempenho geral inferior. Go foi criada para preencher essa lacuna, tendo em vista os ambientes modernos — máquinas com muitos núcleos e intensamente conectadas em rede.

Embora a linguagem de programação Go inclua recursos que evitam algumas fontes comuns de bugs — como tipagem estática e segurança de memória — e o ambiente de programação conte desde o início com ferramentas como um linter, ainda há problemas semânticos. É aí que o Snyk Code entra em ação.

Observação: Em geral, seu app é composto por dependências de código aberto e pelo seu próprio código. O Snyk Open Source analisa arquivos de configuração de gerenciadores de pacotes para Go Modules, dep ou govendor e verifica se há pacotes vulneráveis.

Como analisar seu projeto em Go com o Snyk Code

Uma das principais vantagens do Snyk Code é que ele não exige instalação quando você usa um sistema de gerenciamento de código-fonte como GitHub ou GitLab. O código nem precisa ser seu: você também pode analisar repositórios de código aberto. Tudo começa com a criação de uma conta gratuita: cadastre-se gratuitamente no Snyk — não é necessário informar um cartão de crédito, basta ter uma conta no GitHub ou GitLab.

Em seguida, adicione um projeto — pode ser um da sua conta pessoal do Git ou um repositório público, informando o caminho. As análises começam automaticamente e até os maiores repositórios, com dezenas de milhares de arquivos, são analisados em poucos minutos.

Ao abrir os resultados de análise de código, você verá os detalhes da análise:

Painel de projetos do Snyk com repositórios pesquisáveis, filtros de problemas, integrações com o GitHub e contagem de vulnerabilidades por gravidade.

Observação: Como Go está em versão beta, os resultados não terão a mesma precisão que os de linguagens com suporte completo. Eles também podem variar diariamente devido às nossas atualizações contínuas.

Assim como acontece com as outras linguagens, os plugins de IDE para Visual Studio Code e JetBrains GoLand também terão suporte à análise de segurança para Go do Snyk Code. E, claro, a CLI da Snyk também oferece suporte a Go.

Ajude-nos a tirar a análise de segurança para Go da versão beta mais rápido: experimente e envie seu feedback.

Comece a jogar Capture the Flag

Aprenda a resolver desafios de Capture the Flag assistindo à gravação sob demanda do nosso workshop virtual introdutório.