INTRODUZIONE AGLI IDS

Print Friendly
INTRODUZIONE AGLI IDS

written by: D. Besana, M. Matricardi, D. Muscetta

In molte corporate il problema della sicurezza è una questione critica. Gli esperti reali sono veramente pochi mentre i problemi che devono essere risolti sono sempre tanti e gravi ed il tempo a disposizione è sempre poco. Tra gli strumenti a disposizione degli amministratori dei sistemi si stanno affermando gli IDS (Intrusion Detection System). Ovvero dei sistemi in grado di rilevare e segnalare dei tentativi di intrusione ed eventualmente gestirne le contromisure necessarie. In questo articolo vogliamo presentare quelle che sono le strategie con cui un IDS lavora, quali sono le linee guida mediante il quale individuare attività sospette sulla rete e cercare di capire quali di queste tecniche sono più efficaci di altre e perché. Approfondiremo poi le caratteristiche di due prodotti tra i più diffusi: SNORT proveniente dal mondo open-source e Dragon prodotto da Enterasys Networks.


INTRO

Proteggere i propri sistemi è una guerra.

I nemici non mancano: virus, script kiddie, hacker amatoriali e professionisti sono i principali contendenti.

Le tattiche di difesa neppure: il primo passo è installare un punto di controllo alla frontiera della propria rete, esattamente come una porta blindata protegge una casa dall’ingresso di persone indesiderate.

Nelle reti, questo punto di controllo è il Firewall, il cui unico compito è filtrare tutto il traffico di una rete e lasciar passare o bloccare i pacchetti secondo dei parametri (policy) prestabiliti ad esempio porte e/o indirizzi IP.

I prodotti più evoluti possono verificare la semantica di un protocollo analizzando per esempio che il traffico che sta passando a livello applicativo (7) sia effettivamente quello che vogliamo associato a quella porta 80 GET/POST, HEAD di HTTP.

Tutti sappiamo che le porte blindate sono un buon deterrente, ma che i furti non sono mai terminati. Quindi si è passati all’installazione degli antifurti per abitazioni. Ce ne sono di tanti tipi: volumetrici, a sensori su porte e finestre, con i raggi laser ecc.

Gli antifurti sono sistemi di controllo delle intrusioni. In una rete questo controllo è compito degli IDS, appunto gli Intrusion Detection System: controllare che il traffico lasciato passare dai punti di controllo non sia traffico indesiderato.

Un altro paragone, per certi versi più azzeccato, è la procedura di imbarco in un aeroporto: al check-in ci pesano la valigia e ci dicono se possiamo imbarcarla a mano (firewall) mentre all’imbarco il nostro bagaglio viene passato ai raggi X alla ricerca di armi o altri oggetti pericolosi (IDS).

Un IDS è un sistema complesso ed ostico. Perché funzioni al meglio e svolga in suo compito in maniera ottimale occorre un’attenta osservazione di tutto quello che accade normalmente sulla rete in esame al fine di stabilirne la posizione e la politica di funzionamento.

Ora che abbiamo inquadrato cosa fa un IDS all’interno di una strategia di difesa, vediamo come lo fa.

TIPOLOGIE DI IDS: NIDS e HIDS

Rilevare le intrusioni è una sfida che va combattuta con tutte le armi a disposizione. Lo scopo è rilevare tutti gli eventi strani che possono essere potenzialmente pericolosi. Per raggiungere questo obiettivo si percorrono due strade: è possibile analizzare il traffico di rete, potenziale veicolo di attacco oppure mantenere monitorate le macchine.

Da questa semplice distinzione sono nate due grandi famiglie di IDS: i Network IDS e gli Host IDS.

NIDS

I NIDS funzionano analizzando tutto il traffico che passa sulla rete alla ricerca di anomalie.

Esistono diverse tecnologie di controllo del traffico, che vedremo più avanti, ma sono tutte caratterizzate dalla possibilità da parte dello strumento NIDS di “sniffare” l’intera comunicazione sulla rete: da qui viene anche chiamato Network Sensor.

I NIDS sono ritenuti il modo più efficacie per fare Intrusion Detection, perché evitano di installare agenti software sui server (usati dagli HIDS) restando di fatto un componente della rete, peraltro non critico poiché anche in caso di fault non provoca un disservizio.

Un grosso limite dei NIDS sono i protocolli cifrati. Queste soluzioni si sono diffuse con laumentare dellattenzione della comunità verso la crittografia: scienza che si occupa di garantire sicurezza durante i trasferimenti di informazioni.

Laggiunta di uno strato di crittografia, nella comunicazione in rete riduce drasticamente lanalisi che può fare un NIDS. In questi casi un sensore di rete può generare un evento quando viene iniziata una sessione crittografata, e comunicare la versione del protocollo utilizzato, ma non è in grado di darci informazioni su chi si sia autenticato e su cosa stia facendo né tanto meno effettuare controlli sul contenuto del traffico..

E’ chiaro dunque che basare l’Intrusion Detectioning su NIDS non è più sufficiente, occorre vedere cosa è un HIDS.

HIDS

Un HIDS è un agente software che tiene monitorato il sistema su cui è installato.

Per ottenere un simile risultato si possono analizzare:

  • i file di log
  • l’integrità dei file
  • lo stato del sistema alla ricerca di segnali di anomalie per esempio utilizzo di memoria e disco
  • le porte in stato di LISTEN sul sistema

I controlli sono sempre più sofisticati e approfonditi.

Ma gli HIDS non sono la panacea dell’Intrusion Detection.

Un HIDS ha una visuale molto ristretta: l’host su cui è installato e funzionante. Non capirà mai se è in corso un port scan su tutti i server della rete, e non potrà mai essere installato su tutti gli elementi della rete (pensate ad un router).

D’altro canto, potrà avere una visione A FONDO di ciò che succede su quel sistema: il server sensor nel caso di ISS RealSecure porta con sé funzioni di “personal firewall” che e’ in grado di droppare i pacchetti pericolosi PRIMA di passarli eventualmente all’applicazione (effettivamente bloccando attacchi di cui e’ a conoscenza e per cui magari una patch non e’ ancora stata installata).

L’origine degli Host IDS e’ nei prodotti di pura e semplice Log Analisys, e ci sono ancora vendor che propongono soluzioni “Host Only”, e che vanno MOLTO a fondo nell’analisi di cio’ che avviene su un sistema (controllando i logs e i “tenendo d’occhio” i files), e magari correlando queste informazioni con gli alert di un NIDS di un’altro vendor, o con i log del firewall di un’altro vendor ancora.

Qui entriamo però nel campo dei cosidetti SIMS: “Security Information Management Systems”, campo in cui giocano NetForensics, NetIQ, e altri, ma che esulano un po’ dalla nostra trattazione degli IDS “puri e semplici”…

Inoltre (relativamente ad i rischi di un HIDS): possiamo fidarci di un software che lavora su un elemento che potrebbe essere potenzialmente compromesso? Come sempre, la soluzione sta nell’integrazione di NIDS e HIDS in un’architettura IDS distribuita e gestita centralmente.

