Você está na página 1de 7

Centro de Ciências Exatas e Engenharia

Segurança em Sistemas de Comunicação

Ferramentas de Monitorização e Auditoria


Introdução
Existem diversas ferramentas open source que permitem efetuar operações de auditoria a sistemas e
redes de computadores. Este tipo de ferramentas permite obter informação de configuração de redes
e hosts e informação sobre vulnerabilidades em serviços disponíveis em determinados hosts, podendo
portanto ajudar na recolha de informações a integrar num processo de auditoria mais abrangente.
Apresentam-se neste texto algumas ferramentas de segurança e auditoria remotas, divididas em três
conjuntos principais: ferramentas de recolha de informação sobre a rede, ferramentas de scanning e
ferramentas de deteção de problemas. Esta divisão fará sentido quer do ponto de vista do atacante quer
do ponto de vista do administrador que procura proteger a sua rede. De facto este tipo de ferramentas
deve ser sempre visto segundo esses dois pontos de vista, já que para um administrador o processo de
proteção da sua rede pode começar pela procura de vulnerabilidades.
O primeiro grupo de ferramentas diz respeito ás ferramentas que permitem recolher informação
sobre hosts e sobre a topologia da rede. Esta tipo de ferramentas são tipicamente utilizadas na fase
inicial em que o atacante pretende obter informação sobre os domínios e redes IP utilizadas por uma
determinada organização. Por esta razão interessará ao administrador (interessado em proteger esses
mesmos sistemas e redes) minimizar a quantidade de informação ao dispor do atacante.
As ferramentas de scanning permitem partir da informação recolhida na fase anterior para determi-
nar que máquinas estão ativas e que portos (ou serviços) disponibilizam. O último grupo de ferramentas
permite efetuar testes para verificar se determinados serviços são ou não vulneráveis. Essas vulnerabi-
lidades podem dizer respeito a versões inseguras de software, a serviços mal configurados, etc. Estas
ferramentas permitem obter relatórios desse tipo de problemas e produzem muitas vezes recomendações
no sentido de resolver os problemas de segurança detetados.

Recolha de informação sobre a Rede


Vejamos algumas das ferramentas que podem ser utilizadas com o objetivo de obter informação sobre
domínios e respetivas redes IP utilizadas por uma determinada organização:
• Serviço whois: Este serviço permite obter nomes de domínios e redes IP associadas a esses do-
mínios. Em UNIX podemos utilizar o comando whois para efetuar consultas a este serviço. Este
serviço pode disponibilizar informação valiosa ao atacante, em particular do ponto de vista da
engenharia social, já que permite ter acesso por exemplo a números de telefone e a nomes (por
exemplo os nomes dos contactos técnicos da organização).
• Consultas ao Serviço DNS com a finalidade de enumerar as máquinas registadas no domínio. Um
servidor DNS mal configurado poderá permitir a listagem de todas as máquinas registadas no
domínio (nslookup com o comando ls -d, por exemplo). Outro exemplo é a obtenção dos records
MX no DNS, que permitem obter alguma informação sobre os endereços utilizados na firewall da
organização (onde residirão possivelmente as máquinas que recebem e-mail para a organização).

versão:ssr.tp.fx Net Tools v1.0 1/7 Eduardo Marques (emarques@uma.pt)


Interessará igualmente poder obter informação sobre a topologia da Rede. Uma ferramenta tipica-
mente utilizada com este objetivo é o traceroute, apresentado a seguir.

traceroute
O traceroute (tracert em Windows) é uma ferramenta que permite ver a rota pelo qual um pacote IP passa
desde o seu host de origem até ao host de destino. O traceroute utiliza a opção time-to-live (TTL) para
que os routers no caminho enviem uma mensagem ICMP TIME_EXCEEDED ao host de origem. Desta
forma o campo TTL (que é decrementado em cada passagem por um router) funciona como contador
de hops. As implementações de traceroute para UNIX normalmente utilizam pacotes UDP enquanto
que as implementações para Windows utilizam pacotes ICMP (do tipo echo request). Outras aplicações
relacionadas:

• Firewalk1 - Permite utilizar um porto fixo em todos os pacotes UDP enviados pelo traceroute
(normalmente o porto é incrementado para cada hop). Esta técnica permite ultrapassar firewalls
que deixem passar apenas determinados portos. Um exemplo clássico é o porto do DNS (o porto
53), normalmente autorizado em firewalls para que seja possível consultar servidores DNS na
DMZ.

