112
Sicurezza nelle Reti Prof. Claudio A. Ardagna, Dr. Marco Anisetti, Dr. Valerio Bellandi, Dott. Fulvio Frati http://homes.di.unimi.it/anisetti/index.html Università degli Studi di Milano

index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

  • Upload
    others

  • View
    4

  • Download
    1

Embed Size (px)

Citation preview

Page 1: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Sicurezza nelle Reti

Prof. Claudio A. Ardagna, Dr. Marco Anisetti, Dr. Valerio Bellandi, Dott. Fulvio Frati

http://homes.di.unimi.it/anisetti/index.html

Università degli Studi di Milano

Page 2: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Firewall

Lo scopo principale di un firewall è di controllare

l’accesso da e per una rete protetta

Il controllo è effettuato obbligando le connessioni a

passare attraverso il firewall, dove vengono esaminate

e valutate

Un firewall può essere un router o anche un PC,

posizionati topologicamente per proteggere host o

sottoreti

2

Page 3: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Personal firewall (1)

Identifica protezione orientata al singolo host

Un firewall è un filtro software che serve a proteggersi da

accessi indesiderati provenienti dall’esterno della rete

internet

3

Page 4: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Personal Firewall (2)

Windows dispone di un personal firewall.

E’ possibile installare anche altri personal firewall come ad

esempio Comodo o ZoneAllarm, Kerio...

In ogni caso bisognerà indicare la firewall cosa far passare

e cosa bloccare.

4

Page 5: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Firewall di Windows (1)

Selezionare la scheda di rete da proteggere. Ogni scheda

è un ingresso verso il nostro pc.

5

Page 6: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Firewall di Windows (2)

Nella finestra che si apre selezionate il tab “Avanzate”

6

Page 7: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Firewall di Windows (3)

Il firewall deve essere abilitato (se non è in uso un firewall

di terze parti)

7

Page 8: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Firewall di Windows (4)

Con la tab avanzate è possibile indicare a quali schede

associare la protezione via firewall

8

Page 9: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Firewall di Windows (5)

Con la tab eccezioni si abilitano le applicazioni ad

attraversare o meno il firewall

9

Page 10: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Ripasso reti

Concetti di base

Pacchetti e ISO/OSI

Livelli applicativi

10

Page 11: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Tre principi inderogabili dei firewall

FW deve essere l’unico punto di contatto della rete interna con quella esterna

Solo il traffico “autorizzato” può attraversare il FW

Il FW deve essere un sistema altamente sicuro esso stesso

D.Cheswick

S.Bellovin

11

Page 12: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Controlli del Firewall e ISO/OSI

12

Physical

Datalink

Network

Transport

Application

IP header TCP/UDP header Data payload

application gateway

circuit gateway

packet filter

Page 13: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Firewall di rete

Il firewall può essere una macchina dedicata che filtra

tutto il traffico da e per una rete locale

internet

13

Page 14: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Senza protezione perimetrale

internet

LAN

ftp

telnet

ssh

14

Page 15: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

ssh

telnet

Con protezione perimetrale

internet

LAN

ftp

15

Page 16: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Considerazioni architetturali

Spesso alcuni PC della nostra rete forniscono servizi

pubblici che devono essere raggiungibili dall’esterno.

Se utilizzassi un firewall come indicato in precedenza

questo comporterebbe la teorica raggiungibilità di

qualsiasi pc della rete.

Per ovviare a questo problema si usa suddividere

ulteriormente la rete protetta da firewall in due zone

16

Page 17: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

DMZ e rete pubblica

Una rete pubblica è quel tratto di rete visibile da tutto il "mondo". In questa rete possono essere situati un web server, un mail server, ecc...

La rete pubblica in gergo tecnico viene anche chiamata DMZ (De-Militarized Zone, Zona De-Militarizzata): è un tratto di rete in cui il firewall permette l'accesso a tutti.

La rete privata è una rete i cui computer possono accedere a internet ma non vengono visti dal "mondo".

17

Page 18: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Perimetro della rete

Rete

DMZ

BORDER

router

internet

ISP

router

Firewall

WEB server

MAIL server

FTP DNS

Rete internaPerimetro della rete

aziendale

18

Page 19: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Separazione in zone di sicurezza

Sul firewall dovranno essere installate tre interfacce di

rete:

una che servirà per il collegamento internet

una per la rete privata o rete interna

una per la DMZ

Questa architettura si chiama anche Three-legged

architecture.

19

Page 20: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Zone di sicurezza

Rete

DMZ

BORDER

router

internet

Firewall

Rete DMZ

Rete

INTERNA

comunicazione comunicazione

20

Page 21: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Protezione di rete Tutto il traffico fra la rete locale ed Internet deve essere

filtrato dal firewall

Solo il traffico autorizzato deve attraversare il firewall

Si deve comunque permettere che i servizi di rete ritenuti necessari siano mantenuti

Il firewall deve essere, per quanto possibile, immune da problemi di sicurezza sull’host

In fase di configurazione di un firewall, per prima cosa si deve decidere la politica di default per i servizi di rete default deny: tutti servizi non esplicitamente permessi sono negati default allow: tutti i servizi non esplicitamente negati sono permessi