Questo tipo di IDS integrati (Host/Network) viene anche definito ibrido.

REAGIRE AGLI ATTACCHI INLINE

Con il passare del tempo sono state introdotte negli IDS delle “parti attive”, cioè dei meccanismi di reazione ad un attacco rilevato. La reazione può avvenire in vari modi: tramite un reset delle connessioni ritenute pericolose (reset TCP o “destination unrechable” UDP) oppure mediante un’integrazione tra IDS e firewall, che si concretizza con una modifica delle policy del firewall in accordo con quanto ritenuto pericoloso dall’IDS.

Sebbene queste tecniche di reazione all’attacco siano molto richieste e fornite da tutti i prodotti, si tratta di un’estensione del concetto di IDS attualmente poco usata per i seguenti motivi:

- pone la rete a rischio di DoS (Denial of Service): per esempio cosa succede se l’attaccante usa un IP che non è realmente il suo ?

- richiede una totale fiducia verso la capacità di rilevazione dell’IDS: cosa accadrebbe se un falso positivo blocca connessioni lecite?

In sostanza, un IDS è uno strumento di rilevazione con delle aggiunte di reazione, non va inteso come uno strumento che blocca dei tentativi di intrusione o degli accessi non autorizzati.

INTRUSION PREVENTION

Una nuova frontiera del mercato degli IDS è il concetto di Intrusion PREVENTION.

Fondamentalmente un sistema di Intrusion Prevention non e’ altro che un NIDS messo INLINE (come bridge o come router) che fornisce le caratteristiche di blocco proattivo del traffico ritenuto pericoloso come menzionato prima.

In questo caso non si parla di Intrusion Detection ma di Intrusion Prevention, con tutti gli svantaggi esposti per i sistemi INLINE.

Se con un IDS possiamo generare allarmi in tutta tranquillità, sia per traffico inequivocabilmente malevolo che per traffico incerto, un sistema INLINE deve bloccare le connessioni se esse sono certamente indesiderate.

Tuttavia l’Intrusion Prevention non è da considerare come una frontiera negativa, ma è importante capire che è una tecnologia profondamente diversa dall’ Intrusion Detection.

La filosofia dell’Intrusion Prevention si può riassumere con la frase:

“se sappiamo che è sicuramente un attacco, perché non fermarlo?”

La filosofia dell’Intrusion Detection è esposta meglio con la frase:

“se c’è qualcosa di strano lo voglio sapere”

I produttori di firewall si stanno muovendo rapidamente per inserire nei loro prodotti delle funzionalità di Intrusion Prevention: la stessa Checkpoint, leader di mercato, da oltre un anno spinge il suo SmartDefense che è una parte integrata in FW-1.

Dato che un Intrusion Prevention blocca attacchi conosciuti, e riconosciuti in modo inequivocabile, credo che possa aggiungere poco alla security di un’azienda dove i sistemi sono tenuti costantemente aggiornati.

Dove invece può effettivamente aiutare è nelle piccole realtà, dove non è presente del personale che si occupa di security o che comunque ha conoscenze in materia.

Solo il tempo e le forze di marketing ci potranno dire come si evolveranno questi prodotti…

MANTENERE UN IDS: FALSI POSITIVI E FALSI NEGATIVI

L’IDS è uno strumento di monitoring che va continuamente aggiornato e tenuto sotto controllo perché lavori in maniera efficiente.

L’efficacia di un IDS è nulla senza un costante controllo e un accurato tuning del sistema di rilevazione in relazione alla tipologia ed alla mole di traffico presente sulla rete.

E’ importante capire anche cosa rileva un IDS, poiché a differenza di quanto suggerito dall’acronimo non rileva solo le intrusioni.

Grazie alla sua capacità di analizzare tutto il traffico permette di rilevare:

  • attacchi
  • tentativi non riusciti
  • scansioni
  • pacchetti malformed
  • accessi ritenuti sensibili (root, administrator)

Qualunque tecnologia di rilevamento utilizzi l’IDS, ci si scontrerà sempre con il problema dell’affidabilità di funzionamento nella parte di rilevazione eventi.

In particolare il problema che all’inizio può apparire banale ma che in realtà è comune quando si parla di analisi del traffico, è distinguere le reali anomalie della rete dagli errori di rilevazione dovuti ad una errata configurazione dello strumento. Sbagliare la regolazione dello strumento è molto facile. Ad esempio facendo una configurazione molto rigida ci si trova di fronte ad una mole di segnalazioni che rendono inutile e difficile l’analisi del traffico. Al contrario non ponendo nessuna restrizione sembra che la rete funzioni in maniera ottimale quando, in realtà non è così.

Nella letteratura questi eventi si chiamano: falsi positivi e falsi negativi. I falsi positivi si verificano quando viene rilevata un’intrusione che in realtà non è tale mentre i falsi negativi accadono quando non viene rilevata un’intrusione che invece c’è stata.

Una particolare categoria di eventi vengono comunemente chiamati “rumore” (in inglese noise). Per spiegarla ci serviamo di un esempio:

Ammettiamo di avere un web server che fa uso di Microsoft Internet Information Server. Nel momento in cui il nostro IDS rileva un’exploit per la “chunked encoding vulnerability” di Apache, questo non è un falso positivo, in quanto l’attacco c’è stato, ed è probabilmente reale. Tuttavia, dal momento che noi non “soffriamo” di quella vulnerabilità, questo evento è per noi non rilevante.

Questo tipo di informazione va sotto il nome di “rumore di fondo” di un IDS.

La fase di messa a punto di un IDS è molto ampia e complessa e viene di solito attuata in accordo con le politiche di sicurezza adottate dalla corporate/azienda.

FASE DI PROGETTAZIONE: DOVE POSIZIONARE UN nIDS

Quando si valuta l’introduzione nella rete di uno strumento di monitoring come un NIDS è fondamentale capire quale sarà il punto migliore in cui collocarlo.

Un IDS di tipo offline lavora in modo passivo, “sniffando” da un’interfaccia promiscua il traffico e analizzandolo.

Per stabilire il punto migliore vanno fatte due importanti considerazioni:

ormai le reti aziendali fanno largo uso di switch, che a differenza degli hub non replicano il traffico su tutte le porte ma lo inoltrano solo su quella dove è presente il mac-address a cui il pacchetto è destinato.

Si sono diffuse le VLAN, reti virtuali che permettono la separazione a L2 del traffico

In situazioni di questo tipo per permettere ad un nIDS di analizzare il traffico occorre “fornirgli” una copia del traffico.

Un NIDS analizza il traffico che riesce a vedere e che noi gli permettiamo di vedere.

Si può scegliere se posizionare un IDS prima o dopo i firewall aziendali.