• VisualRoute2 - Esta aplicação obtém informação a partir do traceroute e do whois e apresenta-a


de forma gráfica.

Scanning
Depois de recolhida a informação necessária sobre os domínios e respetivas redes IP o objetivo seguinte
consistirá em procurar determinar quais são as máquinas ativas e que portos (ou serviços) essas máquinas
disponibilizam. Esta fase é designada por scanning. Apresentam-se a seguir algumas ferramentas que
podem ser utilizadas para o efeito.

ping
Uma aplicação que permite testar se determinados sistemas estão ativos em determinadas redes IP. O
comando ping tradicional é pouco eficiente se pretendermos verificar um conjunto alargados de hosts
(operação designada por ping sweep). Outras aplicações:

• O fping3 permite efetuar ping sweeps de forma mais eficiente que o ping tradicional.

• O nmap (apresentado mais à frente) pode igualmente ser utilizado para efectuar ping sweeps
(exemplo: nmap –sP 10.254.0.0/24). Em alternativa o nmap pode também efetuar os chamados
TCP ping scans (exemplo: nmap –PT 10.254.0.0/24).

• O hping24 permite fazer TCP ping scans em que o utilizador controla opções específicas dos
pacotes TCP. Um exemplo consiste em fragmentar os pacotes TCP utilizados nos ping scans com
o objetivo de conseguir passar determinados tipos de filtros (ou firewalls).

Nos casos em que o ping ou o traceroute não podem ser utilizados (por exemplo uma firewall que
bloqueia tráfego ICMP ou UDP) podemos recorrer a diversas técnicas de port scanning para tentar
determinar se determinado host está ou não ativo. Ao procurar determinar se determinadas portas estão
ativas poderemos conseguir concluir que determinado host está ativo (embora o port scanning não seja
1
http://www.packetfactory.net/Projects/firewalk
2
http://www.visualware.com/personal/products/visualroute
3
http://www.fping.com/
4
http://www.hping.org/

versão:ssr.tp.fx Net Tools v1.0 2/7 emarques@uma.pt


sempre conclusivo). A ferramenta open source de port scanning mais popular é o nmap, que se apresenta
a seguir.

nmap
O nmap5 (network mapper) é um port scanner que permite explorar diversas técnicas de port scanning
para verificar conjuntos alargados de máquinas em simultâneo. O nmap utiliza diversas técnicas com
a finalidade de detetar que hosts estão ativos na rede, que serviços (aplicações e respetiva versão) eles
oferecem, o sistema operativo (e respetiva versão) utilizado, tipos de filtros de pacotes utilizados, etc. O
nmap pode ser utilizado na linha de comando ou recorrendo a uma interface gráfica.
Descrevem-se abreviadamente a seguir algumas das principais técnicas de port scanning implemen-
tadas pelo nmap:

TCP connect scan Este tipo de scan efetua ligações ao host remoto, completando o handshake normal
do TCP (em 3 fases: SYN,SYN/ACK e ACK, apresentado na Figura 1). Devido a este fato, este
tipo de scan é facilmente detetado pelo host remoto.

SYN
SYN/ACK
ACK
Cliente SYN Servidor
SYN/ACK
Figura 1: O resultado de um TCP scan quando a porta está aberta
ACK
Cliente
TCP SYN scan (half-open scanning) Este tipo de scan não chega a completar Servidor
uma ligação TCP. De-
pois de enviado o pacote SYN inicial caso seja recebido o pacote SYN/ACK é possível concluir
que a porta em causa está no estado LISTENING. Se por outro lado for recebido um pacote
RST/ACK (Figura 2) concluímos que a porta SYN não está ativa (não há aplicação à escuta nessa
porta). No final é enviado um pacote RST.RST/ACK
Este tipo de scan não é facilmente detetado pelo host
remoto. RST
Atacante SYN Servidor
RST/ACK
RST
Atacante Servidor

Figura 2: O resultado de um TCP SYN scan quando a porta está fechada

FIN
TCP FIN scan Este tipo de scan envia um pacote FIN (flag TCP)para o host de destino (Figura 3). De
acordo com as regras do TCP/IP o host remoto deverá responder com um pacote RST caso a porta
RST/ACK
não esteja ativa. Devido a particularidades de implementação da pilha TCP/IP (e apesar do que é
dito nos RFC’s)Atacante
esta técnica só funciona tipicamente para UNIX, não funcionando para máquinas
Servidor
Windows. FIN
5
http://www.insecure.org/nmap/index.html
RST/ACK
Atacante Servidoremarques@uma.pt
versão:ssr.tp.fx Net Tools v1.0 3/7
FIN

