Se tem algo extremamente dinâmico, no já movimentado universo da tecnologia, é o que trata da segurança da informação. A cada dia surgem novas ameaças que podem ser desastrosas para toda a cadeia: empresas, fornecedores e clientes. Por isso, fazer uma boa gestão de vulnerabilidades pode ser o diferencial para que o seu projeto não seja o mais novo caso de ataque a aparecer na mídia.
Quer aprender o que é Gestão de Vulnerabilidades, seus principais conceitos e de quebra ainda conhecer exemplos de boas ferramentas? Então continue lendo!
Antes de começar, você precisa saber:
- Ameaça: É toda e qualquer fragilidade que pode ser explorada.
- Vulnerabilidades: São fraquezas que podem e provavelmente serão exploradas.
- Risco: É quando existe a possibilidade de explorar uma vulnerabilidade, mas ela fica mais para o lado teórico sendo assim possível, mas não provável a exploração.
Análise de Vulnerabilidade
Agora vamos falar sobre Análise vs Scan. Há uma certa confusão quando profissionais de engenharia de segurança usam algum dos termos, mas vamos lá!
Uma análise é quando profissionais de engenharia de segurança fazem um reconhecimento e classificação das vulnerabilidades verificando possíveis formas de remediar, mitigar ou até aceitar o risco (falaremos mais sobre aceitar o risco no decorrer do artigo).
Já o Scan é a utilização de ferramentas, sendo elas de SAST ou DAST, que procuram vulnerabilidades na aplicação e na infraestrutura.
Abaixo um fluxo de tomada de decisão ilustra muito bem e resume como é feito uma análise de vulnerabilidade:
O que é Gestão de Vulnerabilidades e como funciona?
Após a varredura e análise inicial, entramos com a Gestão de Vulnerabilidades, que é o processo de identificar, notificar, analisar e corrigir de forma contínua as vulnerabilidades identificadas. Cada vulnerabilidade possui uma criticidade e prioridade em que deve ocorrer a correção para direcionar e priorizar os itens mais fáceis de serem explorados.
Particularmente gosto bastante dos fluxos da Gartner, pois eles trazem uma visão muito clara e objetiva. A imagem abaixo mostra o ciclo da gestão de vulnerabilidade, um processo contínuo para não dizer infinito, que é dividido em avaliar, priorizar, agir, reavaliar e melhorar.
Criticidade das vulnerabilidades
Agora vamos falar sobre criticidade. No início de minha carreira eu tinha a sensação e convicção que vulnerabilidades do tipo crítica seriam aquelas 0 day ou que para reproduzir elas você teria que fazer engenharia reversa, analisar bytecodes ou dar bypass muito complexos.
É… o tempo passa e as vezes é bom porque eu estava errado. Abaixo de forma resumida mostro a diferença:
- Critical: Vulnerabilidades críticas são aquelas que são de simples reprodução e que não necessitam de um acesso específico. É isso que a torna crítica, porque pessoas com conhecimento básico (ou mesmo nenhum) podem afetar a aplicação ou a imagem da empresa.
- High: Vulnerabilidades altas são aquelas que podem afetar a aplicação e a imagem da empresa também, geralmente precisam que o atacante tenha um acesso mínimo, mesmo que seja de um cliente.
- Medium: Vulnerabilidades médias são similares às do tipo altas, mas são menos prováveis de sofrer um ataque, pois atacantes necessitam de alguns privilégios na aplicação ou requer que o invasor resida na mesma rede local onde a exploração fornece apenas acesso muito limitado. Também são as do tipo que exigem manipulação das vítimas através de engenharia social.
- Low: Vulnerabilidades baixas são as que têm muito pouco impacto no negócio de uma organização. A exploração das vulnerabilidades requer acesso local ou físico ao sistema como privilégios muito elevados ou que requer um conhecimento muito específico e que seja de difícil reprodução.
Falso positivo
Olha, quero estar vivo para quando tiver um scan que não reporte nenhum falso positivo, viu?
Sabemos que o falso positivo muitas vezes é um incômodo quando a aplicação pode não ter uma, duas, mas centenas deles, e isso dificulta a identificação das verdadeiras vulnerabilidades.
O falso positivo só é falso quando devs ou appsecs fazem a verificação e comprovam que realmente não é uma vulnerabilidade. Isso faz com que o falso positivo não seja uma espécie de inimigo, mas sim um componente importantíssimo para a gestão de vulnerabilidade.
O simples ato de você verificar, debugar o código atrás da comprovação do falso positivo, faz com que você tenha mais conhecimento sobre o funcionamento da aplicação e identifique outras possíveis vulnerabilidades que o scan não reportou e é isso que o torna tão importante.
Aceitando risco
A pior coisa que poderia acontecer é o time e/ou organização aceitar o risco de uma vulnerabilidade. Geralmente isso acontece quando a organização não acha vantajoso a mitigação, pode ser por custo adicional, data da entrega muito apertada ou até mesmo a falta de conhecimento técnico.
Aceitar o risco nada mais é que deixar a vulnerabilidade em aberto no ambiente de produção com ou sem nenhum acompanhamento e contando com a sorte.
Ferramentas de mercado: o mínimo esperado
Para se ter uma boa gestão de vulnerabilidade é importante escolher ferramentas que se adequem ao cenário atual da segurança da informação, atendendo alguns critérios mínimos, por exemplo:
- um acesso controlado (ACL);
- métricas;
- suportar a integração com ferramentas SAST/DAST;
- e também ser escalável de uma forma que suporte um grande número de projetos e, infelizmente, vulnerabilidades também.
Exemplos de Ferramentas de Gestão de Vulnerabilidades
Um bom exemplo de ferramenta de gestão de vulnerabilidades é o DefectDojo (e ainda é open source). Ele oferece recursos como importação de relatórios de ferramentas como Horusec, Acunetix, Snyk, Burp Enterprise Scan entre outros e também toda a parte de Business Intelligence (B.I).
Além disso, o DefectDojo é mantido pela comunidade OWASP, que é uma referência para profissionais de segurança de aplicações em todo o mundo.
Ah, falando em Horusec… É sempre bom lembrar que ele é um projeto open source mantido pela Zup. ?
Tive experiência também com a ferramenta AppSec Flow da Conviso. Ela é muito boa e dentre seus pontos positivos, a parte de B.I é mais completa e detalhada, além de algumas features como o “Workflow de Correção”, muito bem desenvolvida e madura.
Outro bom exemplo para ser citado é o Faraday. Ainda não tive a oportunidade de trabalhar com esta ferramenta, mas lendo sobre vale a pena colocar no radar caso esteja procurando uma ferramenta para a gestão.
Conclusão
Esperamos que neste artigo você tenha entendido a importância de um bom processo de gestão de vulnerabilidades. Não se trata de uma ferramenta famosa de mercado ou que faz piruetas e acrobacias, mas sim um fluxo que envolve pessoas e processos para que, de forma estruturada, traga uma visão de saúde e organização dentro da sua empresa.
E você, como faz a Gestão de Vulnerabilidades na sua empresa? Conta para a gente nos comentários!
Referências
- Faraday – Vulnerability Management – Faradaysec
- O que é o gerenciamento de vulnerabilidades? – Tenable
- Documentation (defectdojo.github.io) – DefectDojo
- Defect Severity and Priority in Testing with Examples and Difference – SoftwareTestingHelp
- Severity Levels for Security Issues – Atlassian