Você está na página 1de 9

Microcredencial em Cibersegurança Ofensiva - M1 UD4 -

Terminologia e Base Conceptual

1. O que é o Hacking?

Em cibersegurança, hacking refere-se à exploração de vulnerabilidades do sistema e ao


comprometimento dos controlos de segurança para obter acesso não autorizado ou
inadequado aos recursos do sistema. No limite o hacking pode levar à perda de um negócio.

O hacking é geralmente realizado por meio de scripts (i.e., código de programação). As técnicas de
hacking incluem a criação de vírus e worms, realizar ataques de negação de serviço (Denial Of Service
- DoS), estabelecer conexões de acesso remoto não autorizado a um dispositivo usando
Trojans/backdoors, criar botnets, sniffing de pacotes, phishing e cracking de senhas. O motivo por
detrás do hacking pode ser roubar informações e/ou comprometer serviços críticos, para emoção,
desafio intelectual, curiosidade, experiência, conhecimento, ganho financeiro, prestígio, poder,
reconhecimento de pares, vingança, etc.

Mas quem é um hacker?

O hacker é um indivíduo inteligente com excelentes habilidades no computador (i.e., bom


programador) e que domina os fundamentos de redes e software, juntamente com a capacidade de
encontrar e explorar vulnerabilidades no software e hardware do computador. Pode ser um engenheiro
e programador, ou pode ser um curioso autodidata. Para alguns hackers, o hacking é um hobby para
ver quantos computadores ou redes conseguem comprometer. A intenção pode ser tanto ganhar
conhecimento ou cometer ilegalidades.

1.1. Conceito de Ethical Hacking

Um hacker ético, deve estar ciente das ferramentas e técnicas que os atacantes implementam, para
que seja capaz de sugerir defesas e implementação de contramedidas.

Um hacker ético segue processos similares aos de um hacker malicioso. Os passos para obter e
manter o acesso a um sistema são semelhantes, independentemente das intenções do hacker. O
hacker ético, faz testes de intrusão/penetração (i.e., pentests) nos sistemas, para apoiar as equipas de
gestão da rede a melhorar o nível de proteção da mesma corrigindo as vulnerabilidades encontradas.

1.2. Classificação dos Hackers

Os hackers geralmente enquadram-se numa das seguintes categorias, de acordo com suas
atividades:
Black Hats: são indivíduos que usam os seus extraordinários conhecimentos informáticos para
fins ilegais ou maliciosos. Esta categoria de hackers está frequentemente envolvida em atividades
criminosas.
White Hats: são os Hacker Éticos, indivíduos que usam as suas habilidades de hacking para fins
defensivos. Atualmente, quase todas as organizações têm analistas de segurança, que podem
proteger as redes e sistemas de informação contra-ataques maliciosos, mas estes analistas têm
conhecimento e capacidade limitada. O ideal seria que todas as organizações tivessem White
Hats, com permissão de proprietário do sistema, e com conhecimentos equivalentes aos Black
Hats, por exemplo, para efetuar pentests validando a eficácia dos controlos de segurança
implementados. Devido aos parcos recursos humanos especializados e custos inerentes à
contratação dos mesmos, normalmente os White Hats são contratados temporariamente para
realizar serviços pentesting.
Gray Hats: são os indivíduos que trabalham tanto ofensivamente como defensivamente em vários
momentos. Podem encontrar, de forma menos legítima, várias vulnerabilidades de um sistema ou
rede e ao mesmo tempo ajudar os fornecedores/organizações a melhorar os produtos (software ou
hardware) ou as redes. Situam-se no meio entre Black Hats e White Hats.

Existem outras variantes de terminologia, como:

Hackers Suicidas: são indivíduos que pretendem derrubar uma infraestrutura crítica por uma
"causa" e não estão preocupados em enfrentar condições de prisão ou qualquer outro tipo de
punição.
Script Kiddies: são hackers não qualificados que comprometem sistemas executando scripts,
ferramentas e softwares desenvolvidos por verdadeiros hackers, e o problema é que muitas vezes
não sabem bem o que estão a fazer e nem o impacto de tais ações.