Le linee guida da seguire sono:

  • l’IDS deve vedere tutto il flusso di dati di una connessione. Situazioni di routing asimmetrico (es. più link internet) rischiano di rendere il funzionamento dell’IDS inutile!
  • Gli IDS analizzano bene un link 100 mbit, i più prestanti raggiungono a fatica il Gbit. Se avete davvero tanto traffico prima di considerare l’acquisto di un super-IDS valutate la possibilità di analizzare meno traffico: quello più importante.
  • Posizionate l’IDS in un punto dove può vedere traffico non solo da internet ma anche tra reti interne
  • Se mettete un IDS dietro firewall, esso potrà analizzare solo quanto consentito dalle policy, perdendosi tutti gli attacchi verso il firewall stesso

TECNICHE DI RILEVAZIONE DELLE INTRUSIONI

Tutti i gli IDS che possiamo trovare in giro per la rete utilizzano tre tecniche principali: pattern matching, protocol decoding, anomaly detection [1].

Tutti gli IDS prodotti basano la loro efficacia su una o più combinazioni di queste metodologie di rilevazione.

Ognuna di queste metodologie presenta significativi vantaggi e degli svantaggi poiché i vantaggi di una tecnica sono al tempo stesso i punti deboli di un’altra.

Da segnalare una cosa, a nostro avviso molto curiosa, il core di tutti gli IDS in commercio viene progettato per implementare al meglio una soltanto di queste tecniche a causa dei problemi computazionali al quale vanno in contro gli algoritmi di confronto ed analisi.

I cores di Dragon e Snort utilizzano per lo più sofisticati algoritmi di pattern matching per rilevare anomalie.

Altri prodotti, come ad esempio ISS RealSecure, si vantano di non fare “semplice” pattern matching, ma di decodificare i protocolli alla ricerca di anomalie (anomaly detection), così da minimizzare i falsi positivi.

Ovviamente ogni soluzione software utilizza oramai entrambe le tecniche, il percentuali diverse (Snort e Dragon sono nati come pattern matching “puri”, ma ora implementano anche un poco di protocol analysis).

Pattern Matching

Questa è la tecnica basata sulla ricerca di signature all’interno dei pacchetti che transitano sulla ns rete. Una situazione classica è quella di ricercare una particolare stringa che appare sempre in uno specifico Trojan come “Hacked by pl4gu3z” oppure specifici shellcode noti.

Ha come vantaggio una grande affidabilità e una indubbia velocità; di contro, basta variare 1 bit nel pacchetto perché la signature non venga rilevata.

Inoltre è un tipo di rilevamento buono solo per gli attacchi già noti, per i quali esiste appunto una signature. Altri tipi di attività non possono essere rilevati così facilmente.

Anomaly Detection

Questa tecnica ha due sottocategorie: rilevamento di anomalie nel flusso di traffico o nel protocollo.

Protocollo

Questa implementazione non decodifica il protocollo ma analizza tutti i campi dei pacchetti in cerca di anomalie nella loro struttura.

Per capire meglio questa tecnica facciamo l’esempio di un attacco in cui si cerca di compromettere il protocollo SSL durante la negoziazione della sessione.

In questa fase le regole del protocollo prevedono che il campo Key Argument abbia una lunghezza predefinita mentre in alcuni casi se un’attaccante compone un pacchetto specificando una chiave di dimensioni diverse il sistema IDS è in grado di rilevare l’anomalia.

Flusso di traffico

Cerca anomalie analizzando il traffico sulla rete.

Un esempio può essere un port scan, oppure un FTP server che inizia ad effettuare connessioni TELNET verso l’esterno, o ancora un numero esagerato di connessioni che possono essere fonte di sospetti.

Questa tecnica permette generalmente di rilevare una anomalia successiva ad un tentativo di intrusione andato a buon fine, ma fatica a rilevare i tipi di attacchi che vengono evidenziati con le altre tecniche.

Protocol Decoding

Questa tecnica rappresenta un po’ un cross tra le due precedenti tecniche. Si basa principalmente sul fatto che i pacchetti inviati siano RFC compliant e ricerca in maniera mirata anomalie dovute a campi incompleti e riempiti con valori pseudo-casuali.

Il problema più grosso di questa metodologia è che molte applicazioni non implementano in maniera rigorosa le specifiche RFC vanificando di fatto l’utilizzo di questa tecnica.

SNORT

Snort [5] è un prodotto che viene distribuito secondo la licenza GPL open-source. E’ stato creato da Marty Roesch.

Nonostante venga descritto come un IDS “leggero”, le sue prestazioni sono più che buone per permetterne l’uso in grandi reti aziendali. E’ di fatto l’IDS più usato al mondo (si veda: “This little pig guards the market” [7] ).

Il primo impatto con uno strumento di questo tipo devo ammettere che non è il proprio massimo a causa della documentazione. Per lo più si tratta di articoli scritti da sviluppatori ed esperti di sicurezza ed il manuale utente offre solo una visione sommaria delle potenzialità dell’applicazione. Snort soffre di carenza di documentazione organizzata in modo organico quindi è necessario spendere del tempo per pianificare le attività da svolgere.

Se la documentazione in generale non è il massimo il sito ufficiale del prodotto contiene dei links da dove poter di scaricare molte regole di esempio pronte per l’uso e di file di configurazione che gli utenti hanno messo a disposizione.

La sua architettura è strutturata su tre moduli principali:

  • Packet decoder
  • Detection engine
  • Logging Alert system

Vedremo poi un componente aggiuntivo molto usato: Acid

L’intera configurazione dell’applicazione viene gestita con dei file di testo ben commentati.

Packet decoder

Questo modulo dell’applicazione si occupa di catturare tutti i pacchetti che passano nella rete e decodificarli per passarli alla detection engine.
Tutto questo strato architetturale è completamente basato sulle Berkley Packet Filter. Il quale consente l’accesso al livello data link della rete.

Detection engine

La detection engine è il modulo del sistema svolge il vero lavoro dell’IDS. Analizza tutto il traffico applicando delle regole di detection utilizzando un algoritmo di Pattern Matching davvero efficiente.

Praticamente in un file di testo vengono specificate le regole da applicare sui pacchetti e le relativa azioni da compiere in caso affermativo o meno (generare un alert o mandare un sms).

Questo file di configurazione viene scritto interamente utilizzando un apposito linguaggio per descrivere le opzioni.
Esistono numerose signatures, ed è molto facile creare le proprie.

Logging & Alert system

Questo è quello che potremmo definire il sistema di output dell’intero applicativo. Mediante questo modulo Snort permette di visionare tutte le attività di interesse per l’amministratore di rete.

Ci sono vari modi per avere un output dal sistema:

  • Pass: il pacchetto vieni ignorato
  • Log: scrive il pacchetto usando la routine di logging
  • Alert: genera un allarme e notifica l’admin nel metodo prescelto. Ci sono due tipi di allarme: Full alert che consiste nella registrazione dei messaggi di allarme e dell’header completo del pacchetto IP ed il Fast alert che consiste nella registrazione delle informazioni più importanti dell’header dei pacchetti sospetti

