Sei sulla pagina 1di 34

1) Concetti principali sicurezza

Quando si gestisce la sicurezza di un’organizzazione bisogna proteggerla da minacce esterne e proteggere le


organizzazioni esterne da minacce che possono provenire dall’organizzazione che si difende. I concetti
fondamentali sono: dominio di sicurezza, che è l’insieme di entità/risorse da gestire come una singola area di
amministrazione in accordo a una politica di sicurezza comune, perimetro di sicurezza, che è il confine
protetto tra il lato esterno e quello interno di un dominio di sicurezza, e superficie di attacco che è la somma
dei diversi punti in cui un’entità non autorizzata può tentare di inserire o estrarre dati o svolgere qualsiasi
tipo di attività non autorizzata o ostile.
2) Gradi di affidabilità
Ad ogni dominio di sicurezza è assegnato un grado di affidabilità (trust degree) che ne definisce le regole di
visibilità rispetto agli altri. Un dominio con un grado di affidabilità maggiore può avere piena visibilità di
quelli con grado inferiore, viceversa, la visibilità è bloccata a meno di specifiche eccezioni. In una comune
architettura di rete abbiamo almeno tre domini: Outside, che corrisponde al mondo Internet esterno ed ha un
grado di trust pari a 0, Inside, che corrisponde all’organizzazione interna da proteggere e nascondere ed ha
un grado di trust pari a 100, ed infine DMZ(zona demilitarizzata), che corrisponde all’insieme delle
macchine interne che offrono servizi all’esterno ed ha un gradi di trust compreso tra 0 e 100.
3) Sniffing
Uno sniffer è un'applicazione software che è in grado di acquisire i pacchetti a livello datalink. E’ in grado di
interpretare informazioni in chiaro riferite agli header di livello 2, 3 e 4 dei pacchetti nonché a protocolli di
livello di applicazione quali FTP, HTTP. Lo sniffer è localizzato all’interno di una rete ma ha una interfaccia
verso l’esterno. L’operazione di sniffing è effettuata mettendo l’interfaccia in un modo particolare oppure
attraverso strumenti hardware che ci permettono di andare ad ispezionare i pacchetti. I controlli di sicurezza
per proteggere la nostra organizzazione non devono essere concentrati solo in un unico punto (punto di
confine). Pertanto una delle regole generali è la seguente: il punto di controllo va messo sempre il più vicino
possibile all’entità da proteggere.
4) Osservazione del flusso di traffico
Il modo più semplice è utilizzare un computer con una scheda di rete che lavora in modalità promiscua, cioè
non vengono controllati solo i pacchetti destinati ad un solo indirizzo MAC, ma vengono controllati tutti i
pacchetti che vi transitano. I dati uscenti dal controllo vengono successivamente passati ad un’applicazione
che ha il compito di analizzare e interpretare i dati. Le informazioni uscenti permettono di osservare il
traffico in grande dettaglio. Lo sniffing permette: l’analisi automatica della rete alla ricerca di specifici
pattern, l’analisi delle anomalie per scoprire eventuali problemi all'interno delle reti, l’analisi delle
prestazioni, rilevazione delle intrusioni di rete e registrazione del traffico di rete (log).
5) Intercettazione dei pacchetti
L’intercettazione dei pacchetti dipende da come si organizza fisicamente l’intercettazione. Tipicamente lo
sniffing viene effettuato su reti switched, dove il traffico viene instradato secondo l'associazione MAC
address + Porta, escludendo i terminali non interessati al traffico. Pertanto uno sniffer è solo in grado di
intercettare il traffico destinato alla macchina che lo ospita e quello broadcast. L’alternativa è configurare la
porta dello switch cui è connesso lo sniffer in modalita’ mirroring, che permette di replicare tutto il traffico
ricevuto da specifiche porte sulla porta dello sniffer. Una configurazione del mirroring può essere
tipicamente: porta per porta, insieme di porte su una porta, un’intera VLAN su una porta. Non tutti gli
switch, però, permettono di effettuare il port mirroring. Per ovviare al problema degli switch che non
consentono il port mirroring abbiamo diverse strategie. Utilizzo di un reapeter che effettua una copia del
traffico sulle interfacce sorgenti a cui è connesso sull’interfaccia connessa allo sniffer. Lo svantaggio di
questa soluzione è che ha una banda limitata. Inoltre si potrebbero utilizzare sonde HW dedicate TAP oppure
realizzare un ARP poisoning attack.
6) Sonde HW dedicate TAP (Traffic Access Port)
Questo dispositivo fa una copia del traffico su una tratta e permette di avere una grande visibilità del traffico
di rete oltre a verificare se ci sono degli errori sulla tratta di interesse. Lo sniffer è posto subito dopo il TAP,
cioè riceve i dati dal TAP. A differenza dei TAP, le tradizionali interfacce di rete/schede di rete NIC scartano
dei frame se sono malformati, nascondendo quindi eventuali attività malevoli. Quindi con una NIC agendo al
livello 2 non si può vedere tutto il traffico di rete, invece con un TAP, che agisce al livello fisico, si ha una
visione di tutto, anche degli errori. Quando si effettua il tapping bisogna fare in modo che chi è intercettato
non se ne accorga. Un tapping può essere rilevato mediante tecniche riflettometriche, utilizzate soprattutto
nei cavi in fibra ottica.
7) ARP poisoning attack (oppure ARP Spoofing)
Veicola forzatamente il traffico di rete ottenendo lo stesso effetto del port mirroring. L’attacco sfrutta la
vulnerabilità del protocollo ARP che è stateless, quindi non memorizza le richieste effettuate in precedenza
ed ogni richiesta è indipendente dalle altre. Le risposte sono memorizzate nella ARP CACHE, per limitare il
traffico sulla rete il cui contenuto viene aggiornato ogni determinato intervallo di tempo. Per realizzare
l’attacco ARP poisoning l’attacker invia delle ARP reply opportunamente costruite/modificate: all’host A
invia una reply ARP che ha come IP quello del’host B, ma come MAC address il proprio e all’host B invia
una reply ARP che ha come indirizzo IP quello dell’host A e come MAC address il proprio. Per effettuare
l’attacco è necessario inviare delle ARP reply allo scadere di un intervallo di tempo poiché la cache viene
aggiornata allo scadere di un timeout. Quando i due host instaureranno una comunicazione tra loro,
crederanno di comunicare reciprocamente, ma in realtà comunicano con l’attacker il quale, per mostrare
trasparenza e regolarità nella comunicazione tra i due host e continuare a sniffare il relativo traffico, inoltrerà
il traffico proveniente da host A verso host B (e viceversa), realizzando così un attacco man-in-the-middle e
ottenendo lo stesso effetto del port mirroring.
8) Network Monitoring
Il network monitoring permette di controllare ciò che accade sulla rete per garantire sia la sicurezza
dell’infrastruttura sia la sicurezza dei sistemi che ne fanno parte. Le architetture per il network monitoring
sono strutturate in accordo a un modello Manager-Agent. La funzione di management è l’interfaccia
principale dell’applicazione. L’agente di management interfaccia l’oggetto da monitorare mentre un agente
di monitoraggio può aggregare più funzioni agente associate a oggetti multipli. La funzione di management
cerca di raccogliere o interrogare i dati provenienti dall’oggetto monitorato, per poterli poi presentare o
graficare all’utente. L’agent invece preleva i dati e li passa alla funzione di management. La comunicazione è
standardizzata e avviene tramite il protocollo udp-based SNMP (Simple Network Management Protocol).
Anche le informazioni sono standardizzate, i dati degli oggetti monitorati vengono raccolti in un MIB
( Management Information Base). Quando la funzione di management richiede dei particolari dati agli agent,
questi accedono al MIB, prelevano i dati richiesti e li passano all’applicazione di monitoraggio.
9) Comunicazione Network Monitoring
La comunicazione può avvenire tramite due tecniche:
• Polling: è un’interazione request-response tra Manager e agent. Il Manager effettua delle
interrogazioni periodiche di ogni agent con richiesta dei valori degli elementi di interesse e ogni
agent risponde con le informazioni presenti nel proprio MIB.
• Event reporting: l’agent genera dei report in autonomia e li presenta al Manager. E’ più efficiente del
polling per monitorare oggetti il cui stato cambia poco di frequente.
10) Netflow
NetFlow permette di conservare la coerenza dell’evento osservato in termini di flusso di traffico da
un’origine a una destinazione e viene utilizzato specialmente quando le dimensioni del flusso di traffico sono
molto elevate (ordine dei 100GB/PB). Tutti i dati di traffico possono essere raccolti ed inviati periodicamente
da ciascun router a un apposito data-collector per successive analisi. Con l’analisi dei flussi di traffico
riusciamo a capire chi sta utilizzando le risorse di rete e come. Abbiamo un dispositivo di rete che genera dei
flussi sulle interfacce di monitoraggio. Il protocollo Netflow permette di inviare i dati sui flussi a dei
dispositivi di monitoraggio dei flussi. Questi dispositivi catturano i flussi ed esportano le informazioni verso
i sistemi di raccolta e analisi dei flussi. L’agente Netflow salva le informazioni sui flussi in una cache e
periodicamente le esporta verso un analizzatore.
_______________________________________________________________________________________
1) Border Router
È uno dei primi elementi su cui effettuare controlli sul traffico in quanto rappresenta un primo sbarramento
di una rete ed è un punto di controllo strategico e non può essere aggirato dall’end-user. I controlli di base
che possono essere effettuati sul router di frontiera riguardano il traffico ammissibile ed è fondamentale la
sua protezione, in quanto una sua compromissione può aprire l’accesso alla LAN ed esporla ad attacchi.
Eccedere nei controlli però potrebbe essere controproducente, infatti avere un eccesso di politiche di
controllo su un dispositivo che non ha abbastanza capacità prestazionale può portare a colli di bottiglia.
Tipicamente un router o uno switch di livello 3 mettono a disposizione dei meccanismi di controllo che però
sono stateless e sono limitati al controllo di indirizzi IP e porte TCP/UDP. Man mano che i controlli
diventano sempre più complessi, si verifica un certo aggravio prestazionale a carico della CPU nell’attività di
forwarding, quindi, questi controlli andrebbero effettuati soltanto se il dispositivo scelto implementa questi
controlli in hardware. Intervenire sul router è comodo perché partiziona i domini di sicurezza in maniera
naturale. Il meccanismo principale di protezione è basato su ACL statiche ed ha il vantaggio di garantire
buone prestazioni e trasparenza a basso costo. Al contrario molti protocolli non sono gestibili e non viene
effettuato nessun controllo sui dati (payload) e lo stato delle sessioni.
2) Firewall
È il principale componente passivo di difesa perimetrale. Per passivo si intende che esso non ha una reazione
proattiva nei confronti di un attacco ma si comporta passivamente bloccando l’attacco. Svolge compiti di
security enforcing con lo scopo di controllare il traffico fra due o più reti permettendo solo quello autorizzato
dalla politica di sicurezza, rilevando e segnalando eventuali tentativi di violazione della politica di sicurezza.
3) Vantaggi e svantaggi firewall
Il principale vantaggio del firewall è che è in grado di percepire il concetto di flusso e di sessione operando
in maniera statefull. Un altro vantaggio consiste nel fatto che un firewall può centralizzare le politiche di
sicurezza e può ispezionare il traffico fino al livello di applicazione. La centralizzazione delle politiche di
sicurezza potrebbe però portare al problema del single-point-of-failure. Infine è dotato di un sistema
specializzato in grado di ottimizzare le operazioni di filtraggio del traffico tramite HW opportuno. Un
firewall utilizza protocolli artificiosi e complessi, quindi il principale svantaggio è in ambito prestazionale.
Un altro problema è come un utente percepisce il firewall stesso, infatti se le politiche applicate sono
eccessive, l’utente potrebbe percepirle come una violazione della privacy. Un altro possibile svantaggio è la
complessità insita nella configurazione di un firewall, infine, nel caso di firewall che devono controllare un
throughput di molti gigabit, si ha a che fare con apparati molto costosi.
4) Funzionalità firewall
Il firewall è un dispositivo di rete con minimo due interfacce di rete, dove ogni interfaccia individua un
dominio di sicurezza distinto su un segmento diverso, quindi può essere visto come un separatore di domini
di sicurezza. Inoltre può implementare diverse funzionalità: può effettuare remapping indirizzi (NAT),
filtrare traffico fra i diverse domini tramite regole predefinite, può mediare l’accesso a specifiche
applicazioni a scopo di controllo ed ispezione (Proxy, Content filtering, Deep packet Inspection e analisi del
traffico, limitazione in banda).
5) NAT su router e Firewall
Quando un router implementa un NAT crea una NAT table per tenere traccia delle connessioni instaurate. Un
router però è molto limitato in quanto è dotato di processori non abbastanza performanti e di capacità di
memoria molto limitate. Un attacco DOS effettuato su un NAT implementato da un router andrebbe a
riempire velocemente la NAT table saturando così la memoria a disposizione. In questa situazione il router
opera liberandosi delle vecchie entry nella tabella per fare spazio alle nuove tramite un meccanismo di
scansione. Questa scansione richiede molta CPU per essere effettuata, quindi il router passerà molto più
tempo a gestire la NAT table trascurando le tradizionali operazioni di routing. Nei firewall invece questi
processi sono realizzati via hardware, quindi sono molto più performanti, inoltre dispone di molta più
memoria per gestire queste situazioni.
6) Tipi di Firewall
Esistono due tipi di firewall:
• firewall hardware: è un componente passivo che opera una difesa perimetrale basandosi su specifici
dispositivi di inspection e filtraggio. Il vantaggio di questa tipologia riguarda la rigidità operativa,
mentre uno svantaggio riguarda la limitata flessibilità.
• firewall software, invece, è un software che viene installato direttamente su hardware general
purpose e offre prestazioni drasticamente inferiori rispetto ai firewall hardware. ma è estremamente
flessibile e facile da configurare.
7) Modalità operative Firewall
Un firewall può lavorare essenzialmente in due modalità: in modalità di livello 3 o routed, oppure in
modalità di livello 2 o trasparente. Un firewall che lavora in modalità routed si presenta come un dispositivo
di livello 3, segmenta reti diverse su base indirizzi IP e ha bisogno di un indirizzo IP su ogni interfaccia
instradando il traffico da un netblock all’altro, effettuando gli opportuni controlli di sicurezza. Un oggetto del
genere è visibile sull’intera rete poiché ha un indirizzo su ciascuna interfaccia. In un firewall che lavora in
modalità trasparente invece, la segmentazione avviene su MAC address. Il firewall si comporta come un
bridge e la sua presenza non è percepibile. Quando lavoriamo in modalità trasparente, router e macchine
devono essere sulla stessa subnet, inoltre l’IP del firewall non deve essere configurato come un default
gateway per i dispositivi connessi che a loro volta devono puntare al router che sta avanti al firewall
(attraversamento trasparente). I vantaggi di un firewall trasparente sono la flessibilità e la facilità di gestione
(non è necessario un reindirizzamento a livello IP e non si possono verificare problemi d’instradamento),
totale invisibilità dall’esterno e maggiore robustezza. Tuttavia in questa tipologia di firewall le seguenti
funzionalità non possono essere implementate in quanto non supportate: NAT, Protocolli di routing, IP/IPv6,
DHCP, Multicast, Terminazione VPN.
8) Filtraggio
Il filtraggio deve essere fatto in ingresso e in uscita sull’interfaccia su cui arrivano ed escono i pacchetti. Il
filtraggio in ingresso permette di caratterizzare il traffico che arriva da altri domini di sicurezza, mentre in
uscita viene caratterizzato il traffico generato localmente. I parametri tipici di filtraggio possono riguardare
l’header IP che contiene informazioni riguardanti il mittente, il destinatario, il protocollo utilizzato, flags,
opzioni (source routing, frammentazioni), oppure l’Header TCP/UDP che contiene informazioni riguardanti
la porta mittente, la porta destinataria e flags TCP.
9) Filtraggio stateless e statefull
Quando si effettua il filtraggio su un router, il filtraggio è completamente stateless, ciò significa che ogni
pacchetto è filtrato indipendentemente dagli altri e non si ha alcuna percezione del flusso dei pacchetti che
fanno parte di una connessione. Questo tipo di filtraggio non permette di rilevare eventuali operazioni
dannose, come ad esempio lo spoofing. Per queste motivazioni il filtraggio stateless è molto limitato.
Lavorando, invece, in modalità statefull quando viene stabilita una connessione, se le regole di filtraggio non
la bloccano, allora le informazioni relative ad essa diventano entry di una tabella di stato. I successivi
pacchetti in ingresso saranno valutati in base all’appartenenza ad una delle connessioni presenti nella tabella
(session filtering). Quando la connessione è conclusa, la entry nella tabella sarà cancellata, per evitare che
questa si riempia completamente. Ogni decisione (permit o deny) viene presa separatamente per ciascun
pacchetto, ma nel contesto di una connessione. Se è relativo a una nuova connessione, ne va verificata
l’ammissibilità sulla base delle politiche di sicurezza configurate. Se viceversa è parte di una connessione
esistente, la stessa va cercata nella tabella delle connessioni, aggiornandone lo stato, se necessario.
10) Politiche di filtraggio
La politica di filtraggio di base è negare tutto ciò che non è consentito. Un firewall (o un router) può operare
in due modalità diametralmente opposte :
• Deny All: Tutto ciò che non è specificatamente permesso è negato. E’ una politica maggiormente
conservativa in termini di protezione e garantisce un’elevata sicurezza, ma limita il numero di scelte
disponibili all’utente.
• Allow All: Tutto ciò che non è specificatamente negato è permesso. Inoltra tutto il traffico e ciascun
servizio dannoso deve essere chiuso caso per caso. L’amministratore di rete ha difficoltà sempre
maggiore nel garantire la sicurezza man mano che la rete cresce.
11) Filtraggio selettivo e Content Filtering
Il filtraggio selettivo specializza le due policy appena viste e permette di filtrare selettivamente i servizi
tendenzialmente pericolosi. Permette l’accesso ad un numero estremamente limitato di servizi erogati da
hosts specifici ed eventualmente controllati. Il Content filtering è una modalità di filtraggio più sofisticata,
che può essere implementata tramite firewall o proxy, che effettua il filtraggio dei contenuti considerati
indesiderati, discutibili e dannosi attraverso l'ispezione delle URL.
12) Architetture AAA
Per poter riconoscere un utente è necessario ricorrere alle architetture AAA (Autentication, Authorization,
Accounting) che sono delle architetture che dividono il controllo degli accessi in tre fasi: Authentication,
identifica l’utente in modo certo, Authorization, definisce a quali risorse l’utente ha accesso, Accounting,
tiene traccia delle operazioni effettuate.
13) Model Access Control
Il modello di rifermento è quello di Lampson mediante il quale si può controllare e proteggere un insieme di
risorse e realizzare una politica degli accessi. Il concetto di protezione e controllo è rappresentato da una
tripla M = (S,O,A) dove S è l’insieme di soggetti (entità attive ad esempio user, indirizzi IP, processi,
dispositivi), O è l’insieme di oggetti (entità passive ad esempio file, interfacce da attraversare, memoria) ed A
è l’insieme di regole che specificano i modi in cui i soggetti possono avere accesso agli oggetti. Il controllo
quindi viene modellato tramite una matrice di controllo degli accessi (matrice di Lampson) che ha sulle righe
i soggetti, sulle colonne gli oggetti e le entry sono le regole e i permessi che il soggetto può fare su un
oggetto. La matrice è sparsa e gli elementi possono essere vuoti, il che la rende abbastanza inefficiente.
14) Implementazione Access Control
Ci sono due possibilità per implementare l’access control:
• Access control list, che sono delle liste di controllo degli accessi.
• Capability lists: ogni utente ottiene un “ticket” o diritto di accesso per ogni risorsa. Devono essere
gestite a livello OS e possono essere passate da un utente o processo a un altro. Il Reference monitor
controlla i ticket, quindi non occorre conoscere l’identità di un utente o processo. Questa modalità
non è più implementata.
15) ACL
L’insieme di tutte le ACL costituisce la politica di controllo degli accessi. Solitamente i diritti di accesso
vengono associati ad un indirizzo IP (ACL standard), se volessimo però associare dei diritti ad un utente è
necessario effettuare un passaggio preliminare a un sistema AAA, dove in fase di autenticazione viene
costruita dinamicamente un ACL che mappa l’identità dell’utente con il proprio indirizzo IP e quindi i diritti
associati all’indirizzo IP vengono associati anche all’utente. Le ACL possono essere implementate a livello
di collegamento, rete, e trasporto, quindi si può effettuare un controllo su base MAC, IP o PORTA (ACL
estese). Le politiche della ACL possono essere anche implementate a livello di data e orario (esempio: una
organizzazione di notte decide di chiudere tutto il traffico in uscita). Una sola ACL può essere applicata a
un’interfaccia in ciascuna specifica direzione (ingresso/uscita).
16) Funzionamento ACL
Il funzionamento dell’ACL è il seguente:
1. Quando il pacchetto attraversa l’interfaccia, innanzitutto bisogna capire a quale livello gestire il
pacchetto. Se il pacchetto risulta corrotto o ad esempio presenta una checksum sbagliata, viene
cestinato in un Packet Discard Bucket.
2. Successivamente viene individuata l’interfaccia di destinazione del pacchetto tramite router table nel
caso di livello 3, o MAC table nel caso di livello 2. Se tramite le table non è possibile individuare
l’interfaccia di destinazione il pacchetto viene scartato.
3. Infine, viene verificato se l’interfaccia di destinazione è all’interno dell’ACL. Se non è presente il
pacchetto viene fatto passare. Viceversa, viene effettuato un Test Access List Statements dove viene
verificato se l’interfaccia di destinazione matcha con permit o deny. Nel primo caso il pacchetto
passa, nel secondo il pacchetto viene scartato e viene inviata (opzionale) una notifica al mittente.
Le ACL vengono elaborate dal router/firewall in maniera sequenziale in base all’ordine in cui sono state
inserite le varie clausole. Appena un pacchetto soddisfa una delle condizioni, la valutazione si interrompe e il
resto delle ACL non viene preso in considerazione. Se il pacchetto non soddisfa nessuna delle condizioni
viene scartato (si considera che alla fine di un ACL non vuota ci sia implicitamente l’istruzione deny all).
17) Posizionamento ACL
Le ACL vanno predisposte quanto più possibile prossime all’obiettivo da proteggere. Ciò permette di
restringere le dimensioni del dominio di sicurezza in modo da incrementare l’efficacia delle politiche di
filtraggio implementate e rendere la soluzione più scalabile. Una caratteristica importante delle ACL è la
ricerca lunga, dove la ricerca viene effettuata finché non c’è un matching o finché la lista non è terminata.
L’efficienza della ricerca dipende dall’ordine, infatti è buona norma inserire l’element di matching più
frequente come il primo nella lista.
18) Iptables
Le ACL possono essere implementati anche su dispositivi Linux-based tramite iptables. Iptables è usato per
impostare, mantenere e ispezionare le regole di filtraggio dei pacchetti IPv4 o IPv6. È possibile definire
diverse tabelle:
• Filter: tabella predefinita che contiene diverse chains integrate quali:
◦ INPUT (per i pacchetti provenienti dall’esterno destinati all’host)
◦ FORWARD (per i pacchetti ricevuti dall’esterno e instradati all’esterno)
◦ OUTPUT (per i pacchetti generati localmente e diretti all’esterno)
• Nat: gestisce la trasformazione dell'indirizzo (NAT) prima dell’instradamento, affinché l'indirizzo IP
di destinazione sia compatibile con la tabella di routing locale.
• Mangle: Modifica dell'intestazione TCP o modifica della QoS prima del routing
• Raw: viene utilizzato principalmente per la configurazione di eccezioni rispetto al tracciamento delle
connessioni
19) Filtraggio a livello 2
Le operazioni di filtraggio possono essere effettuate anche a livello 2. In questo caso, ovviamente, verranno
create delle access list che contengono dei MAC address. In questo caso bloccare un host può risultare utile
quando viene rilevata una macchina che effettua spoofing. Risulterebbe difficile effettuare questa operazione
a livello 3 perché le macchine cambiano facilmente e spesso indirizzo IP, viceversa è molto più complicato
cambiare l’indirizzo Mac.
20) Spoofing dell’indirizzo IP
I controlli sullo spoofing degli indirizzi spetta all’amministratore di sicurezza, infatti essendo il proprietario
del dominio, conosce quali sono i suoi indirizzi e quindi nell’ottica di applicare una politica anti-spoofing,
dovrebbe bloccare gli indirizzi IP uscenti dalla propria rete che non appartengono al suo intervallo di IP noti
applicando una semplice ACL. Questa politica di filtraggio permette di proteggere il mondo esterno da
eventuali attacchi spoofing provenienti dalla propria rete. Il modo più semplice di proteggersi dallo spoofing
in ingresso è quello di scartare tutto il traffico in ingresso con indirizzi sorgente inammissibili rispetto alla
provenienza (indirizzi riservati o indirizzi della rete interna che chiaramente non possono provenire
dall’esterno). Per prevenire inoltre spoofing, volontari o involontari, dall’interno della propria rete verso
l’esterno, analoghe misure di filtraggio vanno applicate in uscita.
21) Strategie per il controllo accessi
Esistono dei template architetturali di base che ci possono dare una guida su come strutturare la rete in modo
da garantire un buon controllo e un buon grado di sicurezza e si basano su concetti di tipo strategico.
Privilegio minimo (least privilege) si basa sul principio del “need to know” in cui ad ogni oggetto da
controllare vanno garantiti solo i privilegi necessari e sufficienti per compiere uno specifico task. Difesa in
profondità (defense in depth) la strategia di base è di non dipendere da un solo meccanismo di sicurezza. Per
quanto questo possa essere solido, non possiamo affidare la sicurezza di un’infrastruttura semplicemente ad
un dispositivo di security enforcement (SPOF). Bisogna quindi introdurre il concetto di ridondanza
attraverso un aumento dei punti di controllo, come ad esempio con l’introduzione di più firewall o più router,
creando diversi livelli di protezione. Se un livello viene compromesso, i rimanenti continueranno a garantire
la protezione dell’asset interessato, inoltre questa stratificazione crea una catena di molteplici punti di difesa
che si coordinano per prevenire gli attacchi. Punto di strozzatura (choke point) dove la logica è quella di
forzare gli attaccanti ad utilizzare uno specifico canale di accesso sufficientemente facile da controllare, allo
scopo di minimizzare la superficie di attacco, portandola ad un solo punto di controllo. Utilizzare questa
strategia ha sicuramente dei vantaggi di tipo gestionale, perché si ha un solo punto di controllo su cui
focalizzarsi, ma lo svantaggio è che se il choke point si guasta allora l’infrastruttura è completamente
compromessa. L’anello più debole (weakest link) dove la logica è che in presenza di multipli punti di
security enforcement che lavorano in logica annidata bisogna ricordarsi che “la catena è forte quanto il suo
anello più debole”, per cui assume notevole importanza l’individuazione ed il rafforzamento dell’anello più
debole della catena.
22) SPOF
I SPOF sono gli anelli deboli della catena della sicurezza e possono portare a gravi compromissioni o
interruzioni di servizio. È quindi necessario identificare tutti i single point of failure e ridondarli se la sua
funzione è critica in modo che la politica di sicurezza non si basi su un singolo elemento. La ridondanza può
essere implementata tramite protocolli FHRP (First Hop Redundancy Protocols). I FHRP forniscono
funzionalità di gateway predefinita ridondante trasparente per gli host finali basati sull’assegnazione di un
indirizzo IP virtuale e di un corrispondente indirizzo MAC virtuale. Azioni come il failover (interruzione
anomala) e il bilanciamento del carico rimangono completamente trasparenti per gli host.
23) Architetture per il controllo accessi
I modelli di architettura per il controllo degli accessi che si dividono in due grandi categorie categorie:
• Gli schemi single-box, basati sulla strategia del choke point. Questi schemi prevedono due
architetture: dual-homed host e screening router.
• Gli schemi multi-box, basati sulla strategia di difesa in profondità. Questi schemi prevedono due
architetture: screened host e screened subnet.
24) Dual-homed host
È realizzata attraverso una macchina dotata di due schede di rete che si collegano a segmenti di rete
differenti. La comunicazione tra dominio interno e dominio esterno avviene solo ed esclusivamente
attraverso la mediazione di questo host dual-homed. Questo aspetto garantisce un livello di controllo
estremamente alto, che però si ripercuote in maniera non banale dal punto di vista prestazionale. Un’altra
caratteristica importante è che la comunicazione tra rete interna e rete esterna può essere controllata a pieno,
anche se diventa difficile fare in modo che utenti che sono su due domini distinti possano cooperare, a meno
che non venga utilizzata un’applicazione comune messa sul dual-homed host stesso. Per fornire i servizi
desiderati all’interno è necessario permettere agli utenti di collegarsi alla macchina, che è altamente
sconsigliato per motivi di sicurezza o far ricorso al proxying che non è sempre possibile. Inoltre, se si
vogliono fornire dei servizi all’esterno devono girare localmente sul dual homed host. Non essendoci un
contatto diretto tra due domini di rete differenti, è necessaria la presenza di un proxy che è presente su
entrambi i domini e fa da mediation device, Il proxy ha vantaggi non banali, infatti ci permette di loggare
molto efficientemente le transazioni che passano. Il proxy, però, introduce un delay non banale e dà una
visione pressappochista della sicurezza, in quanto un server che opera in modalità proxy non è in grado di
proteggere il dominio di sicurezza interna da eventuali debolezze presenti a livello protocollare.
25) Screening router
È possibile utilizzare un router oppure un firewall che fa da screening al posto dell’host. Questa soluzione,
anche se è del tipo single box, ci garantisce l’instradamento di pacchetti da una rete all’altra. Questo tipo di
soluzione è quella più economica e comune possibile ed è utile adoperarla quando la rete da proteggere ha
già un buon grado di sicurezza. Uno dei maggiori problemi è che in architetture di questo tipo abbiamo un
solo oggetto su cui realizzare i controlli (choke point), quindi una volta che lo screening firewall o router
viene compromesso, la sicurezza di tutto il dominio è messa in pericolo.
26) Screened host
L’architettura screened host si colloca in posizione intermedia tra lo screening router e il dual-homed host. In
questa architettura lo screening router permette agli host esterni ed interni di comunicare solo con uno
specifico host della rete interna che è reso particolarmente sicuro tale da poter essere esposto chiamato
bastion host. Tutto l’enforcement delle politiche di sicurezza è affidato alla combinazione efficiente di
bastion host e di screening router. Il ruolo del bastion host è strategico, infatti esso è l’unico nodo della rete
interna in grado di fare traffico verso la rete esterna e ricevere traffico dalla rete esterna. Gli host interni
vedono la rete esterna solo attraverso i servizi proxy offerti dal bastion host. In questo tipo di architettura
abbiamo due single point of failure, che sarebbero entrambi i security enforcement devices. L’architettura
Screened Host diventa appropriata quando le macchine interne sono sicure e le connessioni dall’esterno che
devono interessare il bastion host sono poche. Un’architettura screened host, in termini di vulnerabilità,
presenta degli elementi critici, il più critico dei quali è il bastion host perché diventa la macchina più
vulnerabile ed esposta ad attacchi. Il problema principale di questa architettura è che in architetture di questo
tipo fra il bastion host e la rete interna non ci sono difese, quindi se si riesce ad attaccare il bastion host si
riesce ad entrare nelle rete interna, rendendo necessario aumentare i punti di controllo e filtraggio.
27) Screened Subnet
Aggiunge un livello extra di sicurezza all’architettura screened host creando una rete perimetrale che avrà la
funzione di isolare il dominio inside dal dominio outside e può essere considerata come una specie di DMZ.
Questo tipo di architettura risolve completamente i problemi legati al fatto che possa essere compromesso o
il bastion host o lo screening router esterno. Si hanno, dunque, due screening router, uno situato tra la rete
perimetrale e la rete interna, mentre l’altro è situato tra la rete perimetrale e la rete esterna (per
compromettere il dominio vanno compromessi entrambi i router). Questo modello architetturale può essere
specializzato, potrei avere più reti interne dove ognuna di queste avrà uno screening router indipendente che
la protegge isolandole dall’esterno e che le fa affacciare a una rete perimetrale unica che funge da dorsale. Le
cose si complicano a livello di configurazione perché abbiamo due punti di enforcement delle politiche di
sicurezza.
28) Network Access Control (NAC)
È un approccio che tende ad un unificare, su un’unica piattaforma di controllo accessi, tecnologie di
sicurezza operanti a livello di endpoin, meccanismi di autenticazione a livello utente o sistema e
meccanismi tradizionali per il controllo della sicurezza della rete. L’obiettivo è quello di controllare la
sicurezza degli endpoint facendo in modo che sulla rete ci siano solamente le macchine che sono compatibili
con la politica di sicurezza prestabilita, in modo tale che gli endpoint siano sufficientemente sicuri da essere
proiettati in una rete. I dispositivi che non sono conformi ai criteri di sicurezza stabiliti dall’amministratore
vengono rilevati dalla rete in varie fasi e non vengono ammessi al suo interno. Tipicamente vengono messi in
una situazione di quarantena, in modo tale da non avere accesso alla rete o avere accesso ad una parte
ristretta della rete per rimediare a queste vulnerabilità rilevate ad esempio scaricando ed applicando
aggiornamenti. Tutte le macchine che non rispettano le politiche di sicurezza stabilite rappresentano una
minaccia e diventano un fattore di rischio per la rete che va eliminato. Un NAC permette efficientemente di
mitigare gli attacchi noti riconoscendoli, ma per attacchi zero-day questo concetto non vale poichè si trattano
di minaccia sconosciute ed il NAC non è in grado di riconoscerli.
29) Modalità operative NAC
Un NAC può operare in logica pre-ammissione e post-ammissione. Nel caso della pre-ammissione i
dispositivi prima di avere l’accesso completo alla rete vengono ispezionati e solo se consentito vengono
autorizzati ad accedere alla rete. Viceversa, in logica post-ammissione, vengono prese delle decisioni sulla
base delle azioni dell’utente portando il NAC a decidere se bloccarne l’accesso alla rete e/o inserirlo in
quarantena. La macchina, infatti, potrebbe essere completamente configurata in maniera ottimale per quanto
riguarda le politiche di sicurezza, ma l’uso che se ne fa è scorretto oppure la macchina inizialmente è pulita e
successivamente viene infettata.
30) Acquisizione informazioni sugli endpoint
La raccolta di informazioni può essere fatta in maniera collaborativa (agent-based) o non collaborativa
(agentless). In maniera collaborativa la macchina, volontariamente, per poter accedere alla rete installa un
agente di controllo che analizza il suo stato e riporta le informazioni al NAC controller, sulla base di queste
informazioni il NAC prende le opportune decisioni. Possono esserci dei casi in cui la macchina non è
collaborativa, cioè essa non vuole o non può installare il proprio agent (come dispositivi caratterizzati da un
firmware poco flessibile). In questo caso vengono utilizzate delle tecniche esterne di scansione e network
inventory management per mutuare da remoto le caratteristiche di sicurezza del dispositivo.
31) Operatività Inline e Offline
Inline significa che abbiamo un singolo dispositivo NAC che è in grado di effettuare l’enforcing delle
politiche di controllo degli accessi. Viceversa, nella modalità di lavoro offline gli agent che abbiamo sui
dispositivi riportano le informazioni ad una console di management e controllo del NAC, che a sua volta si
interfaccia con gli switch ed i firewall pilotando l’enforcement delle politiche.
32) Remediation
Quando ci si accorge che una macchina non è adeguata a poter acceder alla rete possiamo decidere due
strategie diverse di remediation: la prima è di inserire la macchina in quarantena oppure dare l’accesso alla
macchina subordinato all’utilizzo di un captive portals. Nel caso in cui si ricorre al meccanismo della
quarantena viene consentito di accedere ad una rete ad accesso limitato che gli permette di accedere solo ad
alcuni servizi. L’altra opzione è quella di restringere l’accesso alla rete subordinato ad un captive portal, che
potrebbe restringere l’utente a una pagina Web di accesso dove lo stesso dovrà procedere all’autenticazione
prima di ottenere l'accesso completo.
33) Funzionamento NAC
Un NAC è costituito da un punto di enforcement delle politiche di sicurezza, che può essere un NAC
controller e da un punto decisionale che si può agganciare ad una base dati di autenticazione e che provvede
al riconoscimento degli utenti. Appena una macchina decide di fare accesso alla rete, tale accesso viene
inizialmente bloccato e parte una procedura di singe-sign-on oppure un web-login in cui il NAC provvede a
verificare il dispositivo e le credenziali utente. Dopo queste verifiche, se la macchina non è conforme oppure
l’utente non è stato riconosciuto (l’autenticazione avviene tramite Architetture AAA) si verifica una
negazione dell’accesso ed un eventuale inserimento in quarantena. Viceversa, se il dispositivo è conforme
allora viene inserito in una lista dei dispositivi certificati e da questo momento in poi l’accesso viene
regolarmente consentito.
34) Componenti NAC
I componenti di base di un’architettura NAC sono tre: la componente che richiede l’accesso Access
Requestors, i dispositivi che effettuano l’enforcement delle politiche di controllo degli accessi Policy
Enforcement Point e che attuano le politiche sulla base delle decisioni che vengono prese dal Policy Decision
Point. Un access requestors deve essere composto da almento tre componenti: Posture Collectors (PCS), che
corrisponde all’agent che raccoglie informazioni sullo stato della sicurezza della macchina, il Client Broker
(CB), che prende le varie informazione che i vari PCS ricavano e le trasmette al Network Access Requestor,
e il Network Access Requestor (NAR) che ha la funzione di connettere i clients alla rete, di gestire
l’autenticazione a livello utente. Nel caso in cui si lavora in modalità agentless i posture collectors possono
essere componenti esterne che non sono situate sulle macchine, ma potrebbero essere localizzate, ad
esempio, sulla console del NAC. Il posture agent (PA) funge da unico punto di contatto sull'host per
aggregare le credenziali da tutti i plug-in di controllo e comunicare con la rete. Il policy enforcement points
(PEP) comprende vari Network Enforcement Point che garantiscono e controllano l’accesso alla rete. Il
policy decision points (PDP) è composto da: multipli Posture Validator, che ricevono le informazioni dai
corrispondenti posture collector e le validano rispetto alle policy da applicare, Broker (Server Broker), che
raccoglie e consolida tutte le informazioni ricevute dai posture validators per poter determinare le decisioni
di accesso ed invia tali decisioni al Network Access Authority, Network Access Authority (NAA) che valida
le informazioni di autenticazione e di posture e passa il risultato di tali decisioni al PEP, che sarà quello che
fisicamente non consentirà o consentirà al dispositivo di accedere alla rete.
35) Meccanismo NAC
1. I PCS raccolgono informazioni sullo stato della sicurezza dell'endpoint. 2. Il CB consolida i dati
dell'endpoint ricevuti dai PCS e li passa al NAR. 3. Il NAR ottenuti tali dati di valutazione della sicurezza li
invia al PEP. 4. Il PEP riceve tali dati e li invia al PDP. 5. La NAA riceve i dati dal AR tramite il PEP. Se è
coinvolta l'autenticazione, la NAA verifica su un DB di autenticazione se l'utente ha credenziali valide. 6.
Ogni PVS controlla le informazioni dal corrispondente PCS e trasmette il verdetto al SB. 7. Il SB consolida
l'input del PVS in un'unica policy response. 8. La NAA invia la risposta e le istruzioni corrispondenti al PEP.
1) Limiti Firewall tradizionali
Con l’evoluzione delle reti e soprattutto con il diffondersi della connettività mobile, stanno cambiando i
concetti di domini di sicurezza, di perimetri di difesa e di superfici di attacco. In particolare il perimetro di
sicurezza sta diventando sempre più poroso/fluido e quindi viene meno il concetto di logica di demarcazione.
Questo aspetto ha conseguenze devastanti sulla gestione della sicurezza delle reti, perché la superficie di
attacco diventa infinita e diventa sempre più complicato creare delle barriere perimetrali. Da questo scenario
vengono fuori tutte le debolezze di un tradizionale firewall. Un firewall tradizionale infatti non protegge da
attacchi interni, non protegge da virus e trojan, da attacchi nuovi, da connessioni che non lo attraversano, da
cattive o inesistenti policy, da attacchi fisici per cui non può fungere da unico punto di difesa. Sparisce,
quindi, il concetto di “modello fortezza” fondato su screening firewall posti sul bordo esterno della rete e le
ACL diventano poco flessibili per definire le politiche di sicurezza.
2) Nuovo approccio per garantire la sicurezza
Per garantire la sicurezza è necessario orientare la sicurezza verso un approccio olistico e collaborativo. I
problemi quindi non verranno gestiti dalle singole componenti, ma in modo condiviso attraverso la
cooperazione di tutti i componenti che ne fanno parte. Un sistema di sicurezza di questo tipo deve avere le
seguenti proprietà: consapevolezza dei rischi e delle minacce, integrazione fra i sistemi di sicurezza,
condivisione delle informazioni per migliorare la visione e cooperazione per permettere un’azione coordinata
più efficace. Quindi il nostro ecosistema di protezione deve comprendere: Firewall tradizionali, Intrusion
Detection/Prevention, Content Filtering e Web Reputation (tramite il blocco accesso a URL dannosi o
contenuti non consentiti) , Integrity Monitoring (per l’individuazione in tempo reale di cambiamenti
sospetti), Log Inspection (per permettere l’automazione dell’analisi dei Log e la generazione degli alert),
Antimalware (per la protezione in tempo reale dei dispositivi), Application Control (per la gestione e il
controllo delle applicazioni).
3) Next Generation Firewall
Un next-generation firewall conserva tutte le caratteristiche di un firewall tradizionale integrandole con
quelle di intrusion detection, inoltre è in grado di applicare delle policy più sofisticate che devono
riconoscere i protocolli tramite deep packet inspection e riconoscere la semantica di determinati attacchi.
Garantisce una visibilità full stack, cioè mentre un firewall tradizionale si ferma al livello di trasporto, i
nuovi arrivano fino al livello di applicazione ed oltre. Un firewall di nuova generazione deve anche integrarsi
con sistemi di monitoraggio esterni, con sistemi di autenticazione utenti, e con sistemi che siano in grado di
monitorare il traffico ed individuare eventuali minacce.
4) Funzionalità Next Generation Firewall
Tra le funzionalità fondamentali troviamo l’individuazione delle risorse più a rischio, la reazione tempestiva
agli attacchi grazie all’automazione intelligente della sicurezza, la rilevazione efficace delle attività evasive o
sospette tramite la correlazione degli eventi, protezione della rete in tutte le fasi dell’attacco, blocco delle
minacce in tempo reale, creazione di un perimetro logico proteggendo uniformemente tutti gli utenti,
identificazione delle applicazioni e degli utenti.
5) Classificazione del traffico
L’elemento caratterizzante dei firewall di nuova generazione è quella di classificare il traffico per poter
riconoscere a livello protocollare specifiche applicazioni. L’obiettivo principale della classificazione è quello
di individuare e riconoscere i vari flows nella rete a scopo di implementare politiche di filtraggio o Quality of
Service. Il Cisco NBAR (Network Based Application Recognition) è un motore di classificazione del traffico
e permette di analizzare in tempo reale, tramite deep packet inspection e payload analysis, il traffico che
fluisce lungo la rete in modo da poter riconoscere i protocolli che transitano.
6) Intrusion Detection/Prevention
Sono strumenti di rilevazione automatica delle intrusioni. Gli Intrusion detection si occupano di identificare e
segnalare un attività di intrusione mentre l’Intrusion prevention estendono i meccanismi di detection
attraverso funzioni di controllo accessi avanzato per proteggere i target in tempo reale. I sistemi di intrusion
detection, solitamente, lavorano offline (non è attraversato da traffico, ma lavora in logica sniffer). Attraverso
un punto di intercettazione ricevono il flusso di traffico e sulla base di ciò che ricevono, possono individuare
degli eventi per poi generare degli alert. Un IDS, quindi, ha bisogno di una singola interfaccia che lavora in
promiscous mode. Inoltre non rallenta il traffico di rete e consente comunque il transito e l’attività del
traffico dannoso. Un IPS si basa sulla tecnologia di un IDS per eseguire l’attività di rilevamento, ma in più è
in grado di affrontare immediatamente la minaccia, in quanto il traffico deve attraversarlo (opera in modalità
inline). Il monitoraggio del traffico viene effettuato partendo dal livello di data link fino a livello di
applicazione, inoltre esso è in grado anche di impedire ai pacchetti di raggiungere un sistema target (cosa che
un IDS non può fare).
7) Vantaggi e Svantaggi IDS/IPS
Un IDS non ha nessun impatto sulla rete in termini di prestazioni e in caso di guasto del sensore, ma le
reazioni non possono bloccare i pacchetti ostili ed è vulnerabile a tecniche di network evasion. Un IPS
blocca i pacchetti di attacco, ma ha qualche impatto sulle prestazioni di rete ed eventuali guasti o
sovraccarichi all’IPS influiscono sulla funzionalità della rete.
8) Componenti architetturali IDS/IPS
I componenti architetturali sono: motore di packet inspection, audit data processor, knowledge base, motore
decisionale, sistemi di alarm generation e response management. Si parte da un motore di packet inspection
che, mediante una tecnica di packet capture, estrae i record di audit. L’audit data processor estrae le
caratteristiche che vengono date in input al motore di detection che le matcha con i modelli che conosce.
Sulla base di questi matching vengono fuori degli allarmi che si traducono in opportune azioni o opportuni
report di allarme. Le caratteristiche delle componenti architetturali sono gli elementi descrittivi del traffico
che permettono di capire come esso si comporta e possono essere: la lunghezza dei pacchetti, i tempi di
interarrivo, e le rate di invio.
9) Approcci IDS/IPS
I due possibili approcci, che caratterizzano le implementazioni di sistemi di intrusion detection e prevention,
sono quelli basati su:
• Misuse detection system, che usano pattern di attacchi ben conosciuti o di punti deboli del sistema
per identificare le intrusioni
• Anomaly detection system, che opera sulla base di variazioni statistiche delle caratteristiche
matchate.
10) Approccio Misuse Detection
L’approccio misuse detection è basato sulla costruzione di un database di conoscenza detto signature DB che
viene utilizzato dal detection engine che farà pattern matching sequenziali sulla base della sua conoscenza. Il
vantaggio è che sono molto accurati, ma lo svantaggio è che queste soluzioni non sono in grado di
riconoscere attacchi zero-day. Ogni signature è caratterizzata da almeno tre attributi distinti: il tipo, il trigger
(allarme) ed una eventuale action. Per quanto riguarda il tipo, le signature possono appartenere a due
categorie: le signature atomiche, rilevabili analizzando un singolo pacchetto, e le signature composte definite
anche come signature stateful, identificano, su un periodo di tempo, una sequenza più complessa di
operazioni distribuite su più host. Il periodo di tempo è un parametro significativo noto come orizzonte degli
eventi, cioè la durata dell’intervallo di tempo in cui va conservato lo stato del flusso della connessione per
poter effettuare il matching della specifica signature. L’orizzonte degli eventi viene configurato in maniera
specifica per ogni signature e non deve essere di dimensioni troppo ampie, perché un IDS o un IPS non può
conservare informazioni di stato indefinitamente. I trigger, invece sono gli allarmi generati quando si verifica
il match di una signature. Le action sono le azioni di risposta. Man mano che vengono identificate nuove
minacce, è necessario creare e caricare nuove signatures nella base di conoscenza di un IDS/IPS. Alle
signature è possibile associare degli specifici livelli di allarme, che sono relativi a livello di severità
individuato (Basso, Medio, Alto, Informativo). Quando vengono utilizzate signature basate sul matching
esatto di pattern specifici, si è in grado di individuare attacchi con un comportamento codificato da tali
signature, cioè estremamente regolare.
11) Approccio anomaly based
In presenza di attacchi di tipo polimorfo, si potrebbero avere comportamenti che non si è in grado di
riconoscere. La soluzione a questo sono gli approcci anomaly based. Gli approcci anomaly based, a
differenza degli approcci misuse detection, non necessitano di un database di conoscenza costituito da un
insieme di signature, ma si comportano in maniera totalmente adattativa, cioè sono in grado di riconoscere
eventuali fenomeni e, di conseguenza, generare degli opportuni modelli. Il motore in questo caso utilizza una
cosiddetta logica di outlayer detection, ovvero, è in grado di riconoscere anche attacchi zero-day in forma di
variazioni rispetto ad un modello di normalità precedentemente noto. Un altro aspetto interessante è che
garantiscono la situational-awareness, cioè una reattività basata sul singolo scenario che vanno a trattare. Il
sistema è, quindi, in grado di imparare rispetto allo specifico fenomeno che sta osservando ed è in grado di
costruire conoscenza su di esso.
12) Categorie approcci anomaly based
Gli approcci anomaly based si dividono in due categorie:
• Specification based che definisce un profilo che descrive un comportamento di “normalità” del
fenomeno in osservazione, va quindi a rilevare le possibili deviazioni rispetto ad esso. Questo tipo di
approccio non è detto che sia sempre preciso: potrebbe avere un significativo numero di falsi positivi
e potrebbero essere riconosciuti come eventi anomali delle attività normali non ancora note al
modello, inoltre, potrebbero verificarsi dei guasti fisici interpretati dal sistema come eventi anomali.
• Behaviour based devono essere in grado di adeguare il modello di comportamento del traffico
“normale” al processo di evoluzione della rete in osservazione, ricostruendo il profilo
comportamentale e ridefinendo la stessa definizione di “normalità” del sistema e di anomalia.
13) Implementazioni IDS/IPS
Le implementazioni si distinguono per essere basate su un approccio orientato all’analisi del traffico di rete
(network based) o all’analisi dell’attività dei singoli processi sulle singole macchine coinvolte (host based).
Le implementazioni host-based effettuano il monitoraggio a livello di sistema operativo per riconoscere delle
specifiche attività ostili di intrusione generate. Questi sistemi richiedono informazioni molto accurate per
poter fare una detection efficace, inoltre incorrono in alcune problematiche come la forte dipendenza
dall’intervento umano e la possibilità di modificare l’IDS (al fine di truccare i log) se la macchina viene
violata. La visione degli attacchi è esclusivamente locale. Le implementazioni network-based analizzano il
traffico di rete per identificare intrusioni, permettendo quindi di monitorare non solo un singolo host ma una
rete completa. Queste implementazioni sono basate su punti di osservazione multipli, localizzati in punti
strategici della rete. Questi sistemi sono in grado di fare deep packet inspection sul traffico di rete e sono in
grado di riconoscere tracce di attacchi generando eventuali allarmi in presenza di intrusioni/violazioni.
14) Sandbox
È un sistema che mette a disposizione un ambiente virtuale isolato per l’identificazione dinamica di malware.
Il potenziale malware viene catturato ed eseguito su una VM isolata nel sistema di sandboxing.
Successivamente la VM viene analizzata attraverso scansioni. Per capire se ciò che è stato catturato è
realmente un malware, vengono esaminati tramite tecniche di ML memoria, chiamate di sistema, connessioni
di rete e accessi al file system. Il sandbox funziona nel seguente modo: Il FW comunica con il sistema di
sadboxing. Quando il FW individua una possibile minaccia, questa viene bloccata e mandata al sistema di
sandboxing. Il sistema lancia il possibile malware in un ambiente isolato e ne analizza i comportamenti. Se
non vengono rilevati malware allora ciò che è stato bloccato viene fatto passare dal FW. Nel caso invece
fosse rilevato un malware, rimane nello stato di blocco e il sistema di sandboxing invia un report ad un
malware analyst.
15) Sistemi di Log Management
È un sistema di raccolta remoto dei log da sistemi multipli. Permette di notare eventuali comportamenti
insoliti che potrebbero rivelarsi potenziali pericoli ed effettua l’analisi dei problemi emersi nel sistema. Il
sistema evita la perdita dei log anche a seguito di guasti hardware o software o di risalire alle criticità che
hanno generato l’evento.
16) SIEM ( Security information and event management)
È un'evoluzione più sofisticata dei sistemi di Log Management. È un sistema che combina le funzioni di
Security Information Management (SIM) e Security Event Management (SEM). SEM gestisce il
monitoraggio Realtime, la correlazione di eventi e il threat intelligence e visualizzazione dei dati. SIM invece
tratta la raccolta e la memorizzazione a lungo termine dei logs eventi ed effettua l'analisi e il reporting dei
dati di logging. L'attivita di un SIEM è articolata in 5 fasi consecutive:
• Prima fase - Raccolta e aggregazione dei dati di logging.
• Seconda fase - Correlazione degli eventi. In questa fase vengono collegati e correlati gli eventi per
identificare gli attacchi.
• Terza fase – Generazione alert e tracciamento incidenti. Una volta identificato un problema, in
questa fase viene prima individuato la gravità del problema (severity) e successivamente l’alert viene
notificato agli amministratori di sicurezza (SOC).
• Quarta fase – Generazione Security e Compliance Reports. Questa fase permette di monitorare
graficamente la situazione del sistema, aiutando l’amministratore del sistema nella scelta di soluzioni
per risolvere eventuali minacce.
• Quinta fase – Archiviazione logs per forensics analysis. I dati vengono raccolti per future indagini
forensi. Possono essere solo conservati i dati relativi a problemi di sicurezza. L’archiviazione
consente la conservazione di legge e facilita l’analisi e la ricostruzione della timeline degli eventi
a) Attacchi attivi e passivi
Gli attacchi attivi sono degli attacchi percepibili e rilevabili tramite attività di sniffing o IDS. Si suddividono
a sua volta in benigni e maligni. I primi riguardano delle attività di scansione del target per acquisire
informazioni circa la struttura della rete, le macchine presenti e i servizi offerti. I maligni invece riguardano
sono orientati a creare dei danni ad una potenziale vittima. Gli attacchi passivi invece mirano ad intercettare
una comunicazione tra due host ed è caratterizzato da una terza figura chiamata man-in-the-middle. Durante
l’intercettazione non viene alterato il contenuto dei pacchetti, ma ne viene solo compromessa la privacy.
b) Network Scanning
È la prima fase di un attacco e consiste nello scansionare la rete in modo da avere una mappatura delle
macchine presenti. Una volta individuate le macchine viene effettuato un vulnerability scan per scoprire
eventuali debolezze. Lo scanning può essere passivo o attivo. Il primo si basa sull’analisi del traffico tramite
sniffing, mentre quello attivo utilizza strumenti attivi per sondare indirizzi IP e porte.
c) UDP e ICMP Network Mapping
UDP Network Mapping sfrutta il fatto che l’invio di pacchetti UDP sulla porta 6 di qualsiasi macchina
genera una risposta a ritroso. Analogamente l’ICMP Network Mapping sfrutta il fatto che le macchine sono
abilitate di default a rispondere a dei ping, a meno che la risposta non sia bloccata da un firewall. I messaggi
a ritroso permettono all’attaccante di costruire una mappatura della rete.
d) ICMP traceroute Network Mapping
Sfruttando il meccanismo su cui si basa il traceroute è possibile effettuare una scansione della rete, in
particolare utilizzando i messaggi ICMP “destinazione non raggiungibile” o “tempo scaduto” non solo si
riesce ad ottenere una mappatura degli host nella rete, ma si riescono a percepire anche i router anteposti alle
macchine, andando a ricostruire tutta l’infrastruttura di rete. Questo attacco è facilmente percepibile
rilevando una grande quantità di pacchetti UDP mandati su porte effimere. Effettuando un deep packet
inspection è possibile notare che questi pacchetti vengono inviati alla stessa destinazione con TTL che
variano continuamente. Inoltre se l’attacco ha successo inizieranno ad arrivare a ritroso i messaggi ICMP
“tempo scaduto”.
e) TCP Stealth Network Mapping
È una tecnica che sfrutta il comportamento del protocollo TCP che è meno evidente rispetto ai precedenti.
Per bypassare la clausola ESTABLISHED l’attaccante potrebbe agire in questo modo: invia un pacchetto
SYN all’host vittima che risponderà con un pacchetto SIN+ACK a ritroso. L’attaccante non invierà l’ACK
del SYN+ACK e la connessione viene chiusa. L’attaccante potrebbe agire anche in un altro modo: invece di
inviare un pacchetto SYN invia direttamente alla vittima un pacchetto SYN+ACK effettuando un three-way
handshake malformato. In questa condizione il protocollo prevede che l’host vittima risponda con un
pacchetto RST. Questa tecnica può essere rilevata con un IDS che riesce a rilevare gli ACK fuori sequenza.
f) Port Scanning
È una tecnica che permette di capire quali sono i servizi offerti da un host in rete tramite la scansione delle
porte, individuando eventuali debolezze. Il risultato della scansione può essere: accepted (vi è un servizio
attivo su quella porta), denied (le connessioni su quella porta sono rifiutate) o bloccata/filtrata (non c’è stata
nessuna risposta dall’host e quindi è probabile la presenza di un firewall o un ostacolo di rete che blocca
l’accesso alla porta.
g) UDP port scanning
Questa tecnica sfrutta il fatto che le porte che non hanno nessun servizio attivo rispondono alle richieste con
un messaggio di errore ICMP “porta non raggiungibile”. Se non si riceve alcuna risposta è plausibile che
sulla porta ci sia un servizio in ascolto e che la risposta sia bloccata ad esempio da un firewall.
h) TCP port scanning
Aprendo una connessione mediante un three-way handshake è possibile effettuare una scansione per rilevare
i servizi offerti a livello TCP. Se vi è una porta aperta all’invio di un pacchetto SYN la macchina risponderà
con un pacchetto SYN+ACK. In questo caso l’attaccante invia l’ACK del SYN+ACK, completando la
connessione che successivamente viene subito chiusa. Quando una connessione viene stabilita viene generato
un file di log, quindi vengono lasciate delle tracce che sono facilmente individuabili da sistemi IDS. Se
invece su quella porta non vi è alcun servizio la macchina risponde con un pacchetto RST. Per evitare che la
sessione venga loggata l’attaccante cercherà di abortire la connessione prima che venga instaurata. In questo
caso l’attaccante invece di inviare l’ACK del pacchetto SYN+ACK invierà un pacchetto RST che chiuderà la
connessione. Per bloccare queste scansioni basta un’ACL con la clausola ESTABLISHED.
i) Non SYN-ACK-RST scannings
Sono degli scannings che si basano sull’invio di pacchetti fuori sequenza che non prevedono l’utilizzo dei
flag TCP SYN, ACK e RST in modo da bypassare filtri con la clausola ESTABLISHED. Tra i vari tipi
abbiamo:
• FIN scan: vengono inviati dei pacchetti FIN direttamente su una porta. Se la porta è aperta il
pacchetto viene ignorato, altrimenti se è chiusa si riceve un RST
• Xmas Tree: prevede l’invio di un pacchetto con i flag URG, FIN e PUSH attivati alla porta target. Il
target risponde con RST per tutte le porte chiuse
• NULL scan: vengono inviati pacchetti con tutti i flag disattivati. Il target risponde con RST per tutte
le porte chiuse.
Queste scansioni sono rilevabili tramite filtri TCPdump individuando le posizioni dei flag TCP.
l) TCP Decoy scan
La reale provenienza della scansione viene mascherata attraverso l’invio di un’enorme numero di altri
pacchetti di scansione inviati da indirizzi spoofati. Il target risponderà a tutti non avendo nessun modo per
rilevare l’origine.
m) NMAP
È un software che implementa tutte le tecniche di scansione conosciute. Ha le seguenti caratteristiche: host
discovery, port scanning, version detection dei servizi per individuare debolezze, OS detection
(fingerprinting).
1) Cos’è un DoS?
Un DoS è un attacco attivo maligno che ha lo scopo di sospendere temporaneamente o indefinitivamente i
servizi offerti da un host o di un’infrastruttura in rete. Un DoS è scalabile in ottica distribuita, in questo caso
parleremo di DDoS dove l’attacco viene effettuato coordinando più sorgenti di attacco situati in posizioni
geografiche differenti verso una macchina vittima.
2) Quali sono i requisiti per effettuare un DoS?
Un attaccante deve avere, rispetto al target, maggiore potenza di calcolo e larghezza di banda, controllare un
gran numero di computer e gestirli come gruppo unico, sfruttare una proprietà del sistema operativo o delle
applicazioni sul sistema vittima, o di una rete terza parte che consente a un attacco di consumare molte più
risorse della vittima rispetto all'attaccante.
3) Quali sono le fasi di un DDoS?
1. Scansione di decine di migliaia di hosts per l’individuazione di vulnerabilità note
2. Exploit delle vulnerabilità a scopo di compromissione degli host conquistandone l’accesso
3. Installazione dei tools per la realizzazione del DDoS
4. Sfruttamento degli hosts conquistati come base di partenza per ulteriori scansioni e compromissioni
5. Una volta installati i DDoS tools su un numero sufficiente di hosts si procede all’avvio dell’attacco
attivando handlers e agents a partire da un client remoto
4) Suddivisione DDoS
I DDoS vengono suddivisi un due grandi tipologie: Bandwith Saturation e Resource Starvation. I Bandwith
Saturation hanno lo scopo di saturare la banda di rete della vittima negandone le risorse principali. In questa
categoria rientrano i Flood Attack e gli Amplification Attack. I primi consistono nell’invio spropositato di
pacchetti UDP o ICMP verso l’host vittima in modo da saturarne le risorse e possono essere diretti (il flusso
viene generato direttamente verso la vittima) o riflessi (Reflection Attack) dove l’attaccante sfrutto un host
vittima terzo per perpetrare l’attacco. Gli Amplification Attack invece amplificano la potenza dell’attacco
sfruttando delle configurazioni errate degli elementi della rete. In questa categoria rientrano i Broadcast
Amplification Attack e i DNS Amplification Attack. Gli attacchi Resource Starvation invece si basano sul
generare flussi di dimensioni limitate che non sono facilmente percepibili da un sistema automatico di
rilevamento. Questi flussi sono realizzati in maniera tale da saturare la capacità delle risorse di un server in
modo tale da sfruttare delle vulnerabilità di livello protocollare o generare pacchetti malformati da mandare
poi al sistema target.
5) Strategie di mitigazione statica Bandwith Saturation
Per mitigare in maniera statica questo attacco possono essere utilizzati Firewall, router e sistemi IDS/IPS.
Questi devono essere utilizzati dall’infrastruttura che offre i servizi al target. Una strategia di mitigazione
statica permette di contrastare l’attacco utilizzando policy fissate staticamente (ACL). Per attacchi di
capacità limitata può essere utile utilizzare un firewall tradizionale. Quando il traffico è dell’ordine dei Gb è
ideale utilizzare un router, mentre per livelli di traffico ancora più alti è necessario utilizzare IPS o firewall di
ultima generazione.
6) Strategie di mitigazione dinamica Bandwith Saturation
Una strategia di mitigazione dinamica oltre a fare affidamento su Firewall, router e IDS/IPS, fa affidamento
sull’intera rete che, in modo coordinato, cerca di effettuare una reazione cooperativa in accordo ad una
politica comune, in questo caso parleremo di reazione network-centrica. Gli IDS/IPS vengono utilizzati per il
rilevamento e l’alerting. La logica di threat intelligence correla le segnalazioni degli IPS/IDS, riconosce la
minaccia, ne individua le contromisure da attivare e infine configura routers e firewalls. I router vengono
utilizzati ad esempio per pilotare il traffico verso black holes o centri di cleaning e per reinstradare il traffico
bonificato, oltre ad applicare le classiche misure di filtraggio come i firewall. I meccanismi principali
utilizzati sono Blackholing e Sinkholing e i Cleaning Center.
7) Blackholing e Sinkholing
Blackholing e Sinkholing sono dei meccanismi che prevedono il dirottamento del traffico offensivo verso un
black hole che provvederà a scartarlo. Il Blackholing funziona solo su indirizzi di destinazione, lavorando a
livello fisico su processori ASIC di inoltro che sono progettati per funzionare nel caso di routing verso una
specifica interfaccia fittizia Null0, in modo da eliminare il pacchetto con un impatto minimo o nullo sulle
prestazioni. Quando arrivano i pacchetti viene consultata una FIB (Forwarding Infomation Base) che in base
alla destinazione sceglie l’interfaccia su cui va mappato il traffico. Se il traffico contiene dei prefissi che
vanno instradati verso Null0 blocca il traffico. Una Sinkholing è una rete che viene configurata
appositamente per rilevare traffico ostile. Quando un host rileva dei flussi DDoS da dei provider esterni
annuncia gli indirizzi da instradare verso la rete di Sinkhole. A questo punto l'attacco viene reinstradato verso
il sinkhole liberando l’infrastruttura target e il suo router di aggregazione. Presso la sinkhole network è
possibile applicare filtra via ACL, analizzare i flussi di traffico, effettuare tracciamento a ritroso, ecc.
8) Fasi reazione coordinata
1. Fase di detection: vengono rilevati gli attacchi DDoS mediante le piattaforme di anomaly detection.
2. Fase di diversione del traffico: vengono avviate delle procedure per l’instradamento del traffico verso
centri di analisi e filtraggio per poter ripulire il traffico anomalo.
3. Fase di cleaning/filtraggio: vengono applicati dei filtri al traffico per poter eliminare la parte ostile e far
passare il traffico legittimo.
4. Fase di reinstradamento: il traffico ripulito viene reinstradato verso il target.
9) Come avviene il processo di Cleaning?
Il processo di cleaning parte da filtraggi statici dei pacchetti sulla base di regole predefinite statiche.
Successivamente viene fatto un controllo anti-spoofing. Poi viene effettuata un’ispezione statistica tramite
meccanismi di Anomaly Recognition che analizzano il traffico e lo confrontano con una baseline. Sulla base
di queste informazioni possono essere inseriti anche dei filtri dinamici subito dopo la fase di filtraggio
statico. Infine se è rimasto qualcosa non filtrabile viene limitato in banda.
10) Ruolo del BGP
Il BGP ricopre un ruolo fondamentale nella mitigazione di un attacco DDoS in quanto applica delle politiche
di reinstradamento del traffico. Ragionando in ottica Blackholing, quando un host rileva l’attacco, per evitare
di saturare il collegamento e quindi rendere irraggiungibile l’intera rete, effettua un annuncio BGP
contenente l’indirizzo della macchina vittima e un messaggio che indica una blackhole community, per
bloccare il traffico verso l’indirizzo specificato. Tramite questo annuncio, nella tabella FIB di provider e
punti di peering verrà inserita una entry contenente l’indirizzo del target interfacciata con Null0. In questo
modo si riesce a non saturare il collegamento, ma l’host vittima risulterà irraggiungibile fino a quando
l’attacco non sarà concluso. Esiste un altro meccanismo chiamato BGP Flowspec che permette di
caratterizzare il traffico e di specificarne determinate azioni da eseguire per poi comunicare le informazioni
via BGP. Supponiamo ad esempio un attacco DDoS TCP SYN, bloccando i pacchetti TCP con il flag SYN
alzato che superano un determinato rate, poiché i DDoS hanno rate molto elevati, riusciamo a filtrare il
traffico lecito da quello ostile. Il three-way handshake infatti è caratterizzato da rate bassi, quindi i pacchetti
legittimi non verranno bloccati e le connessioni stabilite.
11) Botnets
Una botnet è un insieme elevato di macchine compromesse da un attaccante su cui è stato installato un agent
chiamato bot. Il bot consente all’attaccante di gestire e coordinare tutta la rete tramite un meccanismo di
Command&Control. Tipicamente viene utilizzato il modello Agent-Handler dove il bot master è nascosto da
una serie di macchine intermedie chiamate handler che interrompono dal punto di vista dell’identificazione
la catena di command & control in modo che non sia direttamente il bot master a connettersi ai bot per dare
ordini. Le comunicazioni possono avvenire in maniera cifrata in modo che se si riesce a compromettere la
comunicazione deve essere difficile risalire all’ideatore dell’attacco. Questi attacchi possono essere mitigati
tramite l’applicazione di filtri (in genere anti-spoofing) in ingresso e in uscita sulle macchine intermedie che
forniscono servizi al target oppure nel caso non sia possibile filtrare è possibile limitare in banda i flussi che
superano una determinata frequenza di interarrivo, in questo modo un attacco non riesce a saturare le risorse.
12) Altri modelli per Botnets
Modello IRC-Based: anziché usare degli handler intermedi che schermano l’attaccante dalla legione di bot,
si utilizza un canale IRC. Quando sul canale viene scritta una determinata keyword i vari bot si attivano ed
innescano una specifica azione. Questi attacchi oggi sono in disuso perché è difficile rilevare l’attaccante ma
è facile rilevare il canale IRC utilizzato per portare le informazioni. Il canale IRC utilizzato come catena di
command & control diventa, in questo caso un single point of failure.
Modello Web-Based: dove gli handler sono normali web-server. Gli agent in attesa di comandi si
connettono periodicamente ad uno o più server legittimi e solo quando trovano una keyword specifica
effettuano l’attacco. Anche in questo caso l’attaccante è ben nascosto dietro a dei server apparentemente
legittimi.
Modello P2P-Based: l’attaccante e tutti i bot fanno parte della stessa rete P2P con ruoli diversi. L’attaccante
è l’unico che può pubblicare un determinato contenuto che viene usato dai singoli bot per individuare una
logica di azione. In questo modello non è necessaria la presenza di handler intermedi in quanto tutti fanno
parte della stessa logica P2P. Per rilevare il bot master, che utilizza un indirizzo spoofato, occorre identificare
le decina di migliaia di host connessi alla rete. Quindi la rete P2P stessa è una botnet in cui le macchine
compromesse comunicano con l’attaccante. Questo tipo di attacco è l’ultima frontiera ed è il più difficile da
contrastare perché andrebbe rimossa completamente l’intera rete P2P.
13) ICMP flooding
L’ICMP flooding prevede il congestionamento di linee e il sovraccarico elaborativo di routers ed host
attraverso l’invio indiscriminato di messaggi ICMP (in genere HOST- UNREACHABLE o NETWORK-
UNREACHABLE perché questi di solito non vengono filtrati). Esso si riconosce sniffando il traffico ed
individuando un numero enorme di pacchetti ICMP sia in ingresso e sia a ritroso, che saturano il canale
bidirezionalmente. Una delle contromisure più efficaci contro l’ICMP flooding è la limitazione in banda dei
flussi di traffico ICMP ostili tramite la logica “Committed Access Rate” (CAR) che permette di applicare
limitazioni in banda a specifici flussi di traffico individuati da ACLs. Questo attacco può essere mitigato
anche tramite il Generic Traffic Shaping (GTS) che è un meccanismo di packet filtering di tipo token-bucket
(meccanismo di controllo del flusso che determina quando e quanto traffico può essere trasmesso in base alla
presenza di token in un contenitore astratto che detiene il traffico di rete da trasmettere chiamato bucket) che
permette di imporre a un flusso di traffico IP un throughput massimo inferiore a quello nominale relativo
all’interfaccia del router attraverso cui avviene la trasmissione. GTS modella il traffico ritardando il traffico
in eccesso utilizzando un buffer, o meccanismo di accodamento, per contenere i pacchetti e modellare il
flusso quando la velocità dei dati dell'origine è superiore alle aspettative.
14) Attacchi Flood: Reflection Attack
Un attacco di riflessione consiste nell’invio di pacchetti da parte dei bot, con indirizzo spoofato del target, ad
host terzi che sono obbligati, a livello protocollare, a comportarsi in un certo modo. Tramite il
coinvolgimento di host terzi, viene aggiunto un altro livello alla gerarchia dell’attacco e ciò rende quasi
impossibile risalire all’attaccante. Un tipo di attacco basato sulla riflessione è il Fraggle. che invia flussi di
traffico broadcast verso il servizio, ormai deprecato, chargen generator di una macchina attribuendosi come
indirizzo sorgente quello della vittima. La macchina risponderà con pacchetti UDP verso la vittima, la quale
si ritroverà inondata di un flusso UDP (si può bloccare questo attacco bloccando tutte le porte UDP inferiori
a 20 con una semplice ACL).
15) Broadcast Amplification Attack.
Questi attacchi sfruttano la riflessione per ottenere un meccanismo di amplificazione della potenza di fuoco
del bot. L’attaccante invia pacchetti ad un indirizzo di broadcast di una rete. Ricevuto questo pacchetto, il
router della rete in questione effettua la propagazione diretta del broadcast che innesca una risposta da parte
di tutte le macchine della rete. Quindi con un solo pacchetto inviato si ottiene la riflessione da parte di tutte le
macchine della rete. La potenza di fuoco dell’agent viene dunque amplificata di un fattore di amplificazione
pari alla dimensione della rete target utilizzata. Un tipo di attacco basato sulla broadcast amplification è lo
Smurfing che tipicamente utilizza dei pacchetti ICMP. Per bloccare lo smurfing occorre bloccare i broadcast
che provengono da reti esterne.
16) DNS Amplification Attack.
È un altro attacco che sfrutta la riflessione. Il bot invia una query DNS, con indirizzo sorgente spoofato con
quello della vittima, al server DNS che consente query ricorsive. Supponiamo che la query inviata sia una
query particolare che prevede la possibilità di ottenere informazioni per una intera zona. In questo caso
vengono inviati pacchetti al server DNS con dimensioni molto piccole (60 byte), ottenendo una risposta di
4320 byte ottenendo un fattore di amplificazione di 73. Per mitigare quest’attacco bisogna bloccare solo certi
tipi di query, consentendo query ricorsive solo a specifici host fidati.
17) NTP Amplification.
Un altro tipo di attacco è basato sull’uso del protocollo NTP (usato per sincronizzare il tempo delle macchine
con dei time server mondiali). Inviando un pacchetto, con indirizzo di origine spoofato con quello del target,
verso uno di questi server con una richiesta “get monlist”, veniva generata una risposta con una lista di altri
server agganciati. L’effetto è che una piccola richiesta (anche di 0.5 Mb) comportava 15 Mb di risposte,
raggiungendo un fattore di amplificazione teorico di 30 Mb. La prima opzione per mitigare quest’attacco è
correggere i server NTP disabilitando il comando monlist. La seconda opzione prevede di specificare delle
ACL per bloccare il servizio UDP porta 123 in ingresso, facendo in modo che solo i server fidati all’interno
della nostra rete possano sincronizzarsi con server esterni.
18) Memcache Amplification Attack.
L’attacco sfrutta il Memcached, un sistema di caching distribuito che consente il caching di oggetti in rete. Il
server Memcached usa le porte TCP o UDP 11211. L’agent invia una richiesta di servizio al server con un
paylod di 15 byte che risponde con un messaggio UDP di 750 Kb. In questo caso il fattore di amplificazione
è di 51200. Come possiamo difenderci? Lato utente andrebbe disabilitato UDP se non è strettamente
necessario e favorirne l’utilizzo solo in logica TCP. Lato rete invece andrebbero introdotti dei blocchi o dei
rate-limiting UDP sula porta sorgente 11211.

