Nonostante la parola “hacker” sia utilizzata normalmente come sinonimo di pirata informatico, va
precisato che in realtà per “hacker” si intende chiunque si destreggi tra le tecnologie informatiche senza
un fine necessariamente negativo. I media quindi spesso confondono il termine con “cracker” che
invece è il vero pericolo, ovvero colui che si introduce nei sistemi informatici altrui senza permesso.
Tra questi si distinguono coloro che agiscono per puro divertimento, dai criminali informatici
professionisti veri e propri. In generale chi sferra un attacco informatico può essere semplicemente
chiamato “attacker”.
Le tipologie di intrusi si differenziano in base ad alcune caratteristiche, che sono da tenere a mente
quando ci si occupa della difesa della rete:
• il curioso: ha il solo scopo di “sniffare” i dati e il sistema;
• il malizioso: ha l’obiettivo di bloccare il sistema o modificare pagine web per creare danni e far
perdere tempo e denaro a chi si occupa di ripristinare il malefatto;
• l’intruso di alto profilo: lo scopo è quello di rendere popolari le proprie abilità;
• il concorrente: in questo caso l’intruso mira a spiare i dati per poterne beneficiare in termini
concorrenziali;
• lo sfruttatore: lo scopo è quello di sfruttare le risorse del sistema per le proprie attività (chat,siti
porno,server dns, ecc…).
• il giocatore di cavallina: il fine è quello di sfruttare il sistema come base per sferrare un attacco
ad altri sistemi.
Per questi motivi lo studio e lo sviluppo di tecniche avanzate di rilevamento delle intrusioni nelle reti di
calcolatori è attualmente un tema di ricerca molto attivo. Al giorno d'oggi per rilevare attacchi intrusivi
su sistemi informatici esistono strumenti software (gli IDS, Intrusion Detection Systems), che eseguono
un'analisi del traffico di rete o degli archivi delle connessioni sulla base di regole definite a priori da un
esperto di sicurezza, in forza della propria conoscenza riguardo le modalità di esecuzione dei vari
attacchi. Tuttavia gli attuali IDS mostrano i propri limiti nel rilevare tipologie di attacco non note,
poiché, per la sempre crescente complessità dei sistemi di rete, tali conoscenze risultano essere
incomplete, imprecise e comunque limitate.
In questo documento sarà discusso innanzitutto il problema della sicurezza dell’informazione. Si
analizzeranno poi le caratteristiche dei sistemi di Intrusion Detection (rilevamento di intrusione), basati
5
sulla rilevazione di anomalie nel traffico di una rete informatica, e di Intrusion Prevention (prevenzione
delle intrusioni), dedicati alla prevenzione di possibili intrusioni.
A partire da questa analisi verrà introdotto un particolare tipo di IDS: SNORT. Verranno analizzate in
maniera, per quanto possibile automatica, le regole che questo sistema utilizza per il rilevamento delle
intrusioni. Verranno infine mostrate tutte le problematiche connesse all’utilizzo di SNORT e si
cercherà di dar loro una soluzione.
6
2 SITUAZIONE ATTUALE FIREWALL, IDS-IPS E SNORT
2.1 IDENTIFICAZIONE E DIFESA CONTRO GLI ATTACCHI
La sicurezza informatica è argomento assai vasto e complesso che comprende svariati problemi. Un
attacco ad un sistema informatico può avvenire in diversi modi ed anche le azioni per la difesa dei
sistemi informatici dagli attacchi assumono svariate forme. Si riporta qua una piccola classificazione
dei tipi di attacco ed intrusione ai sistemi informatici e le varie tecniche utilizzate per la salvaguardia
degli stessi. Questa breve nota servirà ad introdurre gli IDS ed a capire il loro fondamentale compito.
Secondo la classificazione fatta da Anderson [1] agli albori del problema sicurezza e poi ripresa da
Axelsson nelle sue ricerche sugli IDS [2] [3] si possono identificare quattro classi di possibili attacchi,
a seconda della loro provenienza (vengono lasciati i nomi in inglese per una maggiore chiarezza):
1. External Penetrator: colui che accede fisicamente a computer a cui non dovrebbe avere accesso
2. Masquerader: colui che riesce ad accedere ad un sistema autentificandosi come utente
autorizzato
3. Misfeasor: colui che, pur avendo diritto di accedere a risorse protette, abusa dei suoi privilegi
attaccando la sicurezza del sistema
4. Clandestine user: colui che riesce ad accedere al sistema autenticandosi come amministratore
del sistema.
Un modo alternativo per classificare un attacco informatico è in base a quale requisito della sicurezza
del sistema viene a mancare come effetto dell'attacco. I principali sono tre:
1. Confidentiality: si vuole impedire ad estranei di accedere a propri dati privati, cioè si vuole
tutelare la segretezza delle informazioni
2. Integrity: si vuole impedire ad estranei di modificare dati privati, cioè si vuole salvaguardare
l'integrità delle informazioni
3. Availability: si vuole impedire a chiunque la possibilità di rendere inaccessibile il sistema, cioè
si vuole tutelare l'efficienza del sistema
7
Le due classificazioni non sono in contrasto ma si vedrà che nel caso degli IDS verrà utilizzata per lo
più la prima, in particolare si tratterà il caso di attacco da parte di un Masquerader.
Esistono svariati metodi per proteggere un sistema o una rete di computer dagli attacchi.
Storicamente sono stati individuati tre classi di protezione:
1. Prevention: attuare tutti quei meccanismi di controllo che permettano di migliorare le difese
dagli attacchi: utilizzare software testato e correggere eventulali bug conosciuti, utilizzare
metodi di autenticazione che facciano uso della crittografia.
2. Detection: cercare di individuare eventuali intromissioni illecite all'interno del sistema. Questo
punto è l'argomento centrale di questo testo e verrà chiarito meglio nei prossimi capitoli.
3. Reaction: dopo aver subito un attacco attuare tutte quelle misure che portino ad evitare un
nuovo attacco (sia al sistema colpito che ad altri ancora integri): operazioni di polizia, fissaggio
di eventuali bug sfruttati.
A queste tre classi che corrispondono all'incirca al prima, durante e dopo l'attacco se ne possono
aggiungere altre, comunque poco interessanti ai fini dell'argomento trattato.
2.2 FIREWALL
I firewall sono dei dispositivi hardware o software atti al filtraggio, controllo, modifica e monitoraggio
dei pacchetti in transito sulla rete con lo scopo di evitare accessi non autorizzati.
Questi dispositivi tengono traccia dei pacchetti che transitano sulla rete e del loro flusso, e decidono
cosa rifiutare, ignorare e accettare, eventualmente registrando sui log di sistema.
Il firewall inoltre può collegare due o più segmenti di rete. In genere si tratta di due reti: una detta
interna che è costituita da un certo numero di computer locali e una detta esterna costituita da internet.
Spesso il firewall è un componente hardware con due o più schede di rete sul quale gira un ambiente
operativo che effettua il packet filtering.
8
2.2.1 LE SECURITY POLICY
Il firewall viene configurato tramite le cosiddette security policy che sono delle regole impostate
dall’amministratore di sistema, le quali consentono di garantire il livello di sicurezza scelto
dall’amministratore stesso. In genere vengono modellate a seconda della struttura della rete che devono
proteggere e sulle attività svolte in essa e devono riuscire a garantire un livello minimo di riservatezza,
disponibilità e integrità. L’idea è quella di lasciare aperti solo i servizi indispensabili all’attività
dell’azienda. I dati che soddisfano le security policy vengono fatti passare mentre gli altri vengono
rifiutati in ambo le direzioni. Per creare una policy si deve:
1. determinare i servizi necessari
2. determinare gli utenti a cui si vuole garantirli
3. determinare a quali servizi gli utenti possono accedere
4. per ciascun gruppo di utenti decidere come si potrebbe rendere sicuro il servizio
5. scrivere una regola che renda tutte le altre forme di accesso una violazione
Esistono due politiche di base:
Default Deny Stance: prevede che venga rifiutato tutto ciò che non è permesso
esplicitamente
Default Acceptance Stance: viene permesso tutto ciò che non è espressamente negato.
La prima politica è complessa da realizzare anche se molto efficace, perché è difficile tener presente
tutto ciò di cui ha bisogno la rete, mentre la seconda è meno efficace ma più semplice.
Quando si progetta un firewall bisogna stabilire la tipologia di accesso (abilitazione o meno) degli
utenti verso i server della rete e i protocolli che possono essere utilizzati. Inoltre è necessario
controllare l’accesso al sito web se presente (ad esempio stabilire se è necessario l’acceso tramite
sessioni telnet). Come ultimo passo bisogna escludere la possibilità di accesso di eventuali crackers.
9
2.2.2 TIPOLOGIE DI FIREWALL
Tra le varie tipologie di firewall la prima distinzione va fatta rispetto al livello di ispezione del firewall
e qui troviamo:
• Firewall stateless (Packet Filter). I firewall di questo tipo sono in grado di filtrare il traffico
fino al terzo livello (rete) controllando selettivamente la comunicazione tra due peer, o tra
internet e la rete interna e viceversa, analizzando i pacchetti in transito e instradandoli solo se
rispettano alcuni parametri.
• Firewall statefull (Statefull Inspection). Questi tipi di firewall sono in grado, grazie alla facoltà
di riconoscere connessioni, trasmissioni e protocolli, di consultare dei parametri ulteriori per
decidere se inoltrare o meno il pacchetto.
2.2.3 LIMITI DEL FIREWALL
È noto che una gran parte di attacchi informatici proviene dall’interno della rete (insiders attack). Su
questi il firewall non può nulla perché non può visionare connessioni che non passano attraverso di
esso. Quindi il firewall può garantire solamente una sicurezza “perimetrale”.
In particolare non può:
• garantire l’integrità dei dati
• garantire protezione contro ogni tipo di attacco
• autenticare le fonti
È necessario occuparsi anche di politiche di hardening degli host e dei server. Infatti molti strumenti di
attacco potrebbero essere utilizzati dai dipendenti per cercare di aggirare le ACL. Per garantire questo
tipo di sicurezza è necessaria una corretta configurazione degli ambienti di lavoro condivisi, delle
workstation personali e delle policy aziendali.
10
2.3 IDS (INTRUSION DETECTION SYSTEM)
Sono una parte molto importante dell’architettura di sicurezza di rete. Un sistema IDS, noto anche
come guardiano di notte, ha la funzione di scovare le intrusioni nel sistema, ovvero individuare e
segnalare all’amministratore di sistema la presenza di violazioni del sistema una volta riconosciuto un
pattern di attacco noto. Contrariamente a quanto avviene per gli allarmi fisici utilizzati nelle abitazioni
gli IDS devono distinguere accessi ed operazioni consentiti da altri probabilmente fraudolenti. E questo
è il punto caldo contro cui si devono scontrare i costruttori di IDS, perchè spesso gli attacchi
avvengono da parte di Masquerader e quindi sono mascherati da azioni permesse.
Inoltre un IDS ha la possibilità di rilevare i servizi offerti dal server. Queste sono le funzioni di base,
ma è noto che alcuni IDS possono anche reagire agli attacchi, diventando trasparenti nella rete e
lanciando essi stessi dei contro attacchi.
Un IDS perfetto sarebbe quello che riesce ad individuare tutte e sole le intrusioni, ma purtroppo l'IDS
perfetto non c'è e non potrà mai essere costruito [4].
I dispositivi su cui girano gli IDS vengono detti sensori.
Col passare del tempo si sono create due tipi di applicazioni:
• IDS basati su regole
• sistemi autonomi
I primi confrontano il traffico della rete o le azioni degli utenti con le firme degli attacchi più frequenti
nel database di signatures. Una volta effettuato il riscontro e individuata la tipologia di attacco l’IDS
segue la procedura impostata dall’amministratore di sistema in quel particolare caso.
Da notare che il database di firme deve essere costantemente aggiornato per far fronte anche agli
attacchi più recenti.
I secondi riguardano sistemi intelligenti, di autoapprendimento. Il programma viene addestrato a
riconoscere eventuali anomalie.
Questa trattazione considererà solo gli IDS basati su regole. Essi possono essere suddivisi in:
• IDS proattivi
• IDS reattivi
11
I primi monitorano continuamente la rete o il sistema allo scopo di individuare delle falle di sicurezza e
quindi agiscono secondo azioni ben decise preimpostate prima che l’attacco sia stato lanciato.
I secondi sono meno evoluti in quanto non preventivi e si occupano solamente di registrare l’intrusione
e allertare l’amministratore di sistema.
Verrebbe scontato chiedersi la differenza tra IDS e firewall: ebbene i sistemi di ID non hanno lo scopo
di bloccare il traffico di passaggio, ma quello di rivelare le intrusioni al sistema.
L’IDS deve essere configurato al meglio perché possa agire nel migliore dei modi, in particolare deve
conoscere: il o i sistemi operativi, l’attuale versione, le eventuali patch o service pack installati e lo
stack di rete.
2.3.1 L’ARCHITETTURA GENERALE
Gli IDS sono molto diversi tra loro ma si riesce comunque ad evidenziare una struttura comune a molti
di essi. In Figura 1 è rappresentata l'architettura base di un IDS, è importante notare come possano
esistere IDS senza alcuni elementi della figura e sopratutto ogni IDS ha particolarità strutturali che qua
non possono essere riportate.
Figura 1 - Architettura di base di un IDS
12