• Banner Roccat
 

Firewall: cenni, analisi e filosofia

Tutte le guide sul network.
Advanced User
Messaggi: 251
Iscritto il: 17/11/2010, 1:03
Località: Palermo (PA) - ITA

Firewall: cenni, analisi e filosofia

Post: #1  Messaggioda Totocellux » 12/12/2010, 21:26

1 Sicurezza in rete (internet, intranet, privata)



1.1 Introduzione


Negli ultimi anni il successo ottenuto dall'utilizzo intensivo di Internet ha di fatto cambiato il modo di lavorare di tanti di
noi, ma ha contemporaneamente accresciuto anche i rischi che possono occorrere ai singoli computer o alle reti private
che da Internet traggono giornalmente giovamento. Tralasciando i computer che si collegano direttamente ad Internet
senza una vera sottorete di appartenenza se non quella del proprio provider telefonico (a.e. pensiamo al collegamento
che si stabilisce quando utilizzamo una ormai usuale chiavetta 3G UMTS), e che sono in pratica senza una vera difesa da
ogni minaccia possibile e immaginabile, tra le reti private sono da ricondurre anche tutte quelle che si trovano all'interno
dell'ambito di funzionamento di un generico router connesso, in modo diretto o indiretto, al modem xDSL che nella nostra
abitazione serve ad interfacciarci al fornitore di servizi voce e dati, e tramite il quale, nella pratica, abbiamo la possibilità
di collegarci ad Internet.

Allo stato attuale, ciò che un tempo era una piccola rete dedicata esclusivamente alla ricerca è divenuta ora una frontiera,
un mercato, una biblioteca, un telefono e inoltre sede di tantissime altre attività. Pertanto Internet, parafrasando, non
rappresenta una serie di piccole cittàdine, bensì una metropoli sconfinata: chiunque potrebbe, in maniera molto semplice,
esserne in grado di fare uso delle risorse in essa contenute (anche il pc dal quale state leggendo questo articolo, lo è in
definitiva), e per giunta tale attività è possibile portarla a termine in modo praticamente anonimo.

Internet ha cominciato via via a rappresentare, insomma, un luogo non proprio raccomandabile. La sicurezza in rete è pian
piano divenuta, a tutti gli effetti, una questione delicata e di interesse comune, e ha cominciato a rivestire un aspetto più
rilevante in particolar modo a chi la utilizza tramite un sistema informatico, come la propria rete casalinga, in genere
ben attrezzato per usufruire di tutti i servizi e le potenzialità offerti, più o meno gratuitamente, ma spesso non ancora
sufficientemente carrozzato edarticolato per poter navigare completamente sulla Rete delle Reti e potersi sentire al sicuro
in modo completo.


Anche a motivo di ciò il Dipartimento della Difesa degli Stati Uniti ha già in passato definito una serie di norme che hanno
permesso di giungere ad una certificazione e alla successiva classificazione dei sistemi informatici nell’ambito della sicurezza.
Gli standard sui requisiti in tal senso sono descritti all’interno del documento Trusted Computer System Evaluation Criteria,
detto più comunemente Orange Book, e mirano ad indicare e affermare in profondità le linee guida che corrispondono
ai livelli di sicurezza di seguito descritti:


LIVELLO D1 (Minimal Protection)E’ la più bassa forma di sicurezza utilizzabile: l’intero sistema non è fidato.
Non esistono protezioni per l’hardware, il sistema operativo può essere
facilmente compromesso e non sono previste forme di autenticazioni per gli
utenti che vogliono accedere alla informazioni contenute nel sistema.
Questo livello si riferisce tipicamente a sistemi operativi per lo più obsoleti
come MS-DOS, e alle prime versioni di MS-Windows e Apple-MacIntosh.
LIVELLO C1 (Discretionary Security Protection)Descrive in pratica la sicurezza utilizzata dai sistemi Unix in cui esiste
protezione per l’hardware e l’utente deve identificarsi nei confronti del
sistema attraverso il cosiddetto nome utente e la password, quindi
si permette al proprietario di un file o di una directory di premunirsi nei
confronti di altri utenti che vi volessero accedere.
LIVELLO C2 (Controlled Access Protection)Rispetto al precedente include una sicurezza addizionale attraverso la
creazione di un ambiente di accesso controllato. Questo ambiente ha la
capacità di restringereulteriormente gli utenti per l’esecuzione di certi
comandi e per l’accesso a certi file basandosi, non solo su permessi ma
che su livelli di autorizzazione. In aggiunta, questo livello di sicurezza
richiede che il sistema sia verificato, vale a dire ogni evento relativo
alla sicurezza deve essere registrato.
LIVELLO B1 (Labelled Security Protection)E’ il primo che supporta una sicurezza multilivello, equivalente a.e.
a secret e top secret
LIVELLO B2 (Structured Protection)Richiede che ogni oggetto sia classificato. A dispositivi come unità a
disco, nastro, o terminali, possono essere assegnati singoli o più livelli
di sicurezza.
LIVELLO B3 (Security Domains)Rinforza il dominio con l’installazione di hardware e prevede che il
terminale o il pc dell’utente sia connesso al sistema attraverso una
percorso fidato.
LIVELLO A (Verified Protection)E’ il livello più alto di sicurezza contenuto nell’Orange Book, include le
verifiche sui processi e controlli più stringenti. Per questo livello di
sicurezza è stato convenuto che: tutti i componenti di livello inferiori
devono essere inclusi, il progetto deve essere matematicamente
verificato, deve essere eseguita anche l’analisi dei canali e delle
distribuzioni fidate, significando che l’hardware ed il software sia
stato protetto durante la comunicazione e la spedizione, per prevenire
qualsiasi tipo di intrusione all'interno del sistema di sicurezza.



Lo scopo che gli amministratori della rete si prefiggono di raggiungere è quello di impedire che persone non autorizzate
possano accedere alla rete interna sfruttando forme di debolezza presenti nelle strutture informatiche, in modo tale da
non esporla inutilmente a rischi, senza aver preventivamente adottato delle idonee misure di sicurezza.

Non bisogna sottovalutare, però, come questo obiettivo appaia valido anche per un’organizzazione che non utilizzasse
Internet, dovendo trovarsi nella condizione di adottare politiche di sicurezza per regolare gli accessi di utenti a porzioni
della rete o ad informazioni riservate. Per ottenere questo livello di protezione ogni singolo utente, o alla stessa stregua
una organizzazione aziendale, ha bisogno di stabilire una politica di sicurezza per impedire ad utenti non autorizzati di
accedere alle risorse del proprio pc o della propria rete.

Nel trattare quest’argomento si è scelto di fare riferimento ai sistemi di rete utilizzati nelle aziende in quanto sono spesso
facile obiettivi e prede di criminali informatici, dediti a queste attività sia per il semplice gusto di mettere in subbuglio
l'intera organizzazione sia, e accade molto più di frequente di quanto ci si possa aspettare, a scopo di lucro per finire a
quello più rilevante di spionaggio industriale.

Non bisogna nemmeno sottovalutare il fatto, ormai ampiamente assodato, che l’argomento sicurezza non debba comunque
essere solo di interesse esclusivo delle piccole/grandi aziende, ma anche e soprattutto dei singoli utenti. Questi ultimi,
molto spesso, viaggiano nella rete ignari di essere oggetto e preda di possibili quanto relativamente facili attacchi da parte
di hacker o cracker che hanno tutte le possibilità di agire indisturbati, con estrema tranquillità ed efficacia: di certo anche
in questo momento esistono, in giro per il globo, un grande numero di pc utilizzati a distanza per scopi decisamente diversi
da quelli previsti dei legittimi proprietari, o addirittura illeciti.

Il tema e gli aspetti sulla sicurezza informatica inerente Internet e le reti in generale non sono quindi molto diversi da quelli
prospettati da altre e differenti forme di sicurezza: possono cambiare ovviamente i dettagli, dove gli elementi di natura tecnica
sono molto diversi, ma indiscutibilmente l'approccio, le regole, i metodi concettuali, nonché le lezioni apprese e da apprendere,
appaiono in maniera fondamentale le medesime nei vari ambiti.

Potremmo quindi riassumere in una serie di assiomi tutti gli aspetti validi indiscussamente in ogni campo implicante dei
principi di sicurezza:


1) la sicurezza assoluta non esiste

2) la sicurezza è sempre e generalmente un problema di ordine economico

3) il livello di tutte le difese intraprese deve esserne relativamente costante

4) un attaccante non passa attraverso le difese, bensì le aggira

5) le difese prese in considerazione vanno organizzate in più livelli

6) non appare conveniente affidarsi completamente alla sicurezza della segretezza

7) risulta conveniente organizzare la sicurezza nel modo più semplice possibile

8) non bisogna concedere ad una persona, ad un gruppo di persone o a un programma maggiori
privilegi di quanti ne siano realmente necessari

9) la sicurezza deve risultare una parte integrante a partire dal progetto originale

10) una catena di sicurezza è tanto forte quanto risulta poi impenetrabile il proprio anello più debole

11) la sicurezza deve in ultima analisi essere un compromesso con la praticità

12) non bisogna tendere a sottovalutare le proprie risorse e proprietà




1.2 Analisi dei rischi