19) Resource starvation DDoS


Gli attacchi di resource starvation hanno lo scopo di saturare, ad esempio a livello di CPU o di memoria,
facendo diventare i sistemi vittima inutilizzabili. In questa tipologia di attacco, l’attaccante ha accesso lecito
in parte o totale ad una risorsa di sistema. È un attacco di tipo low-rate e non è facilmente percepibile da
sistemi IDS/IPS. Un esempio di attacco di questo tipo è il Deeply Nested XML, in cui un web server riceve
richieste che utilizzano tag XML profondamente annidati, in modo tale che il parser richieda molta più CPU.
Il fatto che la CPU salga al suo massimo può avere un altro effetto collaterale in quanto comporta un
aumento smisurato dei costi di alimentazione quando si ha a che fare con sistemi molto grandi.
20) Esempi di attacchi Resource Starvation
Slowloris: è un tipo di attacco che cerca di mantenere le connessioni aperte verso un server web il più a
lungo possibile, facendo in modo che queste connessioni saturino la capacità della macchina, rendendogli
impossibile la gestione di connessioni simultanee. Slowloris invia periodicamente richieste HTTP GET in cui
vengono aggiunti tag incompleti senza terminare la richiesta.
Rudy(R-U-Dead-Yet?): è un attacco simile al precedente con la differenza che utilizza il metodo POST. Per
utilizzarlo basta una form HTTP che non controlla la taglia delle richieste inviate su di essa. L’attaccante
invia una richiesta POST di dimensione decisamente grande, il server si aspetterà una richiesta egualmente
grande, a questo punto l’attaccante invierà la risposta un byte alla volta a intervalli di tempo costante
calcolati in modo tale da non innescare il timeout. L’unico modo per evitare questo attacco è configurare sul
server web il timeout a un valore minore di quello che l’applicazione usa per mandare i pacchetti, oppure
controllare le form affinché la taglia della richiesta venga limitata esclusivamente alla dimensione massima
attesa.
SSL/TLS Handshake attack: sfrutta la differenza, in termini di peso computazionale, tra le operazioni di
cifratura e decifratura in ambito RSA. La velocità di cifratura, infatti, è dieci volte più veloce quella di
decifratura. In questo modo un singolo client può saturare decine di server. L’unica opzione per difendersi da
questo tipo di attacco è effettuare il provisioning del server che fornisce al server la capacità necessaria per
smaltire le richieste.
Landing: si basa sull’attivare dei three-way handshake caratterizzati da indirizzo e porta sorgente falsificati
e impostati in maniera identica a indirizzo e porta di destinazione. La macchina che riceve il pacchetto, e che
non ha corretto un bug di questo tipo, comincia a rispondere a sé stessa causando il blocco totale della
connettività. Tipicamente, un attacco del genere porta la macchina al totale crash. Individuare un tale attacco
è abbastanza semplice perché basta bloccare i pacchetti che arrivano e partono dallo stesso host tramite un
filtro tcpdump.
Ping of death: è un attacco che sfrutta la frammentazione dei pacchetti IP. In questo attacco un pacchetto
viene frammentato sbagliando volutamente l’offset di alcuni dei frammenti in modo da superare la
dimensione massima del pacchetto una volta riassemblato, portando così al crash dello stack IP e bloccando
completamente la macchina. Nei sistemi di ultima generazione quest’attacco non è una preoccupazione in
quanto i frammenti che porterebbero la dimensione del pacchetto oltre quella consentita vengono scartati.
Teardrop: sfrutta sempre il concetto della frammentazione, ma costruisce i pacchetti frammentati in maniera
tale che le informazioni di costruzione, siano sbagliate così che una volta ricevuti e ricostruiti i pacchetti ci
siano degli overlap tra i frammenti individuati, questi overlap mandano in difficoltà la macchina. La
soluzione è individuare un primo pacchetto con fragment-offset a zero ed un secondo pacchetto con offset
minore della taglia del pacchetto precedente e scartarli.
21) SYN Flooding
L’attacco di SYN flooding invia un numero elevatissimo di pacchetti SYN, con indirizzi falsificati, verso un
target che, per ogni SYN, avvierà l’apertura di una connessione con il three-way handshake andando
rapidamente a saturare la coda di connessione. L’origine dell’attacco viene fatto corrispondere a un indirizzo
inesistente in modo che la vittima non riceverà mai a ritroso gli ACK dei SYN + ACK da essa generati a
fronte dei SYN. Il SYN Flood può essere combinato anche con la logica della riflessione, dove viene
effettuato l’attacco usando come indirizzo sorgente spoofato quella della vittima. In questo modo tutti i
messaggi SYN+ACK di ritorno, da un numero elevato di macchine inconsapevoli saranno diretti tutti verso il
target. La soluzione migliore per proteggersi da questo attacco è il filtraggio in banda in cui devono essere
bloccate tutte le sessioni SYN lasciando passare solo quelle established. Ciò però potrebbe non bastare. Una
soluzione che limita l’effetto di questi attacchi è basata su una rete di proxy in logica reverse che fanno da
intermediari per stabilire le connessioni TCP e per inviare al sito solo le connessioni che passano in stato
established. Un’altra soluzione consiste nell’abilitazione dei SYN Cookies che permettono di generare
opportunamente i TCP sequence number lato server durante l'handshake iniziale in modo che possano essere
utilizzati per ricostruire i sequence number iniziali dei client che si connettono legittimamente. Ciò consente
al server di riutilizzare le risorse della backlog queue, per creare una connessione dopo aver ricevuto un SYN
da un client. Poiché il server non sa se il client risponderà mai con un ACK al suo SYN+ACK rimuove
l’entry corrispondente nella backlog queue. Se il server riceve un ACK di risposta dal client, è capace di
ricostruire l’entry precedentemente liberata nella coda SYN, grazie alle informazioni codificate nei sequence
number TCP.

