Skip to main content

4 etapas do processo de correção de vulnerabilidades

java survey header

16 de fevereiro de 2021

0 minutos de leitura

É sempre importante lembrar que o objetivo final do gerenciamento de vulnerabilidades é a correção. Um dos principais KPIs de um programa de gerenciamento de vulnerabilidades é quantas vulnerabilidades de alto risco são removidas ou neutralizadas antes que sistemas e ativos críticos sejam comprometidos.

O que é correção de vulnerabilidades e por que ela é importante?

Clientes, parceiros, funcionários e órgãos reguladores esperam que as empresas implementem políticas e processos para proteger dados de forma contínua e eficaz contra perda e exposição acidentais ou maliciosas. Também não há tolerância para interrupções ou lentidão nos sistemas. Em resumo, enfrentar os desafios da correção de vulnerabilidades se tornou uma atividade essencial para os negócios.

O que é o processo de correção de vulnerabilidades?

O processo de correção de vulnerabilidades é um fluxo de trabalho que corrige ou neutraliza falhas detectadas, incluindo bugs e vulnerabilidades. Ele tem quatro etapas: encontrar vulnerabilidades por meio de varreduras e testes, priorizar, corrigir e monitorar as vulnerabilidades.

Nosso foco está principalmente nas etapas de priorização e correção, para alcançar um processo de correção de vulnerabilidades escalável e eficaz.

4 etapas do processo de correção de vulnerabilidades

  • Encontrar: detectar vulnerabilidades por meio de varreduras e testes

  • Priorizar: entender quais vulnerabilidades representam um risco real e significativo

  • Corrigir: aplicar patches, bloquear ou corrigir vulnerabilidades em escala e em tempo real

  • Monitorar: monitorar automaticamente projetos e código em busca de vulnerabilidades recém-descobertas, com alertas e notificações em tempo real por todos os canais relevantes

Diagrama do processo de correção de vulnerabilidades, com quatro etapas: encontrar, priorizar, corrigir e monitorar, organizadas em um fluxo de trabalho circular.

1. Encontrar vulnerabilidades

Antes de entrar na priorização e correção de vulnerabilidades, vamos recapitular rapidamente o que são vulnerabilidades e como elas são encontradas.

Vulnerabilidades de segurança são falhas de código conhecidas ou configurações incorretas de sistemas que podem ser exploradas para comprometer uma aplicação, serviço, biblioteca, contêiner ou função, além de todos os ativos relacionados. Uma exploração ativa busca interromper ou prejudicar o desempenho, exfiltrar dados, sequestrar recursos computacionais etc. Sistemas e ativos que podem ser acessados lateralmente a partir do componente comprometido também ficam em risco.

Por exemplo, uma vulnerabilidade de código bastante conhecida é a ausência de um processo de autenticação de usuários ou a implementação de um controle inadequado, como a autenticação de fator único, em vez da prática recomendada de autenticação multifator. Esse tipo de vulnerabilidade abre caminho para que usuários não autorizados com privilégios suficientes realizem ataques como o man-in-the-middle (MITM), que consiste essencialmente em espionagem eletrônica. Equipes de segurança e hackers encontram novas vulnerabilidades com frequência, como o Log4Shell, por isso é importante fazer varreduras regularmente.

Assim, a primeira etapa do processo de correção de vulnerabilidades é fazer varreduras para encontrar vulnerabilidades de segurança. Programas maduros de gerenciamento de vulnerabilidades adotam uma abordagem DevSecOps shift-left, na qual as varreduras de vulnerabilidades acontecem ao longo de todo o ciclo de vida seguro de desenvolvimento de software (SDLC). Para não desacelerar o pipeline de CI/CD, ferramentas automatizadas de teste de vulnerabilidades são implantadas nos ambientes de desenvolvimento, teste e produção. Elas podem incluir:

Encontrar vulnerabilidades de segurança em contêineres

É preciso dar atenção especial à segurança de contêineres. É importante fazer varreduras em imagens de contêiner e em instâncias de contêiner em execução, incluindo todas as suas conexões, para encontrar vulnerabilidades de segurança. Também é importante garantir que imagens de contêiner de terceiros venham apenas de fontes confiáveis. A segurança do Kubernetes também traz desafios específicos para a varredura de vulnerabilidades. Se um cluster for violado, todos os serviços e máquinas da rede ficam em risco.