RST/ACK
Atacante Servidor

Figura 3: O resultado de um TCP FIN scan quando a porta está fechada

TCP Xmas Tree scan Este tipo de scan envia um pacote FIN,URG e PUSH. De acordo com as regras
do TCP/IP o host remoto deverá responder com um pacote RST caso a porta não esteja fechada.
A ausência resposta será indicativa de porta ativa.

TCP Null scan Este tipo de scan desativa todas as flags no pacote inicial enviado ao host remoto. De
acordo com as regras do TCP/IP o host remoto deverá responder com um pacote RST para todas
as portas que não estejam ativas. A ausência de resposta será indicativa de porta ativa.

TCP ACK scan Este tipo de scan permite detetar se uma firewall funciona em modo statefull ou faz
apenas filtragem de pacotes em modo stateless, autorizando as ligações já estabelecidas com base
na presença do bit ACK nos pacotes em trânsito.

TCP RPC scan Este tipo de scan é específico para sistemas UNIX e permite detetar portas RPC e
respetivos programas associados (incluindo números de versão).

TCP Windows scan Este tipo de scan consegue detetar portas abertas em determinados sistemas ope-
rativos com base no modo como o tamanho da janela TCP é reportado pelo sistema remoto.

UDP scan Este tipo de scan envia um pacote UDP para o host de destino. Se o host responder com uma
mensagem ICMP do tipo PORT_UNREACH isso significará que a porta não se encontra ativa. A
ausência de resposta será indicativa de porta ativa.

O nmap implementa todas as técnicas de port scanning descritas. É bom ter em conta que o resultado
depende de vários fatores, em particular de pormenores de implementação da pilha TCP/IP no sistema
operativo utilizado no host remoto. As duas primeiras técnicas (connect e SYN) podem ser consideradas
as mais fiáveis.
O nmap utiliza igualmente algumas técnicas para deteção do sistema operativo utilizado no host re-
moto, designadas por stack fingerprinting. Estas técnicas exploram as pequenas diferenças que existem
no modo como os diversos fabricantes implementam as pilhas TCP/IP nos respetivos sistemas operati-
vos. Outras aplicações:

• Embora o principal método de deteção de port scans sejam os sistemas NIDS (Network Intrusion
Detection System) como o snort6 existem diversas ferramentas de deteção. Um exemplo de uma
ferramenta deste tipo para hosts UNIX é o scanlogd7 .

Whireshark & Tcpdump


O Whireshark8 é um analisador de protocolos (e um network sniffer) para UNIX e Windows. Permite
examinar dados capturados a partir de uma interface de rede em modo promíscuo ou a partir de um
ficheiro de captura. Permite igualmente definir filtros e reconstruir uma sessão TCP.
6
http://www.snorg.org
7
http://www.openwall.com/scanlogd/
8
http://www.wireshark.org

versão:ssr.tp.fx Net Tools v1.0 4/7 emarques@uma.pt


O tcpdump9 é o network sniffer clássico para monitorização e aquisição de dados da rede. Pode ser
utilizado para imprimir os cabeçalhos dos pacotes que verificam uma determinada expressão.

Deteção remota de problemas


A informação recolhida pelas técnicas descritas anteriormente pode ser utilizada por ferramentas que
permitam identificar serviços com problemas de segurança. Esse problemas poderão dizer respeita a
versões de software com bugs de segurança, serviços de rede mal configurados, etc. Uma das ferramen-
tas open source mais populares é o Nessus, descrito a seguir.

Nessus
O Nessus10 é um remote security scanner. Esta aplicação permite efetuar uma auditoria remota a um
host ou conjunto de hosts de uma rede e verificar se existem problemas de segurança que possam ser
explorados para determinados serviços. Além de detetar problemas de segurança em serviços o Nessus
procura verificar se é de facto possível explorar as vulnerabilidades conhecidas para os serviços em
causa, funcionando como cracker. Algumas características do Nessus:

1. Os testes de segurança são escritos como plug-ins. O utilizador pode escrever os seus próprios
testes de segurança em C ou em NASL (Nessus Attack Scripting Language).

2. O conjunto de plug-ins (exploits) pode ser atualizado diariamente, à medida que novos problemas
de segurança vão sendo encontrados (e os respetivos scripts de teste para o nessus são produzidos).
Esta atualização pode ser feita on-line e de forma automática.

