L’Evoluzione dei Meccanismi per la Sicurezza dei Sistemi Informatici

di
Danilo Bruschi
Dip di Scienze dell Informazione
Università degli Studi di Milano
Computer Emergency Response Team Italiano (CERT-IT)

(Relazione presentata al Convegno Nazionale su ‘Informatica e riservatezza’ del CNUCE – Pisa 26/27 settembre 1998)

1. INTRODUZIONE

Il problema della sicurezza dei sistemi di calcolo risale ai primi anni ’60. In questo periodo fanno la loro apparizione nei sistemi di calcolo meccanismi appositamente progettati per “garantire” la sicurezza informatica degli stessi, vengono riportati i primi casi di frode informatica e appaiono su riviste specializzate i primi contributi scientifici che mirano a definire con precisione il problema della sicurezza informatica e ad individuarne possibili soluzioni. Dobbiamo però attendere la fine degli anni ’80 per avere una definizione universalmente accettata di sistema di calcolo sicuro. Tale definizione è riportata nel manuale ITSEC [cfr. 4] e può essere così sintetizzata: un sistema di calcolo viene considerato sicuro quando è in grado di garantire il soddisfacimento delle proprietà di confidenzialità, integrità e disponibilità. Più precisamente quando il sistema è in grado di garantire che: ogni utente possa accedere esclusivamente alle informazioni di sua competenza (confidenzialità), ogni utente possa modificare solo informazioni di sua competenza (integrità) e ogni azione intrapresa da persone non autorizzate che miri ad impossessarsi di una qualunque risorsa del sistema, sia preventivamente bloccata. E’ interessante notare come la nozione di sistema sicuro sia strettamente correlata a quello di privacy, un sistema che voglia garantire la privacy dei dati in esso contenuti deve, per la definizione teste data, essere sicuro.

Come brevemente anticipato i meccanismi per migliorare la sicurezza di calcolatore fanno la loro comparsa con l’introduzione dei sistemi multiutente, agli inizi degli anni ’60.L’obiettivo di tali meccanismi era riconducibile allo svolgimento di due funzionalità:

1. da una parte consentire l’accesso ad un calcolatore ai soli utenti autorizzati;

2. dall’altra evitare che utenti autorizzati ad accedere al sistema utilizzassero risorse ad essi non assegnate.

