1. O documento descreve várias ferramentas para captura de tráfego de rede, incluindo NIDS (Snort), tcpdump e tshark. 2. Explica como o Snort funciona em modo passivo para detecção de intrusão e fornece exemplos de regras. 3. Demonstra como tcpdump e tshark podem ser usados para capturar pacotes em formato libpcap e extrair informações desses pacotes.
1. Captura de Informa¸˜o em Rede
ca
Ulisses Ara´jo Costa
u
18 Fevereiro, 2010
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
2. Sum´rio
a
1 NIDS
2 Snort
3 tcpdump
4 Parsing
5 tshark
Estat´ısticas
Sess˜es HTTP
o
6 Descri¸˜o
ca
Uso da ferramenta
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
3. NIDS - Network Intrusion Detection System
Sistema de detec¸˜o de intrus˜o de rede
ca a
Tenta detectar actividade maliciosa (ataques DoS, DDos, port
scans, tentativas de cracking )
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
4. Como funciona
An´lise de todos os pacotes
a
Tenta encontrar padr˜es suspeitos
o
Exemplo - port scanners
Se um grande n´mero de pedidos de conec¸˜es TCP para um
u co
grande n´mero de portas diferentes num curto espa¸o de tempo
u c
ent˜o o NIDS conclu´ que podemos estar a ser alvo de um scan de
a ı
portos.
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
5. Sum´rio
a
1 NIDS
2 Snort
3 tcpdump
4 Parsing
5 tshark
Estat´ısticas
Sess˜es HTTP
o
6 Descri¸˜o
ca
Uso da ferramenta
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
6. Defini¸˜o
ca
SNORT is an open source network intrusion prevention
and detection system utilizing a rule-driven language,
which combines the benefits of signature, protocol and
anomaly based inspection methods. With millions of
downloads to date, Snort is the most widely deployed
intrusion detection and prevention technology worldwide
and has become the de facto standard for the industry.
Modo passivo
Modo activo = firewall
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
7. Abordagem - Snort
Usar o Snort para capturar todo o trafego que conseguir em modo
passivo.
root@pig:# snort -u snort -g snort -D -d -l /var/log/snort -c /etc/snort/snort.debian.conf -S -i
eth0
Grava log em binario (formato tcpdump)
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
8. Abordagem - Snort - Sintaxe Regras
O Snort usa regras para poder fazer o matching do tr´fego. O
a
cabe¸alho de uma regra cont´m os seguintes campos:
c e
Ac¸˜o (log, alert)
ca
Protocolo (ip, tcp, udp, icmp, any)
IP origem e Porto
IP destino e Porto
Operador de direc¸˜o (− >, ”<>”)
ca
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
9. Abordagem - Snort - Sintaxe Regras
Os endere¸os IP de destino ou de origem podem ser:
c
Vari´veis ($HOME NET)
a
Endere¸os de IP individuais
c
blocos CIDR
Listas do tipo: [192.168.3.12,192.168.3.9]
Os portos podem ser:
Portos individuais
Ranges de portos (”80:85”, ”:1024”, ”1025:”)
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
10. Abordagem - Snort - Regras
alert tcp any any -> 192.168.1.0/24 21 ( content : " user root "; msg : " FTP root
login ";)
alert tcp any any -> 192.168.1.0/24 21 ( content : " USER root "; msg : " FTP root
login ";)
Estas duas regras dizem ao Snort para quando encontrar tr´fego
a
vindo de qualquer host e em direc¸˜o ao IP 192.168.1.0/24 para o
ca
porto 21 e cujo conte´do tenha a string ”user root”ou ”USER
u
root”ent˜o imprimir no ecran o alerta: ”FTP root login”.
a
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
11. Abordagem - Snort - Regras
A seguinte regra encontra e grava em ficheiro todas as sess˜es
o
Telnet que se estabele¸am com o host 192.168.1.0/24.
c
log !192. 168.1.0/24 any <> 192.168.1.0/24 23
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
12. Sum´rio
a
1 NIDS
2 Snort
3 tcpdump
4 Parsing
5 tshark
Estat´ısticas
Sess˜es HTTP
o
6 Descri¸˜o
ca
Uso da ferramenta
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
13. Abordagem - tcpdump
O tcpdump ´ um programa que corre num computador e
e
grava todos os pacotes que chegam a um interface de rede.
Ouve tudo o que a interface recebe
Os ficheiros ficam guardados no formato libpcap.
Correr o tcpdump ligado a um hub.
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
14. Abordagem - tcpdump
Correr o tcpdump numa Gateway.
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
15. Sum´rio
a
1 NIDS
2 Snort
3 tcpdump
4 Parsing
5 tshark
Estat´ısticas
Sess˜es HTTP
o
6 Descri¸˜o
ca
Uso da ferramenta
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
16. Depois de ter o ficheiro. . .
Implementa¸˜o de filtros segundo determinadas regras
ca
Agrega¸˜o de pacotes segundo regras (onde o Snort n˜o
ca a
chega)
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
17. Problema - parsing
Fazer parsing de tcpdump
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
18. Exemplo - pacote SSH
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
19. Implementa¸˜o em Haskell
ca
getPacket :: [ Word8 ] -> InPacket
getPacket bytes = toInPack $ listArray (0 , Prelude . length bytes -1) $ bytes
-- Ethernet | IP | TCP | X
getPacketTCP :: [ Word8 ] -> Maybe ( NE . Packet ( NI4 . Packet ( NT . Packet InPacket ) ) )
getPacketTCP bytes = doParse $ getPacket bytes :: Maybe ( NE . Packet ( NI4 . Packet (
NT . Packet InPacket ) ) )
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
20. Sum´rio
a
1 NIDS
2 Snort
3 tcpdump
4 Parsing
5 tshark
Estat´ısticas
Sess˜es HTTP
o
6 Descri¸˜o
ca
Uso da ferramenta
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
25. Sum´rio
a
1 NIDS
2 Snort
3 tcpdump
4 Parsing
5 tshark
Estat´ısticas
Sess˜es HTTP
o
6 Descri¸˜o
ca
Uso da ferramenta
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
29. Sum´rio
a
1 NIDS
2 Snort
3 tcpdump
4 Parsing
5 tshark
Estat´ısticas
Sess˜es HTTP
o
6 Descri¸˜o
ca
Uso da ferramenta
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
30. Sess˜es HTTP
o
Quando queremos obter determinada informa¸˜o, se for muito
ca
especifica, o tshark sozinho pode n˜o conseguir l´ chegar. Assim
a a
usamos como apoio outras linguagens que suportem o tshark afim
de conseguir a informa¸˜o que pretendemos.
ca
Neste caso queremos mostrar as sess˜es HTTP de um determinado
o
utilizador.
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
31. Sess˜es HTTP- implementa¸˜o
o ca
#!/ usr / bin / bash
file = $1
user = $2
for cookie in ‘ tshark -r $file -R " http . request and http contains $user " -T
fields -e http . cookie | tr " " " _ " ‘
do
sid = ‘ echo $cookie | cut -d ’_ ’ -f 2 | tr -d "015" ‘
tmpfile =" tmp_ ‘ echo $sid | cut -d ’= ’ -f 2 ‘. cap "
echo " Processing session cookie $sid to $tmpfile "
tshark -r $file -w $tmpfile -R ‘ tshark -r $file " http . request and http . cookie
contains " $sid "" -T fields -e tcp . srcport | awk ’{ printf ("% stcp . port
==% s " , sep , $1 ) ; sep ="||"} ’ ‘
done
mergecap -w $user . cap ‘ ls -1 tmp_ *. cap ‘
rm ‘ ls -1 tmp_ *. cap ‘
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
32. Sum´rio
a
1 NIDS
2 Snort
3 tcpdump
4 Parsing
5 tshark
Estat´ısticas
Sess˜es HTTP
o
6 Descri¸˜o
ca
Uso da ferramenta
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
33. Ferramenta
Ap´s an´lise de v´rias ferramentas
o a a
Necessidade de criar uma linguagem menor que a que
descreve frames de rede
Cada linha representa o estado de uma liga¸˜o
ca
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
35. Ferramenta - Sintaxe do input
Data Protocolo T IPOrig PortOrig IPDst PortDst Info
2009-12-09-06:31:59.3902 tcp(6) S 88.44.123.210 3637 192.168.1.50 139
2009-12-07-16:06:28.9343 tcp(6) S 82.155.0.49 22617 192.168.1.50 139
2009-12-09-11:41:25.6859 tcp(6) E 82.155.1.160 4399 192.168.1.50 445: 00
2009-12-07-16:20:04.5996 tcp(6) - 82.155.122.18 61582 192.168.1.50 139: 40 R
2009-12-14-09:04:38.2678 icmp(1) - 80.236.5.27 192.168.1.50: 3(13): 5
2009-12-17-01:11:47.6209 tcp(6) - 82.154.64.174 34507 192.168.1.50 445: 40 RA
2009-12-19-18:25:03.3130 tcp(6) - 124.8.74.33 1806 192.168.1.50 25: 70 FPA
2009-12-14-09:54:27.6131 tcp(6) - 168.167.152.228 58274 192.168.1.50 445: 52 FA
2009-12-14-09:54:27.6131 tcp(6) - 168.167.152.228 58274 192.168.1.50 445: 52 FA
2009-12-14-09:54:27.6131 tcp(6) - 82.155.57.245 58274 192.168.1.50 445: 52 PA
2009-12-14-09:54:27.6131 tcp(6) - 193.136.19.149 58274 192.168.1.50 445: 52 PA
2009-12-07-20:59:29.6910 tcp(6) - 88.175.73.149 4332 192.168.1.50 139: 40 R
2009-12-09-11:57:04.2741 tcp(6) - 82.155.137.139 1230 192.168.1.50 445: 40 A
2009-12-07-18:35:28.4232 tcp(6) - 82.155.7.176 2794 192.168.1.50 445: 40 A
2009-12-07-15:34:49.0070 tcp(6) - 82.155.116.238 3578 192.168.1.50 23: 60 S
2009-12-07-16:06:29.2781 tcp(6) - 124.207.41.198 48804 192.168.1.50 23: 40 S
2009-12-15-22:59:03.4039 udp(17) - 192.168.1.254 67 192.168.1.50 68: 298
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
36. Ferramenta - Sintaxe do input
A coluna da Date tem uma marca temporal de quando a
comunica¸˜o ocorreu.
ca
A coluna Protocolo cont´m informa¸˜o sobre o protocolo de
e ca
transporte que foi usado, TCP, UDP ou ICMP. Mesmo assim
quando ´ feita uma pesquisa n˜o comum de rede pode ser um
e a
outro qualquer protocolo de internet.
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
37. Ferramenta - Sintaxe do input
A terceira coluna (T) contem a informa¸˜o do tipo de conex˜o:
ca a
S significa que a liga¸˜o come¸ou (Start)
ca c
E significa que a liga¸˜o terminou (End)
ca
- significa que o package n˜o corresponde a nenhuma
a
conex˜o.
a
As pr´ximas quatro colunas correspondem a informa¸˜o sobre o IP
o ca
de destino, o porto de destino, o IP de origem e o porto de origem.
Para o protocolo ICMP as colunas das portas est˜o vazias porque
a
este protocolo n˜o usa portas.
a
A coluna Info cont´m informa¸˜o relativa a uma conex˜o ou um
e ca a
pacote. Quando uma conex˜o termina este cont´m o n´mero de
a e u
bytes recebidos e enviados.
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
38. Ferramenta - Sintaxe do input
Para os pacotes de sondagem estes contˆm informa¸˜o adicional:
e ca
TCP O tamanho do pacote e as flags que est˜o no header.
a
F (Fin) - N˜o existe mais informa¸˜o para
a ca
enviar
S (Syn) - Sincroniza n´meros de sequenˆncia
u e
R (Rst) - Faz Reset ` conex˜o
a a
P (Push) - Esta flag diz ao host receptor para
fazer um push a toda a informa¸˜o
ca
para a aplica¸˜o que vai receber a
ca
informa¸˜o, b´sicamente diz: ”chega
ca a
por agora”.
A (Ack) - Indica que o campo ACKnowledgment
est´ preenchido, com o valor do
a
ACKnowledgment
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
39. Ferramenta - Sintaxe do input
U (Urg) - Indica que o campo URGent est´ preenchido. Esta
a
flag serve para indicar que a informa¸˜o contida
ca
neste campo ter´ de ser tratada com uregencia, antes
a
dos pacotes normais serem tratados.
E (ECE) - Indica que o protocolo TCP ´ capaz de Explicit
e
Congestion Notification durante o 3-way handshake.
C (CWR) - Flag de Congestion Window Reduced ´ usada para
e
indicar que foi recebida um segmento TCP com a
flag ECE
ICMP O c´digo, o tipo e o tamanho do pacote.
o
UDP Tamanho do pacote
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
40. Ferramenta - Sintaxe do input
O cabe¸alho de um pacote TCP cont´m espa¸o para todas estas
c e c
flags que foram descritas. Como podemos ver na imagem:
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
41. Sum´rio
a
1 NIDS
2 Snort
3 tcpdump
4 Parsing
5 tshark
Estat´ısticas
Sess˜es HTTP
o
6 Descri¸˜o
ca
Uso da ferramenta
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
42. Ferramenta - output
Com este programa conseguimos gerar por exemplo as
comunica¸˜es entre o host 193.136.19.96 e o host 192.168.74.242
co
pelo porto 80 (HTTP), em bytes:
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
43. Ferramenta - output
No seguinte gr´fico conseguimos ver o n´mero de liga¸˜es que
a u co
houve durante um periodo de tempo ` m´quina 192.168.74.242
a a
por IP de origem:
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
44. Ferramenta - output
Mostra a quantidade de tr´fego recebido pela m´quina
a a
193.136.19.96 no porto 80 (HTTP), vindo de todos os IP’s que
comunicaram consigo:
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
45. Ferramenta - output
N´mero de hits no porto 80 do IP 192.168.1.50:
u
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
46. Ferramenta - output
N´mero de hits nos portos do IP 192.168.1.50:
u
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
47. Conclus˜es
o
tshark ´ o verdadeiro canivete sui¸o de frames de rede
e c
Todas as ferramentas tiveram pontos fortes
Nenhuma resolveu totalmente o nosso problema
Software est´ reparado para ser extendido e suportar outros
a
protocolos de qualquer Layer.
Desenvolver conversor libpcap para a linguagem utilizada, ver
relat´rio para sugest˜es de implementa¸˜o.
o o ca
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca
48. Fim
?
Ulisses Ara´jo Costa
u Captura de Informa¸˜o em Rede
ca