Proteggere la rete: tecnologie

Transcript

Proteggere la rete: tecnologie
Università degli Studi di Milano
Facoltà di Scienze Matematiche, Fisiche e Naturali
Proteggere la rete: tecnologie
Alessandro Reina <[email protected]>
Aristide Fattori<[email protected]>
A.A. 2011–2012
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
1 / 43
Firewall
Introduzione
tecnologia per la protezione dagli attacchi di rete piú diffusa
Internet firewall: sistema realizzato con lo scopo di proteggere
la rete interna di un’organizzazione da Internet
le configurazioni variano in funzione degli scopi per cui sono
impiegati
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
2 / 43
Firewall
Caratteristiche generali
tutto il traffico che entra ed esce da una rete intranet deve
passare attraverso il firewall
solo il traffico autorizzato potrà entrare o uscire dalla rete
il firewall deve essere il piú possibile immune da attacchi
Tipologie
packet filtering
circuit-level gateway
application-level gateway
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
3 / 43
Packet Filtering
Nella sua versione piú semplice consente di abilitare/disabilitare il
trasferimento di pacchetti (e quindi di dati) tra due reti basandosi
su:
IP del mittente
IP del destinatario
protocolli usati per trasferire i dati (FTP, HTTP, SMNP, . . . )
Vantaggi
Svantaggi
Semplice
Difficoltà di configurazione
Trasparente agli utenti
Meccanismi di
autenticazione
Opera ad alta velocità
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
4 / 43
Circuit level gateway
Proxy generici, in grado di operare con piú protocolli
contemporaneamente
opera a livello di trasporto
controlla la validità delle connessioni (TCP) rispetto ad una
tabella delle connessioni permesse prima di aprire una sessione
regole descrivono la validità di una sessione (user, password,
data, protocollo, porta sorgente/destinazione, etc.)
è necessario che le applicazioni di riferimento siano scritte
tenendo conto della sua presenza
disponibili proxy per la maggior parte dei servizi di rete
Vantaggi
Svantaggi
un unico programma è in
grado di gestire piú
protocolli
Alessandro Reina
generici ⇒ funzionalità non
molto distanti da quelle di
un packet filter avanzato
Proteggere la rete: tecnologie
A.A. 2011–2012
5 / 43
Application level gateway
Svolge le funzioni di relay tra il traffico a livello applicazione; si
interpone tra i client ed il server di un’applicazione:
opera a livello applicazione
intercetta e inoltra i messaggi client ↔ server
inoltra le risposte dal server al mittente originario
chiamato anche proxy server
Vantaggi
controlli piú sofisticati del
packet filtering
operazioni di logging piú
granulari
Alessandro Reina
Svantaggi
piú lento del packet filtering
maggiore richiesta di risorse
Proteggere la rete: tecnologie
A.A. 2011–2012
6 / 43
Architetture classiche
Bastion host
sistema piú esposto agli attacchi informatici
alcune pratiche consentono di rendere i bastion host meno
vulnerabili
utile come piattaforma per un application-level o circuit-level
gateway
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
7 / 43
Architetture classiche
Screened subnet firewall
Componenti:
2 router per packet filtering
1+ bastion host
obiettivo: creare una sottorete isolata dalla rete da proteggere
Fisicamente, tale architettura può essere realizzata anche con un
singolo host:
3 schede di rete
regole di packet filtering diverse per ogni scheda
⇒ l’architettura collassa in un singolo host (firewall)
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
8 / 43
Screened subnet firewall
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
9 / 43
Architetture classiche
Screened subnet firewall
La DMZ è il vero elemento distintivo dell’architettura:
disaccoppiamento fisico tra rete interna (con i servizi critici
per l’azienda) e DMZ (con i servizi di rete pubblici)
non consente ad un intrusore che riesca ad accedere ad un
bastion host di:
accedere direttamente alla rete interna (protetta da un
ulteriore livello di screening router)
intercettare il traffico della rete interna (potrebbe contenere
informazioni sensibili)
l’intrusore può intercettare traffico rete interna - bastion host
e internet - rete interna
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
10 / 43
IDS: Intrusion Detection System
Definizione
insieme di componenti hardware e software dedicate a
rilevare, automaticamente ed in tempo reale, il verificarsi
di un’intrusione in un sistema o in una rete
Componenti
sensori di rete (o agenti) + analizzatore centrale (ognuno su un host
dedicato)
sensori di rete installati su determinate porzioni di rete, solitamente quelle
con i sistemi piú critici
dati inviati all’analizzatore, che verifica la presenza di traffico sospetto e
attiva le procedure di allarme
Strategie di base
anomaly detection
misuse detection
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
11 / 43
IDS: Intrusion Detection System
Anomaly detection
Login frequency by day and time
Frequency of login at different locations
Time since last login
Password failures at login
Execution frequency
Execution denials
Read, write, create, delete frequency
Failure count for read, write, create and delete
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
12 / 43
IDS: Intrusion Detection System
Misuse detection
I caratteri distintivi di attacchi noti (signatures) vengono
memorizzati in appositi database di attacchi
alla ricezione di ogni pacchetto l’analizzatore confronta lo
stesso o la sequenza a cui appartiene con le signature
memorizzate nel proprio database
quando trova delle coincidenze attiva una serie di allarmi
può erroneamente riconoscere una sequenza di pacchetti
innocua come maligna e quindi provvedere ad attivare un falso
allarme (false positive)
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
13 / 43
Netfilter
Framework (http://www.netfilter.org)
Infrastruttura “fondamentale” nei kernel Linux versione 2.4.x e
2.6.x; permette:
packet filtering, stateless (IPv4/IPv6) e stateful (IPv4)
Source e Destination Network Address Translation (SNAT,
DNAT, masquerading)
packet mangling
infrastruttura flessibile ed estendibile via moduli kernel e
applicazioni user space
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
14 / 43
Netfilter
Caratteristiche principali
insieme di hook nel kernel che permettono a moduli di
registrare callback nello stack di rete TCP/IP
funzione di callback chiamata per ogni pacchetto che
attraversa il corrispondente hook
iptables è il tool in userspace usato per specificare le regole
del firewall
netfilter, iptables, connection tracking e NAT formano il
framework
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
15 / 43
Netfilter
Possibili utilizzi
firewall packet filtering, sia stateless che stateful
NAT in scenari SOHO e non solo
proxy trasparenti
alterare IP header per QoS, ToS, ECN, . . .
...
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
16 / 43
Tabelle e catene
Quali sono?
Attraversamento dei pacchetti
tabelle principali:
1
2
3
filter (default): filtraggio dei pkt
nat: modifica indirizzi IP e porte dei pkt
mangle: modifica bit configurazione header pkt (TOS, etc.)
catene di default:
1
2
3
4
5
INPUT (filter, mangle)
OUTPUT (filter, mangle, nat)
FORWARD (filter, mangle)
PREROUTING (mangle, nat → target DNAT)
POSTROUTING (mangle, nat → target SNAT)
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
17 / 43
Tabelle e catene
A cosa servono?
continued. . .
ogni catena raggruppa un insieme di regole che vengono
esaminate sequenzialmente, specificando cosa fare in caso di
match ⇒ target da seguire (terminating o non-terminating)
ogni catena built-in ha una policy di default: ACCEPT, DROP
possibilità di estendere il framework, tramite:
nuove funzionalità di match dei pacchetti (via regole)
nuovi target (estensioni via moduli e catene user-defined)
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
18 / 43
Overview Netfilter
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
19 / 43
iptables
Operazioni su regole e catene
Manipolazione di intere catene
creare una nuova catena user-defined
cancellare una catena vuota e non referenziata
cambiare la policy di default (built-in chain)
elencare le regole
flush delle regole
-N
-X
-P
-L
-F
Manipolazione di singole regole
aggiungere una regola in coda
inserire una regola in testa
sostituire una regola (ad una certa posizione)
cancellare una regola (ad una certa posizione)
Alessandro Reina
Proteggere la rete: tecnologie
-A
-I
-R
-D
A.A. 2011–2012
20 / 43
iptables
Esempi
# iptables -N test-chain
# iptables -X test-chain
# iptables -P INPUT DROP
# iptables -nL
Chain INPUT (policy DROP)
target
prot opt source
destination
Chain FORWARD (policy ACCEPT)
target
prot opt source
destination
Chain OUTPUT (policy ACCEPT)
target
prot opt source
destination
# iptables -F INPUT
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
21 / 43
iptables
Regole
ogni regola specifica un’insieme di condizioni che il pacchetto
deve soddisfare affinchè avvenga il match
a match avvenuto, il destino del pacchetto è deciso dal target
specificato nella regola
se nessuna regola fa match, viene applicata la policy di default
Flag per creazione regole
specificare source/destination
“negazione” di una condizione
specificare un protocollo (abilita anche estensioni)
specificare interfaccia di input/output
specificare porta sorgente/destinazione
Alessandro Reina
Proteggere la rete: tecnologie
-s/-d
!
-p
-i/-o
--sport/--dport
A.A. 2011–2012
22 / 43
iptables
Esempi regole
Esempio: ICMP
# iptables -A INPUT -s 127.0.0.1 -p icmp -j DROP
# ping -c 1 127.0.0.1
PING 127.0.0.1 (127.0.0.1): 56 data bytes
--- 127.0.0.1 ping statistics --1 packets transmitted, 0 packets received, 100% packet loss
Esempio: TCP
# iptables -A
-j
# iptables -A
-p
Alessandro Reina
INPUT -i eth0 -s trusted-ip -p tcp --dport 22
ACCEPT
FORWARD -i eth0 -s trusted-ip -d ip/mask \
tcp --dport 80 -j ACCEPT
Proteggere la rete: tecnologie
A.A. 2011–2012
\
23 / 43
Estendere iptables
Nuovi match: TCP
$ sudo iptables -p tcp --help
TCP v1.3.8 options:
--tcp-flags [!] mask comp
match when TCP flags & mask == comp
(Flags: SYN ACK FIN RST URG PSH ALL NONE)
[!] --syn
match when only SYN flag set
(equivalent to --tcp-flags SYN,RST,ACK SYN)
--source-port [!] port[:port]
--sport ...
match source port(s)
--destination-port [!] port[:port]
--dport ...
match destination port(s)
--tcp-option [!] number
match if TCP option set
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
24 / 43
Estendere iptables
Nuovi match
ICMP
$ sudo iptables -p icmp --help
ICMP v1.3.8 options:
--icmp-type [!] typename
match icmp type
(or numeric type or type/code)
Valid ICMP Types:
any
echo-reply (pong)
destination-unreachable
...
echo-request (ping)
...
UDP
$ sudo iptables -p udp --help
UDP v1.3.8 options:
n --source-port [!] port[:port]
--sport ...
match source port(s)
--destination-port [!] port[:port]
--dport ...
match destination port(s)
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
25 / 43
Estendere iptables
Connection tracking
Altre estensioni sono “abilitate” con il flag -m state
Stateful packet filtering
l’estensione state interpreta l’analisi di connection-tracking effettuata dal
modulo ip conntrack
$ sudo iptables -m state --help
state v1.3.8 options:
[!] --state [INVALID|ESTABLISHED|NEW|RELATED|UNTRACKED][,...]
State(s) to match
NEW: TCP SYN
ESTABLISHED: TCP SYN/ACK
RELATED: pkt correlato (FTP)
INVALID: pkt non identificato
# iptables -A FORWARD -i eth0 -m state --state NEW,INVALID \
-j DROP
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
26 / 43
Estendere iptables
User-defined chain
Cosa fare una volta che c’è stato un match?
ACCEPT e DROP (built-in)
target che sono catene user-defined
→ permettono di “annidare” regole
nuovi target
# iptables -N test-icmp
# iptables -A OUTPUT -p icmp -j test-icmp
# iptables -A test-icmp -d www.debian.org -j ACCEPT
# iptables -A test-icmp -d www.cnn.com -j DROP
# ping -c 1 www.cnn.com
PING cnn.com (64.236.24.20): 56 data bytes
ping: sendto: Operation not permitted
ping: wrote cnn.com 64 chars, ret=-1
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
27 / 43
Estendere iptables
Nuovi target
LOG
REJECT (--reject-with <type>)
RETURN (built-in)
QUEUE (built-in)
oltre ai classici ACCEPT e DROP
$ sudo iptables -A OUTPUT -d security.dico.unimi.it -p tcp --dport 80 \
-j REJECT --reject-with icmp-net-unreachable
$ nc security.dico.unimi.it 80
idea.sec.dico.unimi.it [159.149.155.69] 80 (www) : \
Network is unreachable
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
28 / 43
Esempi
Tabella filter
#
#
#
#
iptables -N test
iptables -A test -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A test -m state --state NEW -i ! ppp0 -j ACCEPT
iptables -A test -i ppp0 -m limit -j LOG \
--log-prefix ’Bad packet’
# iptables -A test -j DROP
# iptables -A INPUT -j test
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
29 / 43
Esempi
Tabella nat - Source NAT
SNAT target è utilizzato per Source Network Address Translation:
target riscrive l’IP sorgente nell’header IP del pkt. Utilizzato
quando diversi host devono condividere una connessione.
Source NAT
# iptables -t nat -A POSTROUTING -o ppp0 -j SNAT --to-source 1.2.3.4
Masquerading
# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Masquerading vs SNAT
Sono uguali?
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
30 / 43
Esempi
Tabella nat - Destination NAT
DNAT target utilizzato per rendere disponibile un servizio di una
rete interna con un IP pubblicamente accessibile.
Destination NAT
Cambia indirizzi di destinazione a 5.6.7.8:
# iptables -t nat -A PREROUTING -i ppp0 -j DNAT --to 5.6.7.8
Redirigi il traffico web verso 5.6.7.8, porta 8080:
# iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 \
-j DNAT --to 5.6.7.8:8080
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
31 / 43
Bypass (quasi) tutti i Firewall
SSH
Il client ssh è un programma per effettuare il login su una
macchina remota e per eseguire comandi sulla stessa.
Environment
LH: local host, macchina all’interno del restricted network
RH: remote host, macchina all’esterno del restricted network
(IP pubblico, server SSH)
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
32 / 43
Tunnel SSH
Esempio
LH: SSH non bloccato, ricezione/invio email solo dalla rete
interna; porta 25 (SMTP) e 110 (POP) aperte solo
dall’interno.
Problema
Se volessimo ricevere/inviare email da server esterni alla rete
locale?
Soluzione: tunnel
work@LH:~$ ssh user@RH -L 10025:EXT_SMTP_IPSVR:25 \\
-L 10110:EXT_POP_IPSVR:110
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
33 / 43
Tunnel SSH
Esempio
LH: SSH non bloccato, ricezione/invio email solo dalla rete
interna; porta 25 (SMTP) e 110 (POP) aperte solo
dall’interno.
Problema
Se volessimo ricevere/inviare email da server esterni alla rete
locale?
Soluzione: tunnel
work@LH:~$ ssh user@RH -L 10025:EXT_SMTP_IPSVR:25 \\
-L 10110:EXT_POP_IPSVR:110
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
33 / 43
Tunnel SSH
Esempio
LH: SSH non bloccato, porta 80 bloccata
Problema
Google down? No!!!
Soluzione: tunnel
work@LH:~$ ssh user@RH -L 8080:www.google.com:80
Mmm...
Qualche dubbio? Ora che facciamo?
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
34 / 43
Tunnel SSH
Esempio
LH: SSH non bloccato, porta 80 bloccata
Problema
Google down? No!!!
Soluzione: tunnel
work@LH:~$ ssh user@RH -L 8080:www.google.com:80
Mmm...
Qualche dubbio? Ora che facciamo?
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
34 / 43
Tunnel SSH
Esempio
LH: SSH non bloccato, porta 80 bloccata
Problema
Google down? No!!!
Soluzione: tunnel
work@LH:~$ ssh user@RH -L 8080:www.google.com:80
Mmm...
Qualche dubbio? Ora che facciamo?
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
34 / 43
Proxy SSH
Esempio
LH: SSH non bloccato, porta 80 chiusa.
Soluzione: SOCK circuit level gateway
dynamic application-level port forwarding:
ssh user@IP -D [bind_address:]port
1
socket in ascolto su port in locale oppure su bind address
2
quando si effettua una connessione su port la connessione
viene inoltrata sul canale sicuro
3
SOCK viene utilizzato per determinare dove connettersi dalla
macchina remota
work@LH:~$ ssh user@RH -D 8080
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
35 / 43
Esercizio Configurazione
H computer della rete a cui fa capo il firewall; nella
configurazione di test potrebbe essere un’altra macchina
virtuale oppure una fisica.
FW computer che svolge il ruolo di firewall; macchina (virtuale)
Linux su cui dev’essere configurato Netfilter.
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
36 / 43
Esercizio
0x00
Configurare la macchina FW in modo da consentire connessioni
SSH solamente se provenienti da H. In particolare, si richiede di
utilizzare l’infrastruttura di connection tracking di Netfilter in
modo da:
accettare tutti i pacchetti negli stati ESTABLISHED o
RELATED;
consentire il transito ai soli SYN relativi a connessioni SSH
dall’host H.
Verificare che le connessioni SSH provenienti da host diversi da H
siano rifiutate come previsto.
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
37 / 43
Esercizio
0x01
Negli ultimi mesi si sono registrati diversi tentativi di brute-forcing
su porta SSH. Gli attaccanti solitamente utilizzano script
automatici per effettuare un elevato numero di tentativi di login,
provando diverse combinazioni di nome utente e password.
quale delle estensioni discusse a lezione potrebbe essere utile
per ostacolare questo tipo di attacco?
implementare in Netfilter la soluzione ideata.
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
38 / 43
Esercizio
0x02
L’obiettivo dell’esercizio è scrivere una sorta di “replayer” di
traffico TCP.
<IP host FW>:1234
H
FW
<IP host H>:5678
Utilizzando le funzionalità di SNAT/DNAT di Netfilter, configurare
l’host FW in modo che tutte le connessioni provenienti da H e
dirette verso la porta TCP 1234 siano redirette sull’host H stesso,
porta 5678.
Utilizzare netcat per verificare la correttezza della soluzione
proposta.
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
39 / 43
Riferimenti
http://www.netfilter.org
iptables(8)
Networking Concepts HOWTO
Packet Filtering HOWTO
NAT HOWTO
Alessandro Reina
Proteggere la rete: tecnologie
A.A. 2011–2012
40 / 43