21

Page 22: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Effetti di un firewall

per ogni sottorete protetta da un firewall si possono definire politiche di accesso

solo i componenti esterni al firewall sono direttamente accedibili (senza protezione)

gestione delle connessioni tra le diverse interfacce del firewall. Ad esempio, si consentono connessioni da Internet alla Rete DMZ, ma non da Internet verso la Rete Interna

realizza una separazione in zone aventi diverso grado di sicurezza nella architettura di rete

22

Page 23: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

I primi firewall

23

Basati su ‘Unix-based gateway(Mogul, 1989) ULTRIX (Ranum, 1992)

Gatekeeper proxy applicativo: raccoglie le richieste applicative dall'interno e le manda verso l'esterno

Gate filtra il traffico

Page 24: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Firewall Cisco

24

Page 25: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Livelli di implementazione

Un firewall può essere implementato come

Static packet filtering (stateless filter)

Stateful filtering

Proxy server

application gateway

circuit-level gateway

25

Page 26: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Packet Filtering

Page 27: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Static Packet filter (1)

Controllo del traffico basato unicamente sulle informazioni contenute negli header dei singoli pacchetti

I valori dei parametri degli header dei pacchetti vengono confrontati con le regole definite in un una ACL (Access Control List) e ammessi o scartati secondo il risultato del confronto

Ogni pacchetto viene quindi esaminato singolarmente, indipendentemente dai pacchetti precedentemente ricevuti e da quelli successivi

27

Page 28: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Static Packet filter (2)

Sul firewall si configura un filtro sui datagrammi IP da

trasferire attraverso le varie interfacce

Il filtro scarta i datagrammi sulla base di

tipo di servizio a cui il datagramma è destinato (porta

TCP/UDP oppure campo PROTOCOL)

indirizzo IP sorgente o destinazione

indirizzo MAC sorgente o destinazione

interfaccia di provenienza o destinazione

28

Physical

Datalink

Network

Transport

Application

Page 29: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Static Packet filter SPF (2)

È la prima e più semplice tecnologia adottata per i sistemi di firewall

Nei sistemi odierni è stata superata dalla tecnologia di tipo stateful ma continua a essere usata nei sistemi di fascia bassa e nei router per la sua semplicità e per le ottime performance.

E’ fondamentale per comprendere il meccanismo di filtraggio.

29

Page 30: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Static Packet filter SPF (3)

indipendente dalle applicazioni

ottima scalabilità

controlli poco precisi: più facile da “fregare” (es. IP spoofing)

ottime prestazioni

basso costo (disponibile su router e molti SO)

arduo supportare servizi con porte allocate dinamicamente (es. FTP)

30

Page 31: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Applicazioni di SPF

Spesso, per alcuni servizi, si impone che le comunicazioni

vengano regolate in modo tale che: dalla rete interna si

possa raggiungere l’esterno ma non il contrario.

Es. ssh, ping…

31

Page 32: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

SPF: connessioni TCP

Una connessione TCP passa attraverso il 3-way

Handshake (scambio di pacchetti bidirezionale)

Attraverso i FLAG dell’header TCP possiamo

supportare la politica di sicurezza analizzata. (SYN-

SYN/ACK- ACK)

internet

SYN

Rete

INTERNA

32

Page 33: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

SPF: protocolli connectioneless

I protocolli connectionless (UDP, ICMP) possono essere

sia unidirezionali che bidirezionali, in funzione delle

diverse applicazioni.

PING (ICMP): bidirezionale

Source Quench (ICMP): unidirezionale

DNS Query (UDP): bidirezionale

33

Page 34: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

SPF: Efficacia

Spoofing: controllo degli indirizzi IP sorgente

Tentate Connessioni: controllo degli indirizzi IP, delle porte di destinazione e dei flag TCP

Traffico ICMP: tipo e codice messaggi ICMP

Source Routing: impedisce traffico con l’opzione di Source Routing attiva

Spesso la funzionalità di SPF viene svolta dal BorderRouter (dispositivo fisico) invece che da un componente specificatamente dedicato alla funzione di firewall.

34

Page 35: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

SPF: riflessioni

Utile se configurato su un router come primo livello di

protezione perimetrale

Protegge solo da tecniche di attacco non sofisticate

Utile per valutare il funzionamento dei protocolli

applicativi

35

Page 36: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Packet filtering stateful

Un packet filter può essere stateful o stateless ma

praticamente tutte le implementazioni di packet filters

stateful offrono anche un qualche tipo di protocol

inspection per cui sono dei multilayer stateful firewall

36

Page 37: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Protocol inspection

La stateful inspection è quel processo per cui ogni singola connessione autorizzata viene registrata dal firewall in una apposita tabella (la cosiddetta connection o state table) Oltre all'ip sorgente e di destinazione, solitamente vengono registrati

tanti altri dati, quali il protocollo, le porte, i flag, i sequence number, ecc.

In questo modo, è difficile per un hacker potersi inserire in una connessione stabilita (il cosiddetto session hijacking).

In pratica, ogni volta che un pacchetto arriva al firewall, viene verificato se esso fa parte di una connessione precedentemente stabilita in caso affermativo, esso viene lasciato passare senza ulteriori