Ciber Terroristas: são indivíduos com uma ampla gama de habilidades, motivados por crenças
religiosas ou políticas para criar medo e rutura em larga escala.

Hackers do Estado: são patrocinados pelos respetivos Estados, e são indivíduos empregues pelo
governo para penetrar e obter informações classificadas, desenvolver ciberespionagem, e para
danificar/ludibriar sistemas de informação de outros governos.

Hacktivistas: invadem sistemas de computadores governamentais ou corporativos como um ato


de protesto. Promovem uma agenda política através do hacking, adulterando ou desativando
websites, ou manipulando a opinião pública nas redes sociais.

2. Fases de Hacking & Cyber Kill Chain

Antes de vermos as metodologias para executar pentests, é necessário compreendermos como os


adversários atuam, pois os métodos serão necessariamente semelhantes nalguns aspetos.

As técnicas convencionais de defesa, tais como sistemas de deteção de intrusão ou antivírus, têm foco
apenas na componente do risco associada à vulnerabilidade, e pressupõe uma intrusão com sucesso.
Esta metodologia centrada na vulnerabilidade é insuficiente face às designadas Advanced Persistent
Threat (APT), ameaças sofisticadas perpetradas por atores com maiores capacidades ofensivas,
sendo necessário compreender a própria ameaça e padrões de atuação. Uma APT demora em média
seis meses (de acordo com vários relatórios de segurança) até ser descoberta pelas vítimas, e muitas
vezes é revelada pelos atacantes, por exemplo, aquando exposição dos dados comprometidos. Assim,
importa fazer referência à designada Cyber Kill Chain (CKC), uma metodologia que se foca na
modelação do comportamento da ameaça, fornecendo uma estrutura para analisar as intrusões
realizadas em múltiplas fases e elencar modalidades de ação defensivas.

A primeira CKC, proposta pela Lockheed Martin, pode ser consultada neste artigo[1].

Compreende as fases[2]: Reconnaissance, Weaponization, Delivery, Exploitation, Installation,


Command and Control, Actions on Objective. Contudo, apresentamos de seguida, uma versão
simplificada, que cobre todas as fases da kill chain. Nesta versão simplificada, temos cinco fases de
hacking com objetivos diferentes:

Reconhecer;

Enumerar (i.e., Scanning);

Ganhar acesso;
Manter o acesso;

Limpar as pistas.

Vamos ver cada uma das fases em detalhe:

2.1. Reconhecer
Esta é a fase preparatória na qual um atacante reúne o máximo de informações possíveis sobre o alvo
antes de lançar o ataque. O reconhecimento pode ser ativo ou passivo. Quando um atacante usa
técnicas de reconhecimento passivo, não interage diretamente com o alvo. Técnicas de
reconhecimento ativo, por outro lado, envolvem interações diretas com o sistema alvo. O alcance
do alvo de reconhecimento pode incluir os clientes, funcionários, operações, rede e sistemas da
organização alvo.