In questo senso, Snort delega la configurazione degli alert e del sistema di log completamente a carico dell’amministratore.

Un’altra pecca consiste nell’analisi dei dati registrati che viene lasciata interamente all’utente finale. Esistono comunque molti altri prodotti open-source che possono essere uniti ed integrati per creare un proprio IDS puzzle.

La gestione dei sensori Snort non è così semplice e veloce come sarebbe quella di prodotti commerciali, che vengono forniti con console integrate e semplici tool di gestione. Anche le funzioni di Analisi dei dati e il Reporting non sono semplici.

Acid

L’ Analysis Console for Intrusion Databases (ACID) [6] è un motore di analisi basato su PHP in grado di effettuare ricerche e processare dati contenuti in un database di eventi generati da Snort. Si compone di un’interfaccia per creare ed eseguire QUERY, di un packet viewer/decoder, di un modulo di gestione degli alerts ed è in grado anche di generare gradevoli grafici relativi alla distribuzione temporale degli alert, o della distribuzione degli stessi per sensore, o per indirizzo IP, o per tipo di attacco, per porte ecc. E’ stato creato come parte del progetto ed è comunemente considerato come l’interfaccia più completa disponibile per l’uso con Snort.

Il più grosso vantaggio è di essere Web-Based, che la rende facilmente personalizzabile e non obbliga ad usare un programma compilato come console (come per altri prodotti, che vantano una console unica).

Questo permette ad esempio di avere console multiple aperte nello stesso momento sullo stesso database.

Add-on

Ci sono altre componenti open-source (anche se in questo campo il solo limite all’integrazione e’ dettato dalla fantasia) che possono essere usate per arricchire “l’esperienza snort” e renderlo più facilmente gestibile.Per una conoscenza esaustiva a riguardo di altri progetti open-source integrabili con snort, rimandiamo a sito del progetto dove ne potrete trovare numerosi nell’area download o nella documentazione. Citiamo qui per brevità solo i più noti:

  • SnortSnarf [7]: è un’altra applicazione (perl based) che analizza gli Alert di Snort e li pubblica in chiari e leggibili pagine web. Non sostituisce completamente le funzionalità di ACID, ma può essere complementare ad esso. La società che lo produce, SiliconDefense, offre anche supporto per implementazioni di Snort su windows, e fornisce numerosi documenti a riguardo sul proprio sito.
  • STunnel [8]: è la più usata alternativa a SSH (che comunque a buon bisogno lavora piuttosto bene) per cifrare le comunicazioni tra i sensori Snort e il database, comunicazioni che altrimenti avvengono in chiaro
  • SnortCenter [9]: è un’applicazione web che si poggia su un sistema di agents e manager, che permette di gestire la configurazione e l’update dei sensori Snort in maniera centralizzata. Gira in ambiente linux/unix ed è probabilmente la più completa soluzione di questo tipo.
  • IDS Policy Manager [10]: anche questo prodotto di Activeworx si occupa della gestione remota e centralizzata dei sensori snort. E’ mirata agli amministratori di snort in ambiente windows piuttosto che linux, o anche ambiente misto, ma comunque è un’applicazione win32. IDS Policy Manager evita – a differenza di SnortCenter – di dover distribuire un agente separato che si occupi di configurare snort macchina per macchina, ed invece genera i file di configurazione e ne effettua un push dalla console verso i sensori per mezzo di SCP o FTP

Al di là dei prodotti già citati, e dei numerosi che si potranno trovare sul sito, vi rimandiamo anche a “Updated Snort Enterprise Implementation” [11].

Per conto suo Snort è un tool piuttosto scarno, e richiede molte personalizzazioni per arrivare a gestire il tutto nella maniera desiderata, ricevere allarmi ed effettuare reports.

E’ in pratica una soluzione “fai da te”, molto probabilmente troppo difficile per coloro che non abbiamo una ragionevole esperienza nell’uso di Unix/Linux.

Ma per chiunque altro, che abbia quel tipo di esperienza, Snort sarà sicuramente un’esperienza molto positiva. E’ un bel prodotto, molto potente, e la sua natura open lo rende senza dubbio l’IDS più flessibile che esista sul mercato.

In ogni caso, dopo le difficoltà iniziali, una volta che tutto è “up and running” richiede molta poca manutenzione (se si esclude l’obbligatorio aggiornamento delle signatures).

Se configurato correttamente, dimostra prestazioni uguali o migliori di altri prodotti commerciali che costano migliaia di euro.

NOTA: Marty Roesch, il suo creatore, è ora CEO della sua propria azienda (sourcefire.com) che vende questo software, non così semplice come quello rilasciato al pubblico gratuitamente, ma nella forma di appliances ottimizzate, provvisto di interfacce di analisi dei dati e di supporto commerciale.

E’ importante tenere presente qui che stiamo parlando del semplice prodotto open-source, che ancora deve essere integrato in un “framework casalingo” con vari altri software open-source. NON stiamo parlando del prodotto commerciale di Sourcefire.

DRAGON

Dragon [12] è un prodotto di Intrusion Detection commerciale tra i più venduti ed apprezzati al mondo.

Vediamo brevemente di capire come di caratterizza la sua architettura e quali sono i suoi punti di forza.

Dragon si presenta come un sistema di Intrusion Detection completo, i cui componenti della famiglia sono:

  • Network Sensor
  • Host Sensor
  • Policy Manager
  • Analisys Console

Quando ci si approccia all’architettura di Dragon la prima impressione è di smarrimento: svariati componenti client, server, agent e possibilità di svariate combinazioni.

Tutto diventa più chiaro dopo un po’ di pratica e quando si capisce l’essenza del prodotto: nonostante la natura commerciale, Dragon ha una filosofia molto aperta. Niente è tenuto nascosto, tutto è ben documentato e nella maggior parte dei casi customizzabile.

La presenza di componenti separati per le varie funzioni consente di poter “creare” l’architettura di Intrusion Detection che meglio si addice alla nostra rete: si può passare da un’installazione single-host (cioè tutto su un singolo server) ad una configurazione distribuita su più sedi, con diversi sensori, diversi punti di raccolta e controllo degli eventi e un unico punto di gestione centralizzata delle policy.

Considerate anche che le configurazioni vengono sempre mantenute in file di testo pienamente modificabili sia a mano che tramite l’apposita interfaccia grafica completamente web-based.

Questa filosofia non stupisce più di tanto se si va a dare uno sguardo alla storia del prodotto.

Dragon nasce dal genio di un pioniere del settore, tale Ron Gula che ha scritto e tuttora mantiene il codice di questo IDS.

Successivamente il prodotto è stato acquistato da Enterasys, azienda presente da diversi anni nel settore della sicurezza e con una gamma di prodotti che spazia dai VPN Gateway fino a prodotti di gestione di reti wireless.

Network Sensor

Enterasys fornisce il suo NIDS sia come software da installare su macchine Linux / Solaris che come un classico appliance linux-based.