controlli sulle catene del firewall stesso, altrimenti subisce la sorte di un normale pacchetto in ingresso

37

Page 38: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Packet filtering: Considerazioni

Comunque anche con la migliore configurazione il packet

filter non verifica il contenuto dei pacchetti per cui non

può bloccare virus ed ha problemi con protocolli che

negoziano le porte, come ad esempio FTP attivo

38

Page 39: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Servizi su internet

Porte e servizi

principali

39

Page 40: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Access Control List (ACL)

Le ACL definiscono le regole per il filtraggio statico dei pacchetti in transito.

Semantica ACCEPT/DENY

Criterio TOP-DOWN di filtraggio: la prima regola che viene verificata produce la decisione sul

pacchetto

il test del pacchetto continua fino a che una regola corrisponde alle caratteristiche del pacchetto oppure fino a che la lista di regole termina

di norma esiste una regola di DEFAULT

40

Page 41: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Access Control List (ACL)

Le ACL permettono di scegliere tra due strategie:

Default Permit

Default Deny

Usate nei router CISCO

Packet filtering che applica le ACL lavora al Network layer

della pila OSI, oppure al livello Internet layer della pila

TCP/IP.

41

Page 42: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Perché usare le ACL

Limitare il traffico indesiderato migliorando le performance della rete

Le ACL permettono il controllo del flusso del traffico restringendo la delivery degli update per il routing

Possono essere usato in aggiunta ad altre tecniche di controllo della sicurezza.

Controllano il tipo di traffico che viene rigirato o bloccato dal router.

Possibilità di controllare a quale area un client accede.

42

Page 43: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Tipi di ACL

Secondo gli standard Cisco si hanno:

STANDARD ACL

Numerate tra 0 e 99.

Filtrano solo gli indirizzi IP sorgente

EXTENDED ACL

Numerate tra 100 e 199

Filtrano indirizzi IP sorgente, destinatario,protocollo, porte UDP e TCP e tipo/codice messaggi ICMP

43

Page 44: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Standard ACL

Access-list numero azione sorgente [wild card] | any

Numero: da 0 a 99 per ACL Standard

Azione: permit oppure deny

Sorgente: indirizzo IP sorgente

Wild Card: vedi la prossima diapositiva

Any: qualunque valore

Esempio:

Access-list 20 permit 192.168.1.0 0.0.0.255

44

Page 45: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Wild Card

Determina la parte dell’indirizzo IP da verificare e quella da ignorare

È simile alla netmask ma ha una semantica dei valori invertita: valore binario 1: bit dell’indirizzo IP che non deve essere

verificato valore binario 0: bit dell’indirizzo IP che deve essere

verificato

Access-list 20 permit 192.168.1.0 0.0.0.255

11111111Vengono usate anche in Enhanced Interior Gateway Protocol (EIGRP) e OSPF.

45

Page 46: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

ACL: esempi

Access-list 17 permit host 192.168.1.100

Access-list 17 deny 192.168.1.0 0.0.0.255

Access-list 17 permit any

Keyword host: si usa quando si indica un indirizzo IP unico

analogo alla wild card 0.0.0.0

Regola di default: permit any oppure deny any

i router Cisco, se non specificato nulla nell’ACL, implicitamente applicano deny any

46

Page 47: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Ingress vs. Egress firewall

ingress firewall collegamenti incoming tipicamente verso servizi offerti all'esterno talvolta come parte di una comunicazione attivata

dall'interno

egress firewall collegamenti outgoing controllo dell'attività del personale

distinzione facile per servizi orientati al canale (es. applicazioni TCP), difficile per servizi basati su datagrammi (es. ICMP, applicazioni UDP)

47

Page 48: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Filtraggio

48

Packet filter

Forwarding

engine

filtro

filtro

filtro

filtro

Incoming

packets

outgoing

packets

Page 49: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Ingress ACL

Access-list 14 deny 10.0.0.0 0.255.255.255

Access-list 14 deny 127.0.0.0 0.255.255.25

Access-list 14 deny 172.16.0.0 0.15.255.255

Access-list 14 deny 192.168.0.0 0.0.255.255

Access-list 14 deny <la propria rete interna> <wild card>

Access-list 17 permit any

Queste ACL bloccano ogni traffico con sorgente IP di rete locale (come definito in RFC 1918 )

49

Page 50: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

DDoS con indirizzi locali

Esistono casi di siti web personali vittime di attacchi di

distributed denial of service (DDoS) lanciati interamente

usando indirizzi inclusi in RFC 1918, ovvero indirizzi di

rete locale.

Se l’ ISP (Internet Service Provide) avesse bloccato in

ingress gli indirizzi, l’attacco non sarebbe mai avvenuto.

50

Page 51: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

RFC 2827

Definisce come dovrebbero essere impostati gli ingress and egress filtering a seconda della rete assegnata all’organizzazione.

Se si ha a disposizione192.0.2.0/24 questi sono gli ip che dovrebbero essere usati dalla rete

Ogni pacchetto che abbandona la rete dovrebbe avere una sorgente all’interno del range 192.0.2.0/24.