Reconhecimento Passivo: o atacante recorre técnicas de OSINT (obtenção de dados por via de
fontes abertas). Os atacantes podem usar a Internet para obter informações como os contatos dos
funcionários, parceiros de negócios, tecnologias atualmente em uso e outros conhecimentos
críticos de negócios. Por exemplo, a pesquisa do site da empresa alvo no banco de dados Whois
(podem testar e colocar o domínio de um site qualquer – em [3] ou [4]) pode facilmente fornecer aos
hackers os endereços IP, nomes de domínio e informações de contato da empresa.
Nota - felizmente o Regulamento Geral sobre a Proteção de Dados (RGPD) veio proteger
alguma informação disponível na Internet, pois antes o WHOIS era mais útil e dava o nome,
morada e contatos do proprietário do domínio. Contudo, ainda é possível ir buscar alguns
dados mais interessantes com o webarchive [5].
Reconhecimento Ativo: envolve interações diretas com o sistema alvo, identificando
fornecedores de tecnologia em uso, identificação de gamas de IP públicos, nomes de domínio,
estrutura de endereços de e-mail, etc. Por exemplo, usar Engenharia Social para aprender mais
sobre o alvo, efetuando chamadas telefónicas para o helpdesk ou para o departamento técnico, ou
para a mãe da vítima :) (ver vídeo[6]). Uma técnica de engenharia social pode ser convencer as
pessoas a revelar informações tais como números de telefone não listados, senhas e outras
informações sensíveis. Por exemplo, o hacker pode ligar para o provedor de serviços de Internet
do alvo e, usando qualquer informação pessoal obtida anteriormente, convencer o atendimento a
fornecer mais informações sobre o alvo. Neste tipo de reconhecimento, podem também ser
utilizadas ferramentas de scanning, típicas da fase seguinte (Enumeração) para detetar portos
abertos, hosts acessíveis, locais de rede, entre outros, contudo, o reconhecimento ativo implica
uma interação com o alvo menos profunda e com muito baixa probabilidade de deteção destas
atividades (ao contrário da Enumeração que poderá ser mais "agressiva").

As organizações, devem adotar políticas e procedimentos adequados para verificar possíveis


vulnerabilidades e limitar o sucesso de ambas as técnicas de reconhecimento.

2.2. Enumerar

Esta é a fase imediatamente anterior ao ataque. Aqui, o atacante usa os detalhes coletados durante o
reconhecimento para pesquisar informações específicas da rede. O scanning é uma extensão lógica
do reconhecimento ativo e alguns especialistas não a diferenciam. Há uma ligeira diferença, no
entanto, na medida em que scanning envolve uma interação mais profunda com o alvo. Utiliza
ferramentas para detetar não apenas os portos abertos, hosts acessíveis ou locais/mapeamento de
rede, mas vai mais além procurando detalhes das versões de sistemas operativos (SO) e aplicações
(fingerprinting). Um atacante pode reunir informações críticas da rede, como o mapeamento de
sistemas, routers (encaminhadores de tráfego) e firewalls, usando ferramentas simples, incluindo
utilitários integrados no Windows (e.g., traceroute[7]).

Nesta fase os atacantes extraem informações como máquinas acessíveis, portos abertos, detalhes do
SO, tipo de dispositivos, tempo/padrão de funcionamento do sistema, entre outras, para lançar o
ataque.

Nota - os scanners detetam os portos à escuta (i.e., abertos e à espera de uma ligação de um
cliente) e podem dar informações sobre quais os serviços (e versões dos mesmos) em
execução na máquina alvo. Um socket (interface das aplicações de rede com as camadas
TCP/IP abaixo) tem um porto TCP/IP associado, e o porto naturalmente está associado à
aplicação de rede (a um serviço de rede). Um serviço com uma versão não atualizada, está
propenso a estar associado a uma vulnerabilidade. A principal técnica de defesa contra
scanners é desligar serviços que não são necessários, bem como implementar uma filtragem
apropriada na firewall (para filtrar o tráfego de rede por endereço IP, por porto ou por
aplicação).

2.3. Ganhar o Acesso


Nesta fase usam-se as vulnerabilidades identificadas durante a fase de reconhecimento e
enumeração, para obter acesso ao sistema e à rede alvo. O atacante pode obter acesso ao nível do
sistema operativo, ao nível de uma aplicação ou ao nível de rede. Contudo, os atacantes podem
causar muitos danos sem obter qualquer acesso ao sistema, por exemplo, os ataques externos de
negação de serviço podem esgotar recursos ou impedir que os serviços funcionem no sistema alvo.
Um ataque de negação de serviço, por exemplo, consiste no envio de múltiplos pedidos de ligação a
um servidor Web, que vai responder ao atacante sem que este volte a responder. O servidor Web
nesse caso fica a aguardar respostas e sem “espaço” para mais ligações.