Per poter giungere a stabilire una corretta ed efficace politica di sicurezza, è necessario, direi fondamentale portare
avanti un’accurata analisi delle risorse, con particolare riferimento a quelle a rischio: solo così facendo si possono
limitare i possibili attacchi ai punti deboli dalla struttura: ogni singolo componente del sistema deve essere sotto
controllo. Le componenti hardware, software e i database devono essere protetti, ma non bisogna contestualmente
dimenticarsi dei singoli utenti che possono rappresentare l’anello debole, come in casi di utenti inesperti o, peggio,
malintenzionati.

Dopo aver analizzato tutte le componenti a rischio, vanno prese in considerazione le fonti da cui potrebbero provenire
le eventuali minacce alla sicurezza del sistema. Ad esempio, gli accessi non autorizzati da parte di persone esterne al
sistema sono spesso dovuti all’incuranza degli utenti nel generare password forti. La generazione di password sicure,
infatti, permette di far fronte a possibili tentativi di cracking: la tecnica più usata da un attaccante consiste appunto,
nel tentare di trovare una parola, o una coppia di parole di uso più comune, o in alternativa provare tutte le possibili
combinazioni di simboli (in realtà solo quelli statisticamente più probabili). In questo modo potrebbe avvenire una
violazione dei privilegi, ottenendo l’accesso ad un livello del sistema che non era in precedenza raggiungibile. Così
facendo è possibile ad un attaccante accedere a dati sensibili o anche ad informazioni riservate, le quali avrebbero
potuto, e dovuto, esser meglio protette tramite un più efficiente e maggiormente efficace sistema di sicurezza.

Sintetizzando il lavoro, le macro-attività da intraprendere per poter giungere ad una corretta, approfondita ed
omnicomprensiva analisi possono essere in definitiva racchiuse in cinque differenti quesiti a cui dare precise risposte:

1) determinare di quali servizi si abbia realmente bisogno

2) determinare nello specifico i differenti gruppi di persone che si vuole servire

3) determinare a quali servizi ciascun gruppo abbia necessità di accedere

4) per ciascun gruppo descrivere poi in che modo si possa rendere, per quanto possibile sicuro, ciascun servizio

5) descrivere, infine, un’espressione che renda tutte le altre forme di accesso una esplicita violazione




1.3 Hackers e Crackers


Definizione:


Hacker:
è essenzialmente un esperto in informatica, dedito principalmente allo studio
dei limiti dei sistemi software e più in generale delle reti; è spesso, ma non
sempre correttamente, assimilato alla figura del pirata informatico;

Cracker:
a differenza di un hacker, è un vero e proprio pirata informatico, attratto dalla
forzatura di codici di accesso ai sistemi hardware e/o alle chiavi di sicurezza
di quelli software. In realtà il termine cracker è stato creato dagli hackers
per difendersi in qualche modo contro l'abuso della loro denominazione da parte
della stampa e dei più, al fine di prendere le distanze dagli atti di puro vandalismo
elettronico commessi in realtà da questo tipo di pirati informatici;

Crasher:
un crasher fa parte della famiglia dannosa dei pirati informatici (crackers),
e ciò è vero in quanto persegue nella pratica come obiettivo quello di provocare
dei blocchi intensivi dei sistemi nei quali si introduce o in alternativa quello di
distruggerne a proprio piacimento i dati in essi contenuti e/o custoditi;

Thief:
i facenti parte di questa estrema tipologia di crackers rappresentano dei veri e
propri criminali: per ottenere l'accesso ai sistemi, il thief è disposto a
giungere al ricorso del ricatto o della corruzione, nel tentativo di apprendere
le informazioni necessarie per potersi introdurre indisturbato in ogni sistema
informatico.
Il thief trae in genere profitto dalle proprie attività di cracking, e per questo
si trova spesso coinvolto in casi di spionaggio elettronico e/o di sabotaggio.
Insomma, un thief è tra i più professionali di tutti i crackers, e ciò sta a
significare che i suoi obiettivi sono di norma mirati ed intenzionali, mai casuali.
A ragione di ciò i Theives sono, tra i crackers, anche quelli più difficili da
scovare: è stato stimato come nel corso di decenni sia stato possibile catturare
solo il 5% di essi. Infatti, a motivo della loro eccezionale bravura, possiedono tutte
le capacità per riuscire anche a cancellare sistematicamente ed in modo completo
le proprie tracce sui sistemi oggetto del loro interesse, e senza che sia in seguito
possibile in alcun modo venirne a conoscenza e/o recuperarle.


Sebbene in situazioni estreme adottare una politica di sicurezza potrebbe anche non apportare dei risultati positivi,
questo tipo di profilassi informatica può però indubbiamente aiutare a proteggere un sistema dai possibili attacchi
portati a termine da parte di hackers e crackers che si aggirano nella rete. I crackers, o per meglio dire i crasher più
esperti agiscono in multiple fasi per introdursi in un sistema: raccolgono prima le informazioni riguardanti la
organizzazione da colpire e cercano solo in un secondo tempo di accedervi. Per giungere a raccogliere tali informazioni
hanno a disposizione e conoscono perfettamente il funzionamento di mezzi e modalità, a volte anche di natura
completamente differente.




1.4 Attività svolte dal Crasher/Thief


Prima di giungere alla parte realmente divertente (per il proprio ego) un pirata informatico degno di questo appellativo
deve necessariamente completare dei passi fondamentalmente importanti e propedeutici all'attacco. Il crasher/thief
ha diverse strade per giungere allo scopo: ad esempio, può mettere insieme tutta una vera e propria raccolta di dati
e dettagli organizzativi sulla società bersaglio e, tecnicamente, sulla tipologia della rete da attaccare tramite il magistrale
utilizzo dell'ingegneria sociale senza dover neanche utilizzare il proprio bagaglio dal punto di vista prettamente tecnico;
oppure può arrivare alla conoscenza delle stesse informazioni tramite il controllo scrupoloso ed approfondito delle tabelle
di instradamento di un router non completamente o correttamente protetto (a.e. con nome utente e password di default),
ovvero con il s.o. esposto a falle di sicurezza o già direttamente buggato, in quanto mai opportunamento aggiornato nel
firmware.

Tralasciando le implicazioni teorico-pratiche degli aspetti più importanti dell'ingegneria sociale, un generico pirata di reti
informatiche ha a disposizione tutta una serie di strumenti software per il reperimento delle informazioni sulla tipologia
di rete dell'obiettivo. Per lo più il vero crasher/thief tende a creare da sé gli strumenti software più sofisticati che lo
porteranno dritto al cuore della rete; generalmente, però, questi strumenti non fanno altro che implementare in maniera
molto efficiente e personalizzata l'uso di tutta una serie di più semplici comandi. Questi comandi sono quasi tutti inerenti
il protocollo SNMP (Simple Network Management Protocol), cioè un insieme di regole che permettono la gestione di
apparati di rete accomunati nell’architettura dei protocolli TCP/IP:

1) Il comando TraceRoute permette di rilevare il numero di reti intermedie nonché i router
incontrati nel percorso utilizzato fino ad un host specifico;

2) Il protocollo Whois è un servizio di informazione tramite il quale poter acquisire dati su
tutto il dominio DNS e soprattutto sugli amministratori di sistema responsabili di ciascun dominio;

3) Il sistema DNS, tramite il quale si può riuscire ad accedere ad un elenco di indirizzi IP di
host e giungere al loro nome corrispondente;

4) Il comando Finger, in grado di rilevare informazioni particolareggiate sugli utenti di un
host specifico: nomi utente di login, numeri di telefono, settore dell'azienda, durata dell’ultima
conessione, etc…;

5) Il comando Ping, che può essere usato per localizzare un host particolare e poterne così
determinare la sua posizione e raggiungibilità. Questo semplice strumento può essere usato
all'interno di un programma di scansione che sia in grado di verificare la presenza su una rete
di ogni possibile host indirizzabile e online, portando in maniera facile, ed in assoluta brevità
di tempo, alla elencazione di un numero elevato di host operanti su una o più determinate
reti.


In genere l'attività del pirata informatico inizia con tutta una serie di rilevazioni volte a stabilire la natura ed il livello
di protezione dell'host target (pc, server o router che sia), cioè la macchina che rappresenta l'obiettivo dell'attacco.
Questa prima fase è definita footprinting, cioè l'arte approfondita di raccogliere quante più informazioni sul
possibile obiettivo, sulla struttura e sulle protezioni su di esso utilizzate.

Seguendo una metodologia ben strutturata e congegnata, e della quale è diventato padrone nel corso degli anni di
attività, l'aggressore riesce a raggranellare informazioni da una serie di fonti e in questo modo ricostruendo
l'impronta (footprinting) fondamentale di qualsiasi organizzazione, per quanto segreta possa essere. Le attività
svolte in questa fase sono per lo più limitate alla delimitazione dell'ambito di azione, l'indagine sui domini,
l'enumerazione della rete, l'interrogazione del DNS e l'analisidei record MX (Mail Exchange), ed infine l'accurata
perlustrazione della rete obiettivo.

A questo punto l'attaccante si mette di solito in cerca dell'anello più debole della catena (possibilmente un host con
un sistema operativo buggato), per potersi inserire al suo interno e poterlo poi utilizzare a piacimento: questa prima
fase è definita di stack fingerprinting, ed è volta a scoprire il sistema operativo dell'host che diverrà l'obiettivo
primario. Questa attività è semplicemente eseguita sondando la rete tramite una serie di semplici e banali
interrogazioni:

1) sonda FIN

2) sonda con flag fasullo

3) campionamento del numero di sequenza iniziale

4) monitoraggio del bit di inibizione della frammentazione

5) dimensione della finestra iniziale TCP

6) valore ACK

7) riduzione dei messaggi di errore ICMP

8) citazione dei messaggi ICMP

9) integrità dei messaggi di errore ICMP restituiti

10) tipo di servizio

11) gestione della frammentazione

12) opzioni TCP



E' utile descrivere brevemente e singolarmente questo tipo di attività:

1) sonda FIN:
secondo la RFC 793, quando un pacchetto FIN viene ricevuto da una sonda aperta, il corretto
comportamento è quello di non rispondere; purtroppo alcuni ss.oo. (come talune versioni di
Windows) rispondono invece con FIN/ACK;


2) sonda con flag fasullo, o bogus flag:
quando viene inviato un pacchetto SYN nella cui intestazione sia attivato un flag TCP non
definito, alcuni ss.oo. (come certe versioni di distribuzioni Linux) lasciano impostato il
medesimo flag nel pacchetto di risposta;


3) campionamento del numero di sequenza iniziale (ISN):
l'ipotesi dell'attaccante è in questo caso quella di riuscire a riconoscere o intravedere uno
schema ben preciso nella sequenza iniziale utilizzata dalla specifica implementazione TCP,
in risposta ad una semplice richiesta di connessione;


4) monitoraggio del bit di inibizione della frammentazione:
alcuni ss.oo. impostano il bit di inibizione della frammentazione (il Don't Fragment Bit) al
solo scopo di migliorare in qualche modo le prestazioni. Il contenuto di tale bit può anch'esso
contribuire, seppur parzlamente, alla restrizione del campo di costruzione del profilo;


5) dimensione della finestra iniziale TCP:
questa indagine è tesa a controllare la dimensione della finestra iniziale sui pacchetti restituiti.
In certe implementazioni tale dimensione risulta univoca, e può contribuire notevolmente alla
precisione del profilo ricostruito;


6) valore ACK:
il valore di sequenza del campo ACK varia a seconda dell'implementazione IP utilizzata: in certi
casi viene restituito il numero di sequenza inviato, mentre in altre circostanze il valore del numero
di sequenza restituito è incrementato di una unità;


7) riduzione dei messaggi di errore ICMP:
in questo ambito alcuni ss.oo. seguono pedissequamente la RFC 1812, limitando la frequenza di
invio dei messaggi di errore. In questi casi, inviando una serie di pacchetti (in gener di tipo UDP)
a una porta a caso di valore elevato, è possibile per l'attaccante contare i messaggi di unreachable
che tornano indietro in un ben determinato periodo;


8) citazione dei messaggi ICMP:
è possibile distinguere i vari ss.oo. anche rilevando la quantità di informazioni restituite in caso
di errori ICMP; l'attento esame del messaggio citato nella risposta di errore può contribuire alla
corretta identificazione del s.o. target;


9) integrità dei messaggi di errore ICMP restituiti:
alcune particolari implementazioni arrivano anche a modificare le intestazioni IP dei messaggi di
errore restituiti; è in questo modo facilmente distinguerli in base al particolare tipo di modifiche
apportate all'intestazione.


10) tipo di servizio (TOS):
viene esaminato il TOS (Type Of Service) generalmente per i messaggi ICMP di tipo port unreachable,
ovvero quando la porta porta ICMP non è per qualche motivo raggiungibile, in quanto nella maggior
parte delle implemetazioni, ma non sempre a dire il vero, viene di norma utilizzato il valore 0;


11) gestione della frammentazione:
le varie implementazioni dello stack nei diversi ss.oo. gestiscono anche la sovrapposizione dei
frammenti in maniera diversa tra loro. Alcune tipologie di stack utilizzano una sovrascrittura dei
vecchi dati con dei nuovi durante le fasi di riscostruzione del pacchetto, altri invece mantengono
inalterata la versione precedente. L'attento esame del modo in cui i pacchetti sonda vengono
riassemblati, in genere può favorevolmente contribuire all'individuazione del s.o. bersaglio;


12) opzioni TCP:
le opzioni TCP sono state dapprima definite nel RFC 793, e più avanti nel RFC 1323. Le opzioni
più avanzate sono state inserite in quest'ultimo, e l'invio di pacchetti con diverse di queste opzioni
opportunamente impostate (come a.e. nessuna operazione, la dimesione massima del segmento,
il fattore di scala della finestra e la data/ora), possono dare un contributo rilevante alla corretta
identificazione del s.o. dell'host bersaglio.



Una volta raccolte, direttamente sulla rete interna, le necessarie informazioni riguardo l’organizzazione interessata,
il cracker/crasher/thief, come dicevamo in precedenza, può tramite degli appositi programmi spesso sviluppati in
proprio, esser in grado di portare a termine connessioni a specifiche porte di servizio (TCP e UDP) sull’host, esplorare
ognuno degli host in precedenza individuati, in modo più approfondito e chirurgico al preciso fine di trovare uno o più
punti deboli. Tali approfondimenti conoscitivi possono essere condotti in più riprese e con la massima tranquillità, in
modo da poter così stabilire nella maniera più efficace possibile, la tipologia e/o le diverse modalità di attacco a
disposizione: in buona sostanza quelle maggiormente idonee, veloci e soprattutto meno intrusive, in modo tale da
introdurrecreare le più basse probabilità di rischio possibili.

E' anche vero, però, che i medesimi programmi possono essere più saggiamente usati dagli stessi amministratori
dei sistemi al fine, a loro volta, di prevenire quelle possibili intrusioni da parte di malintenzionati, trovando da loro
stessi i punti deboli presenti in rete, e avendo così, tramite l'individuazione delle relative falle di sicurezza, la preziosa
opportunità di proteggerli in maniera adeguata: purtroppo questa eventualità in genere avviene raramente, anzi in
talune tipologie molto complesse di rete (immaginiamo quella di una vasta università), questa possibilità raramente
si concretizza.


Alcuni dei tanti software in grado di analizzare le porte TCP/UDP sono SuperScan o Local Port Scanner:
tali programmi permettono di selezionare il range di porte da analizzare, e rilevare eventuali porte restanti in attesa
di comunicazioni, vale a dire perfettamente abilitate alla ricezione di connessioni (a motivo di ciò definite porte
aperte
).

La sola e semplice mancata chiusura di tali porte, potrebbe benissimo costituire la base per un comodo e successivo
attacco da parte di un malintenzionato tecnicamente ben preparato.

Di seguito viene adoperato lo screen di un esempio di tale tipo di scansione, portato a termine tramite Local Port
Scanner
v1.22:

Immagine
In calce alla figura sono evidenziate le porte TCP aperte nel sistema
sottoposto alla scansione: precisamente la 80 e la 443






2 Sistemi e dispositivi per reti più sicure: i Firewall




2.1 Analisi generale


Secondo quanto indicato nella raccomandazione FYI n.36 (Internet Security Glossary, Versione 2), un firewall può essere
definito come un Internetwork Gateway che restringe il traffico dei dati da e per una delle reti connesse (detta
interna al firewall) e ne protegge le risorse del sistema dalle minacce provenienti dall'altra rete (detta esterna al firewall).

Il primo computer che funse effettivamente da firewall fu un host Unix non instradante, le cui due connessioni si affacciavano su
due reti diverse: una scheda di rete era connessa ad Internet mentre l’altra metteva in comunicazione tutta una LAN privata (una
odierna Intranet).

Immagine


Trovandosi sulla rete privata, e volendo raggiungere Internet si rendeva necessario effettuare il login sul server firewall
(con s.o. Unix), quindi si utilizzavano le risorse di tale sistema per accedere ad Internet: ad esempio, si poteva usare
X-Windows per lanciare il browser Netscape sul sistema firewall e poi esportarne il display sulla propria workstation.
Questo sistema, di tipo Dual Homed, dava così modo al browser in funzione sul firewall stesso, ed importato in
modalità remota sulla workstation, di avere un contemporaneo accesso ad entrambe le reti.


Un firewall può essere realizzato, a livello costruttivo, sia tramite un hardware dedicato sia attraverso del software, ma
in entrambi i casi è solitamente posizionato tra la rete locale e il router di confine, cioè quel router che in pratica si
affaccia su Internet. Tecnicamente, e a seconda della configurazione e della tipologia, un firewall risulta in grado di riuscire
a determinare se un pacchetto di dati o una richiesta di connessione da parte di un utente hanno diritto o meno di passare
all’interno della zona protetta.

Il firewall, a volerne sintetizzarne le competenze, è in grado quindi di determinare quali servizi interni possano essere
accessibili esternamente alla rete, quali utenti esterni possano accedere ai servizi interni, e in ultimo quali servizi esterni
possano divenire accessibili a chi si trova all'interno del suo ambito di protezione.

Una volta che il firewall risulta configurato, tutte le comunicazioni fra i due ambienti, quello esterno da una parte e quello
interno dalla altra, sono obbligate a passarci attraverso: solo in questo modo è possibile escludere ogni altra via di accesso,
e nessun altro percorso è praticamente ammesso. Tutti i pacchetti in transito da e verso Internet possono subire una serie
di controlli di sicurezza ben definiti dall'amministratore, e le comunicazioni ritenute potenzialmente pericolose sono di solito
bloccate, o scartate, e non sono messe nella condizione di ottenere il dovuto permesso di accedere alla rete. Il firewall, in
definitiva, permette il passaggio solo al traffico strettamente riconosciuto come autorizzato.