Ogni pacchetto entrante non dovrebbe avere indirizzi in tale range

51

Page 52: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Egress ACL

Access-list 14 permit <la propria rete interna> <wild

card>

Access-list 14 deny any

52

Page 53: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Extended ACL: formato

Access-list numero azione tipo sorgente [wild card] opzioni destinazione [wild card] [log]

Numero: da 100 a 199 per ACL Extended

Azione: permit/deny

Sorgente: indirizzo IP sorgente

Destinazione: indirizzo IP destinazione

Type: IP, UDP o TCP

Opzioni: Porte TCP/UDP, Tipo/Codice ICMP, operatori speciali

Log: opzionale. Scrive un messaggio in un log per ogni pacchetto verificato da una regola

53

Page 54: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Extended ACL

Gli esempi della slide successiva mostrano come un

amministratore possa indicare le porte TCP o UDP

mettendole alla fine della extended ACL.

Si possono usare operatori logici come: equal (eq), not

equal (neq), greater than (gt), and less than (lt).

54

Page 55: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Esempi

Using Port Numbers

acces-list 101 permit tcp 192.168.2.0 0.0.0.255 any eq 23

acces-list 101 permit tcp 192.168.2.0 0.0.0.255 any eq 21

acces-list 101 permit tcp 192.168.2.0 0.0.0.255 any eq 20

Using keywords

acces-list 101 permit tcp 192.168.2.0 0.0.0.255 any eq telnet

acces-list 101 permit tcp 192.168.2.0 0.0.0.255 any eq ftp

acces-list 101 permit tcp 192.168.2.0 0.0.0.255 any eq ftp-data

55

Page 56: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

EXTENDED ACL: operatore ESTABLISHED

Permette di filtrare il traffico in ingresso verificando se i

flag RST o ACK sono attivi

In questo modo si permette l’ingresso di tali pacchetti

solo in presenza di una sessione TCP già stabilita, evitando

attività di scanning

56

Page 57: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Esempio di configurazione (1)Restringere l’ Internet access permettendo solo il browsing web. ACL 101 per il

traffico che lascia la rete 192.168.2.0 e ACL 102 per il traffico in entrata.

57

Page 58: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Esempio di configurazione (2)

R1(config)#access-list 101 permit tcp 192.168.2.0

0.0.0.255 any eq 80

R1(config)#access-list 101 permit tcp 192.168.2.0

0.0.0.255 any eq 443

R1(config)#access-list 102 permit tcp 192.168.2.0

0.0.0.255 any eq established

58

Page 59: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Esempio di configurazione (3) ACL 101 permette richieste dalle porte 80 e 443

ACL 102 permette risposte HTTP e HTTPS se la comunicazione è established.

ACL 101 Permette il traffico che arriva da ogni indirizzo della rete 192.168.2.0 di proseguire verso ogni destinazione, a patto che il traffico sia diretto verso una porta 80 (HTTP) o 443 (HTTPS).

La natura della connessioni HTTP richiede anche un traffico che ritorni dal destinatario, in questo caso l’amministratore vuole restringere il traffico alle sole risposte HTTP determinate da una richiesta partita dalla rete. La soluzione più sicura è vietare ogni altro tipo di traffico in ingresso.

ACL 102 ottiene quanto voluto bloccando tutto il traffico in ingresso ad eccezione di quello derivante da una connessione già stabilita dall’interno.

59

Page 60: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

ACL e interfacce

Router(config-if)# ip access-group access-list number{in|out}

Access-list-number: Indica il numero della ACL che deve essere legata all’interfaccia.

In|out: Specifica se la ACL va applicata all’interfaccia in entrata o in uscita. Un’ACL in input fa sì che il router applichi prima l’ACL e poi effettui il routing, mentre in output prima il routing e poi l’ACL. Se non è specificato, per default è out.

60

Page 61: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

ACL Interface esempio

61

Page 62: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

ACL Interface esempio

R1#config t

Enter configuration commands, one per line. End withCNTL/Z.

R1#(config)#interface s0/0/0

R1#(config)#ip access-group 101 out

R1#(config)#ip access-group 102 in

R1#(config)#end

62

Page 63: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

ACL Interface esempio

Bloccare FTP (File Transfer Protocol) dalla subnet 192.168.2.0

verso la subnet 192.168.3.0, ma permettere il resto del traffico.

FTP richiede le porte 20 e 21.

Tali porte devono essere specificate es. eq 20 e eq 21 per il

deny FTP.

63

Page 64: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

ACL e interface esempi

R1#config t

Enter configuration commands, one per line. End with CNTL/Z.

access-list 103 deny tcp 192.168.3.0 0.0.0.255 192.168.2.0 0.0.0.255 eq 21

access-list 103 deny tcp 192.168.3.0 0.0.0.255 192.168.2.0 0.0.0.255 eq 20

access-list 103 permit ip any any

interface fa0/1

ip access-group 103 in

64

Page 65: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Esercizio

negare il traffico FTP

Non-172.16.0.0

E0 E1

S0

172.16.3.0 172.16.4.0

172.16.4.23

65

Page 66: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Soluzione

access-list 101 deny tcp 172.16.4.0 0.0.0.255

