Skip to main content

5 principais extensões do VS Code para segurança

Escrito por
blog feature toolkit

24 de agosto de 2023

0 minutos de leitura
Top 5 VS Code SECURITY Extensions

Desenvolver aplicativos de software de qualidade pode ser trabalhoso, pois é preciso integrar muitas partes para criar uma solução funcional. Por isso, desenvolvedores precisam de toda a ajuda e praticidade que puderem obter, especialmente para proteger seus aplicativos.

O Visual Studio Code (VS Code) é um dos editores de código open source mais populares por vários motivos. Ele é compatível com os três principais sistemas operacionais (SO) — Windows, macOS e Linux — e pode ser facilmente configurado de acordo com as nossas preferências. Mais importante ainda, podemos instalar extensões para ampliar seus recursos.

Há uma grande variedade de extensões para o VS Code, desde simples mudanças na interface do usuário (IU) até a detecção avançada de vulnerabilidades. Este artigo se concentra nessa última categoria e apresenta as cinco principais extensões do VS Code para ajudar você a escrever códigos mais seguros e seguir as práticas recomendadas de segurança.    

1. Mantenha senhas e segredos protegidos com 1Password

Incluir senhas e segredos em texto simples no código é um grande risco de segurança, pois isso pode expor facilmente informações confidenciais. A prática recomendada é armazenar esses valores em um cofre externo e usar variáveis para acessá-los.

No entanto, durante a programação, é cansativo alternar entre o editor de código e o cofre de senhas para criar senhas e segredos ou conferir os valores dos segredos existentes. 1Password para VS Code é uma extensão criada para resolver esse problema, oferecendo acesso ao cofre diretamente no editor do VS Code. 

Veja alguns dos principais recursos oferecidos pelo 1Password.

Primeiro, você pode criar uma nova senha no VS Code usando a paleta de comandos. Basta selecionar um valor e executar o comando `1Password: Save in 1Password`.

O Visual Studio Code exibe um arquivo .env com as entradas ACCESS_TOKEN e PASSWORD, enquanto a paleta de comandos mostra “1Password: Save in 1Password.”

Assim, você pode dar um nome ao item, salvá-lo automaticamente no 1Password e substituir a referência no código.

Você pode ir além com a detecção automática de segredos. A extensão 1Password para VS Code detecta e destaca possíveis senhas ou segredos no código e em arquivos de configuração de ambiente.

Editor de código escuro exibindo um arquivo .env com as entradas ACCESS_TOKEN e PASSWORD, além de avisos “Salvar no 1Password”

O recurso CodeLens do VS Code — uma ferramenta poderosa que exibe as relações entre elementos do código dentro do editor — mostra Salvar no 1Password acima da opção destacada. Como mostra a imagem acima, essa opção dá acesso rápido ao comando `Save in 1Password`.

Também é possível recuperar itens existentes do cofre e criar novos usando os comandos `1Password: Get from 1Password` e `1Password: Generate password`, respectivamente. Mais uma vez, esses recursos facilitam o trabalho dos desenvolvedores com valores secretos, pois não é preciso sair do editor de código nem interromper o fluxo de trabalho.

Por fim, a extensão 1Password para VS Code permite inspecionar e visualizar segredos armazenados no cofre quando eles são referenciados no código. Ao passar o cursor sobre um segredo, você vê o valor atual, mas somente se ele não for confidencial. Valores confidenciais, como senhas, não podem ser visualizados, garantindo que permaneçam protegidos.

2. Descompile executáveis com Decompiler

Às vezes, descompiladores são usados para fazer engenharia reversa de código compilado e convertê-lo em código-fonte, permitindo que os desenvolvedores o inspecionem. A descompilação é uma ferramenta valiosa na área de segurança: ela permite que especialistas avaliem a segurança do software e até entendam o comportamento de malwares. Para isso, muitas vezes são necessários softwares específicos — ou diferentes — dependendo do tipo de executável.

Decompiler é uma extensão para VS Code que integra recursos de descompilação ao editor. Você pode descompilar executáveis binários, como Windows PE, Linux ELF, IOS, arquivos JAR e APKs do Android, diretamente no VS Code: basta clicar com o botão direito no arquivo e selecionar Descompilar.