Immagine


L’uso di firewall, specialmente in aziende con un numero elevato di macchine, diviene necessario anche per poter gestire al
meglio anche eventuali attacchi alla rete interna provenienti dall'esterno. Infatti, per la regola della transitività, se una delle
macchine risultasse non protetta, potrebbe venir a rappresentare l’anello debole della catena: se dovesse essere vittima di
un attacco da parte di criminali informatici, altri attacchi potrebbero di conseguenza essere facilmente estesi anche a tutto
il resto del sistema informativo interno, server compresi.


Ad esempio, supponiamo che la macchina x, in pieno accordo con la politica di sicurezza locale, decida di estendere la propria
fiducia alla macchina y, appartenente ad una rete non protetta (rete E). Analogamente la macchina y decide di estendere la
propria fiducia alla macchina z (rete G), mantenendosi pur sempre in accordo con la politica di sicurezza. Per la proprietà
transitiva, quindi, la macchina x è ora in fiducia con la macchina z anche se non la conosce affatto. Un firewall dovrebbe evitare
il verificarsi di tali situazioni, in grado di mettere in seria difficoltà anche la sicurezza di una intera rete.

Immagine
Figura 2: politica di sicurezza errata in cui si verifica la proprietà transitiva. Se
una delle macchine risultasse non protetta, potrebbe essere attaccato anche tutto il
resto del sistema.



Oltre a rappresentare una barriera contro possibili violazioni dall’esterno, un firewall si rivela adatto anche ad isolare e quindi
controllare l’accesso tra i diversi segmenti interni di una rete privata, tenere cioè idealmente separati alcuni ben definiti
segmenti, detti domini di sicurezza, ossia un insieme di macchine che si trovano sotto il controllo amministrativo reso
in comune. Un’azienda, infatti, dovrebbe mettersi nella condizione di prevedere una rete separata per l’amministrazione, da
un lato, e una rete accessibile solo ai dipendenti, dall'altro.




2.2 La filosofia dei firewall


Dal punto di vista funzionale, la modalità operativa di un firewall descrive la filosofia a livello concettuale delle politiche di
sicurezza, avendo modo di operare in due diverse modalità, concettualmente opposte tra loro:

1) tutto ciò che non è specificatamente permesso, è preventivamente negato. Con questa configurazione
il firewall blocca tutto il traffico, e ciascun servizio o applicazione deve essere implementato caso per caso.
Questo approccio crea un ambiente molto sicuro, ma tutto ciò va discapito dell’agilità d’uso, limitando le
scelte nella disponibilità dell’utente;

2) tutto ciò che non è specificatamente negato è permesso di default. In questo caso il firewall permette
tutto il traffico e ogni servizio potenzialmente pericoloso viene chiuso caso per caso. Questo approccio crea
un ambiente più flessibile rispetto al precedente, ma tutto ciò va a discapito di una buona sicurezza,
rendendone difficile l'aggiornamento, soprattutto man mano che la rete cresce di dimensioni e complessità.




2.3 Tipologie di un firewall


Esistono due tipologie di firewall: i firewall IP o filtranti, che bloccano tutto ad eccezione del traffico di rete selezionato,
e i proxy applicativi, predisposti invece alla creazione delle connessioni di rete.
Generalmente il controllo dei pacchetti a livello dell'applicazione viene fatto dal firewall di livello applicativo, denominato
comunemente application gateway e spesso accoppiato ad un server proxy, mentre a livello di rete e di trasporto viene
usato il firewall chiamato filtering router o screening router. Siamo dell'idea che un firewall realmente efficace
dovrebbe quindi essere di tipo modulare, e quindi composto da uno o più dei seguenti blocchi:

1) packet-filtering router (filtraggio dei pacchetti)

2) stateful Inspection (controllo dello stato)

3) application gateway (proxy)


Mentre i primi e i secondi vengono unanimemente considerati più sicuri degli application gateway, in quanto la natura
fondamentalmente restrittiva di questi ultimi e le pesanti ricadute a livello prestazionale ne hanno generalmente limitato
l'adozione sul solo traffico in uscita piuttosto che in ingresso sul server web. I firewall per il filtraggio dei pacchetti, o le
versioni più sofisticate per il controllo di stato, sono invece diffusi in molte delle più grandi organizzazioni, dove appaiono
più stringenti i requisiti in termini di prestazioni.

Molti ritengono, giustamente, che il firewall perfetto debba ancora esser creato, e infatti siamo tuttora lontani da questo
traguardo: ogni hanno vengono scoperti nuovi punti vulnerabili in praticamente tutti i prodotti presenti sul mercato, ma
quel che è peggio si scopre che la maggior parte delle installazioni viene configurata in modo non corretto, tantomeno
sistematicamente controllata e sottoposta a manutenzione o ad aggiornamento.




2.3.1 Packet-Filtering Router (Screening Router)


Il Packet-Filtering router funziona sfruttando le informazioni di livello 3 (Trasporto) e 4 (Sessione) del modello ISO-OSI.
Come indica il nome stesso, router di filtraggio, realizza contemporaneamente alla funzione di routing un opportuno
filtro dei pacchetti ricevuti. Tale politica viene stabilita secondo le norme di una Access Control List (ACL) abbinata
all’interfaccia fisica attraverso la quale il pacchetto è giunto. L’ACL è concettualmente costituita da due input: il primo
specifica la coppia di informazioni da verificare (indirizzo IP e numero porta) e che sono contenute all’interno dei campi
dell’header (intestazione) di ogni pacchetto ricevuto, mentre il secondo input è dedicato a specificare l’azione da
compiere.

Esiste anche la possibilità di filtraggio circoscritto non solo al contenuto del campo dell'header, ma anche a quello nell'area
dei dati del pacchetto, ma questo implica funzionalità ancora più avanzate che descriveremo in seguito, quando risulterà
realmente necessario.

Immagine


Il firewall, in pratica, analizza ogni singolo pacchetto in transito e ne estrae gli indirizzi di sorgente, destinazione e le
indicazioni sulla porta: questi dati vengono messi in relazione con una tabella contenente le sorgenti e le destinazioni
ammesse dai criteri di sicurezza stabiliti. Tutti i pacchetti che non dovessero corrispondere al controllo, vengono
considerati pericolosi, o ad ogni modo non sicuri, e pertanto scartati.




2.3.1.1 Modalità di funzionamento


Quasi tutti i dispositivi che fungono da firewall operano generalmente nella seguente modalità:

1) il criterio di filtraggio viene memorizzato per ogni porta del dispositivo;

2) quando il pacchetto arriva alla porta, l’header di quel pacchetto viene analizzato;

3) le regole di filtraggio sono memorizzate in uno specifico ordine, e ogni regola viene applicata al
pacchetto nell’ordine stesso in cui viene memorizzata;

4) se almeno una regola blocca la trasmissione o la ricezione di un pacchetto, questo viene rifiutato;

5) se una regola permette la trasmissione o la ricezione di un pacchetto, a tale pacchetto verrà applicata
la regola successiva;

6) se il pacchetto dovesse via via soddisfare ogni regola, solo alla fine verrà definitivamente accettato
ed inviato.


Analizzando i punti 4 e 5 si può notare come assuma molta importanza il memorizzare le regole di filtraggio in un corretto
ordine; infatti un errore che si viene a creare molto frequentemente è quello di memorizzarle nell'ordine sbagliato. Se ciò
dovesse accadere si potrebbe negare un servizio valido e, nel peggiore dei casi, permettere un servizio potenzialmente
pericoloso e che andrebbe invece negato.




2.3.1.2 Filtraggio dipendente dal servizio


Le regole di filtraggio dei pacchetti permettono a un firewall di consentire o negare il traffico relativo a un servizio specifico:
questo è reso possibile in quanto sono ben conosciuti i numeri di porta di tutti servizi TCP/IP e UDP.

Ad esempio un servizio del protocollo Telnet si mette in ascolto sulla porta 23 TCP per i collegamenti da remoto.
Per bloccare tutti i collegamenti Telnet entranti, il router procede semplicemente a scartare tutti i pacchetti che contengono
un valore di porta di destinazione pari a 23. Per ridurre i collegamenti Telnet entranti ad un numero limitato di host interni,
il firewall dovrà rifiutare tutti i pacchetti che contengono un valore di destination port TCP uguale a 23, e che non
contengano l’indirizzo di destinazione IP di uno degli host autorizzati.




2.3.1.3 Filtraggio indipendente dal servizio


Alcuni tipi di intrusione sono più difficili da individuare sfruttando le sole informazioni base sull’header del pacchetto, e
questo è particolarmente vero qualora gli attacchi portati a termine siano indipendenti dal servizio. Di contro è possibile
configurare i firewall per resistere a questo tipi d’attacchi, ma le regole di filtraggio richiedono informazioni addizionali
che possono essere apprese soltanto esaminando la tabella d’instradamento, ispezionando le specifiche opzioni IP, etc..

Esempi di questi tipi di attacchi possono essere:

1) attacchi volti in qualche modo ad imbrogliare l'indirizzo IP sorgente: in questo tipo di attacco
l’intruso emette pacchetti dall’esterno cercando di ingannare il firewall e il client interessato: in pratica
questo è possibile modificando opportunamente l'intestazione presente all'interno dei pacchetti, fingendo
di provenire da un host interno. Tali attacchi possono essere individuati e resi innocui semplicemente
scartando ciascun pacchetto con un indirizzo sorgente IP interno ma proveniente da una della interfacce
del firewall che sono rivolte verso l’esterno;

2) attacchi Source Routing: in un attacco di questo tipo la stazione sorgente specifica il cammino
che un pacchetto dovrebbe percorrere attraversando Internet. Questo tipo di attacco è progettato per
bypassare le misure di sicurezza e far seguire al pacchetto un percorso opportunamente differente
verso la destinazione. Può essere scoperto scartando tutti i pacchetti che contengono source route
nel campo option del datagramma IP;

3) attacchi con piccoli pacchetti frammentati: per questo tipo di accesso l’intruso utilizza la
caratteristica della frammentazione IP per creare dei frammenti di pacchetto estremamente piccoli e
forzare poi l’header TCP con un frammento separato. Questa tipologia di attacchi sono pensati per
raggirare le regole di filtraggio: le speranze dell’hacker sono che un firewall filtrante esamini solo
il primo dei frammenti (coerentemente congeganto) e lasci poi passare tutti gli altri. Tale attacco
può essere sconfitto scartando tutti i pacchetti in cui il campo protocol type sia pari a 6 (cioè TCP) e
l’offset IP sia pari a 1.


Ad esempio supponiamo di voler instaurare la connessione tra l'indirizzo IP 198.202.160.2 di una rete, e il servizio SMTP
di un qualsiasi host esterno. Questo tipo di servizio viene ottenuto con una connessione TCP, quindi le regole di filtraggio
dovranno tenere in considerazione la presenza dei pacchetti TCP/IP dell'applicazione utilizzata, l'ACK, ed il flusso delle
informazioni in entrambe le direzioni (full duplex):

Immagine
Figura 3: passi eseguiti dal Packet-Filtering Router


Si potrebbe, a questo punto, scrivere la seguente tabella di regole:

Immagine


In ogni riga della tabella qui sopra è descritta una completa connessione TCP, denominata “full association”, e che potrebbe
esser così tradotta:

1^ regola

1) permettere la connessione dall'host 2 della subnet 198.202.160

2) avente origine da qualsiasi porta

3) e come destinazione la porta 25 di qualunque host



2^ regola

1) permettere la connessione da qualsiasi network originato dalla porta 25,

2) con l'ACK TCP settato a 1

3) e come destinazione qualsiasi porta dell'host 2 della subnet 198.202.160


Si può notare come per ogni regola venga specificato sia l’indirizzo sorgente che quello di destinazione, i flags TCP e
l’azione che dovrà essere svolta. I flags TCP sono dei campi presenti nell’header del pacchetto TCP, e contengono
informazioni vitali per il filtraggio. I più importanti flags TCP sono SYN e ACK:

SYN) (synchronize) indica l’inizio di una connessione TCP ed è impostato ad 1 qualora vi sia una richiesta di connessione

ACK) (acknowledgment) viene settato nel pacchetto di conferma della connessione e nei pacchetti di conferma dei dati:
se impostato a 1 indica che il campo Acknowledgment number è valido.


L’azione, infine, indica l'attività che il firewall dovrà portare a termine qualora un pacchetto rispecchi una data regola, cioè:

1) Deny : rifiutare la comunicazione (respingere il pacchetto)

2) Allow : accettare la comunicazione (far giungere il pacchetto a destinazione)

3) Drop : non effettuare alcuna azione (scartare il pacchetto)


Il droppare un pacchetto, potrebbe sembrare a prima vista un'operazione priva di senso, ma questa inattività può risultare
invece estremamente utile nel caso in cui l'attaccante utilizzi dei comandi SNMP o ICMP: in una situazione analoga, l'azione
di rifiutare anche solo un pacchetto, darebbe all'attaccante l'assoluta certezza sull'esistenza dell'obiettivo, mentre quella di
scartarlo lo renderebbe invisibile.




2.3.1.4 Vantaggi


Un vantaggio del Packet-Filtering router consiste nel fatto che, analizzando soltanto gli header del terzo e quarto livello
(Rete e Trasporto), non si hanno in definitiva significative perdite di prestazioni della rete. Il packet-filtering può essere
usato per lavorare con una larga varietà di politiche di sicurezza, che possono dipendere dal tipo di risorse, di servizio e
del livello di importanza di ciò che si vuole proteggere.

L’aspetto essenziale di tutto ciò è la trasparenza del processo di filtraggio, che non porta ad ostacolare il normale utilizzo
della rete: questo è un ulteriore punto di forza del packet-filtering, in quanto lavora a livello di trasporto e di rete, mentre
un firewall che lavora a livello di applicazione, tende ad avere una implementazione non completamente trasparente, e ciò
creerà un sensibile impatto sul throughput complessivo.





2.3.2 Stateful Inspection


Un firewall deve tenere traccia del flusso delle comunicazioni che lo attraversano: per poter operare correttamente nel suo
processo decisionale, ha la necessità di ottenere informazioni derivanti da tutti i layers di comunicazione.
Le informazioni sullo stato di una determinata connessione, derivata dalle comunicazioni precedentemente intercorse, è un
fattore essenziale finalizzato alla decisione di far passare o meno nuovi tentativi di connessione. In maniera dipendente dai
tentativi di instaurare una nuova connessione, infatti, lo stato della comunicazione direttamente derivato dalle comunicazioni
già trascorse può influire in modo critico sulla corretta decisione da prendere.

Per assicurare un elevato livello di sicurezza, un firewall deve essere in grado in ogni momento di accedere, analizzare ed
utilizzare le informazioni sulla comunicazione e sul relativo stato. La stateful inspection è una tecnologia di firewalling
ideata principalemente per soddisfare i seguenti requisiti di sicurezza:

1) esatta informazione sulla comunicazione (controllo di tutti e 7 i layers);

2) stato derivato dalla comunicazione (esame delle comunicazioni precedenti );

3) stato derivato dall'applicazione (a.e. mantenimento della sessione di un utente autenticatosi attraverso
un'apposita applicazione);

4) gestione completa dell'informazione, ovvero valutazione di espressioni flessibili a partire dall'informazione relativa
alla comunicazione, dallo stato derivato dalla comunicazione e anche dallo stato derivato dall'applicazione.


Gli immediati vantaggi apportati dal controllo dello stato sono principalmente i seguenti:

1) buon livello di sicurezza;

2) consapevolezza dello strato applicativo;

3) ottenimento di performance elevate;

4) ottima scalabilità;

5) trasparenza,





2.3.3 Gateway a livello applicativo


Un gateway al livello di applicazione permette invece all’amministratore di attuare una politica di sicurezza molto più rigida
rispetto ad un Packet-Filtering router; infatti, invece di basarsi solo sul filtraggio per gestite il flusso dei sevizi Internet
attraverso il firewall, sul gateway può esser invece installato un programma appositamente mirato per ogni applicazione
(o porta/e TCP) che si vuole filtrare. Il programma, detto proxy applicativo, può essere configurato in modo tale da valutare
le richieste in arrivo sulla base di liste di accesso per permettere solo certe specifiche caratteristiche dell’applicazione e
opportunamente negarne delle altre.

Una volta accertata la legittimità di una richiesta, il proxy provvede ad inoltrarla correttamente al server e/o al client di
origine/destinazione della risposta/richiesta. Si può dire che il proxy presenta una dualità di comportamento, in quanto fa
da un lato le veci di un server nei confronti delle richieste originate sulla propria rete e si comporta dall'altro da client
quando le inoltra al vero server applicativo al di fuori di essa.

Il proxy, come abbiamo avuto modo di asserire, rappresenta un server principalmente usato per controllare, o monitorare,
il traffico dall'interno della rete verso l'esterno: alcuni proxy di applicazioni possono fare la cache dei dati richiesti, ciò può
diminuire drasticamente le richieste di banda e anche il tempo d’accesso per il successivo utente che avesse bisogno di
accedere a quegli stessi dati. Altra fattore non trascurable inerente la completa sicurezza, è quello di fornire tramite un
approfondito sistema di logging delle operazioni, un’evidenza inequivocabile su quanto sia stato trasferito/ricevuto dagli
utenti.

Esistono fondamentalmente due tipi di Proxy Server.

1) Application Proxy (Proxy Applicativo);
2) Proxy Socks.




2.3.3.1 Proxy Applicativo


Il miglior esempio per rappresentarlo è quello di un utente che effettua una connessione al proxy HTTP aziendale o del
provider, e poi viene da questo realmente connesso su Internet: solo con un proxy applicativo tale processo può risultare
automatizzato. Non appena tramite il proprio browser si crea la connessione verso un qualsiasi indirizzo esterno alla
propria rete, il client (FireFox, Internet Explorer, Opera o Chrome che sia) per prima cosa rimanda all'indirizzo (a.e.
http://192.202.160.1) e alla porta (di solito 8080) del Proxy HTTP.

Immagine


A questo punto il proxy stesso instaura, per conto nostro, una relativa connessione al server al quale sia stata richiesta la
pagina, concorderà le corrette modalità di collegamento e scambierà i dati richiesti. Via via che porterà avanti la comunicazione
al posto nostro verso l'esterno, il proxy ci restituirà indietro ogni dato a propria volta ricevuto dal server che mantiene il
portale di HWLegend.