172.16.3.0 0.0.0.255 eq 21

access-list 101 permit ip 172.16.4.0 0.0.0.255 any

(access-list 101 deny any any – implicito, non visibile nella

lista)

interface ethernet 0

ip access-group 101 (non specificato è default out)

66

Page 67: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Esercizio

Si vuole negare all'host B l'accesso al Server FTP e allo

stesso tempo negare all'host C qualsiasi accesso alla rete

172.16.3.0.

Host A

Host B

Host C

FTP Server

172.16.3.0172.16.3.52

172.16.3.99

172.16.4.1

172.16.4.0

172.16.4.12

S0S0

E1 E0

Router A Router B

ACL standard

ACL estesa

67

Page 68: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Soluzione

access-list 1 deny host 172.16.4.12

access-list 1 permit any

interface ethernet 1

ip access-group 1

access-list 101 deny tcp host 172.16.4.1 172.16.3.0 0.0.0.255 eq ftp

access-list 101 permit ip 172.16.4.0 0.0.0.255 any

interface ethernet 0

ip access-group 101

68

Page 69: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Formalismo (1)

Una ACL Static Packet Filter è definita da una tabella

come la seguente:

69

Direz. IP

Sorg

IP

Dest

Protoc. Porta

Sorg

Porta

Dest

Flag

ACK

Azione

Page 70: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Formalismo (2) Direzione: Indica la direzione del traffico:

se non ambiguo, IN/OUT

nei restanti casi indicazione delle zone sorgente e destinataria (es. DMZ->Internet), oppure delle interfacce (es. eth0->eth1)

IP Sorgente/Destinatario Valori degli indirizzi (es. 159.149.10.1, 159.149.10.0/24) o uso di variabili

Protocollo TCP, UDP, ICMP, IP

Porta Sorgente/Destinataria Valore o range (es. >1023)

Flag ACK Se il protocollo è TCP, il suo valore può essere 0, 1 o 0/1; ** per altri protocolli

Azione Permit/Deny

70

Page 71: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Variabili

È molto diffuso l'uso di variabili alle quali assegnare valori

di parametri, tipicamente indirizzi IP e sottoreti

Nelle regole di un firewall si utilizzano le variabili

anziché i valori:

si può separare la definizione dei valori dalla definizione della

politica di un firewall

si possono modificare i valori senza editare la politica

stessa

71

Page 72: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Variabili esempio

DMZ := 159.149.70.0/24

Internal := 192.168.20.0/24

Private := 10.0.0.0/8 and ….

External := not (Internal or DMZ or Private)

WebServer := 159.149.70.11 and 159.149.70.12

72

Page 73: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Packet Filtering : Telnet (1)

Vogliamo autorizzare solo connessioni Telnet dall’interno

della rete aziendale verso l’esterno

73

Direz. IP

Sorg

IP

Dest

Protoc. Porta

Sorg

Porta

Dest

Flag

ACK

Azione

OUT Internal Any TCP >1023 23 Permit

IN Any Internal TCP 23 >1023 Permit

Any Any Any Any Any Any ** Deny

Page 74: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Packet Filtering : Telnet (2)

Filtrare il traffico solo sulle Porte Sorgente e Destinazione, può portare a una politica di sicurezza troppo permissiva.

Ad esempio, supponiamo che la seconda regola sia:

IN Any InternalTCP 23 >1023 Permit

Questa regola permette connessioni generate da qualunque host esterno e dirette a qualunque hostinterno aventi porta sorgente 23/tcp e porta destinataria >1023.

74

Page 75: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Packet Filtering : Telnet (3)

I pacchetti provenienti dall’esterno della rete sono solo

risposte del server.

Quindi il flag ACK è sempre settato.

Client Server

SYN

SYN-ACK

ACK

DATA+ACK

3-way

HANDSHAKE

75

Page 76: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Packet Filtering : Telnet (4)

La politica è ancora troppo lasca. Chiunque può ricevere connessioni sulla porta 23/tcp.

Limitiamole ai soli server telnet autorizzati:

--> tlnSrv := 159.149.70.13

Usiamo ACK

1/0 quando IP Sorgente stabilisce la connessione verso l’IP Destinatario

1 quando IP Sorgente (passivo) risponde all’IP Destinatario

76

Direz. IP

Sorg

IP

Dest

Protoc. Porta

Sorg

Porta

Dest

Flag

ACK

Azione

OUT Internal tlnSrv TCP >1023 23 1/0 Permit

IN tlnSrv Internal TCP 23 >1023 1 Permit

Any Any Any Any Any Any ** Deny

Page 77: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Least privilege

Compatibilmente con le specifiche relative alla fornitura

dei servizi, la politica di un firewall deve essere la più

stringente possibile.

Dato un insieme di specifiche, è un errore definire

una politica più lasca dello stretto necessario

77

Page 78: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Esercizio

78

Pensiamo alle regole di filtraggio per SSH

Funziona su TCP porta 22 (a volte si cambia per ragioni di

sicurezza)

Più sicuro di Telnet perchè cripta i messaggi.

Direz. IP

Sorg

IP

Dest

Protoc. Porta

Sorg