3. O nessus utiliza um cliente e um servidor que podem residir em máquinas separadas. O servidor
(nessusd) é responsável pelos testes de segurança. O cliente funciona como consola de gestão e
recebe do servidor o resultado dos testes.

Sara11 (Security Auditor’s Research Assistant)


O SARA é uma ferramenta de verificação remota de vulnerabilidades de segurança, à semelhança no
nessus. Esta ferramenta é derivada do SATAN, que durante alguns anos foi uma ferramenta open source
de referência nesta área (e que entretanto passou a produto comercial).

Outras informações
De entre muitas fontes de informação, destacam-se as seguintes entidades: CVE12 , SANS Institute13 ,
Lista BugTrack14 , e Sítio nmap15 .

9
http://www.tcpdump.org
10
http://www.nessus.org
11
http://www-arc.com/sara
12
Common Vulnerabilities and Exposures: http://cve.mitre.org
13
The Twenty Most Critical Internet Security Vulnerabilities: http://www.sans.org/top20/
14
http://seclists.org/#bugtraq
15
Top 75 Security Tools: http://www.insecure.org/tools.html

versão:ssr.tp.fx Net Tools v1.0 5/7 emarques@uma.pt


Exercícios
A realização destes exercícios necessita de acesso a uma máquina Linux/Unix com as ferramentas ins-
taladas. Recomenda-se a utilização de um computador com Linux e com permissões de instalação de
aplicações.
Use o espaço após cada questão para colocar as suas respostas e comandos completos usados.

Comandos monitorização
1. Responda às seguintes questões usando o ping ou outros comandos indicados.
(a) Com ajuda do comando ping envie 5 pacotes ICMP de 200 bytes ao apus.uma.pt (ICMP
ECHO REQUEST, ICMP ECHO REPONSE). Quais são os tempos mínimo, máximo e médio
dessa transmissão?
ping -c 5 -s 200 <ip> windows ping -n 5 -l <ip>

(b) Utilizando o comando traceroute, responda por quantos hops temos que passar para chegar à
rede apus.uma.pt (este comando pode ter de ser executado dentro do diretório /usr/sbin).

(c) Tente também realizar o traceroute para uma rede externa (por exemplo: www.google.com
ou outra). Quantos hops temos de passar para chegar ao destino?

(d) Execute o comando netstat -i. Quantas interfaces de rede existem na sua máquina?

encontrei 2

(e) Para cada uma delas indique o respetivo número IP (use netstat -i -e)
ipconfig windows

(f) Qual é o número IP de difusão (broadcast) da rede a que pertence a interface eth0 (caso seja
este o interface que está a utilizar)? (veja também o comando /sbin/ifconfig <interface>)

10.2.255.255/16

(g) Utilize o comando netstat para mostrar a tabela de routing do kernel da rede max.uma.pt.
Igualmente, utilize este comando para mostrar as estatísticas operacionais dos protocolos da

netstat -r
versão:ssr.tp.fx Net Tools v1.0 6/7 emarques@uma.pt
rede max. Quantos pacotes UDP foram recebidos?
para statistics netstat -s e mostra os poacotes

usando o gitbash netstat -s -p udp

2. Utilizar o nmap para determinar (use man nmap para obter ajuda):
(a) Os serviços disponíveis no servidor APUS (10.2.3.254).

nmap -A ip

(b) Que serviços sensíveis, e que podem ser alvos de ataque da rede, estão ativos no servidor web
da UMa (www.uma.pt) ?

(c) Que portas tcp estão abertas no servidor APUS ?

22/25/3306/443

(d) Quantos portas tcp estão fechadas no APUS ?

(e) Que serviços estão ativos nas portas 20, 22, 23, 30, 80, 137, 139, 3306 e 8080 do servidor web
da UMa?

(f) Que máquinas com o endereço IP 10.1.1.1 até 10.1.1.10 classe C estão a utilizar serviços
Web? Fazer uma análise de forma aleatória.

(g) Que máquinas da rede UMa com endereço IP (10.2.15.0) classe C estão ativos? Armazene os
seus resultados num arquivo texto usando os comandos de nmap.

(h) Efectue um TPC SYN scan ao servidor APUS e armazene o resultado no ficheiro outfile.txt.

versão:ssr.tp.fx Net Tools v1.0 7/7 emarques@uma.pt

Você também pode gostar