Questo sensore basa la sua capacità di rilevamento principalmente sul pattern matching, in cui ogni pacchetto viene confrontato con un set di signature completamente personalizzabili contenute in un file di testo e memorizzate con una sintassi semplice e ben documentata.

Una caratteristica interessante è la possibilità di scrivere signature “dinamiche”, in cui l’evento viene rilevato solo se sulla stessa connessione è stato precedentemente rilevato un altro evento per esempio un login FTP riuscito può essere interessante solo se prima è stato rilevato un tentativo di accesso FTP come utente root.

Ma Dragon non basa il rilevamento solo su quello: ogni pacchetto viene pre-processato in una fase in cui vengono fatti controlli di protocol analisys e misure detection.

Questi controlli comprendono:

verifica dell’intestazione del pacchetto

evitare le tecniche di IDS-evasion come la frammentazione, gli attacchi al TTL (Time To Live del pacchetto) o l’utilizzo di un encoding web non standard

generare eventi se la connessione è ritenuta un utilizzo anomalo della rete: scan, connessioni a certi host/porte prestabilite.

Il NIDS ha anche una parte attiva in cui è possibile bloccare delle connessioni ritenute pericolose, con possibilità di impostare una soglia ad esempio reset dopo 3 eventi rilevati oppure di bloccare a priori certi tipi di traffico.

Quando viene rilevato un evento è possibile inoltrarlo ad un componente server che lo manterrà in un ring di memoria e che lo memorizzerà anche in un DB binario per le analisi successive.

Host Sensor

L’HIDS di Dragon è davvero uno strumento di monitoring della macchina completo.

Disponibile per molti OS, è in grado di controllare:

  • l’integrità dei file (md5), con possibilità di tenere l’archivio degli MD5 su una macchina separata
  • la modifica di permessi, dimensione, data e ora, incremento eccessivo dei file
  • i log della macchina, alla ricerca di signature predefinite
  • lo stato delle porte dello stack IP, per verificare backdoor o trojan
  • traitem SNMP e attività syslog, che permettono di monitorare da un HIDS altre macchine che lo usano come syslog o SNMP server
  • registro eventi di windows
  • registro di windows
  • il kernel alla ricerca di rootkit
  • emula dei servizi (funzionalità di honeypot)

Questi sono solo alcuni dei controlli, inoltre è possibile scriverne di altri (per esempio per controllare un database attraverso delle query) avendo a disposizione tempo, pazienza e un po ‘di conoscenze di programmazione.

Le policy di default presenti per l’HIDS forniscono una serie di controlli sui file basati sull’OS, inoltre ci sono una serie di signature per i file più importanti che ci permettono di vedere cosa effettivamente contengono o NON contengono (signature a logica negativa).

Policy Manager

Il Policy Manager permette di gestire i sensori, le policy e le signature attraverso un’interfaccia web.

Consente di:

  • monitorare lo stato dei sensori
  • aggiungere/modificare/eliminare sensori
  • modificare policy e signature
  • installare, da un punto centrale, le configurazioni di uno o più sensori

Analisys console

Questa interfaccia web permette l’ analisi degli eventi attraverso differenti componenti:

  • Realtime Monitor: analizza gli eventi presi dalla memoria, consentendo analisi veloci sulle ultime attività dei sensori
  • Forensic Console: permette l’analisi di eventi memorizzati nel DB binario di Dragon, con la possibilità di ricostruire sessioni e vedere il traffico effettivamente catturato dal sensore durante la rilevazione dell’evento
  • Trending Console: basandosi sui dati contenuti in un DB relazionale (di default mySQL) consente di analizzare l’andamento dell’attività degli IDS su archi di tempo personalizzabili
  • Reporting tool: strumento di reporting, fornisce alcune visualizzazioni degli eventi da fornire all’executive
  • Alarm Tool: strumento di gestione degli allarmi tramite mail, syslog, SNMP o script custom

In definitiva, Dragon è un prodotto per esperti ma che consente proprio a loro di ritagliarsi un’architettura di Intrusion Detection che di sicuro non li deluderà.

Se invece si decide di mettere in azienda un IDS solo per moda e senza sapere esattamente cosa si vuole, allora ci sono altri prodotti più semplici da utilizzare e pensati per chi non vuole addentrarsi troppo a basso livello.

I suoi punti di forza a mio avviso più importanti sono:

  • filosofia “open”
  • alto livello di customizzazione e integrazione di script
  • HIDS molto completo
  • Gestione centralizzata di NIDS e HIDS

Una nota negativa va però ai report: è molto forte la richiesta del mercato di report di alto livello da presentare alla dirigenza aziendale (magari per far capire il valore dell’investimento!) e in questo Dragon si mostra ancora come uno strumento puramente per tecnici.

CONCLUSIONI

In questo documento abbiamo visto cosa fa un IDS, perché lo fa e come.La lettura di questo e altri documenti non è però tutto quello che serve per poter decidere di implementare questa tecnologia nella propria rete: l’esperienza gioca un ruolo molto importante.

Dovrete valutare la quantità e il tipo di traffico che avete, capire cosa passa nella vostra rete per rendervi conto di quello che deve sorvegliare un sistema IDS.

Dovrete anche mettervi in testa che sarà necessario dedicarci molto tempo, sia nella fase iniziale di messa a punto che successivamente, in modo costante.

Per chi è abituato a gestire una rete e un firewall, mettere le mani su un IDS sarà un’esperienza molto interessante: qui occorre conoscere i protocolli da livello 2 fino a livello 7, e non si smette mai di imparare.

Purtroppo la filosofia e i vantaggi che stanno alla base di questa tecnologia non sono ancora chiari a tutti, soprattutto a quelle persone che devono poi deciderne l’implementazione e soprattutto gli investimenti all’interno dell’azienda.

Questo ha fatto in modo che fino ad ora si sia solo parlato molto di IDS, ma senza mai tradursi in qualcosa di concreto.

Il futuro vedrà una diffusione dei sistemi di Intrusion Prevention che potranno fermare un buon numero di attacchi noti, ma che porteranno le minacce ad evolversi ancora di più verso il livello applicativo.

E’ lì che la perfetta conoscenza del nostro sistema informativo, dalla rete all’applicazione, unita ad un buon IDS avranno il loro spazio.

NOTE SUGLI AUTORI

Daniele Besana lavora presso un system integrator che fornisce soluzioni di sicurezza per grosse aziende. E’ certificato, tra le altre cose, ESS (Enterasys Security Specialist) su Dragon. Fondatore di IT Virtual Community (www.itvirtualcommunity.net)

Massimo Matricardi tesista presso il laboratorio LTA dell’università degli studi di Milano-Bicocca, si interessa ormai da tempo alla sicurezza dei sistemi informatici applicata al Software Design. E’ appassionato di open-source e ideatore e coordinatore della rivista web Mibmagazine disponibile su www.mibmagazine.it

