5 dicas para criar aplicações seguras — mesmo sem experiência
27 de dezembro de 2022
0 minutos de leituraA maioria dos desenvolvedores não é especialista em segurança. Isso não significa que não nos importamos com segurança; é que o dia só tem algumas horas, e as funcionalidades vêm primeiro. Felizmente, você não precisa ser especialista em segurança para criar aplicações seguras — basta ter as ferramentas certas.
Neste artigo, quero apresentar as ferramentas de segurança para desenvolvedores da Snyk que vão ajudar você a aprimorar suas habilidades para encontrar e corrigir vulnerabilidades de segurança no código que escreve e nas dependências que usa. Repare que falei em segurança para desenvolvedores, porque a Snyk é uma ferramenta de segurança criada especificamente para desenvolvedores! Vamos lá…
1. Encontre e corrija código inseguro diretamente na sua IDE
Apesar do que você talvez tenha vivenciado no passado, a análise estática para segurança de aplicações pode ser rápida, útil e estar disponível diretamente na sua IDE. Para nós, faz todo sentido que desenvolvedores — que passam a maior parte do tempo escrevendo e lendo código em suas IDEs — também recebam informações sobre vulnerabilidades no código enquanto escrevem.
Ao receber resultados da análise estática — além de recomendações práticas para corrigir os problemas — enquanto escreve código, você economiza um tempo precioso. Chega de voltar à base de código depois para refatorá-la e aplicar medidas e controles de segurança para corrigir um problema. É o tipo de troca de contexto que nós, desenvolvedores, preferimos evitar.
A imagem abaixo mostra a IDE VS Code com a extensão da Snyk em ação, encontrando vulnerabilidades em código e em dependências open source:

Primeiro, ela destaca a linha de código que introduz a vulnerabilidade e mostra informações detalhadas no painel à direita. Neste caso, encontrou uma vulnerabilidade de travessia de caminho no código, no fluxo de execução do programa (identificada por análise estática de código). Por fim, abaixo, apresenta uma das três correções de código sugeridas com base em como vulnerabilidades semelhantes foram corrigidas em projetos open source.
2. Adicione integrações de segurança para pré-commit e CI pela CLI
Talvez você já use o ESLint ou o GitHub Actions para executar alguns testes antes de enviar pull requests. Ótimo! Use a Snyk CLI (npm install -g snyk) para encontrar problemas graves no código antes de fazer o commit e no fluxo de CI antes de um merge.
Esta imagem mostra os resultados de uma verificação da Snyk no terminal, executada pela Snyk CLI com opções de linha de comando para filtrar apenas problemas de alta gravidade relacionados ao código:

A Snyk CLI fez uma análise estática de código com snyk code test e encontrou 5 vulnerabilidades. Três delas eram injeções NoSQL (uma variação de injeção SQL) e 2 eram segredos codificados diretamente no código da aplicação. E, para quem está se perguntando quanto tempo levou: a análise estática de segurança do código durou menos de um minuto. Nem deu tempo de pegar um café.
INFORMAÇÃO: Quando a análise estática de código é aplicada especificamente à segurança, ela é chamada de teste estático de segurança de aplicações, ou SAST.
3. Proteja facilmente as dependências da sua aplicação
Quanto mais dependências você adiciona, maior é o risco de segurança da aplicação. Isso acontece porque há mais linhas de código e mais software (bibliotecas, pacotes etc.), o que aumenta a possibilidade de vulnerabilidades ou configurações inseguras que colocam a aplicação em risco.
Como desenvolvedor, você basicamente troca tempo de desenvolvimento por riscos de segurança e manutenção ao usar uma biblioteca de terceiros existente (e a licença associada a ela). É uma troca que a maioria de nós aceita fazer. Por isso, é importante usar ferramentas que ajudem a manter a segurança ao trabalhar com dependências de terceiros.
Para ajudar você a se manter seguro, a extensão da Snyk para VS Code faz anotações no arquivo package.json (um arquivo de metadados de pacotes usado em projetos JavaScript) e também nas instruções require ou import, mostrando o risco de vulnerabilidade de qualquer dependência npm de terceiros usada na aplicação.
Esta é outra imagem da IDE VS Code, desta vez com foco em um arquivo de manifesto package.json usado em projetos JavaScript:

Esse arquivo de manifesto de dependências para projetos JavaScript é gerenciado pelo gerenciador de pacotes npm. A extensão da Snyk para VS Code anotou as linhas de código na IDE, mostrando que as dependências open source de terceiros importadas têm vulnerabilidades que precisam ser corrigidas.
4. Tenha cuidado para não usar código vulnerável do StackOverflow (ou de sites semelhantes)
Use o verificador de código on-line da Snyk para colar trechos de código e analisá-los em busca de código inseguro antes de usá-los na sua aplicação! Esta ferramenta gratuita funciona atualmente com Python, JavaScript, Go, Java, PHP e outras linguagens.
No vídeo abaixo, você vê como uma pergunta popular no StackOverflow apresenta um código útil para criar servidores HTTP estáticos básicos de arquivos no Node.js. Mas como saber se esse código é seguro o bastante para copiar, colar e executar?

Ao colar esse mesmo trecho de código para servidores de arquivos estáticos no verificador de código da Snyk e analisá-lo em busca de problemas de segurança em JavaScript, encontramos 2 problemas. Um deles é uma vulnerabilidade de alta gravidade de travessia de caminho.
5. Nunca pare de aprender
Para nós, desenvolvedores, acompanhar o ritmo das rápidas inovações tecnológicas exige esforço diário, mas é um investimento que vale a pena. Da mesma forma, é importante manter suas habilidades de programação segura sempre afiadas. Acesse o Snyk Learn e faça uma aula interativa sobre segurança de aplicações:

O Snyk Learn é um recurso educacional gratuito na web que ajuda você, como desenvolvedor, a aprender habilidades e práticas de segurança de aplicações por meio de aulas práticas, interativas e rápidas. Ele oferece aulas sobre todos os riscos do OWASP Top 10 e inclui aulas específicas sobre segurança, como injeção de código, redirecionamento aberto, poluição de protótipo e muito mais. Também oferece guias específicos para linguagens e ecossistemas como Java, Python, JavaScript, Go, PHP e outros.
Recomendo muito instalar a extensão da Snyk para VS Code e reservar um tempo para se atualizar sobre segurança com o Snyk Learn.
Aprimore suas habilidades de programação segura
Conteúdo gratuito e de alta qualidade sobre segurança para desenvolvedores, quando e onde você quiser.
