Skip to main content

Corrija vulnerabilidades de forma proativa para manter a segurança do Java e a integridade dos projetos com a Snyk

Escrito por
Headshot of Lee Turner

Lee Turner

blog social snyk secure java

16 de novembro de 2021

0 minutos de leitura

Como desenvolvedor, passo bastante tempo na minha conta do GitHub. Crio aplicativos, pequenas ferramentas e provas de conceito quando estou aprendendo algo novo. Gosto de pensar que, por passar muito tempo no GitHub, minha conta está em boas condições. Fico atento a aspectos importantes, como ativar a autenticação de dois fatores (2FA) com YubiKey na minha conta, garantir que não faço commit de segredos nem de arquivos confidenciais e revisar regularmente as práticas recomendadas de segurança do GitHub para projetos de código aberto.

Pausa para conferir! Você ativou a autenticação de dois fatores no seu repositório de código-fonte? Outra maneira de avançar como referência em segurança é seguir as revisões de código seguro.

No entanto, assim como acontece com a saúde e a manutenção de qualquer sistema, isso não depende apenas do que fazemos ativamente, mas também de fatores que talvez não sejam tão evidentes. Isso é especialmente importante nos repositórios em que já não trabalhamos. Mesmo que o código permaneça estático e não seja nosso foco principal, o mundo ao redor continua avançando, e pessoas que nunca conhecemos encontrarão esses repositórios e poderão usar nosso código para aprender ou como base para o código que estão escrevendo hoje.

Por isso, nós, desenvolvedores, temos a responsabilidade de garantir que o código que escrevemos seja o melhor possível, não apenas no momento em que o criamos, mas durante todo o período em que estiver disponível nos nossos repositórios.

Como mencionei, o mundo continua avançando enquanto nosso código permanece por aí. Novas versões das dependências que usamos são lançadas, e problemas de segurança são encontrados em versões antigas dos frameworks e bibliotecas dos quais dependemos. Embora atualizar sempre para as versões mais recentes possa trazer seus próprios desafios, precisamos encontrar uma maneira de acompanhar essas mudanças continuamente, para cuidar dos nossos repositórios e mantê-los atualizados e seguros.

Dica: Se você gosta do GitHub Actions e da segurança integrada para as alterações no código do seu repositório, vale a pena conferir o GitHub Security Code Scanning.

O gerenciamento de vulnerabilidades é uma área própria, com processos, padrões e ferramentas que ajudam as organizações a fortalecer sua postura de segurança. Se você quiser saber mais sobre como fazer isso em projetos Java legados que mantém e melhorar sua estratégia de segurança, recomendamos conhecer o processo de correção de vulnerabilidades.

Como encontrar e corrigir vulnerabilidades em projetos Java legados

É aí que a Snyk entra. A Snyk torna visível e acionável o que, de outra forma, passaria despercebido. Ao permitir que a Snyk monitore seus repositórios — no GitHub, GitLab, Bitbucket ou Azure —, você recebe as informações necessárias para agir e manter seu código seguro. Isso acontece de várias maneiras:

  • Relata vulnerabilidades encontradas nos frameworks e nas bibliotecas dos quais dependemos

  • Notifica você sobre novas versões das dependências que usamos

Conectar a Snyk à sua conta pode abrir seus olhos. Comecei com o plano gratuito da Snyk e deixei a ferramenta analisar alguns dos meus repositórios. Logo encontrei vários problemas de gravidade alta e média em alguns dos meus aplicativos mais antigos feitos com Spring Boot. A única causa desses problemas era o uso de uma versão antiga do Spring Boot; eu ainda não tinha tido motivo para atualizá-los.

Painel de vulnerabilidades com a quantidade de problemas críticos, altos, médios e baixos, além de links para corrigir vulnerabilidades.

Felizmente, bastou atualizar a versão do Spring Boot que eu estava usando, testar o aplicativo novamente e enviar a alteração.

É claro que seria ótimo simplesmente manter as dependências dos nossos aplicativos atualizadas. É aí que a Snyk ajuda com o segundo ponto mencionado acima. Ela não apenas nos informa quando uma nova versão de uma dependência está disponível, mas também pode criar um pull request nos nossos repositórios, pronto para revisão e testes:

Comentário do snyk-bot em uma pull request do GitHub recomendando a atualização de kotlin-logging-jvm da versão 2.0.10 para a 2.0.11.

Só podemos melhorar a saúde e a segurança das nossas contas do GitHub quando temos visibilidade de todos os fatores que as afetam. Quando o que era invisível se torna visível, podemos corrigir o que for necessário e manter as melhorias durante todo o ciclo de vida do nosso código. A Snyk ajuda nisso ao se integrar às ferramentas que usamos diariamente e nos fornecer o conhecimento necessário para decidir como agir. Tudo isso enquanto automatiza o que pode ser automatizado.

Mais recursos sobre segurança do Java

Espero que este post ajude você a manter seus projetos antigos atualizados e seguros. Se você desenvolve em Java e quer avançar na segurança, confira estes recursos:

  1. Segurança do Java explicada

  2. 10 práticas recomendadas para criar um contêiner Java com Docker

  3. Brian Vermeer e Jim Manico, da OWASP, escreveram este excelente material sobre 10 práticas recomendadas de segurança em Java

  4. E, por fim, você segue práticas de codificação segura para desserialização? Se não tiver certeza, recomendamos conferir o artigo de Vermeer: Serialização e desserialização em Java: entenda a vulnerabilidade de desserialização do Java.

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.

Leia mais

blog feature ai lilac
Blog

Transforme seu backlog de vulnerabilidades em pull requests com remediação agentiva

O Evo Remediation Agent está em Open Preview e traz a resolução automatizada de dependências para o Evo Agentic AppSec. Agora, as equipes de AppSec podem executar campanhas contínuas de remediação

AI Background min crop
Blog

A IA está acionando todos os riscos que você aceitou: sete insights do painel de segurança de IA sem filtros

A IA está tornando os ataques mais baratos e rápidos, expondo riscos que as organizações já carregam. Quatro líderes de segurança explicam por que a defesa na velocidade das máquinas e a correção mais rápida são essenciais.

blog feature ai violet
Blog

VulnBump: agentes de IA conseguem corrigir dependências vulneráveis sem quebrar o build?

O VulnBump testa agentes de IA em 307 atualizações reais de dependências. Uma correção só é considerada válida se eliminar a vulnerabilidade e mantiver o build e os testes passando.