Menu de contexto do Visual Studio Code mostrando a opção Decompile para test-jar-1.0.jar, com um aviso de que o arquivo é binário ou usa uma codificação de texto não compatível.

Os arquivos descompilados ficam disponíveis em uma pasta Decompiler. No caso de arquivos JAR, o conteúdo é extraído para as pastas e os arquivos que compõem o JAR, permitindo acessar os arquivos Java originais, como mostra a imagem a seguir.

Visual Studio Code exibindo o arquivo App.java com um programa Java Hello World e um pacote JAR de teste expandido no Explorer.

A descompilação pode revelar vulnerabilidades de segurança no código, como estouros de buffer ou condições de corrida. Descobri-las ajuda a determinar se o software é seguro e a tomar medidas para corrigi-las antes do lançamento. 

Também podemos usar a descompilação para entender o comportamento de códigos de terceiros, como bibliotecas e APIs, que muitas vezes são distribuídos em formato compilado. Descompilar esses componentes ajuda a avaliar se são adequados para projetos de desenvolvimento e a identificar possíveis vulnerabilidades de segurança.

3. Oculte valores confidenciais com Cloak

Desenvolvedores que trabalham em aplicativos com arquivos de configuração de ambiente que contêm segredos e senhas talvez queiram ocultá-los de outras pessoas. Isso é difícil em ambientes colaborativos ou em locais públicos, como um café, onde qualquer pessoa pode ver a tela. Proteger esses valores olhando constantemente por cima do ombro ou evitando abrir o arquivo é trabalhoso e prejudica a produtividade.

Veja um exemplo de arquivo .env que contém uma chave de API e uma senha. Qualquer pessoa que consiga ver a tela pode ler o conteúdo dessas variáveis:

O Visual Studio Code exibe um arquivo .env com as variáveis de ambiente ACCESS_TOKEN e PASSWORD visíveis.

Para resolver esse problema, podemos usar a extensão Cloak para VS Code. O Cloak foi criado para ocultar valores secretos na tela quando um arquivo de configuração de ambiente está aberto. Para ativar o Cloak, use a paleta de comandos do VS Code e execute `Cloak: Hide Secrets`. Os valores ficarão ocultos na tela:

Visual Studio Code exibindo um arquivo .env com os campos das variáveis de ambiente ACCESS_TOKEN e PASSWORD em branco

Essa extensão não modifica os arquivos de forma alguma. Ela apenas mascara os valores secretos para que não sejam exibidos. O Cloak impede que pessoas indesejadas vejam senhas e segredos em ambientes externos, permitindo que você continue trabalhando e mantendo a segurança dos seus aplicativos.

4. Siga as práticas recomendadas de segurança com a extensão ESLint

Ao proteger projetos JavaScript, a maioria das extensões modernas faz pouco mais do que detectar alertas de segurança. No entanto, os desenvolvedores muitas vezes precisam de ferramentas que possam ser integradas aos pipelines de entrega de software para automatizar as verificações de segurança.

A extensão ESLint é uma ferramenta open source de linting usada no VS Code durante a programação em JavaScript. Por ser dinâmico e ter tipagem fraca, o JavaScript é conhecido por estar sujeito a erros de desenvolvimento. O ESLint ajuda a reduzir esses erros analisando o código para garantir que a sintaxe esteja correta e que ele siga as práticas recomendadas e os padrões. A ferramenta destaca erros de sintaxe no código, facilitando a identificação e a correção rápida. Além disso, ajuda a detectar bugs e possíveis vulnerabilidades, contribuindo para a integridade do código.

O ESLint é uma boa opção para aplicar padrões de código, especialmente em projetos em equipe. Com essa extensão, todos os integrantes seguem o mesmo conjunto automatizado de estilos e padrões.

Veja o trecho de código abaixo:

Visual Studio Code exibindo um arquivo JavaScript com variáveis de saudação e instruções console.log

Neste exemplo, a constante greeting usa aspas duplas, enquanto `secondGreeting` usa aspas simples. Observe também que algumas linhas terminam com ponto e vírgula e outras não. Apesar dessas pequenas diferenças, o código é executado corretamente, pois as linhas estão sintaticamente corretas. 