2. Priorizar vulnerabilidades

A próxima etapa do processo de correção de vulnerabilidades é priorizar o que precisa ser corrigido.

“Um erro que cometi no início da minha carreira em segurança de aplicações foi passar tempo demais tentando fazer coisas demais. Com isso, eu acabava me aprofundando demais em vulnerabilidades específicas.”

Brendan Dibbel, líder da equipe de engenharia de segurança de aplicações na Toast

Independentemente da abordagem adotada pela sua empresa para o gerenciamento de riscos de segurança, nem toda vulnerabilidade detectada representa o mesmo nível de risco. Há sempre um equilíbrio entre diferentes fatores, como gravidade, possibilidade de correção, cobertura e conformidade. Com uma priorização baseada em risco e sensível ao contexto, a equipe responsável pela correção de vulnerabilidades pode concentrar seus recursos limitados nos problemas mais importantes.

Como priorizar vulnerabilidades

É bem provável que 80% ou mais das vulnerabilidades descobertas sejam falsos positivos, outros 18% sejam de baixo risco e apenas os 2% restantes sejam problemas que você realmente precisa corrigir.

A plataforma de segurança de aplicações cloud native da Snyk ajuda a priorizar vulnerabilidades de várias formas:

  • Informações úteis sobre vulnerabilidades: a Snyk permite priorizar com base em informações práticas, como maturidade da exploração, possibilidade de correção, nível de risco (incluindo a gravidade geral e o impacto em projetos críticos para os negócios), prevalência (número de projetos e ativos afetados) e idade.

  • Pontuação precisa de prioridade baseada em risco: a Snyk Vulnerability Database enriquece e analisa dados de diversas fontes públicas e proprietárias para oferecer uma cobertura sem precedentes de vulnerabilidades conhecidas e desconhecidas, cada uma com uma pontuação de prioridade calculada cuidadosamente.

  • Informações no nível da aplicação: a Snyk usa dados de execução e chamadas em tempo de execução, informações de configuração do Kubernetes e sinais de contêineres em execução para determinar o impacto (ou a ausência dele) de uma vulnerabilidade. Se uma função vulnerável não está sendo chamada, ela realmente merece sua atenção urgente?

  • Controle granular das políticas de segurança: a priorização de vulnerabilidades deve acontecer no contexto das políticas de segurança da empresa. Quanto mais granulares forem os controles de segurança, mais focada poderá ser a priorização. A Snyk permite usar tags e atributos para definir políticas de segurança para cada projeto.

3. Corrigir vulnerabilidades

A terceira etapa do processo de correção de vulnerabilidades é corrigir a falha.

Em muitos casos, remover um software vulnerável envolve instalar uma atualização ou um patch recomendado pelo fornecedor do software afetado. No entanto, a implantação de patches pode ser um desafio por si só. Testar e distribuir patches e atualizações pode consumir bastante tempo e recursos. Talvez seja necessário desligar sistemas críticos para os negócios durante a implantação. Além disso, sempre há o risco de o patch causar um impacto imprevisto na própria aplicação ou em suas dependências.

Pode haver formas menos arriscadas de corrigir uma falha ou ganhar tempo enquanto um patch é preparado para implantação. Por exemplo, você pode atualizar configurações arriscadas de sistemas, plataformas ou serviços. Da mesma forma, pode desativar um processo ou uma função vulnerável ou remover um componente vulnerável que não esteja em uso.

4. Monitorar vulnerabilidades

Assim como o restante do SDLC, o processo de correção de vulnerabilidades de segurança é contínuo. Para manter esse ciclo, é preciso implementar o monitoramento. Para isso, as ferramentas devem monitorar automaticamente projetos e código em busca de vulnerabilidades recém-descobertas e enviar alertas e notificações em tempo real por todos os canais relevantes.

O ideal é que a ferramenta de monitoramento também ofereça priorização contextualizada, ajudando nas etapas 1 e 2 do processo de correção de vulnerabilidades (encontrar e priorizar). 