Porta

Dest

Flag

ACK

Azione

Page 79: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Soluzione

79

Direz. IP

Sorg

IP

Dest

Protoc. Porta

Sorg

Porta

Dest

Flag

ACK

Azione

OUT Internal tlnSrv TCP >1023 22 1/0 Permit

IN tlnSrv Internal TCP 22 >1023 1 Permit

Any Any Any Any Any Any ** Deny

Page 80: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Filtering con applicazioni semplici Applicazioni come Telnet, SSH, rlogin, etc. sono

semplici da gestire con packet filtering:

• per loro natura implicano ruoli ben definiti: client e server

Il pattern di scambio di messaggi è un semplice request/reply

Altre applicazioni possono avere protocolli più elaborati, ad esempio perché prevedono ruoli client e server multipli o perché basate su pattern di scambio di messaggi più sofisticati.

80

Page 81: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Filtraggi con applicazioni complesse

Sicurezza nelle Reti81

Quando le applicazioni hanno uno scambio a livello di

trasporto più articolato, gestire il firewall diventa

complesso

studiare molto bene i protocolli applicative

verificare debolezze del livello di filtraggio considerate

essere consapevoli di cosa non si riesce a fare con il filtraggio

utilizzato

mantenere una politica di chiusura conservativa

Page 82: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

SMTP (Simple mail transfer protocol)

Gestisce lo scambio di messaggi di posta

elettronica

La connessione tra i diversi server di posta

avviene attraverso una connessione TCP

(porta 25)

Ogni utente è identificato dall’indirizzo:

nomeutente@indirizzo_server_email

82

Page 83: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

I comandi

I principali comandi SMTP:

HELO: Identifica il client SMTP al server SMTP;

EHLO: E' possibile usare anche questo comando per identificarsi, se il server

supporta le SMTP Service Extensions

MAIL FROM: <indirizzo mittente>: Indicata la mailbox del mittente del messaggio;

RCPT TO: <indirizzo destinatario> : Indica la mailbox del desinatario (Recipient). E'

possibile specificare attraverso molteplici RCPT TO diversi destinatari;

DATA: Indica al server che quanto digitato successivamente saranno i dati del

messaggio di posta;

RSET: Annulla i comandi (Reset) precedentemente inviati nella sessione SMTP

corrente;

VRFY <stringa>: Chiede al server se la stringa di testo immessa rappresenta un

nome utente presente ed in tal caso visualizza l'intero indirizzo;

HELP: Visualizza i comandi disponibili sul server;

NOOP: Non esegue nessuna operazione restituisce solo un messaggio 250 (Ok) se il

server risponde;

QUIT: Termina la sessione SMTP corrente;

83

Page 84: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Le fasi

Una sessione SMTP attraversa almeno sei fasi:

1. Il client SMTP contatta il server sulla porta TCP 25. Se questo è in ascolto e la connessione è

accettata risponde con un messaggio 220 (Ready);

2. Il client chiede di stabilire la sessione SMTP inviando il comando HELO seguito dal FQDN

(Fully Qualified Domani Name). Se il server accetta risponde con un messaggio 250 (Ok);

3. Il client indica il proprio indirizzo tramite il comando MAIL FROM: <indirizzo mittente>. Il

server risponde con 250 (Ok) per ogni destinatario accettato;

4. Il client indica al server i destinatari del messaggio tramite RCPT TO: <indirizzo destinatario> ed

il server risponde per ogni destinatario accettato un codice 250 (Ok);

5. Il client comunica al server l'intenzione di scrivere il corpo del messaggio con DATA. Il server

risponde con un codice 354 e indica come marcare il termine del messaggio. I campi come Date,

Subject, To, Cc, From vanno inseriti tra i dati della mail;

6. Completato il messaggio da scrivere tramite, il server memorizza la mail. A questo punto è

possibile, scrivere un nuovo messaggio oppure inviare il comando QUIT, dopo il quale il server

invia i messaggi e risponde con un codice 221 (Closing) e la connessione TCP viene terminata;

84

Page 85: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

I codici di risposta (1)

Il server risponde ad ogni comando con un codice di tre cifre che

ha la seguente interpretazione:

1xx : messaggio informativo

2xx : comando eseguito e terminato con successo

Es:

<<>MAIL FROM: [email protected]

250 [email protected]… Sender ok

3xx: comando eseguito e terminato con successo che richiede di

essere seguito da altri comandi correlati

Es:

<<>DATA

354 Enter mail, end with "." on a line by itself

85

Page 86: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

I codici di risposta (2)

4xx: errore temporaneo nell’esecuzione del

comando, ma il dialogo non è compromesso

5xx: errore grave e permanente. Il dialogo è

compromesso e dovrà essere ripreso

dall’inizio

Es:

MAIL TO: [email protected]

501 Syntax error in parameters scanning "to"

86

Page 87: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Cascate di protocolli

Generalmente nella applicazioni distribuite si

usano insiemi di protocolli a cascata

87

ESMTP

(Extended SMTP)

SMTPPOP3

Post office protocol

Page 88: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Packet Filtering : SMTP (1)

Politica: Nella rete aziendale un solo server SMTP è autorizzato a gestire la posta elettronica con l'esterno.

