Escolar Documentos
Profissional Documentos
Cultura Documentos
1. O que é o Hacking?
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.
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.
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.
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.
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].
Reconhecer;
Ganhar acesso;
Manter o acesso;
Limpar as pistas.
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").
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).
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.
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.
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.
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).
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].
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.
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 ↩︎