Daniele Muscetta lavora come Security Officer di una azienda nei Paesi Bassi, dove vive con la propria famiglia. Pubblica regolarmente articoli su IT Virtual Community (www.itvirtualcommunity.net), sul proprio WebLog sul sito personale http://www.muscetta.com/ e su varie mailing lists di ambito sicurezza informatica.

RIFERIMENTI

  1. “Intrusion Detection Methodologies Demystified” by G. Golomb
    www.enterasys.com/products/whitepapers/9013198.pdf
  2. “Broadening the scope of penetration-testing techniques” by R. Gula
    www.enterasys.com/products/whitepapers/security/9012542.pdf
  3. SANS Security Reading Room – http://www.sans.org/rr
  4. “This little pig guards the market”
    www.theage.com.au/articles/2002/09/22/1032055006051.html
  5. SNORT – http://www.snort.org/
  6. ACID – http://www.andrew.cmu.edu/~rdanyliw/snort/snortacid.html
  7. SnortSnarf – http://www.silicondefense.com/
  8. STunnel – http://www.stunnel.org/
  9. SnortCenter – http://users.pandora.be/larc/
  10. IDS Policy Manager – http://www.activeworx.com/
  11. “Updated Snort Enterprise Implementation” by E. Lubow
    www.linuxsecurity.com/articles/documentation_article-7137.html
  12. Dragon – http://dragon.enterasys.com
  13. AirCERT – http://www.cert.org/kb/aircert/
  14. Network Security Resource – http://www.networkintrusion.co.uk/

NAT vs PROXY

Print Friendly

NAT vs PROXY

Uno degli argomenti più trattati sui News Group è la condivisione di internet su di una rete locale usando un solo punto di accesso.

E qui iniziano i consigli, chi opta per una soluzione HW basata su di un router, e chi sceglie di condividere un modem o una scheda ISDN utilizzando un SW.

Tra i tanti SW disponibili cito Wingate (il più diffuso), l’ICS (presente negli OS di Microsoft a partire da Windows 98 SE), WinProxy, Vicomsoft Internet Server

Tutti questi prodotti permettono di ottenere il risultato voluto, ma lo fanno utilizzando delle tecniche diverse e con caratteristiche diverse, cioè il NAT o il PROXY.

NAT

E’ l’acronimo di Network Address Traslation, cioè la traslazione di più indirizzi di rete IP privati in un unico indirizzo IP pubblico fornito dall’ISP.

FUNZIONAMENTO

La NAT si basa su di una tabella contenente la corrispondenza tra i socket interni e i socket esterni in uso (il socket è l’insieme di indirizzo IP e porta di comunicazione).

Quando un client va a visitare una pagina web su un server esterno, il suo indirizzo e la sua porta di origine vengono tradotti, e la corrispondenza viene registrata nella tabella.

Quando arriva la risposta dal server WEB esterno, la tabella permette di capire chi voleva quei dati, quindi effettua la traduzione inversa e li manda al client.

Tutte le comunicazioni dall’esterno che non sono in tabella vengono scartate.

Ecco l’esempio pratico:

il client 192.168.0.1 utilizza la prima porta disponibile 1234 per aprire una sessione WEB col server 212.41.203.1 sulla porta 80.

Il gateway che sfrutta il NAT intercetta la richiesta, e modifica l’intestazione dei pacchetti TCP in modo che risultino generati da lui, quindi per esempio 99.102.13.1 porta 1435.

Nella tabella viene inserita questa corrispondenza:

Origine Traduzione Destinazione
192.168.0.1:1234 99.102.13.1:1435 212.41.203.1:80

La destinazione riceverà i pacchetti da 99.102.13.1:1435, e a questo socket invierà i dati delle pagine WEB.

Il dispositivo gateway a questo punto riceve la risposta da 212.41.203.1:80, consulta la tabella e modifica l’intestazione dei pacchetti ricevuti per mandarli verso 192.168.0.1:1234

Se arriva qualche pacchetto da indirizzi IP non richiesti, e quindi non presenti in tabella, questi vengono scartati.

Il funzionamento è semplice, per questo le implementazioni di NAT sono sempre affidabili e senza buchi.

E’ importante capire che questa tecnica lavora ad un livello OSI basso, opera modificando solamente le intestazioni dei pacchetti TCP, quindi non è in grado di analizzare il contenuto delle informazioni che tratta, cioè di proteggere la rete in modo completo e da permettere delle policy per le varie utenze.

TIPI DI TRASLAZIONE

Ci sono 4 tipi di traduzione che è possibile implementare con NAT:

· STATICA: consiste nell’inserire in tabella una corrispondenza FISSA che consente di rendere disponibile all’esterno un servizio che gira su un host interno alla rete.
Es.: si può mappare la porta 80 del gateway sulla porta 80 di un server WEB interno 192.168.0.1, in modo che ogni richiesta HTTP sulla porta 80 dell’interfaccia pubblica del gateway rimandi al WEB posto sulla macchina con indirizzo privato.
In pratica, permette di far diventare pubblici dei servizi che girano su macchine locali, sfruttando un solo indirizzo IP pubblico anche in questo caso!

· DINAMICA: (o IP Masquerade) è la traduzione dell’esempio riportato più sopra, dove la tabella gestisce le connessioni. Tali connessioni hanno un certo timeout, scaduto il quale viene rimosso il record dalla tabella: tutto quello che non è in tabella viene eliminato a priori, quindi non esistono strade per arrivare dall’esterno su un PC interno, a meno che ci sia una NAT Statica oppure che sia stato al client a richiedere qualcosa di poco sicuro….. (il che è probabile)

· BILANCIAMENTO DI CARICO: questa è una funzionalità avanzata di NAT Statico, che permette di distribuire delle richieste di servizi su più server.
Poniamo il caso di un sito molto utilizzato, con tanti accessi che usa quindi diversi server WEB contenenti le stesse informazioni: utilizzando questa tecnica ogni richiesta sulla porta 80 può essere indirizzata ad un server diverso secondo qualche algoritmo, che può essere un semplice Round Robin (cioè “una richiesta per uno”) oppure il monitoraggio del carico dei server.
Questa funzione è più che altro un utilizzo avanzato di NAT messa a disposizione dai Firewall o da altri dispositivi dedicati.

· RIDONDANZA DI RETE: questa è una funzionalità avanzata di NAT Dinamico, che consente di instradare delle richieste di client interni verso differenti interfacce esterne, in modo da prevenire dei problemi in caso di fallimento di una connessione internet, o da bilanciare l’utilizzo di diverse connessioni.
Anche in questo caso, è una funzionalità offerta da dispositivi di un certo livello, come Firewall o Web Switch.

 

Vantaggi del NAT

· UTILIZZO DI UN SOLO IP: permette di risparmiare sull’acquisto di IP pubblici, traslando tutti gli IP privati nell’IP fornito dal provider.

· NASCONDE GLI HOST INTERNI: Sebbene è nata come tecnica per “risparmiare” sugli indirizzi IP pubblici necessari alla rete, ha il grande valore dal punto di vista della sicurezza di mascherare gli indirizzi interni dietro all’unico IP del provider.

