Segurança de Aplicação

O que é um processo de Gestão de Vulnerabilidades

Aqui na Conviso sempre falamos muito com nossos clientes sobre o processo de Gestão de Vulnerabilidades, e enfatizamos que esta estruturação é extremamente importante quando falamos de segurança de software.

 No entanto, ainda encontramos muitos gestores e profissionais de desenvolvimento que entendem a gestão de vulnerabilidades <como> a simples execução de uma ferramenta que irá fazer o scan de vulnerabilidades.

Framework de Gestão de Vulnerabilidades

Portanto, quero começar com um trecho de um artigo publicado pelo Gartner onde é demonstrado a construção de um framework de gestão de vulnerabilidades.

“One of the most common ways to fail at VM is by simply sending a report with thousands of vulnerabilities to the operations team to fix. Successful VM programs leverage advanced prioritization techniques and automated workflow tools to streamline the handover to the team responsible for remediation.”

Podemos ter uma tradução livre deste texto como:

“Uma das maneiras mais comuns de falhar na VM(Vulnerability Management) é simplesmente enviar um relatório com milhares de vulnerabilidades para a equipe de operações corrigir. Os programas de VM bem-sucedidos utilizam técnicas avançadas de priorização e ferramentas automatizadas de fluxo de trabalho para otimizar a entrega à equipe responsável pela correção.”

Acreditamos que o processo de gestão de vulnerabilidade é algo que não se tem receita, não se compra pronto, não é possível chegar em uma loja ou consultoria e comprar uma caixinha com o processo dentro.

Construa, ajuste e teste

Assim esse processo deve ser construído, ajustado, testado e depois melhorado continuamente em um ciclo que se repete incontavelmente.

O Gartner define  da seguinte maneira um processo de Gestão de Vulnerabilidades: 

“… as the process cycle for finding, assessing, remediating and mitigating security weaknesses on information systems. As parts of this process, policy and scope definition, assessment, remediation, mitigation and monitoring are required.”

Podemos colocar como sendo:

“… o gerenciamento de vulnerabilidades como o ciclo do processo para encontrar, avaliar, remediar e mitigar os pontos fracos da segurança nos sistemas de informação. Como partes desse processo, são necessárias definições de política e escopo, avaliação, correção, mitigação e monitoramento.”

Uma conceituação sobre vulnerabilidades

Logo após termos entendido o conceito dado para o processo de gestão de vulnerabilidades, precisamos entender os vários conceitos que podemos identificar sobre vulnerabilidades.

Muitos escritores e profissionais entendem vulnerabilidade como algo “suscetível a ataques” ou mesmo algo que esteja “disponível”. 

Aqui vamos deixar evidente que o conceito de vulnerabilidade será o de uma falha que pode proporcionar a exploração da aplicação, gerando um impacto.

Uma ameaça que tira proveito de uma vulnerabilidade pode induzir uma cadeia de eventos visto que resulta em consequências adversas para a organização. 

Qual o papel e qual a importância da Gestão de Vulnerabilidades?

É evidente que trabalhar a segurança de software de forma preventiva é uma das formas mais baratas e eficientes de garantir a segurança do produto final. 

Isso fica muito claro quando comparamos resultados ganhos com a implantação de um processo de desenvolvimento seguro correto e o valor gasto no processo de correção de vulnerabilidades ou até mesmo problemas legais ocasionados por vulnerabilidades exploradas no software.

Entretanto, ainda encontramos empresas onde o pensamento permanece o de atuar apenas no final do processo, e, além disso, por meio de testes bem pontuais.

O processo de Gestão de Vulnerabilidade como entendemos é muito mais completo e complexo do que simplesmente o uso de uma ferramenta para mostrar vulnerabilidades presentes em código. 

Um processo de gestão de vulnerabilidades é muito maior, precisa de mais atenção e envolvimento, mas seus resultados são muito acima do que se investe na criação, uso e manutenção do processo.

ciclo de gerenciamento de vulnerabilidade

Podemos recorrer novamente ao Gartner para ter uma boa ideia de um processo de Gestão de Vulnerabilidades. 

Mas, o que é interessante sobre um processo é que ele não é fixo, rígido ou mesmo imutável, e com isso podemos imaginar que a construção do seu Processo de Gestão de Vulnerabilidades pode ser feita tendo as características da sua equipe, isso é fantástico!

Além dos relatórios

Espero que, até aqui, já tenha entendido que se o seu fornecedor, ou mesmo sua equipe, te entrega um relatório contendo um monte de vulnerabilidades e pede que sua equipe solucione, isso não é um processo de gestão de vulnerabilidades!

Falo isso porque não é raro encontrarmos empresas que recebem esse tipo de relatório. Ainda muitas recebem o relatório crú, assim como sai da ferramenta milagrosa de validação de código, sem qualquer análise. 

Isso definitivamente não é Gestão de Vulnerabilidades!

Quando uma empresa resolve agir de forma correta em gestão de vulnerabilidades ela ganha controle sobre seu processo de desenvolvimento, aumenta o controle sobre a segurança de seu software e maturidade de sua equipe. 

Qual o pensamento do atacante?

Quando olhamos para uma vulnerabilidade de forma isolada e a tratamos baseada apenas em sua criticidade, tendemos a deixar passar alguns pontos bem importantes.

Um dos pontos principais que deixamos de lado é sem dúvida o pensamento do atacante. De forma geral o atacante não pensa na criticidade da vulnerabilidade e sim no uso efetivo em busca de um resultado.