Os atacantes podem ganhar acesso ao sistema alvo localmente (e.g., offline - ataque físico),
através de uma LAN privada, ou através da Internet. Exemplos incluem cracking de senhas,
bufferoverflow[8]), negação de serviço ou sequestros de sessão (session hijacking[9]). Com spoofing, o
atacante faz-se passar por um utilizador legítimo ou um sistema diferente, permite-lhe por exemplo, de
forma anónima, o envio de dados maliciosos para o sistema alvo, a fim de explorar uma
vulnerabilidade.

Assim que um atacante ganha acesso ao sistema alvo, ele tenta escalar os privilégios, a fim de
assumir o controlo completo do sistema alvo.

2.4. Manter o acesso


Assim que um atacante ganha acesso ao sistema alvo com privilégios de nível administrador/root
(sendo assim "dono do sistema"), este é capaz de usar o sistema e os recursos à vontade, e pode usar
o sistema como uma rampa de lançamento para explorar outros sistemas na rede (mais
remuneradores, e.g., base de dados), ou manter-se cauteloso e “silencioso” e continuar a explorar o
mesmo sistema. Ambas as ações podem causar uma grande quantidade de danos. Por exemplo, o
hacker pode intercetar e capturar todo o tráfego da rede sniffer, incluindo de sessões inseguras (e.g.,
protocolo FTP para transferência de arquivos) com outros sistemas.

Os atacantes que optarem por permanecer na mesma máquina sem serem detetados removem as
evidências da entrada inicial (e.g., apagam um script que lhes deu o acesso) e instalam um backdoor
ou um trojan para continuar a ter acesso de forma oculta. Eles também podem instalar rootkits ao nível
do SO para obter persistência no acesso de administração completo ao computador alvo. Em sistemas
Windows, a maioria dos trojans instalam-se como um serviço e executam como utilizador “sistema
local”[10], com acesso de administração.

Os atacantes podem fazer upload, download, ou manipular dados, aplicações e configurações no


próprio sistema, registar teclas digitadas (keylogger) e também podem usar trojans para transferir
nomes de utilizador, senhas e qualquer outra informação armazenada no sistema. Os atacantes
podem inclusivamente usar o sistema comprometido para lançar mais ataques posteriormente (i.e., no
caso em que a máquina infetada passa a fazer parte de uma botnet).

2.5. Limpar as pistas


Por razões óbvias, tais como evitar problemas legais e manter o acesso, os atacantes geralmente
apagam todas as evidências das suas ações. As intenções do atacante incluem o acesso contínuo ao
sistema da vítima, permanecendo sem ser notado e sem ser descoberto, apagando provas que
possam levar à sua acusação. Os trojans ou rootkits escondem o malware. Para além disso, os
atacantes utilizam ferramentas como PsTools[11] ou Netcat[12] para não deixar evidências nos arquivos
de log do sistema. Outras técnicas incluem esteganografia e ataques de tunelamento (side
channel[13]). A esteganografia é o processo de esconder dados em outros dados, por exemplo,
esconder código malicioso em arquivos de imagem, som ou outros. O tunelamento aproveita o
protocolo de transmissão ao transportar um protocolo sobre outro. Os atacantes podem usar até
mesmo uma pequena quantidade de espaço extra nos cabeçalhos dos protocolos típicos de rede TCP,
IP, ou mesmo DNS[14] (que é permeável às firewall), para esconder informações.

Os administradores de sistemas devem implementar IDS/IPS (sistemas de deteção/prevenção de


intrusão), regras de firewall e controlo de acessos que permitam apenas o necessário (necessidade de
conhecer e de aceder), e manter atualizado o software antivírus para detetar trojans e outros ficheiros
e diretórios aparentemente comprometidos.

3. Pentests VS Auditoria de Segurança VS Avaliação de


Vulnerabilidades

Embora muitas pessoas utilizem os termos “auditoria de segurança”, “avaliação de vulnerabilidades” e


"pentests" como sinónimos, existem diferenças consideráveis, como discutido de seguida:

3.1. Auditoria de Segurança

