374 lines
24 KiB
HTML
374 lines
24 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<title>Vulnerabilidades</title>
|
||
<link rel="icon" href="images/favicon.jpeg">
|
||
|
||
<!-- Bootstrap v5.3 navbar -->
|
||
<link rel="canonical" href="https://getbootstrap.com/docs/5.3/examples/headers/">
|
||
<!-- Bootstrap stylesheet -->
|
||
<link rel="stylesheet" href="css/bootstrap-header.min.css">
|
||
<!-- jQuery library -->
|
||
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
|
||
<!-- Bootstrap JavaScript -->
|
||
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
|
||
<script src="js/bootstrap.bundle.min.js"></script>
|
||
|
||
<!-- Personal Styles -->
|
||
<link rel="stylesheet" href="css/style.css">
|
||
</head>
|
||
|
||
<body>
|
||
<nav class="p-3 text-bg-dark">
|
||
<div class="container">
|
||
<div class="d-flex flex-wrap align-items-center justify-content-center justify-content-lg-start">
|
||
<ul class="nav col-12 col-lg-auto me-lg-auto mb-2 justify-content-center mb-md-0">
|
||
<li><a href="index.html" class="nav-link px-2 text-white">Início</a></li>
|
||
<li>
|
||
<div class="flex-shrink-0 dropdown">
|
||
<a href="#" class="nav-link px-2 text-white dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
|
||
Ameaças
|
||
</a>
|
||
<ul class="dropdown-menu text-small shadow">
|
||
<li><a class="dropdown-item" href="ameacas.html">Topo da página</a></li>
|
||
<li><hr class="dropdown-divider"></li>
|
||
<li><a class="dropdown-item" href="ameacas.html#ameacas-ciberneticas">Ameaças Cibernéticas</a></li>
|
||
<li><a class="dropdown-item" href="ameacas.html#guerras-ciberneticas">Guerras Cibernéticas</a></li>
|
||
<li><a class="dropdown-item" href="ameacas.html#internet-banking">Internet Banking</a></li>
|
||
<li><a class="dropdown-item" href="ameacas.html#mobile-malware">Mobile Malware</a></li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div class="flex-shrink-0 dropdown">
|
||
<a href="#" class="nav-link px-2 text-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
|
||
Vulnerabilidades
|
||
</a>
|
||
<ul class="dropdown-menu text-small shadow">
|
||
<li><a class="dropdown-item" href="vulnerabilidades.html">Topo da página</a></li>
|
||
<li><hr class="dropdown-divider"></li>
|
||
<li><a class="dropdown-item" href="vulnerabilidades.html#analise-de-vulnerabilidades">Análise de vulnerabilidades</a></li>
|
||
<li><a class="dropdown-item" href="vulnerabilidades.html#analise-de-evidencias">Análise de evidências</a></li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li><a href="solucoes.html" class="nav-link px-2 text-white">Soluções de segurança</a></li>
|
||
</ul>
|
||
|
||
<div class="text-end">
|
||
<button class="btn btn-warning"> <a class="btn btn-warning" href="about.html" target="_blank"> About </a></button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</nav>
|
||
<div class="container body-content shadow">
|
||
<h1 id="vulnerabilidades" class="page-title">Vulnerabilidades</h1>
|
||
|
||
<hr>
|
||
|
||
<h1 id="analise-de-vulnerabilidades">Análise de vulnerabilidades</h1>
|
||
<p>
|
||
A análise de vulnerabilidades no papel da Cibersegurança é muito importante. Sem ela, não existiria nenhuma melhoria no ramo de combate às ameaças cibernéticas, pois sem desenvolvimento, não haveria métodos de nos proteger dos diversos tipos de ataque que se conhecemos.
|
||
</p>
|
||
<p>
|
||
Este tópico é dividido em vários ramos, como a Digital Forensics, a Incident Response, entre outros.
|
||
</p>
|
||
|
||
<hr>
|
||
|
||
<h2>Digital Forensics</h2>
|
||
<p>
|
||
A Digital Forensics é, como o nome indica, a forense digital, e é a obtenção e análise de dados de uma forma pura, sem quais quer tipos de distorção e sem tendências para qualquer lado, de modo a reconstruír o que se passou no passado com o sistema.
|
||
</p>
|
||
<p>
|
||
Tem como objetivo examinar dados de sistemas, ativdidade de utilizadores do sistema, programas em execução, entre outras métricas que possam ajudar a determinar se está a decorrer um ataque e quem está por detrás do ataque.
|
||
</p>
|
||
<p>
|
||
Deve-se ter sempre em conta a preservação dos dados. Se o caso a ser estudado for levado a tribunal e se descobrir que os dados foram, de qualquer forma, manipulados, é o suficiente para a prova de esses mesmos dados ser completamente anulada, e até mesmo levar o caso contra quem apresentou essa prova.
|
||
</p>
|
||
|
||
<h4>Digital Forensic Investigation (DFI)</h4>
|
||
<p>
|
||
Com a DFI, entra-se na parte judicial das investigações. É uma investigação mais especializada, pois devem-se usar métodos e técnicas que permitam a que as evidências apresentadas possam ser admissíveis num tribunal.
|
||
</p>
|
||
<p>
|
||
O grande objetivo é chegar à causa raíz do problema/evento e garantir com clareza que as evidências não foram manipuladas de forma alguma, não levantando quaisquer questões ou dúvidas.
|
||
</p>
|
||
<p>Deve ser realizado um DFI, por exemplo:</p>
|
||
|
||
<ul>
|
||
<li>Resposta a um incidente</li>
|
||
<li>Investigações criminais</li>
|
||
<li>Corrigir falhas de segurança</li>
|
||
</ul>
|
||
|
||
<hr>
|
||
|
||
<h2>Métodos de Análise</h2>
|
||
<p>
|
||
Existem dois tipos conhecidos de métodos de análise de evidências, o Método Tradicional e Método Vivo
|
||
</p>
|
||
|
||
<h4>Método Tradicional(<i>Post mortem</i>)</h4>
|
||
<p>
|
||
O método tradicional consiste na análise de evidências com o sistema desligado, acedendo ao disco num modo inalterável(<i>read-only</i>), e examinar, por exemplo:
|
||
</p>
|
||
<ul>
|
||
<li>Logs do sistema</li>
|
||
<li>E-mails</li>
|
||
<li>Ficheiros</li>
|
||
<li>Metadados</li>
|
||
</ul>
|
||
|
||
<h4>Método Vivo (<i>Live forensic</i>)</h4>
|
||
<p>
|
||
O método vivo resulta da análise da máquina, com a mesma ligada. Pode ser usado como prova um <i>screenshot</i> da máquina. No caso de ser necessário examinar um disco, pode demorar algum tempo, especialmente se for de grande capacidade de armazenamento.
|
||
</p>
|
||
|
||
<hr>
|
||
|
||
<h2>Incident Response</h2>
|
||
<p>
|
||
Incident Response(resposta ao incidente) é o procedimento que um sujeito ou, nomeadamente uma empresa toma para que se prepare, detete, contenha e recupere de uma eventual perda de dados.
|
||
</p>
|
||
<p>
|
||
Esta é bastante importante em empresas para minimizar os danos eventuais de uma invasão de dados, ou seja, não haver perda de dados e, até mesmo, impedir que a mesma aconteça.
|
||
</p>
|
||
<p>
|
||
Existem várias equipas específicas para cada tipo de invasão, como <i>Computer Incident Response Teams</i> (CIRTs), <i>Computer Emergency Response Teams</i> (CERTs), entre outras.
|
||
</p>
|
||
<h4>Threat Intelligence</h4>
|
||
<p>
|
||
A Threat Intelligence baseia-se na obtenção e análise de informações que ajudem a identificar possíveis ataques. Esta vem com o benefício de ter uma segurança proativa, ou seja, evitar qualquer tipo de ameaças a uma empresa.
|
||
</p>
|
||
<p>O seguinte <a href="https://miro.medium.com/max/720/1*l9ccExnOaaC5PBWW_myW9w.webp">esquema</a> demonstra no que constitui uma Kill Chain:</p>
|
||
|
||
<div class="image-w-text">
|
||
<img src="images/cyber_kill_chain.png" class="center-image">
|
||
<p>As 7 fases de um ataque cibernético</p>
|
||
</div>
|
||
|
||
<p>
|
||
Também é importante mencionar as inúmeras organizações que ajudam e facilitam o combate aos ataques cibernéticos, sendo a mais destacada a MITRE ATT&CK.
|
||
</p>
|
||
<p>
|
||
A MITRE ATT&CK é uma organização focada na obtenção de informações de ciberataques apenas por observação do que acontece no mundo digital. É conhecida por ter uma vasta base de dados de ataques com informações de quase todos os ataques que aconteceram.
|
||
</p>
|
||
<p>
|
||
Além de identificar os problemas, também disponibiliza soluções para os mesmos, tudo isto sem qualquer custo tanto para uso pessoal como para uso empresarial. Isto obviamente reforça a ideia de colaboração, que é bastante importante no ramo da informática.
|
||
</p>
|
||
|
||
<h4>Ordem de Volatilidade</h4>
|
||
<p>
|
||
É muito importante ter em conta a ordem de volatilidade dos ficheiros criados por um sistema, pois devemos começar sempre pelos ficheiros que estão mais em contacto com o sistema (como ficheiros <i>cache</i>, <i>RAM</i>, etc.). A ordem por base no tempo em que estão disponíveis e acessíveis é, respetivamente, pela seguinte ordem:
|
||
</p>
|
||
<ol>
|
||
<li>Ficheiros cache</li>
|
||
<li>Memória(RAM)</li>
|
||
<li>Estado da rede</li>
|
||
<li>Processos ativos</li>
|
||
<li>Armazenamento</li>
|
||
<li>Backups / Cópias de Segurança</li>
|
||
<li>DVD's ou impressões</li>
|
||
</ol>
|
||
<p>
|
||
A seguinte ordem é importante pelo facto de ao examinar um sistema, é preciso ter precisão para encontrar a origem do problema, e na maioria dos casos essas evidências estão na memória gerada pelo sistema no instante em que ocorre o ataque, sendo esse o foco principal de um investigador.
|
||
</p>
|
||
|
||
<hr>
|
||
|
||
<h1 id="analise-de-evidencias">Análise de evidências</h1>
|
||
|
||
<p>
|
||
A análise de evidências é muito importante para o desenvolvimento de métodos eficazes para combate a <i>malwares</i>, pois permite-nos examinar máquinas afetadas por qualquer tipo de ameaça. Estas podem ser, por exemplo:
|
||
</p>
|
||
<ul>
|
||
<li>Malware</li>
|
||
<li>Spyware</li>
|
||
<li>Trojans</li>
|
||
<li>Ransomware</li>
|
||
</ul>
|
||
|
||
<hr>
|
||
|
||
<h2>Vulnerabilidades e como combatê-las</h2>
|
||
<p>
|
||
Quando se fala em vulnerabilidades, refere-se a uma possível falha num sistema que, a partir da mesma, pode ser comprometido o sistema, o utilizador ou uma empresa. Deve ser encarada como algo de alta prioridade, e deve ser resolvida o quão antes possível, antes que ocorra algo inesperado. Por este motivo deve sempre existir a identificação, análise e retificação de vulnerabilidades.
|
||
</p>
|
||
<p>
|
||
Como forma de ajuda a combater vulnerabilidades, existem vários <i>websites</i> com as vulnerabilidades mais comuns, e todas as informações necessárias para poder saber a sua origem e como combatê-las.
|
||
</p>
|
||
|
||
<h4>Common Vulnerabilities and Exposures (CVE)</h4>
|
||
<p>
|
||
A <a href="https://www.cve.org/">CVE</a> é um projeto da MITRE, cujo intuito é identificar, definir e catalogar as várias vulnerabilidades que existem no mundo digital. Estas ameaças são sempre publicadas por parceiros da própria <a href="https://www.cve.org/">CVE</a>, obtendo assim uma consistência nas descrições das vulnerabilidades, para quem desejar explorar múltiplas vulnerabilidades e não ter muitos conflitos com as explicações das mesmas.
|
||
</p>
|
||
|
||
<h4>Common Vulnerability Scoring System (CVSS)</h4>
|
||
<p>
|
||
A <a href="https://www.first.org/cvss/">CVSS</a> é um sistema que atribui a cada vulnerabilidade um grau de gravidade. Este é classificado do seguinte modo:
|
||
</p>
|
||
<div class="table-w-text">
|
||
<table class="table">
|
||
<tr>
|
||
<th>Severity</th>
|
||
<th>Base Score Range</th>
|
||
</tr>
|
||
<tr>
|
||
<td>None</td>
|
||
<td>0.0</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Low</td>
|
||
<td>0.1 - 3.9</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Medium</td>
|
||
<td>4.0 - 6.9</td>
|
||
</tr>
|
||
<tr>
|
||
<td>High</td>
|
||
<td>7.0 - 8.9</td>
|
||
</tr>
|
||
<tr>
|
||
<td>Critical</td>
|
||
<td>9.0 - 10.0</td>
|
||
</tr>
|
||
</table>
|
||
<p>
|
||
A tabela acima representa os graus de gravidade na <a href="https://nvd.nist.gov/vuln-metrics/cvss">classificação CVSS</a>
|
||
</p>
|
||
</div>
|
||
|
||
<br>
|
||
|
||
<p>
|
||
Apenas são usados valores definitivos, que significa que não vai existir mudança de valores para uma vulnerabilidade. Daí surgir a importância de uma calculadora capaz de medir com precisão o grau de gravidade de uma vulnerabilidade. Se a mesma se agravar, é criado um novo catálogo com a nova ameaça.
|
||
</p>
|
||
|
||
<h4>Common Weakness and Enumeration (CWE)</h4>
|
||
<p>
|
||
A <a href="https://cwe.mitre.org/">CWE</a> é outro projeto da MITRE, que lista todos os tipos de fraquezas de <i>software</i> e <i>hardware</i> comuns. Uma fraqueza é uma condição num <i>software</i>, <i>hardware</i>, <i>firmware</i> ou serviço que pode vir a introduzir uma vulnerabilidade a partir delas.
|
||
</p>
|
||
<p>
|
||
O grande objetivo da <a href="https://cwe.mitre.org/">CWE</a> é parar as vulnerabilidades na sua raíz, educando qualquer pessoa que trabalha no ramo da informática, de modo a evitar erros comuns e contribuir para um espaço mais seguro numa empresa.
|
||
</p>
|
||
|
||
<h4 id="owasp-zap">Open Web Application Security Project (OWASP)</h4>
|
||
<p>
|
||
O <a href="https://owasp.org/">OWASP</a> é uma fundação open-source com o intuito de melhorar a segurança de <i>software</i> no geral, ensinando pessoas pelo mundo todo para existir uma <i>web</i> mais segura.
|
||
</p>
|
||
<p>
|
||
Dentro desta fundação, foi criada um projeto bastante importante no mundo
|
||
cibernético, o <a href="https://owasp.org/www-project-top-ten/">OWASP Top Ten</a>. Este projeto consiste em, no final de cada ano, organizar um <i>top 10</i> das ameaças mais comuns nesse mesmo ano. É feito sempre uma comparação com anos anteriores para verificar as mudanças e melhorias que aconteceram. Ao ser realizada a comparação, consegue-se saber se houve melhorias face ao combate de vulnerabilidades anteriores, as novas vulnerabilidades introduzidas e uma breve explicação de cada uma delas.
|
||
</p>
|
||
<p>
|
||
No seguinte <a href="https://owasp.org/www-project-top-ten/assets/images/mapping.png">esquema</a>, está representada a comparação das vulnerabilidades do ano 2017, e do ano 2021:
|
||
</p>
|
||
|
||
<div class="image-w-text">
|
||
<img src="images/top10-2021.png" class="center-image">
|
||
<p>Comparação das ameaças mais comuns entre 2017 e 2021</p>
|
||
</div>
|
||
|
||
<hr>
|
||
|
||
<h2>Softwares usados para análises</h2>
|
||
<p>
|
||
Para poder examinar e tirar conclusões de anomalias nos sistemas, é necessário utilizar ‘software’ dedicado para este tipo de problemas. Os <i>softwares</i> mais utilizados são o <a href="https://www.autopsy.com/">Autopsy</a>, o <a href="https://www.zaproxy.org/">OWASP-ZAP</a>, e o <a href="https://www.docker.com/">Docker</a>.
|
||
</p>
|
||
<p>
|
||
Também é importante referir que para examinar discos e outras unidades de memória, é necessário usar uma máquina virtual <a href="https://www.kali.org/get-kali/">Kali</a>.
|
||
</p>
|
||
|
||
<h4 id="kali">Kali</h4>
|
||
<p>
|
||
O <a href="https://www.kali.org/get-kali/">Kali</a> é um sistema operativo Linux de base Debian. É usada especificamente para análise de vulnerabilidades, invasão de redes, entre outros fins de forense. No <i>website</i> oficial existem várias opções de <i>download</i> do <a href="https://www.kali.org/get-kali/">Kali</a>. Uma das mais utilizadas para análise de máquinas é a <i>Live Boot</i>.
|
||
</p>
|
||
<p>
|
||
A <i>Live Boot</i> consiste num sistema operativo temporário e inalterável, ou seja, ao reiniciar ou desligar, volta às definições default. Como não se pode fazer alterações definitivas na máquina, ela tem de estar pré-definida com os programas necessários para qualquer tipo de análise. Por ser um sistema inalterável, tem a vantagem de ser possível mexer nas evidências sem correr o risco de alterar as mesmas, algo que invalidaria automaticamente as provas.
|
||
</p>
|
||
<p>
|
||
Por ser um sistema de base Linux, grande parte dos sistemas de ficheiros são acessíveis, algo que não é possível num sistema Windows.
|
||
</p>
|
||
<p>
|
||
Existe também a possibilidade de usar o <a href="https://www.kali.org/get-kali/">Kali</a> em máquina virtual, usando um disco virtual, que significa que guarda todas as alterações como um computador faria. Este tipo de máquina é usada para explorar vulnerabilidades, por exemplo, em redes.
|
||
</p>
|
||
<p>
|
||
Estas ferramentas devem ser usadas explicitamente com o consentimento total da vítima, sendo estritamente proibido realizar um ataque não autorizado a qualquer empresa ou indivíduo. São apenas ferramentas para fundos de educação.
|
||
</p>
|
||
|
||
<h4>Autopsy</h4>
|
||
<p>
|
||
O <a href="https://www.autopsy.com/">Autopsy</a> é uma aplicação open-source que é capaz de analisar quase todos os tipos de discos, e foi escrita em Java. Esta usa <i>plugins</i> feitos pela comunidade para uma experiência customizável para cada utilizador, permitindo assim uma livre escolha dependendo das necessidades de cada pessoa.
|
||
</p>
|
||
<p>Esta aplicação é focada em vários campos, como, por exemplo:</p>
|
||
<ul>
|
||
<li>Pesquisas em Universidades/Academias</li>
|
||
<li>Investigações em empresas</li>
|
||
<li>Governo e Órgãos militares</li>
|
||
<li>Investigações na polícia</li>
|
||
</ul>
|
||
<p>
|
||
A grande vantagem de usar o <a href="https://www.autopsy.com/">Autopsy</a> ao invés de usar um sistema <a href="https://www.kali.org/get-kali/">Kali</a> por <i>Live Boot</i>, é que pode-se analisar unidades de disco diretamente a partir do sistema operativo principal, aumentando significamente o desempenho da análise, pois não se usa uma <i>pen</i> ou uma máquina virtual para usar o sistema operativo.
|
||
</p>
|
||
<h4>OWASP - Zed Attack Proxy (OWASP-ZAP)</h4>
|
||
<p>
|
||
A <a href="https://www.zaproxy.org/">OWASP-ZAP</a> é uma aplicação <i>open-source</i> desenvolvida pela OWASP, com o objetivo de explorar vulnerabilidades num <i>website</i>. O programa vem com inúmeras ferramentas de <i>Penetration Testing</i>, para detetar o máximo de vulnerabiliades possíveis.
|
||
</p>
|
||
<p>Esta aplicação tem como vantagens:</p>
|
||
<ul>
|
||
<li>Ser reutilizável, sendo capaz de guardar reports</li>
|
||
<li>Bom para iniciantes</li>
|
||
<li>É grátis</li>
|
||
</ul>
|
||
<p>
|
||
Por outro lado, não é a ferramenta mais prática de usar em empresas, pelo facto de ser <i>open-source</i> e não ter tanta privacidade como outras ferramentas pagas.
|
||
</p>
|
||
<p>
|
||
É recomendado pela <a href="https://www.zaproxy.org/">OWASP-ZAP</a> o uso desta aplicação juntamente com o <a href="https://www.docker.com/">Docker</a>, para a automatização das ferramentas existentes no programa.
|
||
</p>
|
||
<p>
|
||
Também é importante referir o projeto Juice Shop, que consiste numa aplicação escrita em JavaScript e que simula uma loja genérica de vários produtos, que contém uma série de vulnerabilidades.
|
||
</p>
|
||
<p>
|
||
É aconselhado usar a imagem deste projeto no <a href="https://www.docker.com/">Docker</a>, para a exploração dos erros ser efetuada local e eficientemente. Estes erros têm vários graus de dificuldade de serem explorados, e à medida que se descobre os erros, eles vão sendo guardados num ficheiro log. que contém o que já foi descoberto pelo utilizador.
|
||
</p>
|
||
|
||
<h4>Docker</h4>
|
||
<p>
|
||
O <a href="https://www.docker.com/">Docker</a> é um programa usado para desenvolver, enviar e correr aplicações. Desta forma, pode-se criar vários <i>containers</i> para correr ou enviar qualquer tipo de aplicação num espaço isolado. Tem a vantagem de poder ter várias aplicações a correr localmente no mesmo sistema sem consumir muito hardware, que é um grande benefício na área da cibersegurança, pois é usado vários programas ao mesmo tempo.
|
||
</p>
|
||
<p>No seguinte <a href="https://docs.docker.com/engine/images/architecture.svg">esquema</a> é apresentado que mostra a lógica por detrás do <a href="https://www.docker.com/">Docker</a>:</p>
|
||
|
||
<div class="image-w-text">
|
||
<img src="images/docker-scheme.png" class="center-image">
|
||
<p>Esquema que representa o funcionamento do <a href="https://www.docker.com/">Docker</a></p>
|
||
</div>
|
||
|
||
<p>
|
||
Os containers são feitos e funcionam em base de imagens, semelhante a um sistema operativo. Estas são normalmente imagens de outras imagens, apenas com algumas modificações feitas.
|
||
</p>
|
||
<p>
|
||
Uma imagem bastante conhecida neste campo é a imagem do Juice Shop, um projeto referido na Seção <a href="https://www.zaproxy.org/">OWASP-ZAP</a>. Com o <a href="https://www.docker.com/">Docker</a> e a imagem deste projeto, podemos criar um container que vai correr o <i>site</i>, localmente. A grande vantagem de correr ficheiros localmente é que pode-se fazer os testes sem qualquer problema, é possível fazer certos tipos de ataque que na Internet seriam considerados ilegais mas que são, sem dúvida alguma, cruciais para o bom funcionamento de um <i>website</i>.
|
||
</p>
|
||
|
||
</div>
|
||
<button id="goToTopButton" onclick="window.scrollTo(0,0)">
|
||
<img src="images/arrow-up.png" alt="^" style="height: 100%; width: 100%;">
|
||
</button>
|
||
<footer>
|
||
<div class="container">
|
||
<div style="float: left" class="">
|
||
Cibersegurança • <a href="index.html">Início</a> • Criado por <a href="https://github.com/RubenCGomes">Rúben Gomes</a> e <a href="https://github.com/TiagoRG">Tiago Garcia</a>
|
||
</div>
|
||
<div style="float: right">
|
||
UAveiro • DETI
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
<!-- Personal JS -->
|
||
<script src="js/topButton.js"></script>
|
||
</body>
|
||
</html> |