22) Hijacking
L’Hijacking indica una categoria di attacchi che hanno l’obiettivo di compromettere un canale di
comunicazione tra due host inserendosi in logica man-in-the-middle, modificando l’integrità dei pacchetti
inviati con lo scopo di trarne dei vantaggi.
23)DHCP Hijacking
Questi attacchi sfruttano le debolezze a livello di sicurezza del protocollo DHCP che non prevede nessuna
autenticazione ed è completamente stateless. Se l’attaccante riesce ad intercettare una macchina che invia
una richiesta DHCP (broadcast) e riesce a rispondere a questa macchina prima del vero server, allora
potrebbe inviargli delle informazioni fraudolente in modo da modificare alcuni parametri di rete. Ad esempio
potrebbe configurarsi come Default Gateway in modo da intercettare tutto il traffico che invierà la macchina
vittima, oppure potrebbe assegnarle il proprio indirizzo IP come DNS realizzando un attacco di DNS
spoofing.
24) IRDP Hijacking
IRDP è un protocollo che entra in gioco nel momento in cui un host non ha un proprio Default Gateway o ne
ha configurato uno errato. Questo protocollo prevede un messaggio “router advertisements” che indica la
volontà di un router di candidarsi come default gateway. Tali advertisements vengono spediti periodicamente
in rete e contengono due parametri “livello di preferenza” e lifetime, quindi un host che riceverà più
messaggi di questo tipo sceglierà quello con il livello di preferenza più alto. L’attaccante quindi potrebbe
forgiare degli advertisements appositi facendo in modo che i parametri siano i più alti possibili. L’unico
strumento di difesa in questo caso è disabilitare IRDP sugli hosts della LAN se il SO lo permette.
25) ICMP Redirect Hijacking
Questo meccanismo viene utilizzato per informare le stazioni della rete locale circa l’uso preferenziale di un
router per raggiungere determinate destinazioni. Un attaccante potrebbe spoofare un messaggio ICMP
Redirect richiedendo di dirigere il traffico sulla propria macchina. L’unico modo per bloccare quest’attacco è
utilizzare dei filtri ACL per bloccare gli ICMP Redirect. Ciò potrebbe causare dei cali di prestazioni in
quanto i pacchetti sono costretti a fare più hop.
26) TCP Session Hijacking
In attacchi di questo tipo l’attaccante deve riuscire a prevedere i sequence-number che entrano in gioco nella
comunicazione tra due host. Se l’attaccante riesce a prevedere tali sequence-number si inserisce in logica
proxy nella comunicazione ed è in grado di modificare a suo piacimento i dati che fluiscono all’interno della
connessione. Per effettuare questo attacco l’attaccante osserva fino a un certo punto i sequence-number
scambiati tra i due host e cerca di prevedere quali saranno i prossimi. Per evitare che i sequence-number
avanzino blocca una dei due host tramite un SYN flood e si sostituisce spoofando l’indirizzo della macchina
bloccata con il suo. Un modo per mitigare questo attacco è fare in modo che i sequence-number non siano
prevedibili andando a randomizzare la generazione.
27) DNS Hijacking
Questi attacchi sfruttano una debolezza strutturale del protocollo, infatti per rendere il processo di risoluzione
più efficiente vengono utilizzate delle cache locali a tutti i sistemi DNS, inoltre il protocollo è
completamente stateless quindi le risposte non vengono validate. Un attaccante potrebbe iniettare all’interno
di una cache DNS delle entry fraudolente (con TTL più alto possibile) in modo da falsificare le risposte
referenziando un target diverso da quello legittimo.
28) Kaminsky Attack
È una variazione più aggressiva del DNS response spoofing e sfrutta il fatto che è un protocollo stateless. In
particolare effettua il poisoning di glue records (tipo NS) invece che di record di tipo A. L’attaccante invia
continuamente query per dei sottodomini inesistenti del dominio di destinazione in modo che non vi siano
entry nelle cache dei server. Successivamente falsifica una risposta DNS con un glue records fraudolento. In
caso di successo è compromessa l’intera zona. Per difendersi da questi attacchi è necessario accettare
risposte DNS solo da entità trusted e quindi è necessario introdurre dei meccanismi crittografici per
l’identificazione.