Uma auditoria de segurança apenas verifica se a organização está a seguir o conjunto de políticas
e procedimentos de segurança segundo regulamentos e padrões (standards) internacionais que
devem cumprir com base no tipo de negócio que possuam. É um método sistemático de avaliação
técnica do sistema de uma organização que inclui, entre outros, a realização de entrevistas com o
pessoal, a revisão da segurança dos vários controlos e a análise do acesso físico aos recursos da
organização.

3.2. Avaliação de Vulnerabilidades

Uma avaliação de vulnerabilidades foca-se em identificar as vulnerabilidades (e os riscos que daí


advêm) num sistema de informação ou rede, para que se possa planear a correção das mesmas.
Contudo, não fornece nenhuma indicação (ou demonstração) sobre se as vulnerabilidades podem
ser exploradas facilmente. Contudo, deve haver a interpretação dos resultados obtidos para descartar
falsos positivos e/ou indicar quais as vulnerabilidades mais críticas e passíveis de serem exploradas. A
avaliação de vulnerabilidades deve ter um âmbito perfeitamente definido (o quê e como testar) e pode
ser realizada através de ferramentas que na prática podem explorar automaticamente certas
vulnerabilidades e que podem comprometer o correto funcionamento do serviço, sendo fundamental
obter autorização e coordenar com a organização.
3.3 Teste de Penetração (pentest)

O teste de penetração é uma abordagem metodológica à avaliação de segurança que engloba, pelo
menos parcialmente, a auditoria de segurança e a avaliação de vulnerabilidades, e demonstra se
as vulnerabilidades do sistema podem ser exploradas com sucesso pelos atacantes, dando
recomendações para solucionar ou mitigar os problemas encontrados. Este é um processo
autorizado e coordenado pela organização (tal como os anteriores), a ser realizado numa janela de
tempo bem definida, para identificar e explorar as vulnerabilidades, incluindo a intrusão na rede,
aplicação, ou host. Os pentests podem ser conduzidos por uma equipa interna ou contratada
externamente (o mais comum). Os pentests vão um passo mais longe (que a avaliação de
vulnerabilidades), na medida em que exploram as vulnerabilidades para garantir que não se tratam de
falsos positivos. Podem causar interrupção de serviço, sendo essencial que a gestão de topo e os
colaboradores sejam alertados (se necessário).

4. Conceito de Blue Teaming/Red Teaming

As organizações com maior dimensão, podem muitas vezes constituir equipas permanentes ou
temporárias, para validar os controlos de segurança da informação, quer seja em ambiente de
exercício ou no decorrer normal das operações da organização[15].

4.1. Blue Team (equipa de defesa)

Também conhecida como equipa de defesa, consiste num grupo de indivíduos qualificados, que
pode incluir administradores de sistemas e pessoal de TI em geral e tem acesso aos recursos e
informações da organização. Manter uma blue team permanente, é tipicamente a solução adotada
para garantir a segurança da informação na organização. Para além das tarefas diárias, por vezes
a organização pode planear exercícios de cibersegurança, em que o papel principal da blue team é
detetar e mitigar as atividades da red team (atacantes) e antecipar os ataques surpresa que podem
ocorrer.

4.2. Red Team (equipa de ataque)

Também conhecida como equipa atacante, tipicamente de carácter temporário, é um grupo de


white hats (hackers éticos) que tentam lançar ataques contra a infraestrutura digital de uma
organização, tal como um atacante malicioso, para testar a postura de segurança da
organização. O objetivo é a deteção de vulnerabilidades de rede e sistemas e verificar a segurança
na perspetiva de um atacante, num processo que pode ser conduzido com ou sem aviso. A red team
pode incluir administradores de sistemas de vários departamentos de uma organização, em que se
realizam pentests externos através da Internet (na perspetiva de um atacante que não tem acessos
internos), ou com acesso muito limitado aos recursos internos da organização. A red team pode
também ser contratada a empresas especializadas para treino da blue team. Podemos dizer que a red
team desenvolve atividades semelhantes às de um pentest, mas é mais direcionada a determinadas
vulnerabilidades que possibilitem testar (e contornar) as capacidades de resposta da blue team,
tentando permanecer o mais silenciosa possível, e para este efeito, tendencialmente precisa de mais
tempo do que um pentest. Contudo, note-se que, dependendo do que fique acordado com a
organização, o objetivo de um pentest pode também passar pelo comprometimento da organização
sem levantar suspeitas (low profile).

