Criando um plugin do Snyk para o VS Code: uma entrevista com Peter Benjamin
Tim Kadlec
16 de março de 2017
0 minutos de leituraPeter Benjamin (@pmbenjamin) é engenheiro de software sênior na equipe de segurança cibernética da Intuit. Recentemente, Peter publicou um excelente plugin para o VS Code que traz os resultados dos testes do Snyk diretamente para o editor. Decidimos fazer algumas perguntas a ele para saber mais sobre o plugin.
Por que você começou a usar o Snyk?
Para mim e minha equipe, a segurança é um elemento fundamental do desenvolvimento de software, especialmente quando vários relatórios e estudos são publicados todos os anos avaliando o estado da segurança na web.
Eu já usava a Node Security Platform (nsp) em projetos Node e o bundler-audit/brakeman em projetos Ruby/Rails. Cada uma dessas ferramentas tem seus méritos: elas analisam os arquivos de manifesto (por exemplo, package.json e Gemfile) para identificar dependências e suas versões, e as comparam com seus bancos de dados de avisos ou vulnerabilidades. Mas, quando vulnerabilidades conhecidas são detectadas, o desenvolvedor fica por conta própria. É preciso pesquisar para descobrir se a vulnerabilidade foi comunicada à pessoa responsável pela dependência ou se foi lançada uma versão mais recente que a corrigiu. Depois, ainda é preciso corrigir essas vulnerabilidades por conta própria.
Quando ouvi falar do Snyk, decidi testá-lo em um projeto pessoal. Fiquei impressionado com o que o Snyk era capaz de fazer. Além de analisar suas dependências e versões e compará-las com um banco de dados de vulnerabilidades, como o nsp, ele também pode proteger e monitorar seu projeto continuamente. Posso pedir ao Snyk que monitore meu projeto e me avise se alguma vulnerabilidade conhecida for encontrada no futuro.
Além disso, também posso configurar o Snyk para abrir automaticamente um PR no meu projeto para corrigir a vulnerabilidade. E, como se isso não bastasse, o Snyk me ajuda a gerenciar vulnerabilidades conhecidas em diferentes ecossistemas — por enquanto, Ruby e Node, mas tenho certeza de que há novidades empolgantes a caminho.
Nota do editor: é verdade, tem mesmo. :)
O Snyk eleva a outro patamar a proteção de projetos contra vulnerabilidades conhecidas, tornando tão fácil que chega a ser constrangedor para os desenvolvedores _não o incluírem em seus ciclos normais de desenvolvimento.
Por que você decidiu criar a extensão para o VS Code?
Certa vez, li que Guy Podjarny, cofundador do Snyk, gosta de criar ferramentas de segurança de aplicações que facilitem a vida dos desenvolvedores. Também acredito muito nessa filosofia. Quanto mais fácil for usar as ferramentas, maior será a adoção. E nós, profissionais de segurança, sabemos o quanto esse setor precisa adotar práticas melhores e mais seguras.
Eu precisava de uma maneira rápida de testar minhas dependências no editor em um determinado momento, sem ter que mudar para outro painel, janela ou terminal para executar snyk test.

Percebi que havia uma lacuna e a preenchi com a extensão vscode-snyk.
Você pode descrever o processo de desenvolvimento da extensão?
O processo de criação do plugin foi relativamente tranquilo. Comecei com o boilerplate de extensão da Microsoft, gerado com o Yeoman, e daí em diante foi só colocar a mão na massa.
Eu não conhecia muito bem a API programática do Snyk, e não havia documentação publicada. Então, abri o REPL do Node (Read-Eval-Print Loop) e fui explorando até descobrir o que queria fazer e como chegar lá.
A partir daí, levei cerca de 2 a 3 horas para ter um protótipo funcionando na minha máquina e mais 1 hora para ajustá-lo antes de publicar.
E como você usa a extensão?
O Snyk é parte integrante do meu processo de desenvolvimento, tanto nos projetos pessoais quanto nos profissionais. Assim que adiciono qualquer dependência de produção ao meu projeto, executo snyk test para garantir que ele não tenha vulnerabilidades conhecidas.

Com o plugin do VS Code, é muito simples: basta pressionar “CMD + SHIFT + P”, digitar “snyk” e, em seguida, pressionar “enter”.
Onde as pessoas podem encontrar a extensão para experimentar?
A maneira recomendada de instalar o plugin é diretamente pelo editor: digite ext install vscode-snyk ou abra o painel de extensões e pesquise por “snyk”.
Se quiserem ajudar com o desenvolvimento, o vscode-snyk é de código aberto e está disponível no GitHub. Estou aberto a comentários, solicitações de recursos e contribuições da comunidade.
Comece a resolver desafios de capture the flag
Aprenda a resolver desafios de capture the flag assistindo sob demanda ao nosso workshop virtual introdutório.