Condizioni: Funzionamento del protocollo SMTP: standard, semplice pattern request/reply

Client interni alla rete non passano per il firewall

Primo tentativo: Se funzionasse come Telnet basterebbe invertire interno con esterno.

Defizione variabili smtpSrv := 159.149.70.23

External := not(159.149.70.0/24)

88

Page 89: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Packet Filtering : SMTP (2)

E’ corretta?

89

Direz. IP

Sorg

IP

Dest

Protoc. Porta

Sorg

Porta

Dest

Flag

ACK

Azione

IN External smtpSrv TCP >1023 25 1/0 Permit

OUT smtpSrv External TCP 25 >1023 1 Permit

Any Any Any Any Any Any ** Deny

Page 90: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Packet Filtering : SMTP (3)

Che funzionalità viene gestita?

Come viene richiesto lo scambio di posta elettronica?

Quale è il client?

Quale è il server?

Quale è il contesto applicativo?

internet

SYN

3-way HANDSHAKE

90

Page 91: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Packet Filtering : SMTP (4)

Le TCP da gestire sono due non una

Scambiare posta elettronica: Un Mail Server riceve e invia posta “da” e “verso” altri Mail Server.

Ricevere posta elettronica: Altri Mail Server si connettono al Mail Server aziendale agendo da client.

Inviare posta elettronica: Il Mail Server aziendale si connette ad altri Mail Server agendo da client.

91

Page 92: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Packet Filtering : SMTP (5)

Nell’esempio considerato non compaiono i client di posta,

intesi come utenti finali con propri mailer

internet

3-way HANDSHAKE RICEZIONE

INVIO3-way HANDSHAKE

client

client

server

server

92

Page 93: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Packet Filtering : SMTP (6)

E’ corretta?

93

Direz. IP

Sorg

IP

Dest

Protoc. Porta

Sorg

Porta

Dest

Flag

ACK

Azione

IN External smtpSrv TCP Any Any 1/0 Permit

OUT smtpSrv External TCP Any Any 1/0 Permit

Any Any Any Any Any Any ** Deny

Page 94: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Packet Filtering : SMTP (6)

Ora è più precisa

94

Direz. IP

Sorg

IP

Dest

Protoc. Porta

Sorg

Porta

Dest

Flag

ACK

Azione

IN External smtpSrv TCP >1023 25 1/0 Permit

OUT smtpSrv External TCP 25 >1023 1 Permit

OUT smtpSrv External TCP >1023 >25 1/0 Permit

IN External smtpSrv TCP 25 >1023 1 Permit

Any Any Any Any Any Any ** Deny

Page 95: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

FTP (File Transfer Protocol)

FTP (File Transfer Protocol) è il protocollo generalmente utilizzato

per trasferire dati tra due host.

Il protocollo di trasferimento dati FTP ha come obbiettivo il

trasferimento affidabile ed efficiente dei dati, per questo motivo si

basa TCP. In particolare un FTP Server rimane in attesa di

connessioni sulla porta 21.

FTP utilizza due processi distinti per compiere il proprio compito:

PI (Protocol Interpreter) attraverso cui il client invia i comandi e riceve le

risposte dal server;

DTP (Data Transfer Process) attraverso il quale il client ed il server si

scambiano i dati;

95

Page 96: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

FTP

Il Data Transfer Process può essere di due tipi

Active MODE (default)

Passive MODE.

Nella modalità Active Mode il client contatta il server il

quale da inizio alla connessione (sulla porta 20) per

trasmettere i dati con il client.

In Passive MODE è prerogativa del client anche dare il via

alla connessione per il trasferimento dei dati.

96

Page 97: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Le fasi

Le fasi di una sessione FTP sono:

1. Il client contatta il server sulla porta 21 utilizzando il

processo PI;

2. Autenticazione del client;

3. Trasferimento dati tramite il DTP;

4. Termine della sessione TCP;

97

Page 98: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Connessioni FTP

In sostanza ci sono due connessioni TCP per ogni sessione

FTP:

Connessione di controllo: usata dal client per inviare i comandi e

dal server per comunicare i codici di risposta, viene aperta dal client

che si connette al server sulla porta TCP remota 21

Connessione dati: usata per il trasferimento dei file, viene aperta

dal server usando la porta TCP locale 20. Poiché il server non

conosce la porta remota usata dal client per la connessione dati è il

client stesso a comunicargliela attraverso la connessione di controllo

prima dell’apertura della connessione dati

98

Page 99: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Connessioni FTP

21

Comandi

20

Dati

>1023

Es. 1039

>1023

Es. 10381) 3-way HANDSHAKE

2) Porta 1038

3) OK

4) 3-way HANDSHAKE

Comandi/risposte

ACK

Dati

ACK

client Server FTP

99

Page 100: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

SPF e FTP

due scelte possibili:

lasciare aperte tutte le porte dinamiche (>1024)

chiudere tutte tutte le porte dinamiche: difficile trade-off tra

sicurezza e supporto a FTP!!

100

Page 101: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

SPF: FTP

Può portare ad un serio problema di sicurezza

101

Direz. IP

Sorg

