cerca
Sicurezza nelle Reti - Prova scritta - Novembre 2008
modifica cronologia stampa login logout

Wiki

UniCrema


Materie per semestre

Materie per anno

Materie per laurea


Help

Uni.SNR-PS-Novembre2008 History

Hide minor edits - Show changes to output

Changed line 32 from:
(mag:"...";
to:
(msg:"...";
Added line 59:
* '''msg:"..."; ''': è il messaggio da inviare con l'alert
Changed line 61 from:
* '''uricontent:"..."; '''': si cerca la stringa contenuta tra virgolette nell'URI, che in questo caso deve essere l'indirizzo http inviato
to:
* '''uricontent:"..."; '''': si cerca la stringa contenuta tra virgolette nell'URI, il quale viene normalizzato per evitare cose strane con slash etc.
Changed line 62 from:
* '''distance:0; ''':
to:
* '''distance:0; ''': questo parametri dice quanti byte aspettare, DOPO che è stata matchata la regola precedente, per iniziare a controllare se la regola attuale matchi
Added lines 65-68:
* '''classtype:policy-violation; ''': dice di che tipo è questo evento
* '''sid:7860; ''': è l'ID di Snort del tipo di violazione
* '''rev:1; ''': è la revisione della definizione della firma
Added lines 27-64:
!!Esercizio 3
''Descrivere il significato dei parametri presenti nella seguente regola di Snort e il tipo di evento anomalo rilevato''.

[@
alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS
(mag:"...";
flow:to_server,established;
uricontent:"/complete/search?";
uricontent:"output=desktop";
content:"User-Agent|3A|";
nocase;
content:"Google";
distance:0;
nocase;
content:"Desktop";
distance:0;
nocase;
pcre:"/User-Agent\x3A[^\n\r^]+google[^\n\r]+Desktop/smi";
classtype:policy-violation;
sid:7860;
rev:1;)
@]

Uuuuh quanta bella roba;)\\
Innanzitutto, la prima riga '''alert tcp $HOME_NET any -> $EXTERNAL_NET $HTTP_PORTS''' è l''''header''' della firma, e contiene:
* '''alert''' è l'azione da intraprendere, che vuol dire compiere l'azione di alert definita nella configurazione e loggare il tutto
* '''tcp''' è il protocollo da analizzare
* '''$HOME_NET any''' è l'indirizzo di partenza del pacchetto
* '''$EXTERNAL_NET $HTTP_PORTS''' è l'indirizzo di destinazione del pacchetto
Le scritte con un '''$''' davanti sono variabili, definite nella configurazione di SNORT.

Il resto è il '''body''' della firma, e i suoi parametri sono:
* '''flow:to_server,established; ''': questo parametro implica che il plugin '''Stream4''' (quello che permette analisi stateful) sia attivato, e dice di controllare i pacchetti che vengono inviati AL SERVER e appartenenti ad una CONNESSIONE già esistente
* '''uricontent:"..."; '''': si cerca la stringa contenuta tra virgolette nell'URI, che in questo caso deve essere l'indirizzo http inviato
* '''content:"..."; ''': si cerca la stringa tra virgolette nel contenuto del payload
* '''distance:0; ''':
* '''nocase; ''': la ricerca nella stringa non è case sensitive
* '''pcre:"..."; ''': si cerca nel payload il testo che matcha l'espressione regolare qui indicata
Added lines 1-28:
(:title Sicurezza nelle Reti - Prova scritta - Novembre 2008:)
%titolo%''':: Sicurezza nelle Reti - Prova scritta - Novembre 2008 ::'''

!!Esercizio 1
''Spiegare in sintesi ma con precisione la vulnerabilità '''FTP Bounce Attack''' e la modalità di risoluzione appropriata.''

La '''FTP Bounce Attack''' è una vulnerabilità di FTP che si può verificare nel seguente scenario:
* è possibile, dall'esterno, connettersi all'FTP interno
* è possibile, dall'esterno, connettersi al Web Server interno, il quale ha anche attivo un server Telnet
Quando il client chiede il trasferimento di dati, invia al server FTP il comando '''PORT''', il quale ha la seguente sintassi:
[@
PORT h1,h2,h3,h4,p1,p2
@]
dove:
* h1...h4 sono i 4 ottetti dell'indirizzo IP a cui il server FTP deve connettersi per la connessione dati
* p1 e p2 si compongono così: p1*256 + p2, e compongono la porta a cui il server FTP deve connettersi

Se il client invia un comando PORT così:
[@
PORT indirizzo,del,server,telnet,0,23
@]
il server FTP aprirà una connessione dati verso l'host indicato con '''indirizzo,del,server,telnet''' alla porta 0*256 + 23 = 23, che è la porta di default di telnet.\\
A questo punto il client invia il comando '''RETR''', che causa l'apertura di una connessione dal server FTP al server telnet indicato con '''PORT'''. In questo modo ci si connette tranquillamente al server telnet.

Un firewall stateful non sarebbe in grado di riconoscere ciò, perché una tale connessione non ha niente di sospetto. Da più di 10 anni i server FTP sono configurati in modo da non permettere PORT a host che non siano quelli da cui proviene la connessione. Inoltre, un Proxy messo tra il server e il mondo esterno potrebbe ispezionare i pacchetti e determinare un uso improprio della connessione FTP.

----
[[Torna alla pagina di SnR -> SicurezzaNelleReti]]