4.3 Purple Team

Esta é uma combinação das anteriores, em que ambas (red e blue teams) colaboram e
melhoram as suas capacidades. Esta combinação pode significar que há representantes de ambos
os lados a trabalhar em conjunto num exercício, ou mesmo como parte do seu trabalho. Esta
abordagem, tende a resolver situações em que não há colaboração (e.g., a red team julgar-se superior
e não partilhar informação útil para a blue team) porque se cria uma barreira entre equipas. A purple
team une pessoas de ambas as equipas para que sintam que fazem parte do mesmo esforço.
Por exemplo, enquanto a red team (isolada) simula um ataque real e tipicamente não quer ser
detetada pela blue team (e só no final partilha com a blue team os resultados), a purple team faz testes
com o objetivo de ser detetada pela blue team e permitir afinar os sistemas de deteção (um processo
paralelo).

Notas Finais

Neste documento, pretendeu-se dar uma perspetiva da terminologia mais usada no hacking e
pentests. Como vimos, um pentester acaba por ser um white-hat, ou hacker ético. Devemos pensar
num pentest como se estivéssemos a olhar através dos olhos de um inimigo, por isso abordámos as
fases de um ataque.

Ilustrando o porquê da importância dos pentests, pense que é proprietário de uma organização que
detém dados de clientes em bases de dados, tem website público e outros servidores visíveis na
Internet, e um número considerável de clientes/utilizadores. A organização é um potencial alvo para
uma série de ataques! Se a organização for atacada, alguns riscos são: implicações legais por dados
de clientes terem sido expostos, perda de informação, reputação, quebra de serviço, entre outros, no
limite a perda do negócio. Para reduzir o risco é essencial identificar as vulnerabilidades (de uma
forma controlada) antes que um adversário o faça. Aqui entram os pentests! É preciso saber pensar e
agir como um atacante e simular ataques do mundo real e até onde podem ir (qual o impacto!). Depois
do pentest, com uma visão das vulnerabilidades passíveis de ser exploradas, a organização pode
corrigi-las antes que um adversário as possa explorar.

Ao longo do curso, vão explorar alguns dos métodos aqui descritos. Se repararem, a designação dos
restantes módulos está alinhada com as fases de um ataque. Antes de passarmos para a parte
prática, vamos ainda identificar e discutir as metodologia de pentests.

1. https://www.lockheedmartin.com/content/dam/lockheed-martin/rms/documents/cyber/LM-White-
Paper-Intel-Driven-Defense.pdf ↩︎
2. https://en.wikipedia.org/wiki/Kill_chain ↩︎
3. http://whois.domaintools.com/ ↩︎
4. https://who.is/whois/ ↩︎
5. https://nixintel.info/osint/search-tip-finding-historic-whois-data/) ↩︎
6. https://www.wizer-training.com/employee-security-awareness-videos ↩︎
7. https://pt.wikipedia.org/wiki/Traceroute ↩︎
8. https://pt.wikipedia.org/wiki/Transbordamento_de_dados ↩︎
9. https://pt.wikipedia.org/wiki/Session_hijacking ↩︎

10. https://docs.microsoft.com/en-us/windows/win32/services/localsystem-account ↩︎
11. https://docs.microsoft.com/en-us/sysinternals/downloads/pstools ↩︎
12. https://nmap.org/ncat/ ↩︎
13. https://en.wikipedia.org/wiki/Side-channel_attack ↩︎
14. https://www.youtube.com/watch?v=fQ4Y8napHzw ↩︎
15. https://www.csoonline.com/article/3647316/red-vs-blue-vs-purple-teams-how-to-run-an-effective-
exercise.html ↩︎

Você também pode gostar