Poiché proxy di questa tipologia gestiscono tutte le comunicazioni, possono in pratica registrare qualsiasi cosa si renda
necessario, in quanto ogni dato delle attività compiute è contenuto all'interno dei relativi pacchetti IP manipolati. Per i
Proxy HTTP (Web Proxy) ciò può portare ad includere qualsiasi Url si sia visitato, per i Proxy FTP qualsiasi file si sia scaricato,
e volendo possono anche arrivare a filtrare ben determinate parole contenute nelle pagine dei siti visitati o in ultima analisi
a controllare la presenza di virus, effettuando una idonea e appropriata composizione dei pacchetti ricevuti, qualora vengano
utilizzati protocolli che prevedano lo scambio di file.

Gli Application Proxy sono altresì in grado di procedere all'autenticazione degli utenti in quanto, prima di effettuare una
qualsiasi connessione verso l’esterno possono come prima attività, effettuare richiesta all’utente di portare a termine una
procedura di login. Di contro, ad un utilizzatore del web ciò potrebbe anche comportare la necessità di un login separato
per ogni sito da visitare e/o per ciascuna connessione anche involontaria che si andrà automaticamente ad effettuare (a.e.
necessaria per la visualizzazione dei video su YouTube, o per le procedure automatizzate di aggiornamento necessari a
programmi come il Reader di Adobe, del JavaRE di SUN, etc...).




2.3.3.2 Proxy Socks


Un server socks (o proxy socks) è molto simile ad una vecchia switch board. Il suo compito è semplicemente quello di incrociare,
attraverso il sistema, i cavi della propria connessione interna con un’altra connessione esterna, e per questo risulta in
definitiva un proxy anomalo. La maggior parte dei server socks può funzionare solamente con connessioni di tipo TCP e,
alla stregua dei firewall filtranti, non sono in grado di fornire l’autenticazione degli utenti, ma possono comunque registrare
le attività di ciascuna macchina, resa identificabile tramite l'indirizzo IP dal quale ha avuto origine la connessione.

Immagine



Ad ogni modo, qualsiasi tipo di proxy venga utilizzato, si avrà la certezza che il percorso fra il sistema client e il server
non sia effettivamente diretto ma risulti di fatto isolato e gestito dal proxy interessato. Ogni comunicazione è possibile
solamente se l'host richiedente o destinatario della comunicazione si trovi all'interno della rete protetta e, nel caso di
un proxy di tipo applicativo, il richiedente sia presente in un elenco di utenti autorizzati (ACL), compilato da parte di
chi lo amministra: in questo caso un proxy può quindi contemporaneamente svolgere anche una utile ed efficace azione
di autenticazione.


Le principali caratteristiche di tali dispositivi sono in definitiva:

1) un livello maggiore di sicurezza: è possibile distinguere i servizi richiesti dai vari pacchetti, quindi
compiere una discriminazione in base a questi;

2) una maggiore versatilità: la discriminazione sui servizi richiesti può avvenire congiuntamente all’analisi
dell’indirizzo di provenienza;

3) un aumento dei costi: a causa dell’aumento dei tempi di elaborazione su ogni singolo pacchetto si ha
una richiesta computazionale maggiore, e di conseguenza un aumento del costo del dispositivo necessario ad
identificarlo.




2.3.4 Vantaggi e svantaggi


L’installazione di un Gateway a livello applicativo appare quasi sempre molto vantaggiosa, in quanto mette a disposizione
dell’amministratore della rete il completo controllo su quel determinato servizio, in quanto l’applicazione proxy limita i set
di comandi, determina quali host interni possano essere raggiunti dal servizio, ed infine facilita la configurazione di
opportune regole di filtraggio rispetto allo scenario che si presenta nella configurazione funzionale di un firewall di tipo
packet-filtering. Con quest'ultimo, infatti, la maggiore complessità nella formulazione corretta delle precise regole potrebbe
prima o poi portare a degli errori o discrasie, che da un lato renderebbero più facile la vita ad un attaccante e dall'altro più
complessa e difficoltosa una produttiva navigazione degli utenti sulla rete esterna (Internet).

Esistono ovviamente anche nei proxy dei relativi svantaggi, e sono rappresentati da un canto dalla richiesta spesso maggiore
di disponibilità da parte dell’utente a compiere un numero di passi superiore per poter ad esempio instaurare una connessione,
e d'altro canto dalla possibile necessità dell’installazione su ciascun sistema client, di uno specifico software per accedere al
servizio reso dal proxy.

Oltre a questi svantaggi, che rivestono aspetti di natura prettamente soggettiva, ne esistono anche degli altri che fanno parte
di aspetti tecnicamente oggettivi: uno di questi, se vogliamo il più rilevante, è rappresentato dalla frammentazione IP. Il
problema, nello specifico, è innescato qualora il proxy venisse ad identificare frammenti iniziali minuscoli che non presentano
in teoria alcuna ragione di esistenza, inducendo ad una effettiva indecisione sulla corretta scelta da compiere. La soluzione
esiste, ma si dovrà prevedere che il filtro mantenga una parte del contesto, anche senza doverne portare a termine, per questo
scopo, il relativo re-assemblaggio.
:····Asus·: P6T WS Pro :····Intel·: i7 920-C0@3.9Ghz :····Scythe·: Mugen 2 rev.b :····G.Skill·: 3 x 2GB F3-12800CL7D-ECO :····Sapphire·: HD 4890 1GB :····Fujitsu·: 2 x MAY2036RC SAS (Raid-0) :····WD·: 2 x WD20EARS (Raid-1) :····Antec·: SG-850 :····Dama·: DELTA Server :····Hanns-G·: HH251 :····Microsoft·: Windows 7 Professional 64bit

Banner HW Legend
Advanced User
Messaggi: 251
Iscritto il: 17/11/2010, 1:03
Località: Palermo (PA) - ITA

Firewall: architettura e limiti

Post: #2  Messaggioda Totocellux » 13/12/2010, 3:31

2.4 L’architettura dei firewall


I firewall possono, dal punto di vista dell'architettura, esser costituiti da diverse varianti configurative a seconda del diverso
approccio concettuale che li contraddistingue:

1) Dual Homed Host

2) Bastion Host

3) Bastion Host e DMZ

4) Screened Subnet




2.4.1 Architettura Dual Homed Host


Nelle reti TCP/IP il termine Multi-Homed Host indica un host che abbia più di una scheda di rete, e dove ognuna di esse risulti
tipicamente collegata ad un segmento differente di rete. In caso di un Dual Homed Host, la configurazione del firewall
prevede quindi una macchina con due schede di rete, e dove la funzione di instradamento possa essere attivata o meno.
Nel caso in cui tale funzione venga disattivata, il Dual Homed Host effettua un vero e proprio isolamento tra i due segmenti
di rete, pur consentendo ad utenti situati sulle reti distinte di usufruire di una stessa applicazione, posta sullo stesso Dual
Homed Host; se tale applicazione dovesse consentirlo, le reti potrebbero anche condividere dei dati, e tutto ciò senza che
sussista un effettivo interscambio di pacchetti tra la rete interna e quella esterna.

Il Dual Homed Host è quindi principalmente usato per isolare una rete da un’altra a patto che venga disabilitata la funzione di
inoltro dei pacchetti tra le due. Per non compromettere il livello di sicurezza instaurato dall’uso del Dual Homed Host, non
deve essere permesso a nessun utente, indipendentemente alla rete (delle due) alla quale sia direttamente connesso, di
potersi direttamente loggare. Il punto di forza di questo tipo di firewall è la particolare caratteristica di negare tutti i servizi
che non siano esplicitamente permessi, in tal modo nessun servizio può passare, ad eccezione di quelli per i quali è prevista
l'esistenza del proxy.

Immagine
Figura 4: Configurazione della rete in presenza di Dual Homed Host.


Un esempio di possibile configurazione di un Dual Homed Host è quella di fornire servizi per Telnet ,FTP ed e-Mail
centralizzato, nel quale il firewall accetta tutta la posta proveniente dall'esterno della rete e successivamente la inoltra ai
sistemi interni. Un firewall di questo tipo è inoltre in grado di registrare una serie di informazioni quali gli accessi, i tentativi
di connessione e il anche quelli di sondare la rete, e renderli noti per dare avviso di possibili attività illecite.




2.4.2 Architettura Bastion Host (Screened Host)


La parola bastion indica fortezza e quindi con il termine firewall Bastion Host si identificano tutti quei firewall indispensabili
per la sicurezza della rete su cui lavorano. Data la loro importanza devono esser ben configurati e blindati per controllare gli
accessi diretti ad essi. Il Bastion Host effettua quindi la funzione di interfaccia tra la rete interna e quella esterna fungendo
da primo e unico contatto tra il dominio pubblico (esterno) e quello privato (interno).

Questo tipo di firewall, quindi, prevede un’architettura basata sull’uso di Screening Router e Screened Host (Bastion Host).
Il primo trova posto ideale tra la rete locale e Internet, essendo il proprio ruolo quello di bloccare tutto il traffico fra le due
reti in entrambe le direzioni, bloccando quindi tutti i tentativi di connessione diretta tra un host della rete locale e un host
della rete esterna. In questo modo tutti i router che vogliono comunicare con Internet devono prima stabilire una connessione
con il proxy Server eseguito sullo Screened Host. Questo, infatti, è l’unico host sulla rete Locale che può essere raggiunto da
Internet, e generalmente fa funzionare i programmi del proxy per i servizi consentiti.