29) Domain Name System Security Extensions (DNSSEC)


È un insieme di specifiche per garantire la sicurezza e l’affidabilità delle informazioni fornite dai sistemi
DNS. Introducono dei meccanismi per l’autenticazione dell’origine dei dati DNS e per l’integrità dei dati. Si
basa sull’enforcing crittografico in tutte le fasi di una query DNS, in particolare le risposte DNS devono
essere accompagnate da una firma digitale in modo che il destinatario possa verificare che il messaggio sia
autentico. Per implementare ciò vengono introdotti tre nuovi tipi di records: KEY, che rappresenta la chiave
pubblica del server DNS, SIG, che contiene la firma digitale, NXT, utilizzato per autenticare risultati
negativi. DNSSEC non permette però di crittografare le query.
30) Crittografia delle query: DNS over TLS/DNS over HTTPS
DNS over TLS permette di cifrare le query e le risposte DNS tramite TLS. TLS utilizza un handshake
iniziale per consentire al client di identificare il server e negoziare una chiave di sessione. Questo
meccanismo aumenta la privacy e previene l’intercettazione e la manomissione dei dati, ma ha un uso
significativo di memoria per client che lavorano in logica ricorsiva e va utilizzato per molte query per
ammortizzare il costo dell’handshake, inoltre la privacy è relativa poiché il client DNS ricorsivo vede ancora
tutte le query. Un’alternativa simile alla precedente è DNS over HTTPS dove le risposte DNS vengono
inviate tramite HTTPS.
31) Hijacking del BGP
Lo scopo di questi attacchi è rendere la rete instabile. I meccanismi di base per attaccare il protocollo BGP
sono i seguenti:
• Meccanismo AS-Padding: sfrutta il fatto che il BGP prende le proprie decisioni in base alla
lunghezza dell’AS-Path. Aggiungendo del padding all’AS-path, ad esempio ripetendo più volte
l’AS-ID, il percorso diventa più lungo e quindi meno attrattivo. Dualmente un’altra tecnica consiste
nel ridurre l’AS-Path per attirare il traffico in maniera fraudolenta.
• Filtrare e/o bloccare gli annunci: tramite questo meccanismo si ottiene l’effetto di non far fluire il
traffico verso determinate destinazioni
• Creazione di annunci ad-hoc: permette di rigirare il flusso di traffico a proprio piacimento
32) Hijacking del BGP con SYN Flood
È una attacco che viene utilizzato per fare in modo che non si sia in grado di aprire sessioni BGP. L’attacco
inizia con il Probing che permette di capire quali sono gli host che offrono servizi BGP scansionando la porta
179. Una volta individuati gli host che offrono servizi BGP vengono utilizzati dei tool appositi che
permettono di abbattere la sessione. In questo caso vengono generati dei pacchetti RST che s’inseriscono
nella sessione in corso e la fanno cadere.
33) BGP Injection
Sono i peggiori attacchi che possano verificarsi, in quanto non sono facilmente rilevabili. Inizialmente si crea
una fake route e si costruisce un annuncio in maniera opportuna. Successivamente si fa un ARP Spoofing
sull’IXP della connessione tra i due peer e si sniffa il traffico. Infine si inietta la fake route nella sessione
spoofata. Le contromisure per mitigare questo attacco sono:
• Politiche di filtraggio a livello BGP
• Non annunciare netblock che risultano troppo disaggregate
• Definire il numero massimo di prefissi accettati e distribuiti
• Implementare delle politiche di filtraggio mirate a specifici prefissi attesi
• La default route non deve mai essere accettata, a meno di casi particolari, ma va configurata
staticamente sulle proprie routes
• Autenticare con password le sessioni BGP (autenticazione MD5)
34) Security- BGP
È un’estensione che prevede quattro elementi fondamentali:
• Public Key Infrastructure (PKI): garantisce l’autorizzazione e la identificazione in termini di
trusteness di tutte le entità coinvolte
• Address Attestations: hanno il compito di indicare che l’ultimo AS riportato nell’update è
autorizzato dal proprietario del blocco di indirizzi ad annunciare il blocco stesso
• Route Attestations: autorizzano un proprio vicino ad annunciare un determinato prefisso
• tunnel IPSec: che rende integra e non ripudiabile la comunicazione
35) Multi-Protocol Label Switching (MPLS)
È un meccanismo di traffic engineering, che effettua la commutazione in base a dei tag attribuiti ai pacchetti
in maniera tale che tutti i pacchetti taggati in un certo modo verranno instradati su un determinato path. Fa
affidamento ai seguenti protocolli:
• Label Edge Routers: che effettua il tag dei pacchetti
• Label Switching Routers: commuta i pacchetti in base al tag
• Label Distribution Protocol & Resource Reservation Protocol: sono protocolli di segnalazione per
capire se eè possibile stabilire un path da origine a destinazione con certe caratteristiche di banda e
latenza.
Questi ultimi due protocolli possono essere esplorati da attaccanti per iniettare delle informazioni fraudolente
che possono compromettere l’integrità della rete. Un esempio di attacco è il MPLS path error spoofing in cui
si fa credere che non c’è più banda su un path ed il path alternativo passa per un router compromesso in cui è
possibile sniffare tutto il traffico. Questi protocolli non hanno meccanismi crittografici interni, quindi per
difendersi è necessario filtrare, sui router di bordo di un dominio MPLS, i pacchetti relativi all’uso del
protocollo LDP o RRP in modo da evitare di forzare annunci fraudolenti dall’esterno. Per un attacco interno
non c’è nulla da fare.
1)Worm
È un agent SW auto-replicante appositamente programmato per diffondersi nella rete sfruttando le
vulnerabilità su servizi diffusi su vari host disponibili in rete. Una volta che arriva al massimo della sua
replicazione può lanciare attacchi DoS, installare logiche di controllo implementate a livello Botnets e può
compromettere l’integrità e la privacy di dati sensibili. Per insinuarsi all’interno dei computer, i worms
utilizzano delle tecniche di social engineering o sfruttano errori delle configurazioni di rete o le vulnerabilità
dei sistemi.
2) Differenza virus/worm/trojan horse
Un virus è costituito da codice malevolo inserito all’interno di un eseguibile e non è nocivo fino a quando
questo eseguibile non viene eseguito, proprio per questo non può diffondersi senza l’intervento umano. Un
worm invece può essere considerato come una sottocategoria di un virus e si diffondono senza l’intevento
umano, sfruttando le funzionalità di trasporto dei file o delle informazioni presenti all’interno del sistema.
Inoltre un worm ha la capacità di auto-riprodursi nel sistema inviando un numero considerevole di copie. A
causa della sua natura riproduttiva un worm consuma una quantità elevata di memoria compromettendo il
funzionamento di server web e di rete e dei singoli host. Un trojan horse non è un virus, è un programma
distruttivo che sembra essere un’applicazione autentica. Non si riproduce, ma si propagano solo attraverso
l’intervento umano. In aggiunta aprono una backdoor per favorire l’accesso ad utenti o programmi nocivi.
3) Classificazione worms
Possono essere classificati in Host computer worms e Network worms. I primi sono contenuti all’interno di
un host e sfrutta la rete per propagarsi da un host all’altro, i secondi invece girano simultaneamente su host
differenti essendo nativamente partizionati in diversi segmenti payload d’attacco.
4) Reazione ai worms
Le reazioni ai worms devono essere completamente automatizzate. Per individuare il worm è necessario
cercare una firma (traccia) all’interno del traffico globale che è caratterizzata da pattern ricorrenti (stringhe
comuni). Questi pattern possono essere utilizzati a scopo di content filtering o sifting che setacciano il
traffico per eliminarne gli elementi ostili.
5) Content Sifting
Il content sifting individua i contenuti con alta prevalenza e un elevato address dispersion. L’alta prevalenza
consiste nell’individuazione di un contenuto che ricorre in maniera più frequente rispetto gli alti, mentre
l’address dispersion consiste nell’evidenziare che l’insieme di pacchetti contenenti il contenuto ad alta
prevalenza indirizzano un numero spropositato di destinazioni distinte.
6) Indicizzazione stringhe
Un contenuto con alta prevalenza e un elevato address dispersion sono delle stringhe di bit e quindi
necessitano di essere indicizzate. Esistono tre tipi di approcci: indicizzare tutte le sottostringhe (possono
essere molte e quindi portare ad un aggravio prestazionale), indicizzare pacchetti interi (veloce ma
aggirabile), indicizzare tutte le sottostringhe contigue con almeno lunghezza S memorizzandone l’hash.
7) Strategie d’infezione worm
Una prima strategia consiste nell’effettuare scansioni localizzate per acquisire informazioni circa lo spazio
d’indirizzamento su cui reclutare nuove macchine da infettare, partendo dalle informazioni ottenute dalla
macchina infettata (Code Red II). Un’altra strategia effettua scansioni topologiche che permettono di
sfruttare le informazioni acquisite dagli hosts compromessi per individuare nuove vittime (Morris Worm)
Generalmente i worm diffusi via mail sfruttano questa tecnica. Un’altra strategia consiste nell’effettuare
scansioni basate su hit list che utilizzano una raccolta di 10/50 mila hosts potenzialmente vulnerabili. Per
generare queste hit list si effettuano dei processi di analisi delle reti vicine oppure tramite l’osservazione del
traffico. Infine un’ultima strategia consiste nelle scansioni basate su permutazioni dove tutti i worm
condividono una permutazione pseudocasuale dello spazio d’indirizzamento in modo da assicurarsi che gli
stessi indirizzi non siano oggetto di probing ripetuti.
8) Modelli di diffusione dei worms: Modello Suscettibili/infettati (SI)
È un modello matematico che descrive come il worm si evolverà nel tempo. Questo modello considera le
seguenti variabili: taglia specifica della popolazione, numero di macchine suscettibili all’infezione in un
certo tempo, un numero di macchine infettate in un certo tempo ed il rate con cui una macchina è in grado di
interfacciarsi con altre macchine. Le dinamiche di evoluzione della popolazione di hosts infettati sono
descritte da un sistema di equazioni differenziali dove la soluzione del sistema è la frazione di hosts infettati
tra quelli vulnerabili. Un evoluzione di questo modello è il suscettibili/infetti recovered che tiene conto anche
di eventuali macchine che hanno rimosso il payload infetto ritornando immuni.
9) Modelli di diffusione dei worms: Analytical Active Worm Propagation (AAWP)
Questo modello, conoscendo lo stato dell’infezione in un singolo istante riesce a prevedere lo stato
dell’infezione, in termini di macchine infette, all’istante di tempo successivo. Questo modello considera le
seguenti variabili: dimensione dello spazio d’indirizzamento, numero di hosts vulnerabili in questo spazio,
numero di scansioni in un certo tempo e numero di macchine infette in un certo tempo. Per rendere più
realistico il modello si possono introdurre anche un rate di disconnessione ed un rate di patching.
10) Differenze tra i due modelli
La prima differenza consiste nel fatto che il modello SI è continuo mentre AAWP è discreto. SI è meno
accurato di AAWP poiché una macchina può infettarne altre prima di essere completamente infetta. Il SI
inoltre assume un tempo d’infezione pari a zero che non è realistico e non consente di modellare i ritardi
dovuti a congestioni e distanza sorgente destinazione. Infine il SI non tiene conto di eventuali attività di
patching a livello di sistema operativo che rende la macchina immune. In conclusione l’unica contromisura
contro i worms sono il patching sistematico di applicazioni e sistema operativo e tenere continuamente
aggiornati gli antivirus.
11) Botnets
Il payload del worm installato sull’host da compromettere è un bot che fornisce all’attaccante un
meccanismo di controllo remoto dell’host. Questa tecnica viene utilizzata per creare reti di host compromessi
comandate da un’infrastruttura di command & control. Il bot è caratterizzato dai seguenti elementi:
meccanismo di controllo remoto che impiega per collocarsi in logica C&C, implementazione dei comandi
eseguibili e il meccanismo di propagazione. Il bot parte da una logica di scansione e segue con
l’individuazione di host vulnerabili e il deposito del payload dannoso. A questo punto si ricomincia. Le
strategie di attacco sono orientate al reclutamento di nuovi agent.
12) Architettura Botnet
È composta da tre componenti architetturali: il botmaster che è il controllore della botnet e che invia i
comandi a tutti i terminali infetti, i server intermedi che sono una gerarchia di server che schermano il
botmaster e ricevono i comandi da poi inviare alla legione di bot, ed infine i bot che sono i computer infetti
che eseguiranno i comandi trasmessi.
13) Meccanismi di controllo remoto
Molti host utilizzano meccanismi di C&C basati su IRC, in cui vi è un server IRC sotto il controllo del
botmaster che funge da C&C server. I bot si collegano ad uno specifico IRC channel sul server ed
interpretano i messaggi che vengono inviati come comandi da eseguire. Questo meccanismo ha il vantaggio
di essere centralizzato e facile da gestire, ma può diventare un SPF. Alcuni bot utilizzano meccanismi di
C&C basati su http, dove il botmaster ha il controllo dei server di C&C che espongono risorse web. I bot
effettuano delle richieste get al server http ed in base alle risposte ricevute eseguono dei comandi. Anche in
questo caso la struttura è centralizzata e facile da gestire ma può diventare un SPF. Un altro meccanismo di
controllo è il Covert Channels dove vengono creati dei canali invisibili basati o su versioni modificate del
protocollo IRC, o su tunneling DNS o su tecniche steganografiche. Un esempio di canale utilizzabile è quello
che sfrutta il back scattering. Anche in questo caso abbiamo una struttura centralizzata. Un ulteriore
vantaggio consiste nella difficoltà d’individuazione di questa tecnica. Infine il più utilizzato è il meccanismo
P2P dove i comandi vengono distribuiti in logica p2p a tutti i bot che entrano nell’overlay di comunicazione.
La struttura è completamente centralizzata ed è impossibile distruggere il canale di comunicazione, ma è
molto difficile da controllare.
14) Meccanismi di propagazione
Questi meccanismi si basano sulla scansione della rete e sulla logica del Drive-by-Download, cioè una
campagna di spam in cui è necessario premere su un file per entrare nella botnet, oppure si possono
propagare payload ostili attraverso shares NetBIOS. Una delle tecniche più utilizzate è fast-flux che è basata
su DNS ed è usata dalle botnet per nascondere e proteggere siti di malware e/o phishing dietro una rete di
host compromessi che fungono da proxy. Utilizzando TTL configurati su DNS molto piccoli, i proxy vanno a
rimapparsi continuamente in modo da nascondere la reale identità della macchina.
15) Esempi di Botnet
La botnet Waledac era finalizzata a campagne di spam e la comunicazione era basata su http ma con un
utilizzo di un modello P2P per cifrare e inviare le informazioni agli host della botnet. La struttura si basava
su fast-flux. Un’altra botnet nota è Zeus, che parte da un agent operante in logica trojan horse chiamato Zbot,
nato e specializzato per il furto di credenziali dopo l’installazione di oppurtuni payload con funzione di
keystroke logging. Un’altra botnet famosa è Mirai che è stata la prima a reclutare host dalla IoT. Una volta
reclutati questi milioni di host ha portato un attacco coordinato verso un Dynamic DNS che offre servizi ad
Amazon, Twitter e Spotify.
16) Contromisure Botnet
L’unico modo per prevenire le operazioni di una botnet è individuare il server di C&C e distruggerlo. Per
individuare questi server vanno combinate le tecniche di rilevazione tradizionali con quelle che supportano
AI basate sull’anomaly detection. Gli antivirus dovrebbero essere in grado di individuare attività ostili dei
bot e bloccarne l’installazione, oppure se il bot è già installato potrebbe essere rilevato tramite
l’aggiornamento dell’antivirus. Anche i sistemi IDS/IPS aiutano nella rilevazione delle botnet perché se le
tecniche di diffusione delle botnet sono note, è possibile creare delle signature da inserire nella base di
conoscenza di questi sistemi. Altri strumenti utili sono gli Honeypot o gli Honeyfarm, il primo mette a
disposizione un ambiente isolato vulnerabile su cui il bot viene eseguito ed analizzato, i secondi sono un
insieme di honeypot strutturate come un network telescope. Analizzando il traffico uscente dalle honeyfarm
si riescono a costruire delle signature dei worms che possono essere inserite nella base di conoscenza di
IDS/IPS. Possono essere utilizzati anche firewall e router per applicare politiche basate su deep packet
inspection, oppure nel caso del firewall utilizzare il meccanismo di scan suppression che bloccano il traffico
da hosts che generano un numero troppo alto di tentativi di connessione verso altri host.
17) Tecniche di rilevamento
Il rilevamento network based rileva specifici pattern di configurazione che caratterizzano la botnet e
tipicamente viene tracciato il traffico IRC e HTTP. Un altro modo è fare rilevamento tramite deep packet
inspection sul contenuto delle query HTTP per cercare contenuti anomali, infatti i bot devono utilizzare delle
query DNS per localizzare i server C&C, quindi tracciando le query è possibile individuare il server C&C.
Altre importanti rilevazioni riguardano i frequenti cambi di indirizzo IP, le variazioni di traffico rispetto alla
normalità e l’asimmetria dei pacchetti SYN ed ACK. Il rilevamento host based invece rileva la presenza di
botnet in base ai comportamenti osservabili sui singoli host. Un bot si comporta come un virus quindi è
possibile rilevare le attività dell’agent. Un ulteriore rilevamente è quello anomaly based che si basa
principalmente sulle anomalie del traffico come ad esempio un incremento della latenza o un traffico
effettuato su porte non comuni. I rilevamenti host based ed anomaly based non sono esclusivi ma
complementari.
1) Anonimato in rete
Consiste in uno stato di non identificabilità di uno specifico soggetto o un insieme di utenti con la finalità di
nascondere la reale origine di un attacco o di una specifica azione effettuata attraverso la rete e garantire la
privacy. Accedendo ad internet vengono rilasciate una gran quantità di evidenze digitali che permettono di
profilare l’utente. Le attuali tecniche utilizzate come TLS o HTTPS garantiscono l’integrità e la non
ripudiabilità delle comunicazioni ma non l’anonimato.
2) Proxy anonimizzatori
Permettono di anonimizzare l’accesso in rete, in particolare per quanto riguarda il traffico che viaggia dal
proxy alla destinazione la sorgente rimane sconosciuta. Il problema è che se un attaccante riesce a
compromettere il proxy viene persa qualsiasi forma di anonimato. In questo contesto possono essere
utilizzate dei proxy in cascata a catena casuale, basati sulla logica mix network, in modo che ogni proxy
lungo il cammino conosca solamente il nodo precedente ed il successivo, con l’ultimo nodo che ha una
visione in chiaro del messaggio inviato ma non ha alcuna visione del mittente.
3) Onion Routing
È una tecnica di tunneling del traffico basata su una struttura in logica overlay che crea circuiti virtuali
cifrati. I pacchetti vengono incapsulati in logica telescopica in strutture dati opportunamente cifrate.
L’instradamento avviene passando attraverso un certo numero di nodi della rete ognuno dei quali rimuove o
aggiunge un layer di cifratura specifico. È una tecnica a bassa latenza ed è resistente anche alle tecniche più
sofisticate di analisi del traffico. Il circuito virtuale viene incrementato un hop per volta in accordo ad uno
schema di cifratura a cipolla. L’origine sceglie un cammino da una lista fornita da una directory node e
negozia una chiave con ogni nodo intermedio. I dati sono cifrati in origine e lungo il cammino in modo che
ogni nodo conosca solo il suo successore e predecessore. Il messaggio sarà visto solo dal nodo in uscita ma
non saprà da dove proviene.
4) The Onion Router (TOR)
È una rete che fa multihop relay basata su onion routing. TOR garantisce l’anonimato e gli hidden services,
ovvero la possibilità di erogare servizi in modo anonimo. Supporta la Perfect Forward Secrecy, TLS per la
comunicazione tra nodi, garantisce l’integrità dei dati ed implementa meccanismi di controllo della
congestione. Poiché basato su OR permette di scegliere i tre nodi selezionandoli sulla base della capacità di
banda di cui si ha bisogno. I nodi principali di questa rete sono l’entry node che garantisce l’accesso
all’overlay e l’exit node che garantisce l’accesso alla global internet.
5) Nodi TOR
Esistono quattro tipi di nodi: il nodo Client, dove TOR gestisce unicamente le connessioni dell’utente
permettendogli di collegarsi alla rete TOR, il nodo Middle Man Router, che gestisce il traffico da e per la rete
TOR senza collegarsi all’esterno, il nodo Exit Router, che gestisce il traffico da e per la rete TOR verso
l’esterno e il nodo Bridge Router che sono dei nodi sperimentali studiati per permettere di collegarsi alla rete
TOR anche in zone con forti filtraggi contro TOR (Cina e Iran).
6) Numero di nodi TOR
TOR permette di scegliere liberamente il numero di relay, ma tipicamente se ne scelgono 3, poiché sceglierne
di più è inutile dal punto di vista della sicurezza e riduce le prestazioni aumentando la latenza. Inoltre, dato
che i relay sono noti, è possibile che alcuni siano compromessi, quindi minore è il numero di nodi e minore è
la probabilità di avere una compromissione dell’anonimato.
7) Comunicazione su TOR
Ogni nodo che compone la rete prende il nome di Onion Router(OR), mentre ogni host che usufruisce di tale
rete prende il nome di Onion Proxy(OP). Inizialmente il client OP si connette al directory server per ottenere
la lista degli OR disponibili e le chiavi d’identificazione di questi. Quando OP si connette ad un nodo OR, il
nodo si autentica inviando due certificati, il primo contiene una chiave di connessione temporanea e il
secondo certificato autofirmato contenente la chiave d’identificazione. Il client, tramite i certificati, può
verificare la validità della chiave d’identificazione con quella presente nella lista scaricata dal directory
server e rifiutare la connessione se dovesse risultare non valida. Due nodi OR invece eseguono tra di loro un
mutua autenticazione simile alla precedente e se la chiave d’identificazione dovesse risultare invalida devono
annullarla. Una volta stabilita la connessione TLS tra le due entità vengono scambiati i dati in celle da 512
byte inviate sequenzialmente in modo da non permettere attacchi di correlazione. La comunicazione non è
permanente ed una delle due parti può interrompere la comunicazione se non circolano dati per un tempo
pari al Keep AlivePeriod che di default vale 5 minuti.
8) Tipi di celle
Ogni cella è composta da due campi che hanno funzioni di controllo e dal payload che contiene i dati da
trasmettere. Abbiamo due tipi di celle, la RELAY utilizzata per il trasporto dati end-to-end e la RELAY
EXTEND utilizzata per l’apertura e chiusura dello stream e per l’estensione di circuiti. La prima è composta
da tre campi: CircID (2 byte), che serve ad indicare a quale circuito virtuale è associata la cella, Command (1
byte), che contiene il valore del relativo al comando e Payload (509 byte) che contiene i dati da trasmettere.
La seconda cella invece contiene delle informazioni aggiuntive quali Relay (1 byte), StreamID (2 byte),
Digest (6 byte e Len (2 byte), in questo caso la lunghezza del Payload scende a 498 byte. Oltre alla RELAY
abbiamo anche altre celle di controllo quali CREATE, per la creazione del circuito, CREATED, riscontro
creazione circuito e DESTROY, per la rimozione del circuito.
9) Perfect Forward Secrecy
È un meccanismo che protegge dall’eventuale compromissione di una chiave. Garantisce che che se una
chiave di cifratura viene compromessa, allora tutte le chiavi di sessione generate a partire da quella chiave di
cifratura rimangano riservate. TOR realizza lo scambio di coppie di chiavi con ogni relay, ma tali chiavi sono
usate solo per verificare l’autenticità dei messaggi, non per cifrarli. Quindi un attaccante che è in grado di
ottenere una chiave privata, sarà in grado di decifrare il traffico futuro, ma quello che ha catturato in
precedenza non sarà più negoziabile. Se TOR si accorge di un host compromesso procede con un cambio di
chiavi.
10) Meccanismo di negoziazione delle chiavi TOR
Il meccanismo si basa sullo scambio di chiavi DH e garantisce a TOR la PFS. Le fasi sono le seguenti:
1. La prima fase consiste nello stabilire un circuito tra il client ed il primo nodo di Tor. Un nodo client
deve creare un circuito virtuale, quindi invia una cella CREATE al primo nodo della rete Tor
contenente una informazione gx1 cifrata con la chiave pubblica del nodo1. Il nodo1 decifra con la sua
chiave privata la cella CREATE, calcola g x1y1 e deriva k1, cioè la chiave di sessione che serve per
cifrare i dati che fluiranno tra client e il nodo1. Quindi invia al client la cella CREATED che
contiene gy1 e l’hash H(gx1y1) della chiave che ha costruito. Il client, infine, calcola g x1y1 ed è quindi in
grado di derivare k1 utilizzando H(k1). A questo punto entrambi dispongono della chiave k 1 che sarà
utilizzata per cifrare le informazioni che fluiranno tra i due.
2. Una volta stabilita una sessione con il nodo1, il client deve estendere il circuito in avanti. Il client
chiede al nodo1 di estendere il circuito verso il nodo2, inviando al nodo1 una cella RELAY
EXTEND cifrata con k1 , contenente gx2 cifrata con la chiave pubblica del nodo2. Il nodo1 decifra
cella con la chiave k1 e legge l’indirizzo del prossimo nodo. Infine il nodo1 estrae il payload della
cella e lo inserisce in una nuova cella CREATE inviandola al nodo2.
3. Il nodo2 decifra la cella, calcola g x2y2 e deriva la chiave k 2 . Poi invia la cella CREATED contenente
gy2 e l’hash della chiave H(k 2) al nodo1. A sua volta nodo1 estrae il payload dalla cella e lo mette in
una cella RELAY EXTENDED cifrandola con k1 .
4. Il nodo1 invia la cella appena creata al client, che a sua volta la decifra con k 1 , poi calcola gx2y2 e
deriva la chiave k2 . Il circuito virtuale tra il client e il nodo1 è stato creato e si userà l’AES con
chiave k2 .
5. La stessa operazione viene reiterata in avanti/effettuata tra il nodo 2 ed il nodo di uscita (nodo3).
11) Hidden Services
È una funzionalità che garantisce che l’identità in rete dell’host ospitante il servizio non venga rivelata. Il
funzionamento è il seguente:
1. L’hidden services sceglie un certo numero di relay, chiamati introduction point, e fornisce loro la
sua chiave pubblica per identificare il servizio. A questo punto gli introduction point sanno come
arrivare all’hidden services ma non sanno la sua identità. Il percorso sarà composto sempre da tre
relay: l’entry point TOR, il relay intermedio ed infine l’introduction point.
2. Per far conoscere al mondo le informazioni che servono per accedere all’hidden service, deve
costruire un blocco dati, detto service descriptor, contenente la chiave pubblica del servizio e un
summary che contiene le informazioni degli introduction point. Tale descrittore viene firmato con la
chiave privata del servizio ed inviato ad un server di Lookup usando sempre TOR.
3. Un client per poter usufruire del servizio deve effettuare una query al server di lookup per ricevere il
descrittore. Una volta ottenuto può avviare la connessione con l’hidden service. Se anche il client
vuole restare anonimo allora deve negoziare con gli introduction point tramite un altro circuito
TOR, aprendo tale circuito verso un altro nodo (rendezvous point) che fungerà da relay e presso il
quale si realizzerà il punto d’incontro.
4. Una volta stabilito il circuito il client invierà al rendezvous point un one-time secret. A questo punto
il client crea un introduction message, cifrato con la chiave pubblica del servizio, da mandare ad un
introduction point per indicargli l’indirizzo del rendezvous point e il one-time secret negoziato con
questo, chiedendo che i dati vengano consegnati all’hidden service.
5. Il messaggio viene girato all’hidden service che lo decifra e crea il circuito verso il rendezvous point
inviandogli il one-time secret in un rendezvous message.
6. Infine il rendezvous point notifica al client che la connessione è stata stabilita con successo.
12) Attacchi per correlazione dei pattern di traffico
I principali punti deboli della rete TOR sono gli exit nodes e il non anonimato dal livello 3 in su. Un modo
sistematico per attaccare TOR consiste nell’osservare il traffico su un punto di uscita ed avere dei punti di
osservazione su server compromessi (guard node) che vedono l’identità di chi sta contattando la
destinazione. Mettendo insieme queste intercettazioni è possibile compromettere l’anonimato effettuando
delle correlazioni tra i pattern di traffico. Si possono effettuare due tipi di correlazioni: correlazione
temporale, che sfrutta le informazioni sui pacchetti e i tempi di invio/interarrivo, e correlazione sulla
dimensione dei pacchetti, dove l’attaccante prende in considerazione i dati relativi al numero e alla
dimensione dei pacchetti scambiati.
13) Altri attacchi alla rete TOR
Un attacco alla rete TOR si basa sul monitoraggio DNS e sfrutta il fatto che molti software effettuano delle
query DNS in modo diretto senza usare proxy TOR, in questo modo viene rilevato all’osservatore le query
effettuate e le destinazioni finali delle connessioni. Un altro attacco si basa sull’estrazione del
comportamento e sfrutta il fatto che TOR è altamente configurabile , quindi un attaccante potrebbe
riconoscere l’identità di un utente da come effettua richieste a TOR (tempi di rotazione dei circuiti o scelta
dei nodi in base alla larghezza di banda). Un altro attacco è basato sul fingerprinting dove un attaccante ha a
disposizione dei set di dati riguardanti tipi di browser, taglia dei file e pattern d’accesso ad alcuni siti e
confrontandoli con il traffico generato da un nodo client è in grado di correlare l’ingresso con l’uscita se la
generazione del traffico combacia con i pattern noti.
14) Offuscamento
L’uso dei bridge potrebbe essere non sufficiente per superare politiche massive di filtraggio della rete TOR in
quanto l’attaccante potrebbe effettuare deep packet inspection e classificare il traffico riconoscendo il pattern
protocollare della rete TOR. In questo caso l’unica arma da usare è utilizzare tecniche di offuscamento che
permettono di incapsulare TOR in un altro tipo di traffico. Esistono diverse modalità di offuscatori (obfs2 e
3) che trasformano il traffico TOR in modo che appaia come un altro protocollo in modo da non poter essere
filtrato.
15) Freenet
È un servizio di pubblicazione anonima che consente di evitare che si possa risalire a chi pubblica,
memorizza, distribuisce e richiede contenuti. In Freenet i gestori dei nodi della rete offrono un servizio
pubblico, ma non sanno in nessun modo qual è il contenuto che viene distribuito. Nel momento in cui un
contenuto viene reso disponibile non è più cancellabile, ma scompare solo se per un certo tempo nessuno
accede a tale contenuto. Il contenuto infatti non scomparirà anche se il nodo verrà distrutto, perché i
contenuti di maggiore interesse vengono replicati tra i nodi. Opera come un’architettura P2P dove ogni
utente è indipendente da tutti gli altri e non esiste una directory centrale, inoltre i nodi si scambiano
informazioni in una logica query/response.
16) Comunicazione su Freenet
La comunicazione avviene in maniera autenticata e cifrata, i nodi comunicano con un protocollo connection-
oriented basato su TCP chiamato Freenet Network Protocol. I nodi non vedono l’intera rete ma comunicano
tra di loro basandosi su una conoscenza locale e dinamica dei nodi limitrofi. L’instradamento è basato sulla
chiave del contenuto stesso ed ogni nodo costruisce una routing table che contiene gli indirizzi che sono
associati ai nodi vicini e le chiavi che posseggono. I contenuti sono suddivisi in atomi chiamati chiavi e
possono essere: SSK, che sono basate su cifratura simmetrica e servono per firmare un documento in modo
che chiunque abbia la chiave possa verificarne l’integrità, KSK, permettono di cifrare i contenuti e renderli
intelligibili a chi non è autorizzato, CHK, è un hash del file da depositare ed MSK che sono associate
all’aggiornamento di contenuti che non possono essere cancellati.
17) Funzionamento Freenet
Per collegarsi ad un node della rete Freenet è necessario agganciarsi ad un altro nodo tramite un metodo out-
of-band e conoscere l’indirizzo del nodo. Per l’aggancio viene generato un random seed che viene inviato ad
un nodo scelto a caso. Il nodo ricevente crea un altro random seed facendo XOR con l’hash ricevuto e
creando un nuovo hash. Il nuovo nodo viene aggiunto nella routing table e può iniziare ad effettuare richieste
di contenuto. La richiesta non è sempre diretta, ma può passare attraverso un certo numero di nodi differenti
utilizzando un percorso chiamato random walk. La richiesta viene inoltrata ai nodi vicini per verificare se
possiedono il contenuto, se non possiedono il contenuto la richiesta viene smistata verso i nodi vicini che
hanno maggiori possibilità di possedere il contenuto. Questa operazione procede finché viene raggiunto il
nodo con l’informazione richiesta. In media, in pochissimi hop si raggiunge un hub aggregatore dove la
probabilità che abbia l’informazione richiesta è molto elevata. Esiste un caso peggiore dove è possibile che
scatti un timeout prima che la richiesta arrivi al nodo che possiede il contenuto richiesto, in questo caso la
richiesta viene rieffettuata.
18) Convergenza veloce della richiesta
La convergenza veloce della richiesta è garantita poiché i nodi in transito fanno un caching dei contenuti
quando la risposta arriva, ciò significa che i nodi hub costruiscono una cache molto grande che gli permette
di rispondere a qualsiasi richiesta. La profondità della ricerca è data dall’hops to live che viene decrementata
ogni volta che la richiesta transita per un nodo. Una volta arrivati a 0 la query si arresta. Ogni nodo
memorizza le chiavi alla rinfusa in un datastore e quando arriva una chiave/file che farebbe superare la
dimensione del datastore, vengono rimosse le chiavi/file meno recentemente usate in ordine fin quando non
si libera lo spazio.
19) Email Anonime
L’anonimato nelle email consiste nell’inviare mail senza che esse contengano informazioni nei propri header
in modo da identificare il mittente. L’idea alla base è quella d’instaurare una rete ad-hoc per anonimizzare la
catena d’invio delle mail e deve lavorare sulla parte debole del protocollo, ovvero gli header che viaggiano in
chiaro da origine a destinazione. L’anonimizzazione degli header avviene tramite un remailer che va a
modificare tutte le informazioni presenti nell’header. Il remailer non è altro che un proxy per le mail, quindi
se un malintenzionato riesce a compromettere il proxy viene meno l’anonimato. Per questo motivo si usano
le remailer chains
20) Architetture Remailer
Esistono diverse architetture di remailer. Un remailer di tipo 0 (Penet) ricevono posta opportunamente
formattata e tolgono le informazioni relative al mittente, ma sono facilmente attaccabili violando il server o
tramite tecniche di analisi temporale del traffico. Un remailer di tipo 1 (Cyberpunk) invece utilizza catene di
remailer di almeno tre elementi e crittografa i messaggi da un remailer all’altro per evitare intercettazioni.
Anche questo tipo è attaccabile con tecniche di analisi temporale del traffico. In un remailer di tipo 2
(Mixmaster) i messaggi vengono standardizzati frammentandoli in pacchetti, della stessa dimensione, che
vengono inviati con ritardi casuali e mandati in una coda che viene svuotata fuori ordine. Utilizza SMTP e
una rete separata per la distribuzione delle chiavi crittografiche. L’unica vulnerabilità è che essendo gli
elementi della catena noti è possibile applicare blocchi o un DoS massivo verso questi remailer. Infine un
remailer di tipo 4 (mixminion) utilizza uno specifico protocollo basato su connessioni SSL fra vari server e
per accettare i messaggi degli utenti.
21) Risposte ad un mittente anonimo
La soluzione per rispondere ad un mittente anonimo è utilizzare uno pseudonimo, cioè un indirizzo fittizio
non riconducibile ad un indirizzo reale, tramite cui si possono far giungere messaggi al destinatario senza
conoscere l’identità. Uno pseudonimo garantisce l’anonimato anche all’indietro, quindi mittente e
destinatario possono scambiarsi messaggi in modo totalmente anonimo. Remailing Newnym permette ad un
utente di creare un indirizzo fittizio usando metodi di crittografia ed offre anche la funzionalità di reply
block, che consiste in sequenze di istruzioni crittografiche su come far pervenire il messaggio all’indirizzo
reale tramite una serie di remailer. Un’altra soluzione è lo Pseudonym server che consente all’utente di
registrare un proprio alias che viene associato ad una cartella di posta elettronica. Né il nym né la casella di
posta sono direttamente riconducibili all’utente stesso. Ciò è possibile perché i messaggi che transitano in
entrata e in uscita per il nym server, passano prima attraverso una serie concatenata di anonymous remailer.
22) VPN
Sono nate per garantire un servizio di network extension realizzando un canale di comunicazione end-to-end
su rete pubblica. Le VPN non sono un servizio di anonimizzazione, ma permettono l’accesso remoto ad una
LAN privata attraverso internet, permette connessioni tra reti private tramite internet e permette la
connessione fra computer attraverso una Intranet. La connessione remota ad una LAN privata prende il nome
di LAN Extension e permette di bypassare qualsiasi meccanismo di sicurezza previa autenticazione. Tutto
ciò avviene tramite la tecnica del tunneling che prevede d’incapsulare un protocollo all’interno del payload
di un altro protocollo. Le VPN vengono utilizzate per la loro economicità, scalabilità e sicurezza (garantisce
confidenzialità, integrità, mutua autenticazione e non ripudio.
23) Differenze tra VPN e TOR
Nessuno dei meccanismi di VPN è in grado di garantire l’anonimato, ma garantisce solo l’estensione della
rete in sicurezza. Dal punto di vista dell’identificazione tramite indirizzo siamo anonimi, ma in realtà non
siamo completamente anonimi (esempio pay TV pirata, la polizia appropriandosi dei file di log della VPN
può risalire all’identità di chi si è connesso al sito pirata). L’anonimato prevede la non identificazione anche
se si verifica la compromissione di un componente dedicato alla sicurezza/anonimato. TOR garantisce un
completo anonimato. Il primo nodo della rete TOR sa chi l’ha contattato ma non sa assolutamente che cosa è
transitato, viceversa il nodo VPN vede in chiaro tutto il nostro traffico e quindi andando ad intercettare e/o
compromettere quel nodo VPN allora l’anonimato viene compromesso, mentre nel caso di TOR l’anonimato
viene compromesso solo se vengono compromessi tutti e tre i nodi scelti. Inoltre l’ultimo nodo della rete
TOR può vedere in chiaro il traffico, ma non sa chi è l’origine del traffico. Una VPN è utile anche per
aggirare certe censure da parte di molti governi anche se l’utilizzo della VPN può essere rilevato e bloccato.
TOR introduce meccanismi di mixing-offuscamento, mentre molti protocolli utilizzati sulle VPN no.
1) Vulnerabilità SMTP
Le funzioni di relay SMTP sono svolte da un daemon che aspetta connessioni sulla porta 25 per inviare la
posta in uscita o ricevere quella in ingresso. Quindi collegandosi sulla porta 25 ed eseguendo il protocollo
per l’invio delle mail è possibile inviare un messaggio con falso mittente (mail spoofing). È possibile anche
effettuare una sorte di attacco DoS sfruttando il programma listerv, che viene di solito utilizzato per l’invio di
newsletter ad una lista. Listerv è anche utilizzato er l’invio di file di grandi dimensioni via mail, che vengono
frammentati ed inviati in modo che la quota della casella elettronica della vittima si saturi, impedendo la
ricezione di email.
2) Rilevazione del mittente
Per la rilevazione del mittente è possibile analizzare l’header del messaggio ricevuto. I tag to, subject e from
sono inaffidabili e non hanno peso sull’analisi poiché sono stati modificati dall’utente. Ogni header contiene
i relay su cui è transitato il messaggio prima di giungere a destinazione. L’unico modo per capire qualcosa
del mittente è analizzare questi relay che possono essere affidabili (il messaggio è transitato per provider
noti) o non affidabili che non devono essere considerati. Se il relay è affidabile, viene inserito nell’header un
message-id, da chi è stato ricevuto e quando. Quindi in maniera collaborativa è possibile chiedere al relay se
effettivamente quel messaggio è transitato sui loro server in modo da avere conferma della non alterazione
del campo relativo al transito sul relay e quindi fidarsi del campo from per capire da chi ha ricevuto il
messaggio. Facendo questo ragionamento a ritroso è possibile ricostruire il percorso del messaggio
giungendo al mittente. Se non si riesce a risalire al mittente è possibile effettuare dei controlli incrociati su
date e nazioni di provenienza per ricavare dati importanti.
3) Tipi di email
Possiamo avere diverse tipologie di emali: Spam, che sono mail che gli utenti non hanno interesse a ricevere,
UCE, email commerciali non sollecitate, UBE, email di massa non sollecitate, Ham, email buone, falsi
positivi, mail di tipo ham che vengono classificate come spam e falsi negativi, mail di tipo spam classificate
come ham.
4) Controlli spam
I controlli possono essere Client-side (MUA) che garantisce buoni risultati se l’utente configura bene il filtro,
ma può creare problemi quando l’utente usa client diversi, inoltre i sistemi statistici alla base dei
riconoscitori di spam non hanno a disposizione tante email per poter allenare un buon modello, e Server-side
(MTA) dove l’amministratore della casella di posta gestisce il filtro anti-spam e poiché ha a disposizione una
grande mole di email il modello anti-spam può essere addestrato meglio.
5) 3rd party relay
Consiste nell’utilizzo, da parte degli spammer, di un server di un terzo soggetto come come propagatore di
un messaggio SMTP. Quindi il mittente reale del messaggio si avvale di un relay che risulta aperto per far
partire email di spam. Questo è possibile perché il protocollo SMTP non prevede una autenticazione per
poter inviare dei messaggi. Per impedire l’invio tramite il proprio sistema è necessario far autenticare gli
utenti prima di permettere l’invio.
6) Tecniche antispam: Black&White-listing e RBL
Sono controlli che vengono fatti sull’header dei messaggi. Ogni volta che riceve una mail il server consulta
una lista d’indirizzi contenente mittenti validi (white) e mittenti non sicuri (black) e sulla base di questo
match decidere se accettare il messaggio o meno. È possibile affidarsi a società terze che offrono un servizio
di realtime blocking list (RBL) gestendo un DB aggiornato con tutti i cattivi mittenti. Le RBL sono
consultabili tramite query DNS. Il problema è che le RBL sono aggirabili utilizzando open realys oppure
computer compromessi, inoltre gli spam utilizzano indirizzi IP per pochi secondi prima di cambiarlo e quindi
prima del tempo necessario ad una RBL per identificarli. Esiste anche una RBL avanzata chiamata SURBL
(Spam URI realtime blocklist) che oltre gli header controlla anche il body del messaggio alla ricerca di url
che riconducano a domini spammer.
7) Tecniche antispam: Filtri di contenuti
Il sistema di posta prima di consegnare la stessa agli utenti applica vari algoritmi di analisi dei messaggi e
tramite delle metriche riesce ad assegnare un fattore di confidenza che classificano l’email come spam o
ham. Ovviamente è richiesto un traning del sistema per allenarlo al riconoscimento di posta spam. Uno dei
principali problemi è che la posta elettronica può essere inviata tramite botnet senza passare per un relay, in
questo caso sono necessari dei filtri antispam, all’interno di qualsiasi dominio, fra le varie ACL di protezione
perimetrale. Vengono aggiunte delle clausole le quali affermano che la posta elettronica è gestibile solo
attraverso il relay ufficiale del dominio, il problema è che fa questo enforcing sulle ACL. In questo
momento, nell’impossibilità di risolvere il problema dello spam sono necessari dei meccanismi a livello di
mail exchanger che siano in grado di ispezionare il contenuto dei messaggi e di classificarlo in spam o mail
legittima, attribuendole un punteggio. In questo caso possono essere usati filtri bayesiani o ibridi.
8) Filtri Bayesiani
Sono filtri che si basano sull’analisi probabilistica e permettono di realizzare dei meccanismi di
riconoscimento e classificazione dei messaggi. Quando viene ricevuto un messaggio, viene fatta un’analisi
delle parole, dei simboli e delle loro occorrenze. Questi dati vengono raccolti in un database per costruire una
base di conoscenza costituita dalle informazioni derivanti sia da messaggi legittimi che spam. In base agli
elementi individuati nel messaggio viene assegnata una probabilità basata su un calcolo che indica quanto
frequentemente una parola ricorre nei messaggi di spam piuttosto che nei messaggi ham. I filtri bayesiani
sono difficili da aggirare, infatti anche spezzare le parole non serve perché non viene fatto un pattern
matching ma si va a riconoscere l’occorrenza frequente di un token all’interno di un messaggio. I filtri vanno
continuamente alimentati e riaddestrati, ciò viene fatto arricchendo il database ham e il database spam.
9) Filtri ibridi
Combinano la logica statistica con delle euristiche per poter aumentare la capacità di identificazione del
filtro. Inoltre possono essere combinati meccanismi di preclassificazione con meccanismi che considerano la
progressione dei token.
10) Sender Policy Framework (SPF)
Cerca di impedire lo spam prima ancora che il messaggio venga inviato. SPF protegge dalle
impersonificazioni obbligando gli spammer a mandare le email dal proprio dominio in modo da essere
meglio identificati. L’idea alla base è di pubblicare record DNS corrispondenti ai server che possono inviare
posta per un particolare dominio, in modo da permettere all’utente di controllare se il server mittente risulta
pubblicato sul DNS secondo le regole SPF e quindi decidere se accettare la posta o meno. Quindi l’obiettivo
è quello di bloccare l’impersonificazione e non lo spam ed è pensato per identificare solo il nome di dominio.
I vantaggi sono che è una soluzione permanente e non necessita di manutenzione o update dei filtri ed è
progettato per proteggere il return path. Introduce però due problemi: forwarding e email generate dal web
non funzionano più. Per ovviare a ciò è possibile ricorrere ai Server Rewriting Scheme (SRS) che sono
schemi che permettono di ricostruire il server.
11) DomaniKeys Identified Mail (DKIM)
È un metodo di autenticazione delle mail, realizzato per prevenire lo spoofing. Consente a chi riceve una
email di verificare la provenienza del messaggio in modo da accertare l’autenticità del mittente. DKIM
consente a un dominio di associare il proprio nome a un’email mediante una firma digitale. La firma viene
verificata utilizzando la chiave pubblica del firmatario pubblicata nel DNS del dominio. DKIM differisce
dalla crittografia end-to-end perché di solito le firme non sono visibili agli utenti poiché sono poste
nell’header e vengono verificate dai service provider attraverso i mail server.
12) Vouch by reference VBR
È un protocollo utilizzato per la certificazione del mittente da parte di soggetti terzi. Providers indipendenti
possono garantire per la reputazione dei mittenti verificando il nome del dominio che è associato con il
relativo indirizzo. Tipicamente queste informazioni le può usare sia un MTA per vedere se un server è
affidabile, oppure un client di posta elettronica (MUA). L’utente che fa certificazioni email VBR firma i suoi
messaggi utilizzando DKIM e inserisce un campo VBR-info nell’intestazione firmata. L’header VBR info
contiene il nome del dominio che sta certificando, il tipo di contenuto del messaggio e un elenco di uno o più
servizi di vouching.
13) Grey Listing
Nasce dal presupposto che la maggior parte del software creato per inviare spam non sia in grado di gestire i
deferrals (errori SMTP). Per ogni incoming email viene composta la tripla <sending IP, sender, recipient>. Se
questa risulta sconosciuta, viene aggiunta a una greylist e il mittente riceve un errore, con l’assunzione che
questi riproverà l’invio più tardi. Quando la stessa tripla si presenta successivamente, la email viene accettata
e la tripla rimossa dalla greylist e inserita nella whitelist. Questo meccanismo è molto leggero, perché
rispondere con un errore è immediato e non occupa risorse né di banda né di CPU. Controindicazioni: è
compito del sistema mittente scegliere quando rimandare la posta, e può capitare che il ritardo sia eccessivo
(molte ore) e ciò può causare false segnalazioni e perdite di posta, inoltre deve operare quasi sempre come
unico sistema antispam
14) Vipul’s Razor
È una rete distribuita, collaborativa per identificare lo spam. Razor mantiene un DB di spam in propagazione
che i client possono consultare per filtrare lo spam. Razor calcola poi la probabilità che un mail sia spam.
L’input degli utenti viene pesato in base alla reputazione degli utenti e la reputazione è costruita sul consenso
nel riportare o revocare gli spam. Riportare spam o revocare spam aumenta il punteggio dell’utente.
15) Pyzor
È un sistema collaborativo, distribuito per rivelare e bloccare spam usando estratti dei messaggi. I client
possono confrontare i messaggi tra di loro creando delle firme digitali del body, poi chiedono al server se
altri hanno riportato quella firma come spam.
16) Tarpits
Quando un server riceve posta con una velocità elevata può applicare una politica di tarpits, ovvero
intenzionalmente introduce un delay nel tempo di servizio. Abbiamo addirittura honeypot che limitano i
worms che inviano spam, tipicamente infatti questi worms sono alla ricerca di relay aperti, quindi si creano
honeypot con relay aperti, in modo che quando lo spammer si collega, viene rallentato con tarpits l’invio
dello spam, e poi informa i DB dinamici a riguardo dello spammer.
1) Web Security
La web security ha il compito di mettere in sicurezza web browser e web application. Un web browser
(front-end) può essere attaccato da qualsiasi sito visitato e gli attacchi implicano l’installazione di malware,
come ad esempio keyloggers e botnets, il furto di documenti e la perdita di dati privati. Le web application
(back end), invece, girano lato web server e possono presentare potenziali bugs quali XSS, SQL
injection,XRSF.
2) SSL/TLS
Transport Layer Security (TLS) e il suo predecessore Secure Sockets Layer (SSL) sono dei protocolli
crittografici di presentazione che permettono una comunicazione sicura dalla sorgente al destinatario su reti
TCP/IP fornendo autenticazione, integrità dei dati e confidenzialità operando al di sopra del livello di
trasporto. Nell'utilizzo tipico di un browser da parte di un utente finale, l'autenticazione TLS è unilaterale,
infatti è il solo server ad autenticarsi presso il client.
3) Funzionamento TLS
Il funzionamento può suddividersi in tre fasi. Nella prima fase viene negoziata, fra le parti, l'algoritmo da
utilizzare. La seconda fase prevede lo scambio delle chiavi (Diffie-Hellman) e l’autenticazione (RSA, DSA).
Infine la terza fase prevede la cifratura simmetrica (DES, AES), l’autenticazion e il controllo dell’integrità
dei messaggi (SHA, HMAC). Supponiamo che un client/browser e un server vogliano comunicare. Il server
deve acquisire un certificato da parte di una certification authority che firma tale certificato e gli fornisce una
chiave privata ed una chiave pubblica. A questo punto il server può essere raggiunto dai client che possono
verificare il server con la chiave pubblica del server stesso che è nota. Quindi il browser valida il certificato
del server controllando che la firma digitale dei certificati del server sia valida e riconosciuta da una
certificate authority conosciuta utilizzando una cifratura a chiave pubblica. Questa autenticazione, però, non
è sufficiente per garantire che il sito con cui ci si è collegati sia quello richiesto.
4) Verifica dei certificati
Per essere sicuri che il sito a cui un client/browser si connette è legittimo è necessario analizzare il contenuto
del certificato e controllarne la catena di certificazione, infatti potrebbe verificarsi che il certificato digitale
non corrisponda con l’identità con cui stiamo interagendo. Nella verifica di un certificato non è sufficiente
controllare solo che un certificato sia valido ma bisogna verificare anche altri aspetti come il nome
dell’organizzazione e il common name.
5) Autenticazione server-side
In un’autenticazione server-side il client invia un messaggio di client-hello al server che a sua volta risponde
con un messaggio server-hello contenente il proprio certificato identificandosi. Successivamente avviene uno
scambio di chiavi tra client e server e viene generata una chiave comune in modo da poter comunicare in
maniera sicura cifrando la comunicazione con un apposito algoritmo di cifratura. La sola autenticazione lato
server può creare varie complicazioni. La prima nasce dall’utilizzo di web proxy, in questo caso il certificato
server deve passare attraverso il proxy e questa situazione può essere fonte di attacco soprattutto se il proxy
viene compromesso. Un’altra complicazione si verifica quando la macchina che fa da server utilizza il virtual
hosting e può ospitare diversi siti web aventi lo stesso indirizzo IP. In questo caso il server dovrebbe avere un
certificato per ogni sito che gestisce ed è una complicazione.
6) Buffer Overflow
È una condizione di errore che si verifica a runtime quando in un buffer di una determinata dimensione
vengono scritti dati di dimensioni maggiori, ciò comporta un overflow che va a sovrascrivere porzioni di
memoria destinate ad altre istruzioni. Se l’attaccante ha una buona conoscenza del programma in questione,
del SO e il tipo di computer su cui gira, si può precalcolare una serie di dati malevoli che inviati per
provocare un buffer overflow consenta ad un malintenzionato di prendere il controllo del programma. Il
contesto fondamentale per il verificarsi di un BOF è la chiamata ad una funzione. Consideriamo uno scenario
dove abbiamo una architettura Intelx86 a 32 bit. I registri salvati nello stack e che coinvolgono il BOF sono
Base Pointer (4 bytes) che è il puntatore alla base della porzione dello stack, e l’Instruction Pointer (4 bytes)
che è il puntatore all’istruzione successiva. La variabile locale che sta ad indicare la dimensione del buffer
viene inserita nello stack subito dopo questi due registri, quindi causando un BOF andremo a sovrascrivere
questi registri. In questo contesto un attaccante potrebbe effettuare una chiamata a funzione C gets, che legge
dallo standard input e copia il contenuto nella variabile locale del buffer senza effettuare nessuno controllo
sulla dimensione, per sovrascrivere i registri BP e IP salvati sullo stack, alterando così il normale flusso di
esecuzione del programma. Inserendo degli indirizzi validi nella parte che eccede gli 8 byte del buffer verrà
eseguito del codice arbitrario dal programma con la possibilità di ottenere il controllo del sistema (code
injection attack).
7) Set Instruction Randomization
È una contromisura ai code injection attack. Per ogni processo, attraverso, una chiave di codifica, viene
creato un insieme unico di istruzioni randomizzate che vanno a sostituire il codice sorgente del programma
originale. Verrà creato un ambiente di esecuzione unico per il running process così che l’attaccante non
conosca il “linguaggio” usato in modo da non poter intervenire a livello macchina (non conosce la key di
randomizzazione). Esistono due possibili approcci alternativi nell’uso della chiave per la codifica/decodifica:
XOR bit a bit tra istruzione e chiave, e trasposizione randomizzata dei bit. L’esecuzione di un generico
programma avviene nel seguente modo:
1. Il codice di ciascun processo è caricato dal rispettivo file eseguibile memorizzato su disco.
L’eseguibile contiene all’interno dell’header la chiave di decodifica del processo caricato in
memoria.
2. Il sistema operativo estrae la chiave di decodifica dall’header dell’eseguibile e la memorizza nel
rispettivo Process Control Block del processo
3. Quando la CPU eseguirà il processo, la chiave di decodifica sarà presa dal PCB e copiata in un
speciale registro del processore. Ciò avviene attraverso un’istruzione privilegiata GAVL che
permette un accesso in sola scrittura nel speciale registro di CPU.
Per quei programmi che non sono stati randomizzati, viene fornita una speciale chiave (chiave nulla), che
quando caricata attraverso l’istruzione GAVL, disabilita il processo di decodifica. L’esecuzione delle
randomization instructions, necessita della scelta tra due possibili soluzioni: l’utilizzo di una apposita
categoria di processori programmabili e l’introduzione di un ambiente di esecuzione protetto che emuli una
CPU convenzionale (sandboxing environment). Tra i vantaggi di ISR vi è la possibilità di ri-randomizzare
periodicamente i programmi in modo da minimizzare il rischio di attacchi persistenti. Tra gli svantaggi
troviamo il fatto che bisogna utilizzare delle CPU programmabili per il supporto di istruzioni randomizzate
(l’alternativa è l’emulatore).
8) SQL Injection
Un attacco SQL Injection è un code injection attack verso un DB, orientato verso script che creano
dinamicamente query SQL. Sfrutta l’inefficienza dei controlli sui dati ricevuti in input ed inserisce codice
maligno all’interno di una query SQL con l’obiettivo di carpire/modificare/inserire informazioni verso un
DB interfacciato da una web application.
9) Implementazioni e tecniche
Questi attacchi possono sfruttare:
1. Caratteri di escape non filtrati correttamente. Si verifica quando non viene filtrato l'input dell'utente
dai caratteri di escape e quindi vengono passati all'interno di uno statement. Questo può provocare la
manipolazione degli statements eseguiti sul database dagli utenti finali dell'applicazione. Per
esempio, impostando la variabile “userName” con l’espressione ‘or 1=1;’ risulta sempre vera (short-
circuit evaluation) ed aggiungendo l’uso del commento ‘--’ oppure ‘/*’ non fa eseguire il resto della
query.
2. Un campo fornito dall'utente non è fortemente tipizzato o non vengono controllati i vincoli sul tipo.
Viene utilizzato un campo numerico in uno statement SQL, ma il programmatore non fa controlli per
verificare che l'input immesso dall'utente sia effettivamente numerico. Un eventuale utente maligno
inserendo nel campo username la stringa ‘1;DROP TABLE users’ causa la generazione di una query
che avrebbe come immediata conseguenza la cancellazione della tabella ‘users’.
Per fronteggiare questi attacchi è necessario filtrare i messaggi di errore o limitare la lunghezza dei campi,
oppure utilizzare costrutti safe.
10) PHP escaping
È una tecnica di prevenzione che utilizza funzioni PHP per evitare caratteri che hanno un significato speciale
in SQL. In PHP di solito si evitano i caratteri speciali nei parametri utilizzando la funzione
mysqli_real_escape_string(). La funzione addslashes(string $str) serve ad evitare i caratteri speciali, ed è
usata in particolare per fare query a database che non hanno funzioni di escape in PHP, essa ritorna una
stringa con dei backslash prima dei caratteri che hanno bisogno di essere tra apici. Fare sempre l'escape delle
stringhe SQL è una pratica soggetta ad errori perché è facile dimenticare di fare l'escape di una determinata
stringa. Creare un livello trasparente per rendere sicuro l'input può ridurre gli errori o eliminarli totalmente.
11) SQL parametrizzato
Permette di costruire una query SQL con escaping di argomenti fatto a priori. In PHP esiste una funzione
simile detta bound parameters.
12) SQL Randomization
Sfrutta le tecniche e i principi derivati dall’ ISR. Con l’SQL randomization si introducee un proxy che
permette la de-randomizzazione delle query prodotte lato client, in modo che le query saranno comprensibili
dall’interprete SQL del DB. Il proxy lavora esclusivamente a livello sintattico effettuando anche il filtraggio
dei messaggi di errore provenienti dal DB, trasformandola in una query ripulita da mandare al DB.
13) Cross-site scripting (XSS)
È una vulnerabilità che affligge siti web dinamici con un insufficiente controllo dell'input nei form. XSS è
basato sull’iniezione di un contenuto malevolo a partire da un sito compromesso considerato attendibile. Se
al contenuto da un sito viene concessa l'autorizzazione di accedere alle risorse di un sistema, allora qualsiasi
contenuto da quel sito condividerà queste autorizzazioni (same origin policy). Trovando il modo di iniettare
script malevoli su un sito attendibile, l'utente malintenzionato può eseguire script dannosi nel browser Web di
un client, inserire tag, rubare informazioni sulla sessione Web e cookie di autenticazione ed accedere al
computer client.
14) Vulnerabilità XSS di tipo Reflected (non persistente)
È possibile sfruttarle quando i dati forniti dall'utente sono usati immediatamente dallo script lato server per
costruire le pagine risultanti senza controllare la correttezza della richiesta. Se tutti i dati forniti dall'utente
non validati sono inclusi nella pagina risultante senza un'adeguata codifica HTML, questo può portare a
iniezione di codice di markup . Un esempio classico di un potenziale vettore è il motore di ricerca del sito: se
si cerca una stringa, in genere questa verrà visualizzata di nuovo nella pagina dei risultati per indicare cosa si
è cercato. Se questa risposta non evita o rigetta i caratteri di controllo HTML si consegue che è vulnerabile
ad attacchi XSS. Un attacco non persistente è tipicamente inviato via mail o da un sito web neutrale. L'esca è
un URL dall'aspetto innocente, che punta a un sito attendibile ma che contiene un vettore XSS. Il click sul
link può causare l'esecuzione di script iniettato nel browser della vittima. Un malicious link spesso ha
l’obiettivo di ridirezionare il contenuto del cookie dell’utente verso il server dell’attaccante, permettendogli
così di rubare i cookie di sessione, in modo di impersonare la vittima presso il servizio che ha registrato il
cookie nel browser. La prima linea di difesa è fornita dalla Same Origin Policy, che isola in lettura e scrittura
contenuti web forniti da servizi “scorrelati” fra loro, però non è sufficiente per impedire il furto dei cookie di
sessione.
15) Vulnerabilità XSS di tipo persistente
Si verifica quando i dati forniti dall'attaccante vengono salvati sul server, e quindi visualizzati in modo
permanente sulle pagine normalmente fornite agli utenti durante la normale navigazione, senza aver
eliminato dai messaggi visualizzati dagli altri utenti la formattazione HTML. Lo script dannoso
dell'attaccante è fornito automaticamente senza la necessità di indirizzare la vittima o attirarla nel sito di
terze parti. Un esempio di XSS persistente è un malicious link in un commento all’interno della sezione
commenti di un sito di News per esempio.
16) Contromisure XSS
• Validare tutti gli headers, cookies, query strings, campi forms e campi nascosti (praticamente tutti i
parametri) in accordo a una specifica rigorosa di cosa è consentito e cosa no.
• Adottare una politica di sicurezza a base ‘positiva’ che specifica tutto quanto è permesso far passare.
• Validazione e filtraggio dei dati di input
• Codifica/filtraggio dati di output
• Utilizzare attributi di sessione. Due attributi sono assegnabili ai cookie per richiedere al browser
garanzie di sicurezza aggiuntive sul loro utilizzo: HttpOnly (se un cookie è marcato HttpOnly, esso
diventa inaccessibile da ogni script) e Secure (forza il browser ad allegare tali cookie solo a richieste
HTTPS e non HTTP)
_______________________________________________________________________________________
1) Tracciamento a ritroso
Consiste nell’analisi delle tracce digitali lasciate da un attacco per individuarne le reali origini. Il
tracciamento include l’identificazione delle fonti, l’estrazione dei dati d’interesse, la documentazione e
l’interpretazione delle evidenze.
2) Tipi di analisi
Possono essere effettuate due tipi di analisi: “post mortem”, che è lo studio a posteriori delle evidenze in
tempi differiti rispetto a quelli del’attacco come ad esempio le evidenze storiche ottenute da logs o files di
traccia, e “Live” che è lo studio in tempo reale del traffico come fluisce attraverso la rete
3) Validazione indirizzo sorgente
Per validare un indirizzo IP va validato l’hop count, e questa validazione consiste di 3 step:
1. dai pacchetti conservati per effettuare una analisi live oppure post morten, si devono osservare gli
header nei pacchetti IP ed andare a vedere il campo Time To Live (TTL), da cui si deduce il numero
di hop che tale pacchetto ha attraversato
2. si effettua un traceroute verso l’IP di interesse ottenendo un valore “attuale” dell’hop count
3. se questo valore differisce sostanzialmente da quello ottenuto al passo 1. allora l’IP potrebbe essere
oggetto di “spoofing”
4) Validazione routes
Oltre a validare l’hop count vi è anche la necessità di validare le routes, cioè va determinato se esiste
realmente una root valida di accesso relativo al netblock dell’indirizzo da tracciare. Per effettuare ciò è
possibile utilizzare un looking glass che permette di visualizzare la routing table. Inoltre va verificato a
ritroso il dominio associato all’indirizzo IP effettuando una operazione di reverse query resolution (IP -->
nome dominio).
5) Segnalazioni
Per le segnalazioni è necessario rivolgersi ad un Regional Internet Registry (RIR), che è un'organizzazione
che sovrintende all'assegnamento e alla registrazione delle risorse numeriche di Internet in una specifica area
geografica. Grazie ai regional registriers è possibile effettuare operazioni di consultazione dei loro database
di assegnazione ottenendo informazioni su localizzazione e contatti.
6) Computer Security Incident Response Team (CSIRT)
Il CSIRT è un gruppo di esperti di sicurezza IT che ha il compito di reagire in caso di incidente di sicurezza,
al fine di limitarne le conseguenze e assistere gli utenti nel recupero delle funzionalità e gli amministratori
nel ripristino dei sistemi. Lo CSIRT deve coordinare le attivita’ di Incident Response e fornire supporto,
gestire eventuali strumenti centralizzati, interagire con l’operation management degli ISP ed infine interagire
con altri CSIRT e contribuire alle attività coordinate.
7) Struttura CSIRT
Il CSIRT ha una struttura gerarchica, gli utenti finali effettuano delle segnalazioni al proprio CSIRT che a
loro volta si interfaccia in maniera gerarchica con il proprio National Coordinator Center nel contesto della
National Cyber-Security Network. Le segnalazioni degli CSIRT devono avvenire in logica trusted e devono
essere firmate perché potrebbero esserci false segnalazioni per falsi incidenti a scopi malevoli, ad esempio si
potrebbe creare una falsa segnalazione circa un falso attacco proveniente da una organizzazione e chiederne
il blocco degli indirizzi creaando un DOS. Tra i vari CSIRT vengono stretti accordi formali di cooperazione e
di non disclosure su dati di indagine. A sua volta il centro di coordinamento nazionale dei CSIRT si
interfaccerà con un ente CSIRT di livello superiore, e così via.
8) CERT
Effettuano delle attività di ricerca e sviluppo che consiste in un monitoraggio costante dei sistemi
informatici, dei programmi applicativi e della rete, allo scopo di analizzare il loro stato di sicurezza e il loro
livello di sensibilità a potenziali attacchi. Sulla base delle informazioni ottenute il CERT attua piani di
realizzazione e implementazione di tecnologie utili a correggere le vulnerabilità, a resistere agli attacchi e a
prevenire minacce future.