Um exemplo disso é visto quando estamos falando das vulnerabilidades relacionadas no OWASP TOP 10, veja sempre qual o relatório mais atual.

Como sabemos elas não são as vulnerabilidades mais críticas, todavia são usadas inúmeras vezes como porta de entrada para ataques bem mais sofisticados.

Priorize as correções

A priorização das correções é fator fundamental para o sucesso de um processo efetivo. A gestão das vulnerabilidades é, novamente, um processo que deve ser observado por muitos ângulos, nunca em um único aspecto.

Para que a priorização seja feita de forma correta, uma série de passos e entendimentos devem ser observados tais como o impacto para o negócio a partir da exploração de uma vulnerabilidade.

Ainda, é preciso que se tenha uma visão global do ativo e das vulnerabilidades, pois assim conseguiremos aplicar um critério de prioridade de correção de forma mais efetiva.

Em seu artigo intitulado “Implement a Risk-Based Approach to Vulnerability Management” o Gartner nos traz alguns dados interessantes que devem ser observados quando tratamos de correções de vulnerabilidades, talvez um dos mais críticos seja o tempo.

correções

Sabemos que a correção de uma vulnerabilidade não é e dificilmente será um processo simples e rápido, principalmente em estruturas complexas, e precisam de avaliações de mudanças.

Quando temos um processo maduro implementado e sendo usado, temos a garantia de que vamos conseguir de forma mais organizada e estruturada realizar as correções necessárias.

Como seria um Processo de Gestão de Vulnerabilidades?

Como falamos, um processo de gestão de vulnerabilidades é muito maior e mais complexo que apenas a execução de uma ferramenta.

Precisamos dentro do processo definir algumas etapas, passos, recursos e ferramentas que serão usadas.

Workflow

Como podemos ver, existe uma lógica, uma sequência na execução e realização de ações em um processo.

Portanto, falamos que a construção de um processo é algo que consegue ser flexível, e que pode e deve seguir a estrutura da empresa, refletir suas necessidades e objetivos.

Podemos entender que de forma básica todo processo de gestão de vulnerabilidades deve apresentar no mínimo estas etapas.

Identificação de vulnerabilidades: O processo deve ser iniciado com a avaliação dos resultados das ferramentas e testes utilizados para levantamento de dados.

Verificação da vulnerabilidade: Após ter sido identificada, a vulnerabilidade deve passar por um processo de análise, identificação de possíveis cenários de exploração, seus impactos e sua criticidade. Só assim podemos criar uma lista para trabalharmos nas correções.

É importante lembrar que ferramentas produzem inúmeros falsos positivos e pior, falsos negativos, e isso deve ser considerado na análise dos resultados.

Priorização: Avalie quais vulnerabilidades serão mitigadas ou corrigidas primeiro com base em sua capacidade de solucionar as vulnerabilidades.

Mitigação de Vulnerabilidades: Neste ponto vamos decidir sobre as correções, implementações de controles compensatório e a busca por uma solução do problema raiz da vulnerabilidade. Sempre avaliando se há formas mais apropriadas de correção/mitigação e quais são as formas de exploração.

Remediação de Vulnerabilidades: Quando possível, proceder com a atualização da estrutura para evitar possíveis problemas posteriores.

Tenha controle e visibilidade de todo o processo

O processo de gestão de vulnerabilidades é complexo e requer um alto grau de controle.

Precisamos ter suporte para vários controles e como as vulnerabilidades serão corrigidas, mantidas e testadas. Esse processo se torna ainda mais fácil quando usamos de forma correta uma plataforma desenvolvida apropriadamente para o processo de gestão de vulnerabilidades.

A busca por um processo bem desenvolvido e robusto deve ser o objetivo de todo gestor cujo alvo seja melhorar a segurança de sua aplicação.

Nós como profissionais de AppSec não podemos confundir um processo de gerenciamento de vulnerabilidades com a execução esporádica de ferramentas de varredura. 

O uso destas ferramentas deve fazer parte do processo, e dessa forma, são apenas um pequeno pedaço do todo.

Espero que este artigo tenha conseguido esclarecer ainda mais os conceitos por trás de um processo de gerenciamento de vulnerabilidades.

Nova call to action
About author

Articles

Mais de 15 anos de experiência em segurança da informação e aplicações, graduado em processamento de dados, trabalhei como professor universitário e participei ativamente como instrutor de treinamento para mais de 6000 desenvolvedores em equipes de TI. Sou pai de duas meninas e trader nas horas vagas.
Related posts
Segurança de Aplicação

Desenvolvimento Seguro para Dispositivos de IoT: Garantindo a Resiliência na Era da Conectividade

Não é mais incomum olharmos para vários lugares e acharmos dispositivos IoT, estão em nossas…
Read more
Segurança de Aplicação

O Impacto da Inteligência Artificial no Desenvolvimento Seguro de Software

Não é segredo para ninguém, a Inteligência Artificial (IA) tem impactado significativamente…
Read more
Segurança de Aplicação

Secure By Design em ASPM - Como as ferramentas se integram ao processo

Neste artigo vamos trabalhar um pouco com os conceitos de Secure by Design em ASPM e como as…
Read more

Deixe um comentário

Descubra mais sobre Conviso AppSec

Assine agora mesmo para continuar lendo e ter acesso ao arquivo completo.

Continue reading