Immagine
Figura 5: Configurazione della rete in presenza di un Bastion host



In questo modo un intrusore che voglia entrare nella rete privata dovrà prima escludere le regole di filtraggio dello Screening
Router e, successivamente, affrontare i controlli effettuati dal Bastion Host.
Quest'ultimo usa le funzioni del livello applicativo per comprendere se il pacchetto può essere inoltrato oppure no, eseguendo
a tal fine un ulteriore controllo sugli header dei pacchetti. Esiste in questo caso anche la possibilità di demandare il filtraggio
dei pacchetti al fornitore dei servizi Internet.




2.4.3 Architettura Bastion Host e DMZ


Non bisogna dimenticare che lo stesso firewall, quando risulta connesso direttamente alla rete esterna, rimane pur sempre a
rischio di possibili attacchi. Per risolvere tale problema si può usare una configurazione maggiormente articolata e basata
sull’uso di uno Screening Router e di un Dual Homed Host, con entrambe le interfacce di rete configurate e collegate a due
segmenti distinti e separati della propria rete. In questo modo si viene a creare una zona, detta demilitarizzata, esistente
tra il segmento di rete interno e quello esterno: tale zona, che in buona sostanza è circoscritta in quella dove sono posti i
server dedicati a rendere i servizi verso l'esterno della nostra rete (Http, Https, Pop3, Imap, Smtp etc.), viene a motivo di
ciò denominata più comunemente DMZ.

Immagine


In questo modo si ottiene un primo livello di protezione sulla rete al momento di filtrare i pacchetti provenienti dall’esterno,
e quindi nella fase successiva un ulteriore livello di filtraggio, finalizzato quindi a un ambito applicativo, e gestito in genere
attraverso l'utilizzo di server proxy ben specifici.

Immagine
Figura 6: Configurazione della rete in presenza di un Bastion host e DMZ


Il più grande vantaggio di questa configurazione è che, nell'eventualità le tavole di filtraggio dello screening router potessero
esser modificate a piacimento da un intrusore, il Bastion Host molto difficilmente potrà esser a sua volta bypassato, trovandosi
in serie al router, e quindi correttamente a monte, nella posizione ideale della rete da proteggere.

Immagine




2.4.4 Architettura Screened Subnet


Screened Subnet indica una sottorete schermata, in quanto un firewall di questa tipologia rappresenta una variazione del Dual
Homed Host e dello Screened Host. Una configurazione di questo tipo può essere utilizzata per localizzare ogni componente
del firewall su di un sistema separato fornendo, così, una maggiore flessibilità e un più elevato throughput.
Purtroppo questa flessibilità andrà a discapito della semplicità con la quale la rete e i sistemi separati dovranno essere
configurati. In alcune situazioni, infatti, è possibile creare delle sottoreti isolate (Screened Subnet) alle quali possano accedere
sia gli host della rete interna sia quelli della rete esterna: in questo modo solo gli host appartenenti ad entrambe le reti potranno
accedere a tali nuove sottoreti, in quanto non verrà ammesso verso di esse alcun flusso diretto dei pacchetti.

Immagine
Figura 7: Configurazione della rete in presenza di un Screened Subnet




2.5 Limiti dei firewall


I firewall pur essendo molto importanti per la sicurezza della rete che andranno a proteggere, possono divenire assolutamente
impotenti di fronte all'esistenza di alcune particolari tipologie di attacchi:

1) non possono proteggere dagli attacchi che non vi passano attraverso. Una situazione del genere,
seppur disdicevole, potrebbe ad esempio verificarsi qualora fosse permesso per errore anche ad un solo
utente di accedere senza le dovute restrizioni dall’interno della rete protetta verso l’esterno. Questa
eventualità potrebbe infatti accadere qualora un utente interno, anche al solo fine di evitare le
autenticazioni addizionali richieste dal firewall, potesse trovarsi realmente nella condizione di aggirarlo
bypassando il sistema di sicurezza, tramite l'opportunità di instaurare una connessione diretta ad Internet
nel modo più semplice possibile, cioè utilizzando una connessione PPP (Point to Point Protocol) o PPTP
(Point to Point Tunneling Protocol), attraverso una delle porte o protocolli erroneamente privi di restrizione.
Deve risultare chiaro che questa tipologia di collegamenti diretti ed incontrollati verso l'esterno, possono
creare le condizioni per bypassare la sicurezza ottenuta anche dal miglior firewall.
Per dare un'idea più concreta di questo tipo di scenario, pensiamo alla situazione che si venisse a creare
qualora un utente fosse in grado di installare, sul proprio pc collegato via Ethernet o Wi-Fi alla rete interna
della propria azienda, una delle oramai famose e divenute utilizzatissime chiavette di connessione in mobilità
(quelle, per intenderci, fornite dagli operatori di telefonia mobile): questo tipo di dispositivi devono essere
considerati, dal punto di vista della sicurezza, inermi e facilmente attaccabili né più né meno come lo erano
i vecchi modem Adsl di tipo Usb. E' bene esplicitare in maniera inequivocabile che tali dispositivi, utilizzati
nel cuore della struttura aziendale (o anche casalinga) vanificano completamente il lavoro del router-firewall
utilizzato sulla linea cablata Adsl e fanno dell'utente un bersaglio chiarissimo e facilmente attaccabile, alla
stessa stregua di un distratto turista che, preso dalla visione dalle vetrine dei negozi, non si rende conto
di essersi nel frattempo avviato all'interno del quartiere più malfamato e pericoloso della città.

2) non possono proteggere la rete interna dalle minacce rappresentate dalle talpe o dagli utenti che si
prestano, sebbene in modo del tutto inconsapevole, all'esecuzione di file o applicazioni sospette, in genere
identificabili e conosciute con i termini trojan horse e/o back door;

3) non hanno alcuna possibilità di proteggere contro gli attacchi rivolti essenzialmente ai dati: ciò
potrebbe accadere qualora dei dati apparentemente innocui fossero spediti o copiati su di un host interno
e in unsecondo tempo usati dall'esterno per lanciare un qualsiasi tipo di attacco: una macchina interna
utilizzata a questo scopo viene comunemente definita col termine zombie e generalmente usata per
ottenere una navigazione del tutto anonima (o meglio, a carico dell'utente dell'host zombiezzato), o peggio
ancora utilizzata per sferrare un DDOS su un sito bersaglio, unitamente ad altre centinaia o migliaia di
pc-zombie analoghi;

4) contrariamente a quanto è nell'immaginario e nella credenza comune, e a meno che non venga
utilizzato e appositamente integrato in una appliance di sicurezza finalizzata in maniera specifica anche
quale agente antivirale, i firewall non hanno alcuna possibilità di dare protezione contro il trasferimento
di uno o più files infetti da virus o malware in genere. In particolar modo i firewall non sono in grado di
salvaguardare la rete soprattutto dalla esecuzione al proprio interno di file conosciuti, come dicevamo al
punto 2, con il nome di trojan horse. Questo tipo di malware, contenente del codice maligno abilmente
celato, è in genere opportunamente congegnato per poterlo in seguito decomprimere e decrittare in un
eseguibile autonomo o in una serie di script da utilizzare anche all'interno delle strutture più protette.
Un trojian-horse o una back-door possono venire a trovarsi all'interno della rete (provenienti dall'esterno)
in quanto un firewall non è finalizzato alla scoperta (quindi alla ricostruzione) di file sospetti suddivisi e
contenuti nei pacchetti in transito, ma in modo esclusivo al filtraggio dei singoli pacchetti veicolati nelle
comunicazioni di rete; pertanto non è assolutamente in grado di ricostruire e scansionare in maniera
diretta i file scaricati da Internet, o comunque inviati dall'esterno della propria rete verso l'interno,
ovvero il segmento di rete oggetto della protezione.




2.6 Identificazione di un firewall


I creatori di firewall cercano in qualche modo di differenziare i propri prodotti da quelli di altre società; accade così, in
pratica, che ogni firewall presenta alcune caratteristiche inconfondibili, in altre parole è sufficiente qualche scansione
sulle porte, effettuare dello skywalking o portare a termine la cattura dei banner, per poterne ricavare con
precisione il tipo, la versione e anche le regole da esso applicate. Va da sé che per un attaccante la fase di identificazione
riveste davvero una importanza vitale in quanto consente, una volta circoscritto il firewall, di poterne esaminare i possibili
punti deboli, e soprattutto di
poterli sfruttare a proprio vantaggio.




2.6.1 Scansione diretta


Il modo più semplice ed immediato per trovare un firewall è la scansione di specifiche porte predefinite. Alcuni dei firewall
possono essere individuati in modo semplice e diretto tramite la scansione delle porte: è solo sufficiente sapere dove
cercare. In genere la chiave di volta è la ricerca delle porte utilizzate per la gestione da remoto (per questo è sempre
fondamentale ancorché altamente consigliabile disabilitarla): ovviamente questa indagine non andrà portata con il comando
ping, in quanto tutti i firewall dovrebbero non rispondere alle sue richieste ICMP di tipo echo. Il comando più appropriato
risulta essere in questo caso il tracert, in ambiente Microsoft, e il traceroute in quello Unix/Linux,
possibilmente utilizzando i pacchetti ICMP al posto di quelli UDP.