Caso contrário, desenvolvedores ou equipes de AppSec que recebem notificações logo ficarão esgotados com o volume de vulnerabilidades de baixa prioridade. As equipes não podem ficar sobrecarregadas com ruído, o que pode atrasar o tratamento de vulnerabilidades importantes e prioritárias que precisam ser corrigidas rapidamente.

Embora o monitoramento seja a quarta etapa desta lista, ele pode ser considerado a primeira etapa de um programa de segurança de alto desempenho.

Conhecer as 4 etapas essenciais do processo de correção de vulnerabilidades é importante, mas também é fundamental contar com as ferramentas certas para facilitar o processo e torná-lo mais eficiente.

“Vejo esse problema em quase todas as organizações: você tem alguns engenheiros de segurança diante de um enorme grupo de desenvolvedores, e é impossível acompanhar todas as mudanças.

Então, em vez de tentar fazer tudo, queremos nos concentrar em como dar aos nossos engenheiros as ferramentas necessárias para assumir a responsabilidade pela segurança.”

Brendan Dibbel, líder da equipe de engenharia de segurança de aplicações na Toast

Gerenciar e corrigir vulnerabilidades de segurança cibernética com a Snyk

Dê às suas equipes de desenvolvimento as ferramentas certas para encontrar e corrigir vulnerabilidades. Veja algumas formas como a Snyk pode ajudar:

  • Bloqueio imediato: a ferramenta SCA da Snyk faz varreduras, identifica rapidamente todas as ocorrências afetadas por uma vulnerabilidade e toma medidas imediatas para bloquear o acesso de invasores.

  • Navegação facilitada: nas aplicações cloud native atuais, altamente distribuídas e acionadas por eventos, não é fácil para os desenvolvedores encontrar o código ou componente vulnerável que precisa ser corrigido. A Snyk acelera a correção ao indicar exatamente como chegar até a vulnerabilidade.

  • Integração aos fluxos de trabalho existentes dos desenvolvedores: ao estar presente nos ambientes em que os desenvolvedores trabalham, como no IDE e em ferramentas de controle de versão, como o GitHub,, a Snyk ajuda a reduzir a alternância entre contextos e permite que os desenvolvedores corrijam possíveis vulnerabilidades no início do ciclo de desenvolvimento.

  • Atualizações automáticas ou manuais para versões sem vulnerabilidades: a Snyk atualiza dependências diretas para versões sem vulnerabilidades, automaticamente por meio de solicitações pull com correções automáticas ou solicitando que a equipe faça isso manualmente.

Aplicação de patches para corrigir vulnerabilidades: a Snyk verifica automaticamente se já existe uma branch e reabre a solicitação pull existente com a correção exata. Se não houver uma branch, cria uma nova branch e uma solicitação pull.

Integre a segurança aos seus pipelines de CI/CD

O Snyk funciona no pipeline de CI/CD que você escolher e ajuda a corrigir as vulnerabilidades de maior prioridade.

Perguntas frequentes

O que são varredura e testes de vulnerabilidades?

A varredura de vulnerabilidades monitora aplicações e sistemas com base em um banco de dados de falhas de código e configurações incorretas conhecidas. Os testes de vulnerabilidade investigam as aplicações para avaliar sua exposição. Tanto a varredura quanto os testes de vulnerabilidades devem ser processos automatizados, integrados perfeitamente aos pipelines de CI/CD ao longo de todo o ciclo de vida do desenvolvimento de software.

Como priorizar vulnerabilidades com segurança?

A Snyk ajuda você a priorizar vulnerabilidades com base em pontuações de risco calculadas a partir da análise e curadoria de várias fontes de dados sobre vulnerabilidades e inteligência de ameaças. Algumas dessas fontes são públicas, mas devem ser complementadas com informações de campo (de desenvolvedores, da comunidade acadêmica etc.) e pesquisas proprietárias.

Como remover softwares vulneráveis?

Softwares vulneráveis geralmente são removidos com a aplicação de patches e atualizações fornecidos pelos fabricantes. No entanto, também é possível corrigir vulnerabilidades em softwares por meio de outras ações, como atualizar as configurações do sistema ou do aplicativo, ou remover/desativar componentes sem uso que tenham sido identificados como vulneráveis.