No entanto, ao trabalhar em um projeto compartilhado, é importante manter as convenções consistentes entre todos os integrantes da equipe. Podemos usar o ESLint para aplicar essas convenções, definindo regras ou usando as configurações padrão de linting do pacote ESLint. Também podemos personalizar essas configurações:

Visual Studio Code mostrando um aviso do ESLint de que strings devem usar aspas simples no código JavaScript.

O ESLint também tem seus próprios plugins, como o plugin de segurança, que identifica práticas inseguras, incluindo o uso de expressões regulares não seguras ou da função `eval`. Podemos usar esse plugin no VS Code para verificar o código durante o desenvolvimento, garantindo que o aplicativo seja seguro e que os problemas sejam resolvidos antes de o código passar pelos pipelines de build.

5. Analise o código e os pacotes de terceiros com Snyk

Detectar e corrigir vulnerabilidades no código é essencial para criar sistemas de software seguros. Precisamos resolver esses problemas rapidamente, antes que agentes mal-intencionados possam explorá-los. No entanto, alternar constantemente entre o editor de código e o scanner de vulnerabilidades pode ser cansativo e demorado.

A extensão Snyk para VS Code resolve esse problema oferecendo análise e correção de vulnerabilidades diretamente no editor do VS Code. A extensão verifica os seguintes tipos de problemas no código:

  • Segurança de código open source — vulnerabilidades de segurança nas dependências open source usadas nos projetos.

  • Segurança do código — vulnerabilidades de segurança no código.

  • Qualidade do código — a qualidade do código.

  • Segurança de infraestrutura como código (IaC) — problemas de configuração em arquivos de modelo IaC, como os do Kubernetes e do Terraform.

A análise de código do Snyk Code é executada automaticamente quando abrimos uma pasta de projeto. Também podemos iniciar análises manuais com facilidade, executando `Snyk: Rescan` na paleta de comandos.

Visual Studio Code exibindo a extensão Snyk, com o comando “Snyk: Rescan” selecionado e painéis de análise de segurança em andamento.

A extensão Snyk também detecta vulnerabilidades e destaca possíveis problemas no código enquanto você programa. Ela descreve o problema e o nível de gravidade, além de apresentar práticas recomendadas para preveni-lo.

O Visual Studio Code sinaliza uma chave de API codificada diretamente no JavaScript com um alerta do Snyk sobre a CWE-798.

A extensão também apresenta uma visão geral dos resultados das várias análises feitas no código:

Painel de segurança do Snyk no Visual Studio Code, mostrando a segurança de código aberto, vulnerabilidades no código, status da configuração e problemas de qualidade do código

Com a detecção de vulnerabilidades em tempo real e instruções detalhadas para corrigi-las, o Snyk para VS Code ajuda a priorizar a segurança sem interromper o fluxo de trabalho.

Conclusão

Os melhores desenvolvedores buscam escrever códigos seguros, limpos e fáceis de manter — e estas cinco extensões podem ajudar você a fazer isso. O 1Password mantém as senhas protegidas contra terceiros, sem armazená-las no código. O ESLint ajuda a escrever código sintaticamente correto, sem bugs e em conformidade com as práticas recomendadas. O Decompiler permite avaliar o código-fonte de executáveis para verificar se estão livres de malware. O Cloak oculta valores confidenciais na tela. E, por fim, a extensão Snyk para VS Code analisa o código de forma rápida e precisa para detectar vulnerabilidades. 

Antes de instalar extensões do VS Code, é importante pesquisar sobre a extensão e a empresa responsável por ela. As extensões podem ajudar na segurança, mas uma extensão mal-intencionada pode comprometer os segredos e as senhas do aplicativo.

Ao confiar a terceiros o armazenamento de senhas, você transfere para eles a responsabilidade pela segurança. Por isso, é importante verificar a confiabilidade desses terceiros antes de instalar qualquer extensão, especialmente as relacionadas ao gerenciamento de senhas e segredos.

Não existe uma solução única para criar aplicativos mais seguros. Dependendo do projeto, algumas dessas extensões podem ser mais adequadas ou relevantes do que outras. Ainda assim, cada uma oferece vantagens exclusivas que podem tornar o editor do VS Code ainda mais prático.

Experimente essas extensões hoje mesmo e veja a diferença que elas podem fazer.