· E’ AFFIDABILE: data la sua semplicità, le implementazioni sono sempre molto stabili.

Svantaggi di NAT

· Lavora a livello di trasporto: a questo livello non è possibile fare dei controlli sui dati che vanno verso servizi di livello più alti, quindi non protegge da cavalli di troia, o da attacchi che sfruttano dei bachi nei servizi.

· I protocolli che utilizzano un canale di ritorno (H.323, IRC per esempio) non funzionano, inoltre danno problemi protocolli che effettuano una qualche forma di manipolazione (tipo crittografia) delle intestazioni dei pacchetti.

 

PROXY

I server PROXY lavorano ad un livello OSI più alto, quello applicativo.
Questo significa che i servizi proxy non si occupano dei servizi TCP e IP, ma operano con dei protocolli applicativi come HTTP, FTP, SMTP, POP3…..vale a dire che per ogni servizio che si vuole “proxare” è necessario avere un servizio relativo.

FUNZIONAMENTO

I server proxy ricevono dai client le richieste di servizio come se fossero i server a cui tali richieste sono destinate.
A questo punto rigenerano da zero le richieste verso i server esterni, funzionando proprio come dei “mediatori” tra i client della rete interna e il mondo esterno.

Esempio:

Il client chiede attraverso il suo browser il sito www.virgilio.it.

Tale richiesta viene inoltrata al server PROXY, che ne prende carico e la inoltra, come se fosse lui stesso un browser, sulla sua interfaccia esterna verso internet.

Quando arrivano i dati richiesti, il PROXY li invia al client che li riceve come se il PROXY fosse il server WEB.

La differenza con la NAT è tantissima: qui non si parla di porte e di indirizzi IP, dal proxy passano solamente i protocolli di alto livello, in questo caso HTTP ma c’è un servizio proxy per quasi tutti i protocolli disponibili.

Anche con i server PROXY è possibile avere un bilanciamento del carico di lavoro per offrire un servizio interno che gira su più server all’esterno.

In questo caso la richiesta di servizio sarà inoltrata al server con meno carico di lavoro, come sarà monitorato dal PROXY.

Vantaggi del PROXY

· NASCONDE GLI HOST INTERNI: tutte le richieste all’esterno sembreranno fatte dal server PROXY, permettendo di utilizzare una stessa connessione da tutti i client

· ELIMINA LA NECESSITA’ DELL’INSTRADAMENTO A LIVELLO DI TRASPORTO: a differenza del NAT, non necessita che i pacchetti ruotino tra le reti interna ed esterna…ciò consente di evitare il passaggio dei protocolli che non si vuole inoltrare, e degli attacchi che sfruttano delle malformazioni sui pacchetti.

· CONTROLLA LA CONSISTENZA: rigenerando il pacchetto da zero, il PROXY evita di far passare dei pacchetti malformati che potrebbero fare danni. I pacchetti che crea il PROXY rispettano sempre il protocollo su cui lavora, in quanto il controllo è effettuato ad un livello più alto rispetto a NAT

· PERMETTE DI FILTRARE I CONTENUTI: nel caso di un servizio PROXY http, è possibile bloccare degli URL ritenuti pericolosi o di argomenti non voluti, bloccare gli ActiveX o le applet java…. nel caso di un PROXY che fa il relay della posta sì può eseguire un controllo antivirus sugli allegati e bloccare quelli con estensioni pericolose (*.vbs, *.exe…)

· PERMETTE DI TENERE UNA CACHE: sempre nel caso di PROXY http, lavorando a livello di pagine e contenuti WEB può tenere una cache delle pagine visitate, consentendo di accedere alle pagine caricate più di frequente direttamente dal disco del server in modo veloce e risparmiando banda del collegamento esterno.

· CONTROLLO E MONITORAGGIO DELLE CONNESSIONI: con un PROXY (tipo Wingate) si può vedere chi ha fatto cosa, cioè quali siti ha visitato un certo utente, quante volte ha controllato la posta….(sempre che vi possa interessare, di solito è un fantoccio per evitare la corsa ai siti porno)

Svantaggi del PROXY

· BACHI DELL’IMPLEMENTAZIONE: il funzionamento del PROXY è legato al protocollo, quindi è soggetto ad una serie di problemi ben maggiore rispetto ai problemi che si possono avere a livello di trasporto (NAT) Un attacco ad un PROXY può essere pericolosissimo in quanto il PROXY può essere utilizzato come punto di partenza per altri attacchi che vedrebbero il PROXY bucato come artefice….e lì sono problemi legali!

· CONFIGURAZIONE DEI CLIENT: ogni programma che dovrà andare all’esterno, va configurato per passare da un PROXY, e questo complica un po’ le cose, anche perchè:

· UN SERVIZIO PROXY PER OGNI PROTOCOLLO: ciò significa che ci sono protocolli che non vanno con il PROXY, o che hanno bisogno di implementazioni particolari se gli serve un canale di ritorno (tipo H.323 di NetMeeting)

 

Se volete mettere a disposizione di tutta la rete locale il collegamento ad Internet, valutate bene cosa scegliere….e verificate le caratteristiche del prodotto, non sono tutti uguali!

A seconda di cosa scegliete, vi troverete vantaggi e problematiche diverse.

Non è da escludere poi che vogliate usare un router e un server PROXY per ottenere il meglio delle tecniche…

LA GESTIONE DEI DISCHI SU SISTEMI SERVER

Print Friendly

LA GESTIONE DEI DISCHI SU SISTEMI SERVER

scritto il 01/01/2001 per ITVC.net

La gestione dei dischi è un argomento molto importante per l’affidabilità, le prestazioni e la sicurezza di un server.

Parlando di dischi si parla normalmente di tecniche RAID cioè Redundant Array of Inexpensive Disks, tradotto in array ridondante di dischi economici.

Ecco cosa significa:

Inexpensive Disks

L’economicità dei dischi è un fattore storico-teorico in quanto si contrappone alla brillante idea di utilizzare un solo disco comprando il più bello performante e costoso in commercio e affidare tutta la rete ad esso…

Array

L’array è un raggruppamento di dischi fisici che viene diviso in uno o più dischi logici.

Se avete 3 dischi da 9 GB potete creare un array e successivamente dividerlo in 2 dischi logici, che verranno distribuiti equamente tra i dischi.

Attenzione a non confondere i dischi logici con le partizioni! I dischi logici infatti vengono visti dal sistema operativo come dei drive separati.

Il vantaggio di avere un array consiste nell’aumento delle prestazioni dato dall’accesso contemporaneo ai dischi dove sono distribuiti i dati.

Redundant

La ridondanza è l’aspetto fondamentale dei sistemi RAID, perché è il fattore che permette di introdurre la fault tolerance, cioè il contenuto dell’array non viene perso in caso di guasti a uno o più dischi a seconda della configurazione (alla sfiga non c’è mai limite…).

La ridondanza consiste nel replicare in qualche modo l’informazione contenuta nei dischi.

