Revision 266f4dee

View differences:

body.tex
21 21
con differente livello di fiducia.
22 22
\bii
23 23
\ii Esempio: un firewall perimetrale viene normalmente posto su un gateway
24
per separare la rete locale (alto livello di fiducia) da intenet (livello
24
per separare la rete locale (alto livello di fiducia) da Intenet (livello
25 25
di fiducia minimo) 
26 26
\ii Lo scopo finale del firewall è di offrire un'interfaccia configurabile
27 27
tra due segmenti di rete con diversi livelli di fiducia. L'interfaccia
28 28
deve essere configurabile attraverso security policy basate su due
29 29
principi:
30 30
\bii
31
\ii Least privilege
32
\ii Separation of duties
31
\ii Least privilege: assegna i privilegi minimi per il corretto funzionamento
32
\ii Separation of duties: separa in ruoli con funzioni specifiche
33 33
\ei
34 34
\ii La configurazione di un firewall richiede profonda conoscenza dei
35 35
protocolli di rete e di network security, un errore nella configurazione
......
49 49
stati per prendere decisioni più complesse. Ad esempio, non accettare un
50 50
pacchetto di ACK TCP se non è stato prima ricevuto un pacchetto di SYN.
51 51
\ii Application layer firewall: i firewall operano normalmente a livello
52
di rete, o in casi specifici a livello di collegamento, livelli in cui il
52
di rete/trasporto, o in casi specifici a livello di collegamento, livelli in cui il
53 53
formato dei pacchetti è definito e non può cambiare. Gli application
54 54
firewall leggono le informazioni del payload del pacchetto per decidere
55 55
quale applicazioni possono passare. Richiedono una complessità maggiore e
......
84 84
\frame
85 85
{
86 86
\frametitle{Piazzamento del firewall:}
87
\bii
87
\bi
88 88
\ii Una seconda configurazione prevede di aggiungere un ulteriore firewall
89 89
in modo da avere due elementi di difesa prima di arrivare alla rete
90
corporate. La configurazione è più robusta perchè:
91
\bii
92
\ii un attaccante dovrebbe bucare due firewall prima di arrivare alla rete
93
corporate (i firewall utilizzeranno software o hardware diversi, offrendo
90
corporate. 
91

  
92
\ii La configurazione è più robusta perchè un attaccante dovrebbe bucare due firewall prima di arrivare alla rete corporate (i firewall utilizzeranno software o hardware diversi, offrendo
94 93
ridondanza)
95
\ii La DMZ è separata anche dall'interno verso l'esterno, con lo stesso
96
principio.
97
\ii \'E più facile separare il traffico, quindi altri tipi di connessioni
98
verso l'esterno che possono essere considerati meno sicuri si possono
99
inserire nella DMZ.
100
\ei
94
\ii E' anche più costosa e più difficile da configurare, quindi più error-prone.
101 95
\ei
102 96
}
103 97

  
......
119 113
organizzare le regole di scarto, ovvero le regole secondo cui i pacchetti
120 114
vengono filtrati nel kernel. Un esempio di regola:
121 115
\bii
122
\ii iptables -t filter -D INPUT –dport 80 -j ACCEPT
116
\ii iptables -t filter -A INPUT -p tcp --port 80 -j ACCEPT
123 117
\bii
124 118
\ii -t filter: tabella
125
\ii -D input: catena
126
\ii --dport 80: criterio di match della regola
119
\ii -A input: catena
120
\ii -p tcp --dport 80: criterio di match della regola
127 121
\ii -j ACCEPT: target
128
\ii traduzione: accetta i pacchetti in arrivo sulla porta 80
129 122
\ei 
123
\ii traduzione: accetta i pacchetti in arrivo sulla porta 80
130 124
\ei
131 125
\ei 
132 126
}
......
167 161
\frame{
168 162
\frametitle{Netfilter: le catene}
169 163
\bcols
170
\col[0.4]
171
\scaledimg[0.7]{netfilter}
172
\col[0.6] 
164
\col[0.3]
165
\scaledimg[0.8]{netfilter}
166
\col[0.7] 
173 167
\bii
174 168
\ii \alert{Prerouting}: tutti i pacchetti in ingresso al firewall
175 169
\ii \alert{Postrouting}: tutti i pacchetti in uscita dal firewall 
176
\ii \alert{Output}: pacchetti generati dal firewall in uscita
177
\ii \alert{Input}: pacchetti in ingresso al firewall diretti al firewall
178
\ii \alert{Forward}: pacchetti in ingresso al firewall ma provenienti dall'esterno
170
\ii \alert{Output}: pacchetti generati dal firewall verso l'esterno
171
\ii \alert{Input}: pacchetti diretti al firewall
172
\ii \alert{Forward}: pacchetti in uscita dal firewall e provenienti dall'esterno
179 173
\ei
180 174
\ecols
181 175
}
......
224 218
indirizzo IP dentro agli header del pacchetto. I target possibili sono:
225 219
\bii
226 220
\ii DNAT: destination address translation, si cambia l'indirizzo IP
227
destinazione. Viene utilizzato dai firewall di frontiera per distribuire
228
il carico su una rete con più server.  
221
destinazione.  
229 222
\bi
230
\ii iptables -t nat -I POSTROUTING -s 192.168.1.12 -j SNAT --to-source 150.217.5.123
223
\ii  iptables -t nat -I PREROUTING -d 150.217.5.123 -j DNAT --to-source 192.168.1.12
231 224
\ei
232 225
\ii SNAT: source address
233 226
translation. si cambia l'indirizzo IP sorgente. Viene utilizzato per
234 227
mascherare una rete privata, di indirizzi non routabili dietro ad un
235 228
indirizzo pubblico.
236 229
\bi
237
\ii  iptables -t nat -I PREROUTING -d 150.217.5.123 -j DNAT --to-source 192.168.1.12
230
\ii iptables -t nat -I POSTROUTING -s 192.168.1.12 -j SNAT --to-source 150.217.5.123
238 231
\ei
239 232
\begin{equation}
240 233
\nonumber
......
250 243
quali passano e quali vengono bloccati. I target possibili sono 
251 244
\bii
252 245
\ii Drop: Il pacchetto viene scartato senza dare risposta al mittente.
253
\ii Reject: il pacchetto viene scaratato inviando a destinazione una risposta di reset
246
\ii Reject: il pacchetto viene scartato inviando a destinazione una risposta ICMP 
254 247
\ii Accept: il pacchetto continua il suo percorso all'interno del kernel
255 248
\ii Log: il pacchetto genera un log (su schermo, su file...) 
256 249
\ei
......
282 275
\ei
283 276
\scaledimg[0.7]{conntrack-example}
284 277
\bii
285
\ii Come posso distinguere i pacchetti 1 e 2?
278
\ii Abbiamo visto che osservando i flag TCP si possono distinguere i pacchetti 1 e 2
286 279
\ei
287 280
}
288 281

  
......
290 283
\frame{
291 284
\frametitle{Il connection tracking}
292 285
\bii
293
\ii Usare il tipo (SYN) non è conveniente, il problema si riproporrebbe
294
con altri protocolli, ad es. UDP. Esiste una differenza fondamentale:
286
\ii Usare i flag però non è conveniente, il problema si riproporrebbe
287
con altri protocolli, ad es. UDP.  
288
\ii Esiste una differenza fondamentale:
295 289
\bii
296 290
\ii Il pacchetto 1 viene ricevuto dopo aver inviato un pacchetto in uscita
297 291
\ii Il pacchetto 2 invece inizia la connessione
......
310 304

  
311 305
\frame{
312 306
\frametitle{Il connection tracking: state machine}
313
\begin{center} \scaledimg[0.6]{state-machine}
307
\begin{center} \scaledimg[0.5]{state-machine}
314 308
\end{center}
309
Es, firewall configurato direttamente su un singolo server linux:
315 310
\bii
316
\ii iptabels -A INPUT -j ACCEPT -p tcp -m state –state  ESTABLISHED
317
\ii iptabels -A OUTPUT -j ACCEPT -p tcp -m state –state NEW, ESTABLISHED
318
\ii iptables -P INPUT DROP; 
311
\ii iptables -A INPUT -j ACCEPT -p tcp -m state --state  ESTABLISHED
312
\ii iptables -A OUTPUT -j ACCEPT -p tcp -m state --state NEW,ESTABLISHED
313
\ii iptables -P INPUT DROP;
319 314
\ei
320 315
}
321 316

  
......
475 470
\ei
476 471
}
477 472

  
478
\frame{
479
\frametitle{L7 Filtering - neutrality}
480
\bii
481
\ii 
482
Quando la banda a disposizione non è sufficiente, o si aumenta la banda o si 
483
fa traffic shaping. Nel secondo caso si decide di rendere prioritari alcuni
484
traffici rispetto ad altri.
485
\ii Chi offre servizi quindi diventa arbitro di quale tipo di traffico è 
486
prioritario, ovvero la rete di trasporto non è più neutrale.
487
\ii La perdita di neutralità viene spesso vista come un tentativo di censurare 
488
alcuni contenuti dalla rete. 
489
\ei
490
}
473
%\frame{
474
%\frametitle{L7 Filtering - neutrality}
475
%\bii
476
%\ii 
477
%Quando la banda a disposizione non è sufficiente, o si aumenta la banda o si 
478
%fa traffic shaping. Nel secondo caso si decide di rendere prioritari alcuni
479
%traffici rispetto ad altri.
480
%\ii Chi offre servizi quindi diventa arbitro di quale tipo di traffico è 
481
%prioritario, ovvero la rete di trasporto non è più neutrale.
482
%\ii La perdita di neutralità viene spesso vista come un tentativo di censurare 
483
%alcuni contenuti dalla rete. 
484
%\ei
485
%}
491 486
%
492 487
%\frame{
493 488
%\frametitle{L7 Filtering - extreme example}
......
609 604
%\centering \scaledimg{placement}
610 605
%}
611 606

  
612
%
613
%\frame{
614
%\frametitle{Problemi specifici per reti wireless}
615
%\bii
616
%\ii Posizione all'interno della rete.
617
%\ii Canale su cui ascoltare.
618
%\ii Codifica utilizzata (lato fisico).
619
%\ei
620
%}
621
%
622
%
623
%\frame{
624
%\frametitle{Eventi}
625
%Quali eventi loggare su una rete wireless:
626
%\bii
627
%\ii Rogue AP.
628
%\ii Deautenticazioni, deassociazioni.
629
%\ii Crash di un AP
630
%\ii Cambio di ESSID
631
%\ii \ldots 
632
%\ei
633
%}
634
%
635
%\frame{
636
%\frametitle{Snort - IDS}
637
%\bii
638
%\ii Ha un motore di analisi molto potente e testato
639
%\ii Ha molti strumenti di corredo (interfacce, collegamenti con DB)
640
%\ii Ha delle regole specifiche per il wireless.
641
%\ii Non nasce per reti wireless: non sa fare channel hopping.
642
%\ei
643
%}
644
%\frame{
645
%\frametitle{Snort - IDS}
646
%Snort mette a disposizione preprocessori per vari attacchi contro reti
647
%wireless:
648
%\bii
649
%\ii rogue\_ap
650
%\ii deauth\_flood
651
%\ii auth\_flood
652
%\ii \ldots
653
%\ii Snort è molto flessibile, si possono sviluppare delle regole
654
%specifiche per la propria rete se si conosce la sintassi.
655
%\ei
656
%}
657
%
658
%
659
%\frame
660
%{
661
%\frametitle{Kismet come IDS}
662
%Kismet è in grado di individuare diversi tipi di attacchi: 
663
%\bii
664
%\ii DEAUTHFLOOD
665
%\ii DISASSOCTRAFFIC
666
%\ii WELLENREITER
667
%\ii PROBENOJOIN
668
%\ii \ldots
669
%\ei
670
%}
671
%
672
%\frame
673
%{
674
%\frametitle{Kismet come IDS}
675
%\bii
676
%\ii Kismet può fare channel hopping
677
%\ii Kismet può funzionare in modalità client/server, quindi può essere
678
%distribuito in più punti della rete e monitorato da remoto
679
%\ii Kismet non fa analisi di protocolli superiori.
680
%\ii Il traffico loggato con kismet può essere ripassato a snort in un
681
%secondo momento per l'analisi dei dati di livelli superiori al 3.
682
%\ii \ldots
683
%\ei
684
%}
685

  
607
%d	
686 608
\frame{
687 609
\frametitle{Sugli IDS in generale}
688 610
\bii

Also available in: Unified diff