Você está na página 1de 5

CURSO DE FUNDAMENTOS DE CIBERSEGURANÇA

Módulo 3 - Anatomia de um Ciberataque

Unidade didática 2 (parte 2) – Vulnerabilidades Tecnológicas

1. Introdução

Importa começar por definir o que é uma vulnerabilidade e o que é um exploit.


Uma vulnerabilidade é a existência de fraqueza no design, ou um erro de
implementação que, quando explorada leva a um evento inesperado e
indesejável comprometendo a segurança do sistema. Simplificando, a
vulnerabilidade é uma lacuna de segurança que potencialmente pode
permitir que um atacante entre no sistema contornando vários controlos de
acesso e autenticações. É fundamental a partilha atempada, coordenada e
oportuna do conhecimento sobre a existência de vulnerabilidades.

As vulnerabilidades encontradas devem ser reportadas e publicadas em bases


de dados conhecidas (e.g., base de dados CVE). Estas bases de dados são a
principal fonte de informação que muitas entidades utilizam para tomar
conhecimento das vulnerabilidades (e divulgar novas vulnerabilidades) e
proteger os seus sistemas, claro que, as bases de dados são consultadas
também por hackers maliciosos para identificar e tentar explorar as mesmas nas
redes e sistemas das organizações. Quando as vulnerabilidades não são
conhecidas do público geral e não existem medidas de mitigação (ou patch) pois
não foram partilhadas (são mantidas em segredo, e.g., por Estados), são
designadas por vulnerabilidades zero-day.

Um exploit é um programa ou código projetado para explorar as


vulnerabilidades de software ou hardware, causando uma violação da
segurança do sistema, no contexto de um ataque malicioso ou de um pentest a
um sistema ou rede. Também existem bases de dados de exploits, que mapeiam

|Luís Dias| 1/x


as vulnerabilidades conhecidas a exploits (programas ou código) desenvolvidos
para as explorar.

Segue-se uma descrição sucinta do processo geral levado a cabo pelo atacante
para atacar a tecnologia:

1. Mapear os endereços dos servidores públicos e serviços ativos, com


as respetivas versões dos serviços e dos sistemas operativos, numa
primeira fase com reconhecimento passivo (e.g., Shodan), numa segunda
fase validando os resultados e interagindo diretamente com o alvo
(reconhecimento ativo), por exemplo, utilizando ferramentas com o Nmap1.

Vamos supor que o atacante encontrou um serviço web, e.g., Apache HTTP
2.4.49.

2. Encontrar vulnerabilidades conhecidas para os serviços/sistemas


encontrados. Este passo pode ser manual através da consulta nas bases
de dados ou pode ser automatizado com ferramentas próprias de análise de
vulnerabilidades.

Na Figura 1 está exemplificado o processo manual, procurando a versão do


servidor web (Apache HTTP 2.4.49) encontramos algumas vulnerabilidades
(ver link1 ou link2) e o respetivo exploit referido no passo seguinte.

3. Verificar se existem exploits disponíveis para explorar as


vulnerabilidades encontradas. Após identificar as vulnerabilidades é
necessário encontrar forma de as explorar, normalmente
adaptando/utilizando exploits já desenvolvidos (para o Apache HTTP 2.4.49
existe um exploit no link). Existem ferramentas que automatizam este
processo. Num cenário mais específico pode ser necessário desenvolver um
exploit (tópico avançado) para a vulnerabilidade encontrada, normalmente
isto é realizado por agentes de ameaça avançados.

1
Nos outros cursos de cibersegurança da UAb, nomeadamente Curso de Cibersegurança Ofensiva e Curso de
Especialização em Cibersegurança, ensinamos a trabalhar com esta e outras ferramentas relacionadas

|Luís Dias| 1/x


Figura 1 - Processo manual para mapear vulnerabilidades a um exploit existente

Após identificadas as vulnerabilidades, importa ao atacante saber o que tentar


explorar primeiro (retorno, importância do ativo), quais os exploits a usar e se é
possível reaproveitar exploits existentes ou se é necessário criar exploit (relação
custo/benefício).

|Luís Dias| 1/x


2. Classificação e Fontes de Informação sobre Vulnerabilidades

Para ser eficaz na recolha de informação e na identificação de possíveis


vulnerabilidades, um atacante precisa de se manter atualizado com as mais
recentes técnicas e vulnerabilidades, porque o ciberespaço é um ambiente
extremamente dinâmico. Ou seja, quando surge uma nova falha de segurança é
uma oportunidade de acrescentar uma nova ferramenta ao arsenal dos
atacantes.

Existem diversas fontes disponíveis (e.g., Websites de instituições públicas


como o CNCS, fóruns, blogs) para consultar informação sobre vulnerabilidades.

É possível inclusivamente obter (de forma ilegal), na dark web, a troco de


pagamento, vulnerabilidades Zero-day, algo que se pode designar como
"indústria de vulnerabilidades" ou até mesmo de exploits as a service (link1, link2,
link3).

Não é necessário memorizar cada uma das vulnerabilidades que existem, pois
são imensas e cada vez são mais. Contudo, os defensores (para corrigir os
sistemas) e os atacantes (para explorar as vulnerabilidades) precisam saber
onde procurar.

A MITRE Corporation mantém uma lista de Common Vulnerabilities and


Exposures (CVE) (i.e., um dicionário de vulnerabilidades). Sempre que é
encontrado um problema com o hardware ou software, os fabricantes devem
submeter à base de dados CVE. As CVE obedecem a um esquema de
classificação. Por exemplo, considerando a CVE2021-41773, significa que
falamos da vulnerabilidade nº41773 que foi identificada durante o ano civil de
2021.

|Luís Dias| 1/x


Cada CVE também tem uma pontuação de severidade (o quão perigosa é) com
base em diferentes métricas (e.g., facilidade de execução), de acordo com o
Common Vulnerability Scoring System (CVSS). A severidade é categorizada em:
critical, high, medium, ou low. O atacante, deverá concentrar a maioria dos
esforços em encontrar e explorar as vulnerabilidades com pontuações críticas
ou altas nas redes alvo, enquanto o defensor deve priorizar o seu esforço na
correção dessas vulnerabilidades (atualizar os sistemas na maioria das vezes
resolve o problema!).

Algumas bases de dados de vulnerabilidades são:

https://nvd.nist.gov/vuln/search

National Vulnerability Database (NVD) é a base de dados de vulnerabilidades


mantida pelo Instituto Nacional de Normas e Tecnologia dos EUA (NIST).
Está sincronizada com a base de dados CVE.

https://cve.mitre.org/

Todos os fabricantes submetem (ou devem submeter) as vulnerabilidades


neste repositório. Sempre que é encontrado um problema com o hardware
ou software dos fabricantes, eles submetem-no à base de dados CVE, o que
significa que este é um ótimo local para procurar.

https://www.cvedetails.com/

Um ambiente gráfico mais amigável que permite explorar a lista de CVE


supramencionada. Contudo, não garante informação atualizada, por isso as
fontes principais deverão ser as duas acima mencionadas.

|Luís Dias| 1/x

Você também pode gostar