Ora dovreste sapere cos’è il RAID, ci sono varie tecniche RAID identificate da un numero, eccole:

RAID 0 : Stripe Set

RAID 1 : Mirror

RAID 2 : Bit Striping con Parità distribuita

RAID 3 : Bit Striping con Parità

RAID 4 : Stripe Set con Parità

RAID 5 : Stripe Set con Parità Distribuita

RAID 10 : Stripe Set con Mirror

RAID 0

Partiamo dall’eccezione, questa tecnica non è fault tolerant ma consiste nel distribuire i dati fra i dischi dell’array consentendo migliori prestazioni senza aggiungere carico al sistema.

Può essere usata in caso di grosse quantità di dati non critici che in caso di guasto si possono recuperare da un backup senza problemi di tempo.

RAID 1

E’ la tecnica del mirror, si applica quando si hanno 2 dischi ed è la più performante tecnica fault tolerant.

Il contenuto dei dischi viene mantenuto identico e le operazioni di scrittura vengono riportate su entrambe i dischi.

Lo svantaggio principale è che lo spazio a disposizione è il 50% del totale, cioè se avete 2 dischi da 18 GB per un totale di 36 GB e li mettete in RAID 0 avrete a disposizione solo 18 GB, mentre gli altri sono dedicati alla ridondanza.

In caso di guasto l’altro disco continuerà a funzionare senza problemi, finché non viene ristabilito il mirror.

Fate presente che non è una tecnica di backup, perché se viene scritto un file errato viene riportato sul disco mirror!

RAID 2

Questo RAID ha come obbiettivo il garantire l’integrità dei dati implementando l’algoritmo di Hamming per il controllo degli errori dei dischi. I BIT che compongono i dati vengono memorizzati su dischi diversi ed insieme ad essi le informazioni di parità. Questo sistema che richiede molto spazio ‘addizionale’ per memorizzare i bit di parità è assolutamente inutile su dischi SCSI i quali hanno un sistema di controllo degli errori sui bit nativo.

RAID 3

Funziona esattamente come il RAID 2 tranne per il fatto che questo tipo di RAID usa un disco dedicato per la memorizzazione dei bit di parità. Anche questo e’ molto svantaggioso come RAID per il fatto che l’elettronica di controllo deve fare in modo che i dischi girino all’unisono per poter avere un veloce accesso ai dati, e questo comporta un costo addizionale, inoltre se il disco a rompersi è il disco contenente i bit di parità viene a mancare la garanzia della bontà dei dati contenuti negli altri dischi.

RAID 4

E’ la tecnica dello stripe set con parità.

Le informazioni della parità vengono mantenute su un disco esterno allo stripe set.

La parità è in pratica il risultato di un’operazione di AND logico tra i dati dei dischi, cioè se la somma dei BIT alla posizione X dei dischi è pari allora sul disco della parità alla posizione X viene scritto uno 0, se è dispari un 1.

In caso di guasto il sistema recupera i dati persi leggendo la parità!

Necessita di minimo 3 dischi, e lo spazio da dedicare alla ridondanza in questo caso si calcola con la formula:

(n-1)/n = % di spazio utilizzabile

con n=numero di drive.

Avendo 3 dischi da 9 GB lo spazio disponibile sarebbe di 18 GB, con un 33% dedicato alla parità.

E’ chiaro che più dischi si usano e minore è lo spazio che sarà usato per la ridondanza, ma il sistema sarà caricato dai calcoli più pesanti all’aumentare dei drive.

Questa tecnica viene mantenuta solo per la compatibilità con sistemi che già la adottavano, perché è superata dal RAID 5.

RAID 5

Stripe set con parità distribuita.

E’ l’evoluzione del RAID 4, con la variante che le informazioni di parità non sono memorizzate su un drive apposta ma vengono distribuite sui dischi dell’array, consentendo un aumento di prestazioni.

Il disco dedicato della tecnica RAID 4 veniva infatti sovraccaricato di lavoro perché per ogni operazione di scrittura il sistema doveva accedere ad esso.

Le altre valutazioni sono uguali alle precedenti.

RAID 10 (1+0)

Questo tipo di RAID e’ l’unione del RAID 0 e 1. Consiste nel replicare su due controller differenti due array di dishi in mirroring fra loro. Se i dati contenuti nei dischi sono particolarmente delicati da permettere una spesa MOLTO elevata si puo’ abbinare al posto del RAID 0 i RAID 4 o 5. In questo modo con 6 dischi se ne possono rompere QUATTRO e i dati sono ancora recuperabili, solo un’incendio può far paura ai vostri dati. Purtroppo questo RAID necessita del triplo dei dischi che ci vorrebbero normalmente in un sistema senza RAID.

 

Ora che si è vista la teoria delle tecniche RAID, vediamo praticamente come si può implementare.

Il RAID si può implementare via SOFTWARE o in HARDWARE.

HARDWARE

E’ la scelta migliore ma anche la più costosa (come al solito) in quando necessita di un controller SCSI con funzioni apposite.

Non appesantisce il sistema operativo e nasconde completamente ad esso la tecnica usata, cioè dall’OS si vedono dei dischi “normali”.

Si configura con le utility fornite insieme alla scheda e a seconda del controller si hanno a disposizione funzioni di controllo e sicurezza varie.

Una di queste funzioni è la possibilità di aggiungere all’array un disco di Hot-Spare (o Online-Spare) che entra in funzione in caso di guasto e va a sostituire il disco rotto, garantendo la fault tolerance anche in caso di un secondo guasto!

SOFTWARE

Il RAID è completamente a carico del sistema operativo e per questo viene usato in piccoli sistemi dove l’acquisto di un controller dedicato è un problema.

Tutti i sistemi operativi server forniscono la possibilità di fare un RAID 0, 1 e 5, ecco una piccola carrellata:

· NT 4.0 : la gestione dei dischi è configurabile dall’utility Disk Administrator che si trova sotto start->programs->administrative tools.
Le informazioni sulle partizioni e sui dischi vengono salvate nel registry, da qui la necessità di aggiornare il disco di ripristino ogni volta che viene fatta una modifica.

· WINDOWS 2000 : i drive si controllano da Pannello di Controllo->Strumenti di Amministrazione->Gestione Computer sotto Archiviazione->Gestione Disco.
A differenza del predecessore utilizzando i cosiddetti “dischi dinamici” le informazioni di configurazione vengono scritte direttamente sui dischi nell’ultimo mega disponibile, la tabella delle partizioni inoltre viene replicata su ogni disco dinamico offrendo una maggiore sicurezza in caso di crash.

· LINUX : non lo so (scusate)

 

SCENARI

In piccole realtà un server con mirror software è la soluzione più semplice e economica, dove i budget si fanno più elevati in controller che implementa in hardware un RAID 5 è la soluzione migliore, mentre se avete per le mani un grosso affare aggiungendo un disco di hot-spare al RAID 5 dormirete sonni tranquilli!