In particolare, indicheremo con il termine meccanismi di sicurezza quelli che svolgono funzionalità riconducibili alla prima categoria e con il termine meccanismi di protezione gli altri. Inizialmente molta entasi viene data ai meccanismi di protezione che vengono realizzati sulla base di due assunzioni ben precise:

  • Che il sistema sia fisicamente ben protetto;

  • Che ogni entità attiva presente nel sistema sia stata preventivamente riconosciuta ed identificata e cioè ogni entità operante nel sistema sia esattamente chi ha dichiarato di essere.

    La fase di sviluppo che l’informatica stava attraversando in quel periodo caratterizzata dall’uso di grossi calcolatori centrali noti come mainframe situati in locali ben protetti ed accessibili solo a poco personale facilmente identificabile rendevano la realizzazione dei suddetti presupposti estremamente facile. Il primo di questi veniva risolto imponendo rigide procedure per l’accesso ai locali in cui era situato il calcolatore. Il secondo, cioè l’autenticazione di un utente venne risolto con l’introduzione del primo e più noto meccanismo di sicurezza: le password. Tale meccanismo opera in questo modo. Ad ogni utente autorizzato ad accedere al calcolatore viene comunicata una parola di accesso che l’utente deve impegnarsi a mantenere segreta, tale parola viene chiamata password. Quando un utente intende usare un calcolatore gli viene chiesto di digitare il suo nome e la parola segreta associata al suo nome. Se la parola digitata è uguale a quella memorizzata nel calcolatore l’utente può usare il calcolatore. In caso contrario gli viene negato l’accesso.

    Le password non venivano però considerate un meccanismo sufficientemente affidabile in quegli ambienti in cui la confidenzialità delle informazioni giocava un ruolo determinante quali gli apparati militari o sistemi bancari. Come si legge nell’introduzione dell’Orange Book [cfr. 6], già a partire dal 1968 il Ministero della Difesa Americana si poneva il problema della sicurezza delle informazioni sensibili memorizzate su computer che consentivano accessi remoti a più utenti ed istituiva commissioni per l’individuazione di nuovi meccanismi e metodologie. Il problema resta relegato a tali ambiti sino agli anni ’80.

    In quegli anni in concomitanza con un forte calo dei costi di produzione dell’hardware e con la diffusione delle prime tecnologie di interconnessione inizia per l’informatica una fase di trasformazione tuttora in corso. La caratteristica di tale fase è lo smembramento dei grandi centri di calcolo e la sostituzione del main frame con molti calcolatori di modeste dimensioni e di costi molto più contenuti. Un ruolo fondamentale in tale trasformazione viene giocato dalle tecnologie di interconnessione che consentono a più calcolatori di comunicare tra loro scambiandosi informazioni e condividendo risorse. Si assiste quindi lentamente alla sostituzione del main frame con quelle che vengono definite in gergo reti di calcolatori. La rete vista come un unico calcolatore diventa quindi il nuovo paradigma di calcolo. La diffusione di Internet contribuisce a rafforzare tale paradigma sino a fare prevedere la realizzazione del villaggio globale in cui sull’intero globo sarà presente un unico calcolatore composto dai calcolatori di tutti gli utenti del mondo tra loro interconnessi.

    Questo cambio di prospettiva ha dei risvolti estremamente interessati per quanto riguarda le misure di sicurezza. Risulta infatti immediatamente chiaro che le password unico meccanismo di sicurezza fino ad allora adottato dai sistemi non erano più in grado di garantire la corretta autenticazione di un utente in rete e venivano meno i presupposti che garantivano la sicurezza fisica del sistema. Risulta estremamente difficile garantire la sicurezza fisica di tutti i calcolatori di una rete che tipicamente sono dislocati in siti geograficamente dispersi. E’ altrettanto difficile controllare con precisione chi tenta di accedere a questi computer.

    La riprova di queste constatazioni si ebbe il 2 Novembre 1988 quando uno studente dell’Università di Cornell Robert Morris attraverso un programma da lui scritto riuscì a guadagnare l’accesso ad alcune miglia di calcolatori operanti in Internet. L’attacco noto come Internet Worm mise fuori uso calcolatori appartenenti a università, laboratori di Ricerca, enti governativi, industrie. La notizia ebbe una vasta eco da parte dei media di tutto il mondo che a questo punto prendeva consapevolezza del problema della sicurezza informatica

    Due erano gli elementi utilizzati da Morris per effettuare il suo attacco e rappresentano ancora tutt’oggi gli elementi maggiormente sfruttati per effettuare attacchi informatici anche se con un livello di sofisticazione sempre crescente. L’assoluta inaffidabilità del meccanismo della password per lo svolgimento della procedura di autenticazione, e la presenza di errori (bug) nei programmi utilizzati dal calcolatore per il suo funzionamento. Tali errori in alcuni casi consentono ad un utente malizioso di bypassare il meccanismo di autenticazione e guadagnare comunque l’accesso al sistema. A partire dal 1988 si moltiplicano da una parte gli attacchi e le intrusioni a sistemi informatici e dall’altra le iniziative e gli sforzi di ricerca per individuare le misure di sicurezza necessarie per rendere un sistema sicuro. Risulta immediatamente chiaro che il problema sicurezza informatica va affrontato su due fronti: quello manageriale organizzativo e quello tecnologico. Un requisito fondamentale per la messa in sicurezza di un sito è la definizione e la stesura di una politica di sicurezza. Senza tale documento è impensabile predisporre un qualunque meccanismo di sicurezza sperando nell’efficacia dello stesso. Sul piano di vista tecnologico vanno individuati i mezzi più appropriati da mettere in campo per la difesa del sistema. Le ricerche si svolgono lungo filoni paralleli che vanno dall’individuazione di meccanismi di autenticazione più efficaci delle password, all’individuazione di nuovi prodotti che siano di supporto nell’individuazione di tentativi di intrusione a strumenti per automatizzare l’analisi dei log.

    Oggi possiamo dire che esistono una serie i prodotti che se gestiti e coordinati con una corretta politica di sicurezza consentono di ridurre al minimo il rischio di intrusioni informatiche. In seguito elencheremo alcuni tra i principali di questi strumenti sforzandoci di delineare lo sviluppo storico che ha portato alla loro realizzazione.

    Va comunque ricordato che i calcolatori sono intrinsecamente insicuri e che tale loro caratteristica molto difficilmente potrà mutare nel corso dei prossimi anni. Le principali cause di tale vulnerabilità sono infatti riconducibili ad errori svolti dall’uomo nello svolgimento delle principali attività svolte per rendere tali sistemi fruibili: la programmazione e l’installazione di programmi.

    2. LE MISURE ORGANIZZATIVE

    La sicurezza informatica deve essere realizzata con il contributo di due componenti specifiche di un’organizzazione da una parte il management che, preso atto del problema e sentiti i pareri di esperti detta, nell’ambito di un documento di politica di sicurezza, una serie di misure organizzative e comportamentali a cui devono attenersi tutti gli utenti del sistema. Dall’altra il personale tecnico che a partire dalle indicazioni ottenute dalla direzione individua e installa gli strumenti più appropriati per raggiungere lo scopo e una serie di misure tecnologiche atte a rafforzare tali direttive. L’esperienza ci insegna che un piano della sicurezza che non tenga conto di entrambi gli elementi è destinato a soccombere.

    Nonostante gli esperti del settore rimarchino in tutte le occasioni l’importanza della politica di sicurezza per realizzare un qualunque sistema di protezione che sia effettivamente efficace, dobbiamo rilevare nella stragrande maggioranza dei casi un’assoluta inconsapevolezza del problema sicurezza informatica da parte del management di un ente di conseguenza una notevole reticenza ad affrontare seriamente il problema.

    2.1 La politica di sicurezza

    Definire una politica di sicurezza è un’attività alquanto difficile e dispendiosa in termini di tempo. La cosa è ulteriormente peggiorata dal fatto che non esistono attualmente metodologie che possono guidare l’utente nella stesura di tale documento per il quale ci si può rifare solo ad indicazioni di massima contenute in documenti quali la RFC 2196 [cfr. 2] o ai consigli di esperti.

    La politica di sicurezza deve dettare le linee guida per la soluzione del problema sicurezza informatica all’interno di un’organizzazione. Elenchiamo brevemente quali sono i principali passi che devono essere svolti per la stesura di tale documento.

    1. Identificazione degli elementi da proteggere. Il primo passo da compiere è individuare quali elementi possono costituire l’obiettivo di un’intrusione informatica e si vogliono contemporaneamente proteggere da tale eventualità. Tali elementi sono tipicamente dati memorizzati all’interno del sistema che si vuole proteggere, o anche servizi erogati agli utenti del sistema stesso.

    2. Identificazione delle minacce a cui gli elementi definiti in (1) sono sottoposti. Per ognuno degli elementi definiti al punto (1) vanno individuate le possibili minacce a cui può essere sottoposto. Ad esempio se può essere oggetto di modifiche ad opera di persone non autorizzate, se può essere oggetto di attacchi di tipo denial of service, ecc. ecc.

    Ovviamente questa fase deve essere realizzata con il supporto di un esperto di sicurezza informatica.

    3. Analisi dei rischi. Con gli elementi definiti nei passi precedenti è possibile procedere ad un’analisi dei rischi. Definite per ogni elemento del punto (1) le relative minacce a cui può essere sottoposto, bisogna stabilire il livello di rischio che si è disposti ad accettare e di conseguenza il livello di protezione a cui tale elemento deve essere sottoposto.

    4. Analisi costi-benefici. Una volta definito cosa si vuole proteggere e da quali minacce, è possibile effettuare una stima dei costi, e confrontarli con i benefici ottenuti. Se il risultato dell’analisi è considerato soddisfacente si potrà procedere con la stesura di un piano di attuazione, altrimenti il procedimento sinora descritto dovrà essere reiterato.

    5. Piano operativo. Definiti i livelli di protezione ed il budget di spesa previsto per raggiungerli è possibile procedere alla definizione delle misure tecnologiche da adottare per raggiungere gli stessi. Questa parte della politica di sicurezza viene spesso demandata alla componente tecnica dell’organizzazione.

    6. Regole comportamentali. Spesso gli strumenti tecnologici per poter essere sufficientemente efficaci richiedono da parte degli utenti che li utilizzano, direttamente o indirettamente, il rispetto di alcune regole comportamentali. E’ quindi compito del management stilare uno o più documenti in cui si invitano le diverse categorie di utenti che operano con tali strumenti a rispettare tali regole.

    7. Procedura di gestione degli incidenti. Nella politica di sicurezza è necessario dedicare un capitolo alla procedure da mettere in atto nel caso di intrusione informatica, questo per evitare che in momenti molto delicati possano essere prese decisioni dettate più dal panico che dalla ragione. Alcune delle opzioni su cui esprimersi in tale capitolo sono: se lasciare che l’attacco venga portato a termine con il fine di individuare l’intrusore o sconnettere immediatamente la macchina dalla rete, se riportare o meno l’accaduto all’autorità giudiziaria, la priorità da assegnare ai servizi in fase di ripristino e così via

    2.2 Il ruolo dell’informazione

    Uno degli elementi fondamentali nella prevenzione delle intrusioni informatiche è la capacità di acquisire e rendere operative nel minor tempo possibile le informazioni relative a nuove tecniche di intrusione. Il personale a cui viene affidata la sicurezza informatica di un sistema deve quindi caratterizzarsi non solo per un buon il livello di preparazione ma anche per una buona capacità di aggiornamento. La sicurezza informatica infatti richiede non solo persone con un buon background teorico e pratico di system managment ma persone disponibili a sottoporsi ad un aggiornamento continuo. Un aggiornamento che contrariamente a quanto avviene in molti altri campi non può avvenire frequentando periodicamente corsi all’uopo ma un aggiornamento che deve avvenire giorno dopo giorno sul campo cioè sulla rete. E’ sulla rete che corrono le informazioni più aggiornate rispetto alle più recenti tecniche di attacco, e il ritardo anche di un solo giorno nell’individuare queste informazioni può risultare fatale.

    Queste informazioni vengono in parte generate da enti preposti alla prevenzione degli incidenti informatici quali i gruppi di esperti che operano presso le case produttrici di sistemi e il FIRST organo super partes che accorpa i Computer Emergency Response Team di 60 paesi circa e di cui il CERT-IT è il rappresentante italiano. I CERT di tutto il mondo lavorano su segnalazioni di utenti che subiscono intrusioni informatiche. A fronte di una segnalazione relativa ad nuovo tipo di intrusione provvedono a individuare le necessarie contromisure per renderlo innocuo o prevenirlo e a diffonderle capillarmente. Queste informazioni contengono solitamente le modifiche e le azioni che un amministratore di sistema deve eseguire su un sistema al fine di rendere inefficace un tentativo di intrusione.

    Affinché questo modo di procedere risulti efficace è però necessaria la collaborazione di tutti gli utenti della rete. E’ cioè indispensabile che quando un utente subisce un’intrusione riporti il più presto possibile le informazioni ad essa relative al CERT di competenza, o ad un qualunque ente preposto a tale scopo, che provvederà ad effettuare un’analisi dell’incidente. Nel caso in cui l’incidente in questione riveli delle caratteristiche non ancora conosciute, il CERT di turno provvederà a diffondere capillarmente le necessarie contromisure, dopo averle ovviamente individuate e testate.

    Questi anni hanno però dimostrato una scarsa attitudine da parte di chi era coinvolto in incidenti informatici a voler condividere tali informazioni anche con organi super partes quali sono i Computer Emergency Response Team. Il motivo principale di tale comportamento è da ricercarsi nel timore, alcune volte fondato, di vedere la propria immagine perdere di credibilità nel momento in cui viene diffusa la notizia di essere stati vittime di un’intrusione. In questo quadro diventa però estremamente difficile realizzare infrastrutture davvero efficaci nella prevenzione di incidenti informatici. La gravità di questa situazione è accentuata dal fatto che le persone che svolgono l’attività di intrusione sono ben organizzate e si scambiano vicendevolmente attraverso i propri canali di comunicazione, informazioni su nuove tecniche d’intrusione, indirizzi di siti facilmente violabili, file di password ecc. ecc.

    3. IL RUOLO DELLA TECNOLOGIA

    Le decisioni politiche descritte nella sezione precedente necessitano di una serie di strumenti tecnologici che siano in grado di rafforzarle, che siano cioè in grado di rendere operative le scelte fatta in fase di definizione della politica e siano in grado di verificare che gli utenti rispettino le regole dettate. Tale strumenti rappresentano la componente tecnologica delle misure di sicurezza. Come abbiamo già avuto modo di dire precedentemente, tali misure erano, sino ad una decina di anni fa, essenzialmente ridotte all’utilizzo della password per l’autenticazione degli utenti. Intorno al 1988 incomincia a diffondersi una serie di prodotti di supporto ai system manager il cui scopo è quello di consentire a questi ultimi di svolgere tutta una serie di funzionalità con un maggior livello di sicurezza. Tali strumenti, realizzati principalmente come freeware, ricoprono il loro ruolo nelle diverse aree del system management: la gestione delle password utenti, l’auditing, il logging, la configurazione di sistema, il controllo degli accessi ecc. ecc. Con l’andare del tempo però questi strumenti diventano obsoleti e nella stragrande maggioranza dei casi le loro funzionalità vengono accorpate in prodotti commerciali per la sicurezza informatica, che in questi ultimi anni si sta affermando come nuovo filone per la realizzazione di profitti. Si passa quindi dalla generazione dei prodotti freeware a quella dei prodotti commerciali, che svolgono essenzialmente le stesse funzionalità ma offrono dal punto di vista dell’aggiornamento rispetto agli avanzamenti tecnologici una maggiore affidabilità. Nelle sezioni che seguono delineeremo dal punto di vista concettuale l’evoluzione di quelli che riteniamo essere gli elementi più caratteristici di un moderno sistema di sicurezza. Tralasciamo per questioni di brevità una serie di elementi che pur giocando un ruolo fondamentale in un’architettura di sicurezza risultano meno interessanti sul piano concettuale.

    3.1 Dalle password ai certificati digitali

    Con il diffondersi delle reti di calcolatori si arrivò molto presto alla constatazione che il meccanismo delle password non è sufficientemente adeguato per garantire il livello di sicurezza richiesto nella fase di autenticazione. I motivi principali della sua non adeguatezza non risiedono nel meccanismo stesso, ma più che altro nel modo con cui vengono gestite le password dagli agenti che le utilizzano: i protocolli di rete e gli utenti. Quando un utente di rete richiede l’accesso a un calcolatore remoto deve essere preventivamente autenticato e la sua password via inviata via rete al calcolatore remoto che provvede a verificarne la validità. Questo meccanismo ha suggerito la realizzazione di programmi (facilmente recuperabili in rete) che consentono ad un intrusore di intercettare tali password e quindi utilizzarle per accedere abusivamente alle risorse di rete sotto false sembianze.

    D’altro canto è oramai stato definitivamente accertato che gli utenti costretti ad utilizzare le password per accedere a risorse di calcolo, scelgono password estremamente facili da indovinare. A tale proposito sono stati realizzati dei programmi che forniti di appositi dizionari tentano di indovinare le password di utenti di sistemi. L’uso di tali programmi in centri di calcolo di università, aziende, enti pubblici consente tipicamente di individuare almeno il 20% delle password degli utenti di tali sistemi.

    Per far fronte a questi problemi sono stati individuati dei meccanismi di autenticazione che consentono di rendere molto più sicura una qualunque fase di autenticazione. Tali meccanismi sono basati principalmente sul possesso da parte dell’utente di dispositivi quali smart card o calcolatori tascabili che sono in grado di generare, una volta inseriti nel giusto contesto, una password che identifica correttamente l’utente. Tali meccanismi sono oggi implementabili su un qualunque sistema. I più noti sono le one time password e i certificati digitali.

    One time password. Il meccanismo delle one-time password è basato sull’uso di password che possono essere utilizzate una sola volta. Le one-time password consentono di debellare i problemi derivanti dall’uso di sniffer. Il principio su cui è basato tale meccanismo è il seguente. Ogni utente di un sistema viene fornito di una lista di password (vedi Fig. I) e ogni volta che si collega ad un calcolatore usa una password sulla lista che poi provvederà a cancellare. Al prossimo collegamento userà la password successiva presente sulla lista.

    challenge

    response

    35

    want dew hurl wase otti wedc

    36

    witr diuo nom gtre lofgr kloin

    37

    iris want tom otioere nr moirtr

    Figura 1: esempio di lista di one-time passwords.

    Esistono diverse implementazioni di tale meccanismo alcune delle quali richiedono l’ausilio di opportuni dispositivi molto simili a calcolatori tascabili e consentono di eseguire automaticamente le funzionalità appena descritte.

    Certificati Digitali. Questo meccanismo è stato realizzato sulla scorta dei risultati della più recente branca della crittografia la crittografia a chiave asimmetrica [cfr. 5]. In questo scenario ogni utente viene fornito di almeno una coppia di chiavi (pubblica e privata) che lo identificano. La chiave pubblica viene inserita in un certificato digitale, emesso da un ente preposto denominato Certificatore, che ne attesta inequivocabilmente l’appartenenza all’utente stesso. Il certificato contenente la chiave pubblica viene diffuso pubblicamente. La chiave privata viene invece custodita segretamente dall’utente. La proprietà peculiare di tale coppia di chiavi è che ogni messaggio cifrato con la chiave pubblica può essere correttamente interpretato solo con la corrispondente chiave privata. L’autenticazione dell’utente può ora avvenire usando uno schema detto di challenge-response. L’entità che vuole verificare l’identità di un utente gli sottopone un numero scelto a caso e cifrato con la chiave pubblica che trova sul certificato associato all’utente. Se l’utente contattato sarà in grado decifrare il contenuto del messaggio significa che possiede la relativa chiave segreta e quindi è esattamente chi dichiara di essere in caso contrario sarà un mentitore. Tipicamente tale fase viene realizzata automaticamente con il minimo coinvolgimento dell’utente grazie all’uso di smart card su cui viene depositata la firma segreta dell’utente.

    Questo meccanismo di autenticazione è quello che ha visto il maggior numero di implementazioni in questo ultimo periodo. La sua importanza è legata anche al fatto che lo stesso meccanismo può essere utilizzato per realizzare la firma digitale di documenti. E’ fuori di dubbio che, salvo rare eccezioni, questo sarà il meccanismo di autenticazione che sostituirà nei prossimi anni le password. Al fine di evitare ogni coinvolgimento dell’utente nella fase di autenticazione,

    3.2 Dai sistemi personali di crittografia alle PKI

    Con il diffondersi della rete Internet come mezzo di comunicazione aumentava anche la coscienza da parte dei suoi utilizzatori che i meccanismi da questa usati per il trasporto delle informazioni da un sito all’altro non garantivano la benché minima garanzia sulla confidenzialità e integrità delle stesse. Ciò che Internet offriva ai suoi utenti era un mondo in cui ogni messaggio trasmesso poteva essere intercettato e letto da chiunque avesse l’intenzione di farlo, contro ogni elementare principio di privacy. Per far fronte a questo problema agli inizi degli anni ’90, Phil Zimmermann sviluppava un prodotto noto come PGP acronimo di Pretty Good Privacy [cfr. 7]. PGP era basato sui principi della crittografia a chiave pubblica poco sopra illustrati, e consentiva a tutti gli utenti di cifrare il contenuto dei messaggi che inviavano in rete, al fine di renderne comprensibile il contenuto al solo destinatario. In breve tempo PGP divenne uno standard per la salvaguardia della privacy delle informazioni che venivano inviate in rete o mantenute sul proprio calcolatore, o più brevemente divenne lo strumento standard per la salvaguardia della privacy personale.

    Lo sviluppo di nuove applicazioni quali l’home banking e il commercio elettronico impongono ora una diffusione a livello capillare dei principi di privacy di cui PGP è stato precursore. In questo periodo stiamo quindi assistendo, anche nel nostro paese, alla realizzazione di quelle che vengono definite PKI (Public Key Infrastructure) cioè infrastrutture che consentono di utilizzare in modo semplice e su vasta scala una serie di funzionalità consentite dalla crittografia a chiave pubblica quali la firma digitale, il non ripudio dei messaggi, l’autenticazione, la confidenzialità e l’integrità. I principali compiti istituzionali di una PKI sono l’emissione dei certificati digitali, la gestione di un archivio costantemente in rete che contiene tutti i certificati emessi, la revoca dei certificati e la gestione di un archivio dei certificati revocati.

    La diffusione di tali strutture consentirà di migliorare notevolmente la sicurezza delle nostre comunicazioni e dei sistemi, va però sottolineato che l’istituzione delle PKI consentirà di affrontare in modo quasi risolutivo i problemi legati alla confidenzialità delle informazioni memorizzate nei sistemi, ma come anticipato nell’introduzione ciò non basta a caratterizzare un sistema sicuro, vanno infatti rese le necessarie misure affinché il sistema goda anche delle proprietà di integrità e disponibilità. Queste proprietà sono le più difficile da garantire in un sistema. Per esse non si conoscono sinora soluzioni definitive, e secondo il parere di chi scrive mai esisteranno.

    3.3 Dal packet filtering agli Intrusion Detection System

    Uno dei primi problemi affrontati per la realizzazione di sistemi più sicuri fu l’individuazione di strumenti per la protezione di una rete “aziendale” connessa ad Internet da intrusori esterni, cioè persone esterne all’organizzazione. L’idea di fondo fu quella di fare in modo che la rete “aziendale” avesse un unico punto di accesso da e verso Internet sul quale veniva installato un dispositivo, che aveva lo scopo di analizzare tutti i messaggi che transitavano in tale punto e bloccare tutti quelli che non rispettavano certi requisiti, cioè effettuare quello che in gergo viene definito packet filtering. Tali dispositivi vennero denominati Firewall e fecero la loro comparsa nella loro versione più semplice (indicata con il termine tecnico di screening router) intorno al 1990. Dal 1990 a oggi i firewall si sono notevolmente evoluti [cfr. 1] per consentire un controllo sempre più dettagliato sul traffico e quindi effettuare distinzioni sempre più sofisticate tra traffico ammesso e traffico bloccato e migliorare le proprie prestazioni.Sono poi state aggiunte altre funzionalità quali la possibilità di verificare la presenza di virus o più in generale di codice malizioso all’interno dei messaggi che attraversano il firewall.

    Oggi i firewall rappresentano un valido strumento e se correttamente installati costituiscono un buon bastione di protezione da eventuali intrusioni.

    L’idea su cui si basano i firewall è quindi quella di controllare tutto il traffico in ingresso ad una rete ed in base ad una serie di regole più o meno complesse, in funzione del tipo di firewall che stiamo utilizzando, decidere quali pacchetti possono passare e quali vengono invece fisicamente rigettati. L’analisi svolta dai firewall sui pacchetti è essenzialmente un’analisi sintattica, basata cioè sulla presenza o meno in un pacchetto di certe sequenze di bit predefinite. La naturale evoluzione di questa idea è quella di approfondire il tipo di analisi svolto sui pacchetti al fine di individuare attraverso il loro contenuto eventuali attacchi in corso spostarsi cioè verso un tipo di analisi più semantica. Un primo passo in questa direzione è stato tatto ed è inglobato in quelli che sono l’ultimo ritrovato in termini di misure per la sicurezza: gli Intrusion Detection System. Gli intrusion detection system sono dei prodotti essenzialmente software, che analizzano il traffico di rete che entra in un host ed individuano attraverso un’analisi semantica, per ora alquanto rudimentale, eventuali attacchi in corso, e provvedono a segnalare tempestivamente l’evento.

    Questi strumenti sono alla loro prima generazione e quindi verranno via via resi più sofisticati. Costituiscono un importante strumento per la sorveglianza (monitoring) di un sistema. Va comunque detto che la loro applicabilità è limitata, in particolare possono solo rilevare intrusioni note al momento del loro rilascio, nulla possono fare contro tecniche di intrusione introdotte successivamente. Vanno quindi considerati come dei validi supporti per chi svolge l’attività di sorveglianza del sistema ma non come loro sostituti.

    3.4 Antivirus

    Una categoria particolare di intrusioni informatiche e indubbiamente la più diffusa è costituita dai computer virus. I computer virus sono i rappresentanti più noti di una categoria di programmi scritti per generare intenzionalmente un qualche forma dì danneggiamento a un computer o a una rete indicati con il termine generico di codice malizioso.

    Un computer virus svolge due funzioni di base infetta altri programmi, cioè copia se stesso su altri programmi presenti nel sistema, svolge all’interno del sistema le azioni per cui è stato programmato. Queste azioni possono andare dalla modifica del contenuto di alcuni file residenti sull’hard disk, alla completa cancellazione dello stesso; cosi come all’alterazione del contenuto del video o alla impostazione hardware della tastiera.

    Gli altri componenti della categoria dei codici maliziosi pur mantenendo inalterato l’effetto differiscono dai computer virus principalmente per il meccanismo che adottano per replicarsi o per provocare il danno. Questi oggetti sono riferiti con il termine di trojan horses, worm e bombe logiche. In particolare i computer virus sono un tipo particolare di trojan horses. Ai fini della presente trattazione, non essendo necessarie distinzioni tra i vari oggetti, indicheremo tutti questi oggetti con il termine generico di computer virus.

    Non si hanno dati certi sull’apparizione dei primi virus, è risaputo che già a partire dagli anni ’60 erano state sviluppate tecniche per la creazione di trojan horse, e sono riportati casi di installazione di trojan horses su calcolatori di centri dì calcolo di banche. Le prime grosse manifestazione di tale fenomeno si hanno sul finire del 1987. In un rapporto recentemente apparso la National Computer Secutiy Association si stima che nel 1984 la percentuale di calcolatori vittime di virus fosse intorno al 0,1%. Nel 1997 si stima che 406 calcolatori ogni 1000 siano infettati da virus. Il motivo di questa crescita spaventosa nella diffusione dei virus è in parte imputabile anche alla diffusione di Internet. Se infatti fino agli inizi degli anni l’unico mezzo per la trasmissione dei virus era rappresentato da floppy disk “infettati” che venivano usati tra utenti per scambiarsi software, la diffusione della rete ha introdotto un nuovo meccanismo di diffusione e di generazione di virus. Internet rappresenta oggi il più grande deposito di software al mondo. Molti utenti utilizzano software scaricato da Internet e frequentemente questo software è infettato contiene cioè dei virus.

    La miglior difesa contro i virus consiste nell’installazione sui calcolatori di ogni utente di un prodotto antivirus. Si tratta di un prodotto software che effettua un’analisi preventiva dei programmi che devono essere eseguiti su un calcolatore al fine di individuare all’interno degli stessi la presenza di virus ovviamente noti. Esistono oggi moltissimi prodotti antivirus in generale sufficientemente efficaci nel rilevare la presenza dei virus più diffusi. A tal proposito la NCSA ha individuato una serie di criteri che possono aiutare l’utente a individuare il prodotto a lui più confacente. Va però tenuto presente che un prodotto antivirus è in grado di debellare solo i virus che erano noti alla data del suo rilascio. Va quindi costantemente aggiornato al fine di mantenerne l’efficacia. Un prodotto antivirus non aggiornato non è in grado di svolgere alcuna funzione utile. Per convincersi dell’utilità di mantenere aggiornato un antivirus si consideri che si stima in circa 150 il numero di nuovi virus che vengono prodotti ogni mese.

    Molto difficilmente passa giorno che su Internet non circoli una notizia di un nuovo virus, accanto a informazioni relative a nuovi virus però circolano anche informazioni relative a virus mai esistiti e con potenzialità distruttive irrealizzabili, chiamati in gergo hoaxes. L’obiettivo degli hoaxes è creare panico negli utenti e consumare risorse in termini di tempo, necessario per assincerarsi se un dato avviso è vero o falso, e in termini di banda, in genere questi messaggi vengono rigirati ad amici che a loro volta li distribuiscono ai loro amici creando un effetto noto come spamming, cioè un intasamento della rete. Anche questo è un modo per attaccare una rete.

    3.5 Network Scanner

    La principale minaccia alla sicurezza di un sistema informatico è sicuramente rappresentata dal fattore umano. Tutte quelle attività in cui l’uomo è in qualche modo coinvolto sono intatti quelle in cui e più facile che vengano commessi degli errori che indeboliscono la sicurezza del sistema. Abbiamo già incontrato due esempi molto significativi in tal senso l’uso delle password, e la stesura di programmi di sistema e applicativi. Un’altra attività che produce molti problemi alla sicurezza dei sistemi è l’installazione e la configurazione dei prodotti software. Un errore anche minimo in questa fase può trasformare un prodotto che dovrebbe contribuire a migliorare la sicurezza di un sistema, come ad esempio un firewall, nel prodotto che compromette ogni misura di sicurezza del sistema.

    A partire dal 1990 la comunità scientifica si è quindi premurata di realizzare dei tool che fossero di supporto alle persone che erano addette all’installazione di tali prodotti con particolare attenzione rivolta ai sistemi operativi e ai servizi di rete. Il primo di questi prodotti è COPS (Computer Oracle and Password System), un prodotto che verifica se tutta una serie di parametri riguardanti l’installazione di sistemi UNIX (NT a quei tempi di fatto non esisteva ancora) erano correttamente settati. In caso contrario dava segnalazione all’amministratore. COPS viene di fatto sostituito con un prodotto più sofisticato nel 1993, TIGER e successive versioni.

    Accanto ai prodotti che verificano eventuali inconsistenze e inesattezze nella configurazione dei sistemi operativi fanno la loro comparsa a partire dal 1992 dei tool più orientati alla verifica dei sistemi e dei servizi di rete. Il primo di questi tool è Internet Security Scanner seguito nel 1995 dal più famoso SATAN (Security Administrator Tool for Analyzing network. L’utilità di tali strumenti viene immediatamente colta dall’intera comunità degli amministratori di sistema (e non). E’ fuor di dubbio che tali strumenti abbiano contribuito in molti casi ad individuare errori molto compromettenti. Per contro è anche noto che tali strumenti sono stati utilizzati in molti casi per effettuare intrusioni su sistemi. ISS e SATAN infatti contrariamente a COPS e TIGER consentivano anche quello che in gergo è definito lo scanning di un sistema remoto. Era cioè possibile per un intrusore lanciare SATAN o ISS dal proprio calcolatore “contro” un qualunque altro calcolatore in rete, ed ottenere un dettagliato rapporto degli eventuali punti deboli di quest’ultimo.

    Tutti i prodotti sinora menzionati erano disponibili come freeware all’intera comunità. Nel giro di questi poche anni questi prodotti sono diventati obsoleti e le idee che sottostavano alla loro realizzazione così come le loro capacità di individuare “bachi” sono stata assorbite da prodotti commerciali, noti con il generico termine di Network Scanner. Anche per questi prodotti il livello di sofisticazione cresce di anno in anno. In particolare ai prodotti che operano per gli ambienti UNIX in questi ultimi anni si sono aggiunti anche prodotti per il sistema NT, per il quale incominciano ad affiorare un numero non trascurabile di security bug.

    ———————————————-

    4. Bibliografia Essenziale

    [1] S.M. Bellovin e W.R. Cheswick, Fìrewalls & Internet Security, Addison Wesley, 1994

    [2] B. Fraser, “Site Security Handbook”, RFC 2196 (Obsoletes RFC1244),

    [3] 5. Garfinkel e G. Spafford, Pratical Unix and Internet Security, 2 Edition O’Reilly & Associates, 1996

    [4] ITSEC Information Technology Security Evaluation Criteria.

    [5] B. Schneier, Applied Cryptography 2 Edition, John Wiley & Sons, 1996

    [6] TCSEC Trusted Computer System Evaluation Criteria.

    [7] Philip R. Zimmermann, The Official PGP User’s Guide, MIT Press Book, 1995

    Possibly Related Posts: