Snyk Security com o Language Server Protocol
Bastian Doetsch
6 de setembro de 2022
0 minutos de leituraA Snyk oferece plugins ou extensões para Visual Studio Code, IDEs da JetBrains, como IntelliJ, WebStorm, PHPStorm e GoLand, e Visual Studio. Mas você já quis integrar a Snyk ao seu trabalho diário usando seu editor ou IDE favorito — Vim, Emacs, Sublime ou Eclipse? Em breve isso será possível: publicamos nosso plugin para Eclipse, que inclui o novo Snyk Language Server Protocol.
Uma variedade de editores e IDEs
Atualmente, a Snyk oferece plugins para Visual Studio Code, Visual Studio, Eclipse e a plataforma IntelliJ. Essas integrações são robustas, mas diferem em funcionalidade, pois são desenvolvidas e mantidas individualmente.
As quatro IDEs que já oferecemos atendem à maioria dos desenvolvedores que usam a Snyk. Mas algumas pessoas gostariam de ter ainda mais opções de IDEs e editores e desenvolver em outros ambientes, sem abrir mão de integrações robustas com todos os produtos da Snyk durante suas tarefas de engenharia. Até agora, não tínhamos uma solução integrada e precisávamos indicar a CLI. Isso está mudando com o Language Server.
Conheça o Language Server Protocol
O Language Server Protocol (LSP) foi criado pela Microsoft e disponibilizado como código aberto em 2016. Ele é amplamente usado pelo VSCode e define padrões de comunicação com uma IDE para destacar e anotar o código, além de oferecer correções e ajuda na programação — incluindo suporte para relatar problemas. O LSP tornou possível ter uma experiência de programação rica em praticamente qualquer ambiente, já que existem servidores de linguagem repletos de recursos para quase todas as linguagens de programação.
Na Snyk, discutimos como poderíamos aproveitar esse protocolo para disponibilizar nossas análises em diferentes IDEs e concluímos que o LSP poderia atender à nossa necessidade de identificar problemas e vulnerabilidades. Em vez de desenvolver integrações específicas para cada IDE, podemos aproveitar o suporte ao LSP já disponível em diversos ambientes de desenvolvimento. Muitos deles já oferecem essa funcionalidade por padrão: Eclipse, VSCode, Visual Studio, Sublime, Vim, Atom e muitos outros editores são compatíveis com o protocolo. Até mesmo o novo JetBrains Fleet oferece suporte ao LSP.
Além disso, o LSP pode ser ampliado quando novas funcionalidades são necessárias, e cada vez mais IDEs oferecem suporte ao protocolo.
O Snyk Language Server

Quando começamos a encapsular os produtos da Snyk por meio do Language Server Protocol, decidimos começar pelo Eclipse como a primeira IDE a usar esse protocolo como backend da Snyk. Isso porque o plugin da Snyk para Eclipse não tinha tantos recursos quanto os das outras plataformas, e já havia um plugin de Language Server disponível para o Eclipse. A integração LSP LSP4e já era compatível com o Eclipse e só precisava ser ampliada e configurada para atender às nossas necessidades.
Nosso Snyk Language Server é implementado em Go, o que nos permite criar binários independentes para diversas plataformas. Acabamos de torná-lo disponível para o plugin da Snyk para Eclipse e estamos trabalhando para adicioná-lo aos outros plugins de IDE que oferecemos, levando melhorias mais rapidamente a todos os ambientes de desenvolvimento.
O novo plugin 2.0 para Eclipse

Embora tenhamos testado o Language Server internamente no NeoVim, Sublime e outros editores, sem integrações personalizadas, o plugin da Snyk para Eclipse é a primeira integração que a Snyk oferece oficialmente com essa funcionalidade.
O novo plugin para Eclipse inclui não apenas o Snyk Open Source, mas também o Snyk IaC (infraestrutura como código) e os achados do Snyk Code, além de opções de configuração ampliadas. Antes, só havia suporte ao Snyk Open Source.
Autenticação e download
A autenticação e o download dos binários necessários agora são iniciados sob demanda, e o progresso das análises e as notificações ao usuário são exibidos. Se você não quiser que os binários sejam gerenciados automaticamente, pode desativar essa opção e selecionar caminhos personalizados para manter o controle total.

Além disso, a integração está muito mais completa. O plugin da Snyk para Eclipse agora destaca problemas no editor de código, marca arquivos com problemas nas visualizações Project e Package Explorer e identifica elementos na visualização Outline. Os problemas encontrados pela Snyk também são exibidos e podem ser filtrados na visualização Problems do Eclipse.
As análises são iniciadas automaticamente na inicialização do plugin e ao abrir ou salvar documentos, mas também podem ser iniciadas manualmente pelo menu de contexto do projeto.
Anotações e destaques
Quando a Snyk encontra um problema, a linha correspondente é destacada no editor com um sublinhado e uma marca à esquerda, ao lado dos números das linhas.

Visualização Problems
Uma lista de todos os problemas é exibida na visualização Problems do Eclipse.

Project Explorer
Os arquivos com problemas também são destacados nas visualizações Project Explorer e Package Explorer:

Dicas ao passar o cursor
Ao passar o cursor sobre um problema — neste caso, um problema do Snyk Code —, são exibidas informações adicionais para ajudar você a entendê-lo e corrigi-lo.

Code Lenses
Code Lenses permitem interagir com o código no próprio editor e enviar comandos ao servidor de linguagem. Elas aparecem acima da linha de código à qual estão associadas. No nosso caso, exibimos o fluxo de dados do Snyk Code usando Code Lenses, para que você navegue com um único clique entre os diferentes pontos do fluxo.

Ações de código
Para o Snyk Open Source e o Snyk IaC, o plugin permite abrir em uma janela do navegador descrições detalhadas dos problemas destacados:

A partir de agora, o Eclipse oferecerá suporte automático a todos os produtos da Snyk por meio do Snyk Language Server.
Tenha a Snyk sempre à mão, do seu jeito
Com o LSP, o suporte da Snyk passa a estar integrado a uma ampla variedade de novas IDEs e editores. Com o Eclipse, adicionamos mais uma ferramenta importante, mas praticamente todos os ambientes de desenvolvimento mais usados são compatíveis com o LSP. Experimente a Snyk gratuitamente no ambiente que você preferir: clique aqui e instale o plugin ideal para você. Desenvolva com segurança.
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.