Con l'dentificazione di ogni singolo salto sul percorso dei pacchetti e l'azzardo di una qualche deduzione, il pirata riesce in
breve tempo ad individuare con un margine di errore decisamente ridotto l'indirizzo IP del firewall: è solitamente il salto
precedente prima del raggiungimento della destinazione. Questa considerazione è vera soprattutto se i router rispondono
maldestramente con pacchetti con TTL scaduto, in risposta sia a pacchetti ICMP che UDP. Spesso invece, quando ben
configurati, i router e i firewall non rispondono in alcun modo (droppando tali richieste) e in questo caso l'obiettivo
dell'attaccante diverrà l'indirizzo dell'ultimo passaggio indicato nella risposta al traceroute, cioè quello che, alla fine,
bloccherà la richiesta ICMP.




2.6.2 Cattura dei banner


La scansione delle porte, e un pò di fortuna, potrebbe aiutare il crasher/thief a localizzare un generico firewall (per
generico si intende uno non particolarmente gestito/protetto) in un tempo ragionevolmente breve. Dando invece per
scontato che il nostro sia invece ben difeso da questo tipo di indagine, e non abbia delle porte predefinite in ascolto, il
pirata non si arrenderà certo per così poco e passerà al metodo immediatamente successivo. Si presenterà al firewall
stesso e attenderà la sua risposta! Il principio è semplice: l'attaccante utilizzerà una delle porte pubbliche (di certo
protette dal firewall) quali a.e. la 25 (SMTP), la 23 (Telnet) o la 21 (FTP) e attenderà la sua risposta, che sarà negativa
ovviamente, ma pur sempre esplicita e con tanto di firma, più o meno evidente e chiarificatrice. Sembrerà strano, ma
ci si potrebbe anche stupire come buona parte dei firewall è congegnata in maniera così cortese che, usando nei
suoi confronti le buone maniere, darà anche agli estranei il proprio benvenuto, e si presenterà da sé arrivando anche
ad indicare la propria identità.




2.6.3 Tecniche avanzate di identificazione


Qualora dovesse accadere che, sia la scansione sia la cattura dei banner, non riuscissero a produrre dei risultati rilevanti,
l'attaccante avrebbe modo di passare alla seconda fase dell'enumerazione, questa volta tramite indagini ancora più
approfondite, sondando tutti i possibili obiettivi. Effettuando scansioni di porte in modo più selettivo e prendendo nota
dei percorsi affrontati, o meno, per giungere a destinazione, l'attaccante terrà a questo punto conto dello stato di ognuna
di esse, aperte, chiuse o bloccate che siano, cercando tramite queste informazioni anche di dedurne le relative ACL.
Andrà in questa successiva fase alla ricerca di un ben preciso messaggio ICMP di risposta: esattamente quello di tipo 3
(Destinazione non raggiungibile) e contenente il codice specifico 13 [Comunicazione inibita dall'amministratore (RFC1812)].

In alternativa il pirata potrebbe andare alla ricerca (tramite software all'uopo congegnati) di una delle porte dalla quale
ricevere, in risposta alla scansione, un pacchetto ben preciso: RST/ACK. In questo caso, infatti, arriverà alla
conclusione che le sonde inviate tramite la scansione abbiano o superato il firewall, e quindi l'host obiettivo dichiara di non
essere in ascolto su quella porta o, ancora meglio, sia stato il medesimo firewall a rispondere (con RST/ACK) sostituendosi
all'host obiettivo dopo averne contraffatto l'indirizzo IP nella risposta.




2.6.4 Identificazione delle porte


Alcuni firewall presentano una impronta unica che li contraddistingue da altri sistemi analoghi, e che si manifesta con una
serie ben precisa di numeri, ricevuti in risposta a.e. nel tentativo di collegarsi alla sua porta di gestione SNMP.




2.6.5 Scansione attraverso i firewall
:····Asus·: P6T WS Pro :····Intel·: i7 920-C0@3.9Ghz :····Scythe·: Mugen 2 rev.b :····G.Skill·: 3 x 2GB F3-12800CL7D-ECO :····Sapphire·: HD 4890 1GB :····Fujitsu·: 2 x MAY2036RC SAS (Raid-0) :····WD·: 2 x WD20EARS (Raid-1) :····Antec·: SG-850 :····Dama·: DELTA Server :····Hanns-G·: HH251 :····Microsoft·: Windows 7 Professional 64bit

Advanced User
Messaggi: 251
Iscritto il: 17/11/2010, 1:03
Località: Palermo (PA) - ITA

Firewall: cenni, analisi e filosofia

Post: #3  Messaggioda Totocellux » 25/01/2011, 23:03

(riservato per ulteriori ampliamenti)
:····Asus·: P6T WS Pro :····Intel·: i7 920-C0@3.9Ghz :····Scythe·: Mugen 2 rev.b :····G.Skill·: 3 x 2GB F3-12800CL7D-ECO :····Sapphire·: HD 4890 1GB :····Fujitsu·: 2 x MAY2036RC SAS (Raid-0) :····WD·: 2 x WD20EARS (Raid-1) :····Antec·: SG-850 :····Dama·: DELTA Server :····Hanns-G·: HH251 :····Microsoft·: Windows 7 Professional 64bit

Advanced User
Messaggi: 251
Iscritto il: 17/11/2010, 1:03
Località: Palermo (PA) - ITA

Re: Firewall: cenni, analisi e filosofia

Post: #4  Messaggioda Totocellux » 26/01/2011, 20:03

(riservato per ulteriori ampliamenti)
:····Asus·: P6T WS Pro :····Intel·: i7 920-C0@3.9Ghz :····Scythe·: Mugen 2 rev.b :····G.Skill·: 3 x 2GB F3-12800CL7D-ECO :····Sapphire·: HD 4890 1GB :····Fujitsu·: 2 x MAY2036RC SAS (Raid-0) :····WD·: 2 x WD20EARS (Raid-1) :····Antec·: SG-850 :····Dama·: DELTA Server :····Hanns-G·: HH251 :····Microsoft·: Windows 7 Professional 64bit

Advanced User
Messaggi: 251
Iscritto il: 17/11/2010, 1:03
Località: Palermo (PA) - ITA

Risorse e documentazione

Post: #5  Messaggioda Totocellux » 29/01/2011, 11:35

Principali firewall software



Freeware:


Comodo Firewall freeware: http://personalfirewall.comodo.com/free-download.html

Endian Firewall Community: http://www.endian.com/en/community/download/

Jetico Personal Firewall: http://www.jetico.com/firewall-jetico-p ... -firewall/

Online Armor Free: http://www.online-armor.com/products-on ... r-free.php

PrivateFirewall: http://www.privacyware.com/personal_firewall.html

R-Firewall: http://www.r-tt.com/downloads/rfw_en_10.exe

Sunbelt Personal Firewall (ex Kerio Personal Firewall): http://www.sunbeltsoftware.com/home-hom ... -firewall/

ZoneAlarm Free Firewall (by Check Point): http://www.zonealarm.com/security/en-us ... signup.htm




Commerciali:


Agnitum Outpost Firewall Pro: http://www.agnitum.com/products/outpost/

Check Point Firewall Software Blade: http://www.checkpoint.com/products/soft ... ewall.html

Kerio WinRoute Firewall: http://www.kerio.it/kwf_home.html





Tools per scoprire falle di sicurezza nella propria rete:


Nmap: http://insecure.org/nmap/

IPEye: http://www.ntsecurity.nu/toolbox/ipeye/

Tcpdump: http://www.microolap.com/products/netwo ... /download/

Metasploit Framework: http://www.metasploit.com/framework/download/

Netcat: http://sourceforge.net/project/showfile ... e_id=33715

SolarWinds TFTP Server: http://www.solarwinds.com/downloads/index.aspx

C# Tftp Client: http://sourceforge.net/projects/ctftpcl ... p/download

FU Rootkit: http://www.rootkit.com/vault/fuzen_op/FU_Rootkit.zip





Documentazione on-line:


SecurityFocus: http://www.securityfocus.com/

NTBugtraq: http://www.ntbugtraq.com/

SANS: http://www.sans.org/

Insecure.org: http://www.insecure.org/

Packet Storm Security: http://packetstormsecurity.org/

SlashDot: http://slashdot.org/

RFC Faq: http://www.faqs.org/rfcs/fyi/fyi36.html

definizioni di termini riguardanti la sicurezza: http://www.ol-service.com/sikurezza/mis ... hacker.htm.
:····Asus·: P6T WS Pro :····Intel·: i7 920-C0@3.9Ghz :····Scythe·: Mugen 2 rev.b :····G.Skill·: 3 x 2GB F3-12800CL7D-ECO :····Sapphire·: HD 4890 1GB :····Fujitsu·: 2 x MAY2036RC SAS (Raid-0) :····WD·: 2 x WD20EARS (Raid-1) :····Antec·: SG-850 :····Dama·: DELTA Server :····Hanns-G·: HH251 :····Microsoft·: Windows 7 Professional 64bit

Torna a Guide

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite

  • Siti Correlati
  • hwtwitterHW Legend ShackHW Legend blog HW Legend TVTechHW Legend OCTechHW Legend NewsPaperManguste Esports