IP

Dest

Protoc. Porta

Sorg

Porta

Dest

Flag

ACK

Azione

OUT Internal External TCP >1023 21 1/0 Permit

IN External Internal TCP 21 >1023 1 Permit

IN External Internal TCP 20 >1023 1/0 Permit

OUT Internal External TCP >1023 20 1 Permit

Any Any Any Any Any Any ** Deny

Page 102: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

SPF: FTP

La seconda connessione, relativa al canale dati, viene aperta dal server verso il client:

ftpserver:20 ftpclient:XXXX (N.B: XXXX è la porta definita dinamicamente dal client).

La politica di gestione “connessione da interno a esterno” non è applicabile al caso in oggetto: connessione da esterno a interno

porta di destinazione della connessione non determinata a priori

Rischio

Intrusore:20 Vittima:XXXX

Le porte >1023 sono usate da servizi molto diffusi e da trojan.

102

Page 103: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

SPF: FTP Passiva (1)

21

Comandi

20

Dati

>1023

Es. 1039

>1023

Es. 10381) 3-way HANDSHAKE

2) PASV

3) OK XXXX (porta random)

4) 3-way HANDSHAKE

Comandi/risposte

ACK

Dati

ACK

client Server FTP

XXXX

103

Page 104: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

SPF: FTP Passiva (2)

La seconda connessione, relativa al canale dati, viene

aperta dal client verso il server:

ftpclient:YYYY ftpserver:XXXX

La politica di gestione “connessioni solo da interno a

esterno” torna ad essere applicabile.

Oggi tutti gli FTP supportano la modalità passiva e la

utilizzano di default (es. Web browser).

104

Page 105: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

SPF: FTP Passiva (3)

105

Direz. IP

Sorg

IP

Dest

Protoc. Porta

Sorg

Porta

Dest

Flag

ACK

Azione

OUT Internal External TCP >1023 21 1/0 Permit

IN External Internal TCP 21 >1023 1 Permit

OUT Internal External TCP >1023 >1023 1/0 Permit

IN External Internal TCP >1023 >1023 1 Permit

Any Any Any Any Any Any ** Deny

Page 106: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

FTP valutazioni

Con la modalità attiva devo per forza utilizzare uno

packet filtering che si ricordi delle connessioni

dovrei scrivere una regola che consenta il traffico entrante

iniziato dall’esterno con source port sport=20 e destination

port dport> 1023 (pericoloso, utilizzato dai port scanner per

fare il loro lavoro).

106

Page 107: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

SPF: RPC

Page 108: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Attacco(1)

Descrizione tecnica del problema

Remote Procedure Call (RPC) è un protocollo che può essere utilizzato da un'applicazione per richiedere un servizio a un programma residente su un altro computer in rete. Microsoft ha riscontrato una vulnerabilità nel componente di RPC che gestisce lo scambio di messaggi tramite TCP/IP.

Questo particolare difetto interessa un'interfaccia DCOM (Distributed Component Object Model - protocollo che consente la comunicazione diretta fra sistemi software attraverso una rete), presente sulla porta TCP/IP 135 (porta utilizzata per stabilire una connessione RPC con un computer remoto).

Il problema è dovuto a modalità errate di gestione dei messaggi con formato non valido.

108

Page 109: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Attacco(2)

Un hacker potrebbe tentare di sfruttare questa vulnerabilità programmando un computer in grado di comunicare attraverso la porta TCP 135 con un server interessato dal problema, in modo da inviare un particolare tipo di messaggio RPC con formato errato.

Alla ricezione di tale messaggio il servizio RPC del computer, affetto dalla vulnerabilità, potrebbe generare un errore tale da consentire l'esecuzione di codice non autorizzato.

La porta TCP 135 è normalmente bloccata, non consentendo in questo modo la possibilità di accessi esterni non autorizzati sulla porta RPC.

109

Page 110: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

SPF: RPC

110

Direz. IP

Sorg

IP

Dest

Prot

oc.

Porta

Sorg

Porta

Dest

Flag

ACK

Azione

IN External rpcSrv TCP

UDP

>1023 111(unix)

135(ms)

1/0(tcp)

**(udp)

Permit

OUT rpcSrv External TCP

UDP

111(unix)

135(ms)

>1023 1(tcp)

**(udp)

Permit

IN External rpcSrv TCP

UDP

>1023 any 1/0(tcp)

**(udp)

Permit

OUT rpcSrv External TCP

UDP

any >1023 1(tcp)

**(udp)

Permit

Any Any Any Any Any Any ** Deny

Page 111: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

RPC

Problema : Non si conosce a priori la porta che il

server RPC assegnerà al servizio.

Rischio: Intrusore:YYYY ServerRPC-Vittima:XXXX

111

Page 112: index [homes.di.unimi.it]homes.di.unimi.it/anisetti/Teaching/FirewallStateless-Lezione1-2-3-old.pdfSPF: connessioni TCP Una connessione TCP passa attraverso il 3-way Handshake (scambio

Protocolli firewall friendly

112

Quelli più semplici tipo ssh e Telnet

Non sono firewall friendly quelli che richiedono regole

complicate

FTP attivo

RPC