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

Modelos de ponta encontraram as vulnerabilidades. Só o atacante encontrou as cadeias.

A análise estática encontrou as falhas, mas só os testes de ataque em aplicações ativas provaram como elas poderiam ser encadeadas para causar invasões. Uma comparação entre Evo COS, Claude Security e Claude Code Security.

feature insights context
Blog

Os ataques autônomos já chegaram. A defesa precisa acompanhar o ritmo.

Os atacantes autônomos estão reduzindo o tempo disponível para a defesa. Saiba como a descoberta, a correção, a validação e a prevenção contínuas ajudam as equipes de segurança a acompanhar esse ritmo.

Blog

Por que agentes de programação com IA continuam criando falhas de controle de acesso

Agentes de programação com IA podem gerar uma lógica de autorização que compila e passa pela revisão, mas permite que um tenant acesse os dados de outro. Saiba por que é difícil detectar falhas de controle de acesso e como evitá-las.