Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita...

20
PC Open www.pcopen.it 164 ITAdministrator - Sicurezza informatica Lezione 7C L a discussione sul controllo degli accessi, già introdot- ta nella terza lezione alla sezione 5.3.6, merita di esse- re approfondita per gli aspetti relativi all’accesso ai ser- vizi di rete. Nei moderni sistemi operativi gli accessi sono mediati da un sottosistema, che prende il nome di referen- ce monitor. Il concetto di reference monitor fu proposto nel 1972 da uno studio dell’aviazione militare americana nel- l’ambito della valutazione dei requisiti di sicurezza infor- matica. Da allora, esso ha costituito il modello astratto del- le proprietà necessarie e sufficienti che deve avere qual- siasi sistema adibito al controllo degli accessi. In sintesi, un reference monitor è un modulo che controlla ogni accesso software a dati e dispositivi, e possiede tre caratteristiche fondamentali: è sempre usato per ogni richiesta di accesso, è a prova di manomissione (inattaccabile), ed è abbastan- za piccolo da poter essere completamente analizzato e col- laudato per escludere qualsiasi difetto. In pratica, in un sistema operativo, un reference monitor è il sottosistema attraverso cui devono transitare tutti gli accessi, e che verifica i diritti di accesso dei soggetti (indi- vidui, processi, ecc.) in relazione agli oggetti dell’accesso. Perché un sistema possa ricevere una valutazione B2 o superiore, in base ai criteri TCSEC (Trusted Computer Sy- stem Evaluation Criteria) descritti nella prima lezione, deve applicare il concetto di reference monitor. Quando un sistema remoto richiede accesso a oggetti lo- cali attraverso la rete, un processo locale realizza il con- trollo degli accessi in due possibili modi: 1. il processo locale viene eseguito con i diritti del sogget- to remoto e sono utilizzati i controlli di accesso del si- stema operativo; 2. il processo locale viene eseguito con diritti diversi da quelli del soggetto remoto, associati a un soggetto loca- le e spesso più ampi; in questo caso il sistema operativo si limita a verificare i diritti del soggetto locale, e parte del controllo è a carico del processo stesso. Un esempio del primo caso è il servizio Telnet. L’utente di tale servizio, dopo l’autenticazione, ottiene infatti una shell che viene eseguita con i suoi diritti. Perché ciò sia pos- sibile, il processo che riceve la connessione ed effettua l’au- tenticazione deve avere privilegi tali da poter eseguire una shell con l’identificativo di un utente qualsiasi, incluso root. Su un sistema Unix tale operazione richiede che il servizio sia eseguito con i privilegi di root, il che lo rende partico- larmente critico: nel caso avvenga una violazione prima dell’autenticazione, il servizio permetterebbe di controlla- La settima lezione di Eucip IT Administrator Sicurezza Informatica copre un campo vastissimo: la sicurezza di rete. Dobbiamo quindi suddividerla in cinque parti per coprire tutti i temi. In questa terza puntata ci occupiamo del controllo degli accessi e della conseguente gestione dei log, un argomento di attualità in relazione alla tutela della privacy e della protezione dei dati. I contenuti sono composti da tre elementi: un articolo sulla rivista, un articolo molto più esteso in formato PDF, e un corso multimediale completo su DVD di Gior gio Gobbi Materiale didattico validato da AICA Certificazione EUCIP IT Administrator Modulo 5 - IT Security Sicurezza informatica "AICA Licenziataria esclusiva in Italia del programma EUCIP (European Certification of Informatic Professionals), attesta che il materiale didattico validato copre puntualmente e integralmente gli argomenti previsti nel Syllabus IT Administrator e necessari per il conseguimento della certificazione IT Administrator IT Security. Di conseguenza AICA autorizza sul presente materiale didattico l'uso del marchio EUCIP, registrato da EUCIP Ltd e protetto dalle leggi vigenti" Obiettivo del corso IT Administrator Sicurezza Informatica Fornire al lettore familiarità con i vari modi di proteggere i dati sia su un singolo PC, sia in una LAN connessa a Internet. In particolare, metterlo nelle condizioni di proteggere i dati aziendali contro perdite, attacchi virali e intrusioni. Inoltre, metterlo nelle condizioni di conoscere e utilizzare le utility e i programmi più comuni destinati a tali scopi. Riferimento Syllabus 2.0 (curriculum ufficiale AICA) 5.7 Sicurezza di rete 5.7.4 Controllo degli accessi I contenuti delle 8 lezioni Lezione 1: Informazioni generali Lezione 2: parte 1 Crittografia - fondamenti e algoritmi Lezione 2: parte 2 Crittografia - applicazioni Lezione 3: Autenticazione e controllo degli accessi Lezione 4: Disponibilità dei dati Lezione 5: Codice maligno Lezione 6: Infrastruttura a chiave pubblica Lezione 7: parte 1 Sicurezza di rete Ethernet e TCP/IP parte 2 Sicurezza in mobilità e on line Lezione 8: Aspetti sociali, etici e legali della sicurezza informatica In collaborazione con: Sicurezza di rete – Controllo degli accessi Impedire gli accessi non autorizzati in rete

Transcript of Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita...

Page 1: Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita di esse-re approfondita per gli aspetti relativi all’accesso ai ser- vizi di rete.

PC Open www.pcopen.it164

ITAdministrator - Sicurezza informatica Lezione 7C

La discussione sul controllo degli accessi, già introdot-ta nella terza lezione alla sezione 5.3.6, merita di esse-re approfondita per gli aspetti relativi all’accesso ai ser-

vizi di rete. Nei moderni sistemi operativi gli accessi sonomediati da un sottosistema, che prende il nome di referen-ce monitor. Il concetto di reference monitor fu proposto nel1972 da uno studio dell’aviazione militare americana nel-l’ambito della valutazione dei requisiti di sicurezza infor-matica. Da allora, esso ha costituito il modello astratto del-le proprietà necessarie e sufficienti che deve avere qual-siasi sistema adibito al controllo degli accessi. In sintesi, unreference monitor è un modulo che controlla ogni accessosoftware a dati e dispositivi, e possiede tre caratteristichefondamentali: è sempre usato per ogni richiesta di accesso,è a prova di manomissione (inattaccabile), ed è abbastan-za piccolo da poter essere completamente analizzato e col-laudato per escludere qualsiasi difetto.

In pratica, in un sistema operativo, un reference monitorè il sottosistema attraverso cui devono transitare tutti gliaccessi, e che verifica i diritti di accesso dei soggetti (indi-vidui, processi, ecc.) in relazione agli oggetti dell’accesso.

Perché un sistema possa ricevere una valutazione B2 osuperiore, in base ai criteri TCSEC (Trusted Computer Sy-stem Evaluation Criteria) descritti nella prima lezione, deveapplicare il concetto di reference monitor.

Quando un sistema remoto richiede accesso a oggetti lo-cali attraverso la rete, un processo locale realizza il con-trollo degli accessi in due possibili modi:1. il processo locale viene eseguito con i diritti del sogget-

to remoto e sono utilizzati i controlli di accesso del si-stema operativo;

2. il processo locale viene eseguito con diritti diversi da

quelli del soggetto remoto, associati a un soggetto loca-le e spesso più ampi; in questo caso il sistema operativosi limita a verificare i diritti del soggetto locale, e partedel controllo è a carico del processo stesso.Un esempio del primo caso è il servizio Telnet. L’utente

di tale servizio, dopo l’autenticazione, ottiene infatti unashell che viene eseguita con i suoi diritti. Perché ciò sia pos-sibile, il processo che riceve la connessione ed effettua l’au-tenticazione deve avere privilegi tali da poter eseguire unashell con l’identificativo di un utente qualsiasi, incluso root.Su un sistema Unix tale operazione richiede che il serviziosia eseguito con i privilegi di root, il che lo rende partico-larmente critico: nel caso avvenga una violazione primadell’autenticazione, il servizio permetterebbe di controlla-

La settima lezione di Eucip IT Administrator SicurezzaInformatica copre un campo vastissimo: la sicurezza di rete.Dobbiamo quindi suddividerla in cinque parti per coprire tutti itemi. In questa terza puntata ci occupiamo del controllo degliaccessi e della conseguente gestione dei log, un argomento diattualità in relazione alla tutela della privacy e della protezionedei dati. I contenuti sonocomposti da tre elementi: unarticolo sulla rivista, un articolomolto più esteso in formato PDF,e un corso multimedialecompleto su DVD di Giorgio Gobbi

Materiale didatticovalidato da AICACertificazione EUCIPIT AdministratorModulo 5 - IT SecuritySicurezza informatica

"AICA Licenziatariaesclusiva in Italia delprogramma EUCIP(European Certificationof InformaticProfessionals), attestache il materiale didatticovalidato coprepuntualmente eintegralmente gliargomenti previsti nelSyllabus IT Administratore necessari per ilconseguimento dellacertificazione ITAdministrator ITSecurity. Diconseguenza AICAautorizza sul presentemateriale didattico l'usodel marchio EUCIP,registrato da EUCIP Ltde protetto dalle leggivigenti"

Obiettivo del corso IT AdministratorSicurezza InformaticaFornire al lettore familiarità con i vari modi diproteggere i dati sia su un singolo PC, sia in una LANconnessa a Internet. In particolare, metterlo nellecondizioni di proteggere i dati aziendali controperdite, attacchi virali e intrusioni. Inoltre, metterlonelle condizioni di conoscere e utilizzare le utility e iprogrammi più comuni destinati a tali scopi.

Riferimento Syllabus2.0 (curriculumufficiale AICA)

5.7 Sicurezza di rete

5.7.4 Controllo degliaccessi

I contenuti delle 8 lezioni Lezione 1: Informazioni generaliLezione 2: parte 1 Crittografia -

fondamenti e algoritmiLezione 2: parte 2 Crittografia -

applicazioniLezione 3: Autenticazione

e controllo degli accessiLezione 4: Disponibilità dei datiLezione 5: Codice malignoLezione 6: Infrastruttura a chiave pubblicaLezione 7: parte 1 Sicurezza di rete Ethernet e TCP/IP

parte 2 Sicurezza in mobilità e on lineLezione 8: Aspetti sociali, etici e legali della

sicurezza informatica

In collaborazionecon:

� Sicurezza di rete – Controllo degli accessi

Impedire gli accessinon autorizzati in rete

Page 2: Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita di esse-re approfondita per gli aspetti relativi all’accesso ai ser- vizi di rete.

Lezione 7C IT Administrator - Sicurezza informatica

re completamente il sistema. Dopo l’autenticazione, invece,il reference monitor è quello del sistema operativo, e può es-sere considerato affidabile.

Si verifica il secondo caso quando un’applicazione au-tentica gli utenti tramite un proprio database e, in base al-l’autenticazione, permette l’accesso solo a determinati file.Ad esempio, un server Web può usare l’autenticazioneHTTP e, in base a essa, limitare l’accesso ai file. In tal caso,il processo server deve essere in grado di leggere qualsia-si file; il sistema operativo non esercita altri controlli, men-tre è il processo che deve verificare se l’utente ha il dirittodi accedere ai file richiesti. In questa situazione, una partedel reference monitor è implementata dall’applicazione; per-ciò, anche dopo l’autenticazione, sono possibili violazionida parte dell’applicazione che possono portare all’accessonon autorizzato a parte dei file, anche se non all’intero si-stema. Se i file gestiti dall’applicazione sono quelli criticidel sistema, la situazione è di nuovo ad alto rischio, nono-stante l’apparenza di una maggiore sicurezza.

Si può trovare una situazione analoga in applicazioniWeb realizzate con architettura a tre livelli (three tier). Que-sta è un’architettura client/server distribuita che è stata in-trodotta per ovviare ai limiti di espandibilità ed efficienzadell’architettura a due livelli (two tier), dove la maggior par-te del processing avviene dal lato client, mentre il lato ser-ver si occupa di accedere ai dati tramite un sistema di ge-stione di database (DBMS, DataBase Management System).

Nel modello a tre livelli, tra l’interfaccia utente e il DBMSviene introdotto un livello intermedio di servizi di gestionedei processi che sono condivisi tra più applicazioni. I tre li-velli sono chiamati anche Client, Application Server e DBMS.In molte applicazioni basate su questo modello, un servlet(un’applicazione Java che estende le funzionalità di un Webserver) autentica gli utenti, riceve le loro richieste, ne ve-rifica la legittimità e, per soddisfarle, accede a un databaseche può essere ubicato su un altro sistema. Sebbene ilDBMS abbia un proprio meccanismo di controllo degli ac-cessi, il servlet accede al database come unico utente edesegue autonomamente il controllo degli accessi relativi aciascun utente. In tali configurazioni, né il sistema operati-vo, né il DBMS sono coinvolti nel controllo degli accessi,quindi diventa critica l’implementazione dei controlli al-l’interno delle applicazioni.

Autenticazione in reteL’autenticazione in rete deve far fronte a diverse situa-

zioni che non si presentano nell’autenticazione locale:1. in generale, il server non può fare affidamento sul softwa-

re del sistema client, che non è sotto il suo controllo;2. in generale, la connessione non è sotto controllo; una

delle conseguenze è che, spesso, è più importante au-tenticare il server nei confronti del client piuttosto cheviceversa, e a tale scopo è stato introdotto il protocolloSSL/TLS per realizzare HTTPS (HTTP over SSL).

Di conseguenza, sono necessari meccanismi di autenti-cazione indifferenti alla possibilità che un attaccante sia inascolto sulla connessione e che tenti di manometterla. Esi-stono diversi meccanismi per diverse categorie di attacchi;tra i più comuni metodi di autenticazione in rete ci sono iseguenti:1. password ripetibili: usate in rete, hanno tutti i difetti già ci-

tati per l’autenticazione locale, più la possibilità di esse-re intercettate e riutilizzate. Rappresentano il meccani-smo più diffuso (grazie all’economia d'implementazio-ne), ma anche il più debole.

2. One time password: si basano su algoritmi che generanouna password unica per ogni autenticazione, in modoche, anche se intercettate, le password non siano riuti-lizzabili. Richiedono la sincronizzazione tra client e ser-ver per stabilire la password da utilizzare di volta in vol-ta.

3. Token hardware: sono una forma evoluta delle one timepassword, in cui la password è generata da un tokenhardware, generalmente implementato sotto forma dichiave USB. Due tipi di algoritmi comuni sono quello ba-sato su contatore e quello basato sul clock; entrambi fan-no uso di un codice segreto casuale memorizzato neltoken.Un token hardware può anche limitarsi a conservare unasemplice password ripetibile, con i vantaggi che essa puòessere ignota all’utente, essere lunga a piacere, e abbi-nare la password di logon del sistema operativo con lapassword propria del token, come protezione contro fur-to e smarrimento.

4. Smart Card: possono avere vari formati, come quelli del-la carta di credito, della chiave USB o della schedina deitelefoni cellulari. Le versioni moderne includono unchip con memoria e CPU, un sistema operativo e ilsoftware crittografico necessario per la generazione dichiavi asimmetriche. Nell’ambito di una PKI (infrastrut-tura a chiave pubblica) possono essere usate sia per il lo-gon locale e in rete (sotto il controllo di un sistema ope-rativo come Windows Server o Linux Server), sia per il lo-gon specifico di applicazioni di sicurezza. In qualche ca-so, le funzioni di Smart Card (con chiavi e certificatoX.509) e di token OTP (one time password) possono coe-sistere nello stesso dispositivo; ne è un esempio l’eTokenNG-OTP di Aladdin, un dispositivo USB che può fungereda token hardware con password di logon (locale o Web),da token OTP per accedere a particolari applicazioni, oda token PKI per logon in un dominio Windows Serverdotato di propria Certification Authority.

5. Strumenti biometrici: sono sistemi hardware più softwa-re basati sulla registrazione e l’utilizzo di dati biome-trici, rilevati ad esempio tramite la scansione della re-tina, dell’iride o delle impronte digitali. L’autenticazio-ne biometrica richiede la garanzia di avere sotto con-trollo le apparecchiature e la linea di comunicazionecon il sensore, il che non è ottenibile in una configura-zione client/server dove non si abbia il controllo com-pleto della rete.

PC Open www.pcopen.it165

Architettura three tier

5.7.4.1. Essere alcorrente dellemodalità diautenticazione allarete, e sapere in chemodo gestirle

Un token USB confunzioni di OTP e PKI

Page 3: Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita di esse-re approfondita per gli aspetti relativi all’accesso ai ser- vizi di rete.

PC Open www.pcopen.it166

ITAdministrator - Sicurezza informatica Lezione 7C

Gestione centralizzata dell’autenticazioneIn una piccola rete i computer possono essere gestiti lo-

calmente e connettersi tra di loro su base paritetica, comeavviene ad esempio in un workgroup Windows o in am-biente misto Windows-Linux, tramite le funzioni di condi-visione di Samba. In tal caso la gestione è ripetuta su ognicomputer, e ogni variazione (per esempio degli utenti e deiloro privilegi) deve essere ripetuta su tutti i sistemi in mo-do sincronizzato.

In un ambiente distribuito la gestione individuale deicomputer non è praticamente attuabile, e si rende neces-saria la gestione centralizzata di gruppi, utenti, privilegi diaccesso e risorse condivise. Un tipico esempio è l’uso deiservizi di directory e di LDAP (Lightweight Directory AccessProtocol) per centralizzare le informazioni da gestire, sulmodello degli elenchi telefonici. L’Active Directory di Win-dows Server è l’implementazione di Microsoft dei servizi didirectory LDAP e contiene, tra l’altro, le regole di politicaamministrativa (group policies, o criteri di gruppo) dell’in-tero sistema distribuito e i profili degli utenti, che sonoquindi creati e modificati in modo centralizzato.

In casi speciali, per esempio in sistemi la cui criticità èparticolarmente elevata, può essere preferibile la gestionelocale per minimizzare ogni possibilità di attacco dalla re-te. Per esempio, firewall e sistemi di rilevamento delle in-trusioni sono gestiti localmente o attraverso connessioni direte ad alta sicurezza (cifrate e autenticate con PKI).

Un esempio di autenticazione distribuita, ma con ge-stione centralizzata, consiste nell’utilizzo di NIS (NetworkInformation Service). NIS semplifica l’amministrazione del-la rete fornendo un controllo centralizzato su una varietàd’informazioni di rete, come i nomi e gli indirizzi dei com-puter, degli utenti e dei servizi di rete. NIS permette di ac-cedere da ogni punto della rete alle informazioni di file co-me /etc/passwd, /etc/shadow, /etc/groups, /etc/hosts/ e/etc/services. L’architettura NIS prevede l’uso di un serverNIS master, di server opzionali slave (con replica delleinformazioni del master) e dei client per l’accesso alle infor-

mazioni. NIS memorizza le informazioni in una serie di filedetti mappe, volti a sostituire i tradizionali file Unix /etc ealtri file di configurazione. Questi file (un paio di dozzine)equivalgono a tabelle a due colonne (chiave e valore), e for-mano un vasto database di informazioni. Con NIS i profiliutente sono aggiornati in modo centralizzato e ridistribui-ti sui singoli sistemi, che effettuano localmente l’autenti-cazione.

NIS è stato ideato per piattaforme Unix, quindi non sipresta a essere utilizzato per l’amministrazione centraliz-zata di una rete eterogenea (per esempio Windows-Linux).In questi casi si utilizzano i servizi di directory LDAP, sup-portati da Windows e Linux. LDAP può essere utilizzato perqualsiasi struttura da amministrare centralmente, sia in so-stituzione di un server NIS, sia per altre applicazioni (ru-briche di e-mail, routing, ecc.). LDAP è stato descritto nel-la lezione 6.

Diversamente da NIS, dove l’autenticazione avviene a li-vello locale, protocolli come RADIUS (Remote Authentica-tion Dial-in User Service) effettuano l’autenticazione in mo-do centralizzato tramite un server dedicato, che solita-mente è affiancato da un server di backup. In tal caso, iNetwork Access Point (punti di accesso alla rete) fanno so-lo da tramite fra l'utente e il server di autenticazione.

Quando l’autenticazione avviene in modo distribuito, lacompromissione di un singolo nodo porta all’accesso del-l’intero database degli utenti. Ciò può essere o meno unproblema, a seconda del meccanismo di autenticazione uti-lizzato. Ad esempio, se gli utenti sono autenticati tramitetoken o Smart Card basati su chiavi asimmetriche, l’infor-mazione in possesso del server è soprattutto la chiave pub-blica dell’utente, che non è un’informazione critica.

Crittografiae autenticazione in rete

Uno dei limiti dei meccanismi di autenticazione tradi-zionali, quando utilizzati in rete, è che sono concepiti perautenticare l’inizio di una connessione, in base all’assuntoche tutto il traffico della connessione provenga dal sog-getto che è stato autenticato inizialmente. In un ambientedi rete, invece, il traffico può essere modificato dopo che èavvenuta l’autenticazione. Considerando che il trafficoTCP/IP è a pacchetti, in assenza di misure specifiche nonc’è garanzia che i pacchetti della connessione provenganotutti dalla stessa origine o che non siano stati modificati.Per garantire che tutti i dati trasmessi su una connessioneprovengano dal soggetto che è stato autenticato e che nonsiano stati manomessi, esistono protocolli che fanno uso difunzioni crittografiche. Buona parte dei protocolli più dif-fusi che provvedono all’autenticazione e all’integrità dellaconnessione, si basa su due meccanismi: l’autenticazionechallenge/response con chiavi asimmetriche e l’HashedMAC (Hashed Message Authentication Code - il risultato del-l’hashing applicato al messaggio più una chiave segretasimmetrica, vengono trasmessi messaggio e MAC; a desti-nazione il MAC viene ricalcolato sul messaggio più chiavesimmetrica e confrontato col MAC ricevuto, così da verifi-care l’integrità del messaggio e l’autenticazione del mit-tente).

Autenticazione challenge/response con chiavi asimmetriche

I meccanismi di autenticazione challenge/response pre-vedono un’entità che presenta una domanda (challenge), eun’altra entità che deve fornire una risposta valida (re-sponse) per essere autenticata. In particolare, consideria-mo il caso in cui la parte autenticatrice invia un nonce (nu-

Impostazione di unserver NIS in Linux

Selezione dei dati dagestire con NIS

5.7.4.2. Conoscerel'autenticazione allarete mediante chiavecifrata, e sapere inche modo gestirla

Page 4: Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita di esse-re approfondita per gli aspetti relativi all’accesso ai ser- vizi di rete.

Lezione 7C IT Administrator - Sicurezza informatica

mero casuale diverso a ogni autenticazione) e il soggettoda autenticare elabora il nonce utilizzando le proprie cre-denziali e restituisce il risultato.

Un’implementazione tipica di challenge/response utiliz-za chiavi asimmetriche. La parte da autenticare riceve unnumero casuale, ne calcola l’hash (un numero di lunghez-za fissa, a partire da un qualsiasi messaggio o documento,che verifica che le informazioni non siano state alterate perdolo o per errore) e cifra il risultato con la propria chiaveprivata. Tale valore è restituito alla parte autenticatrice,che lo decifra con la chiave pubblica del soggetto (conva-lidata da certificato) al fine di verificare che la parte da au-tenticare sia chi afferma di essere. In questo modo, la fun-zione autenticatrice verifica che il response sia stato gene-rato dal possessore della chiave privata, a conferma dell’i-dentità del soggetto.

L’utilizzo di meccanismi challenge/response crittograficiprotegge dagli attacchi di tipo replay, in cui parte del traf-fico viene registrato per essere riutilizzato, in seguito, inmodo illecito. D’altra parte, le funzioni di crittografia asim-metrica, per il numero di calcoli e la dimensione delle chia-vi, sono computazionalmente pesanti e hanno un sensibi-le impatto sulle prestazioni. Pertanto hanno un utilizzo li-mitato e sono accompagnate solitamente da funzioni dicrittografia simmetrica, molto più rapide da eseguire. Pro-tocolli some SSL e SSH utilizzano l’autenticazione asimme-trica all’inizio della connessione, quindi costruiscono e siscambiano una chiave simmetrica casuale per la cifraturadel traffico della connessione (ogni sessione usa una chia-ve diversa). Questo tipo di autenticazione, spesso, includel’uso di certificati per la distribuzione e la verifica dellechiavi pubbliche (per esempio, SSL richiede che almeno ilserver si autentichi presso il client tramite certificato).

Hashed MACLe funzioni hash (come MD5 e SHA, citate nella seconda

lezione) possono essere utilizzate per garantire autenticitàe integrità tramite Message Authentication Code e l’uso dichiavi asimmetriche. Il meccanismo consiste, essenzial-mente, nel concatenare una chiave simmetrica e il testo daautenticare, calcolando quindi l’hash della stringa risul-tante (vedi RFC 2104). Qualunque modifica al testo alteral’hash e viene scoperta; solo chi è in possesso della chiaveè in grado di generare l’hash, che per tale motivo viene det-to MAC. Per incrementare ulteriormente la robustezza delMAC, si applica solitamente un ulteriore algoritmo HMAC,che comporta ulteriori manipolazioni logiche e calcoli dihash a partire dal MAC già calcolato.

Tale meccanismo garantisce l’integrità e l’autenticitàdel messaggio, ma non protegge da attacchi replay, chehanno lo scopo d’ingannare i meccanismi di autenticazio-ne riciclando informazioni di autenticazione precedente-mente intercettate. Per ottenere anche tale protezione, ènecessario che ogni pacchetto sia dotato di un identifica-tore unico, per esempio basato su un contatore progres-sivo. Si tratta del meccanismo usato da IPSEC (IP Security,vedi RFC 2085) per garantire sia autenticità e integrità, siaprotezione da replay per ogni pacchetto trasmesso. IPSECè comunemente usato per proteggere i collegamenti VPN(reti private virtuali).

Domini e controllo degli accessiI domini sono stati uno dei fondamenti delle reti Win-

dows fin dai tempi di Windows NT. Un dominio è un rag-gruppamento logico di elementi di rete: computer, utenti,stampanti e altri componenti che costituiscono la rete eche permettono agli individui di svolgere il proprio lavoro.Dato che raggruppa tali oggetti in una singola unità, il do-minio definisce uno spazio amministrativo in cui si posso-

no controllare gli utenti e i computer. In Windows Server2003, un dominio condivide anche un database comune didirectory, le politiche di sicurezza e le relazioni con altrieventuali domini della rete.

La sicurezza, in particolare l’autenticazione degli utenti,è uno degli aspetti principali che caratterizzano un dominio.Un utente, una volta autenticato, viene riconosciuto in mo-do trasparente da tutte le applicazioni che si appoggiano aldominio stesso. Il meccanismo principale di autenticazioneall’interno di Windows 2000/2003 è il protocollo Kerberos5(definito dalla RFC 1510), con un’estensione per l’uso dellacrittografia asimmetrica nella fase di preautenticazione.

Kerberos prevede anche, opzionalmente, la cifratura del-l’intera sessione tra utente e servizio. Windows non usa ta-le opzione, ma si appoggia a SSL oppure a IPSEC, quando sianecessario cifrare il traffico.

I domini da Windows Server 2000 hanno una maggioreflessibilità rispetto a quelli di Windows NT. Utilizzano unastruttura gerarchica ad albero, analoga a quella dei Realmdi Kerberos, e possono fare parte di alberi e foreste com-prendenti numerosi domini. I meccanismi di trust (fiducia)tra domini permettono inoltre, a un utente definito in undominio, di accedere alle risorse di un altro dominio.

Un Domain Trust è una relazione tra due domini che per-mette, a un utente definito in un dominio, di essere auten-ticato attraverso il domain controller di un altro dominio e,quindi, accedere alle relative risorse. La relazione di fiduciatra due domini può essere monodirezionale (one-way) o bi-direzionale (two-way), e può riguardare domini Windows2000/2003, domini Windows NT o reami Kerberos5. Fra do-mini padri e figli di un albero, e fra le radici di alberi ap-partenenti a una stessa foresta, esiste una relazione di fi-ducia bidirezionale transitiva (la relazione di fiducia è tran-sitiva se, assunta la fiducia tra A e B e tra B e C, esiste la fi-ducia tra A e C).

PC Open www.pcopen.it167

5.7.4.3. Conoscerel'autenticazione aldominio

Utenti e computer in undominio di WindowsServer 2003

Impostazioni disicurezza di un dominio

Page 5: Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita di esse-re approfondita per gli aspetti relativi all’accesso ai ser- vizi di rete.

ITAdministrator - Sicurezza informatica Lezione 7C

Gestione dei logLog, nel contesto informatico, è il sostantivo che indica

il registro delle attività giornaliere. Il verbo log indica l’a-zione di registrare informazioni in un registro, che in que-sto contesto è un file di log, ovvero un file di testo in cuiqualche componente software registra le operazioni ese-guite o gli eventi rilevati.

I log hanno principalmente i seguenti utilizzi:1. debug: in caso di errore di un programma, a scopo dia-

gnostico, è necessario sapere quali operazioni sono sta-te compiute appena prima;

2. sicurezza: in caso di compromissione, o nel corso del mo-nitoraggio preventivo, i log possono procurare informa-zioni su attività anomale o sospette;

3. statistiche: i file di log procurano informazioni sull’utiliz-zo di hardware e software e sui comportamenti degliutenti.Nell’ambito della sicurezza, molte informazioni possono

essere trovate nei normali record di log registrati dal siste-ma e dalle applicazioni; a queste, si aggiungono le segnala-zioni sui tentativi di violazione che i meccanismi di sicu-rezza registrano in appositi file di log.

Le informazioni nel log di sistemaI log del sistema operativo sono la prima fonte di infor-

mazioni sugli eventi che riguardano la sicurezza, sia perchécontengono le informazioni registrate dai componenti delsistema, sia perché anche le applicazioni possono regi-strarvi informazioni. Vedremo i log applicativi nel prossimocapitolo.

Nei sistemi Unix e derivati, i log di sistema sono gestitida syslog, un protocollo che permette a un computer d’in-viare notifiche di eventi localmente, o attraverso una reteIP, a collettori di messaggi detti Syslog Server o Syslog Dae-mon. Un daemon, nel gergo Unix, è un programma esegui-to in background, solitamente sotto forma di processo, l’e-quivalente di un servizio in Windows; in Linux daemon eservizi sono termini equivalenti. In ambiente Windows, leimplementazioni di syslog funzionano come servizi (avvia-ti insieme al sistema operativo) o come normali program-mi applicativi (eseguiti su comando). Un computer o un di-spositivo (per esempio un firewall) può essere configuratoin modo da generare messaggi syslog e inviarli a uno spe-cifico daeamon (server) syslog, specificandone indirizzo IPe porta. I messaggi syslog si basano sul protocollo UDP(User Datagram Protocol), e sono ricevuti di default sullaporta 514.

I messaggi syslog sono composti di tre parti: 1. Priorità, costituita da due componenti: severity, un valo-

re da 0 a 7 (0 significa emergenza; minore è il valore, piùgrave è il problema) e facility, un numero da 0 a 23 che in-dica il componente di sistema o l’applicazione che inviail messaggio (facility, in inglese, è una risorsa che agevo-la un’operazione o azione, in questo contesto un sistemao sottosistema).

2. Intestazione, che riporta data, ora e l’identificazione delmittente (nome dell’host, oppure suo indirizzo IP).

3. Contenuto del messaggio, preceduto da un campo tag conil nome del programma o processo che ha generato ilmessaggio.Il protocollo syslog, introdotto negli anni ‘80, è tuttora in

evoluzione e in attesa che la bozza delle specifiche sia ap-provata dall’IETF (Internet Engineering Task Force).

Il principale componente nell’implementazione di syslogè syslogd, un daemon in ascolto su un socket Unix per il log-ging locale (tipicamente /dev/log) o sulla porta UDP 514per il logging remoto. I messaggi possono essere inviati, nelformato sopra descritto, da qualunque applicazione outente che abbia i privilegi necessari. Il formato syslog per-mette di marcare i messaggi secondo le categorie di infor-mazioni. La facility distingue, ad esempio, se il messaggio

proviene dal sistema di posta o da quello di stampa; la se-verity (criticità) prevede otto possibili valori:0 Emergenza: il sistema è inutilizzabile1 Allerta: si deve intraprendere un’azione immediata2 Critico: condizioni critiche3 Errore: condizioni di errore4 Avviso: condizioni di attenzione5 Notifica: condizione normale ma da segnalare6 Informativo: messaggi informativi7 Debug: messaggi a livello debug.

In base al contenuto di un file di configurazione, tipica-mente /etc/syslog.conf, il daemon syslogd smista i messag-gi secondo i valori di facility e severity, salvandoli in file lo-cali diversi o inviandoli a un syslogd remoto sulla porta UDP514.

Nelle moderne distribuzioni Linux, le utitlity per la vi-sualizzazione dei log mostrano un assortimento di file dilog, solitamente residenti in /var/log.

Esistono diverse implementazioni di syslog per Win-dows. Una delle più diffuse è Kiwi Syslog Daemon, di KiwiEnterprises, disponibile anche in versione freeware pressowww.kiwisyslog.com. E’ un’utility potente e flessibile, ingrado di monitorare porte UDP, TCP e SNMP (SimpleNetwork Management Protocol, usato per il monitoraggiodei dispositivi connessi alla rete). Kiwi Syslog Daemon èparticolarmente utile per il monitoraggio remoto; il log mo-strato nell’esempio si riferisce a messaggi con diversi livellidi severity inviati da un firewall al computer designato perla loro raccolta. Il programma mostra anche statistiche deimessaggi in base a frequenza temporale, grado di severitye provenienza.

Mentre è normale che i componenti del sistema opera-tivo (Windows o Unix) utilizzino i meccanismi standard perscrivere i propri log, è frequente che le applicazioni gesti-scano i rispettivi log in modo autonomo e in formato pro-prietario (solitamente come file di testo per i computer con

PC Open www.pcopen.it168

5.7.5. Gestione del log

5.7.5.1. Ricavare dailog di sistema leinformazionimaggiormenterilevanti per lasicurezza

Visualizzatore del log disistema in SUSE Linux

Visualizzatore del log disistema in Fedora Core

Page 6: Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita di esse-re approfondita per gli aspetti relativi all’accesso ai ser- vizi di rete.

Lezione 7C IT Administrator - Sicurezza informatica

hard disk, o come testo in ROM per i dispositivi con siste-ma operativo in firmware).

Le informazioni rilevanti ai fini della sicurezza che si pos-sono trovare nei log sono diverse. Il punto chiave è che sitratta di informazioni che i processi sono programmati perregistrare, e che talvolta richiedono un’attivazione esplici-ta della funzionalità (per non ridurre le prestazioni e occu-pare spazio su disco certi log sono opzionali, come il log de-gli eventi di sicurezza in Windows XP). Se, ad esempio,un’applicazione non prevede la registrazione delle auten-ticazioni fallite, non se ne troverà traccia nei log, a menoche non si appoggino a meccanismi di sistema come l’au-tenticazione centralizzata presso un dominio, o a un servercentrale di autenticazione.

Le prime informazioni che si possono trovare nei log ri-guardano le fasi di avvio del sistema, dato che il sottosi-stema di logging è uno dei primi a essere avviato, così da re-gistrare quali altri servizi vengono avviati, e con quale esi-to. Informazioni tipiche che si trovano nei log di sistema ri-guardano le autenticazioni fallite presso i diversi sottosi-stemi e gli accessi remoti ai servizi, oltre alle informazioniche servizi e applicazioni registrano di routine tramite ilservizio di logging.

Come Unix e derivati, anche Windows utilizza diversi fi-le di log, situati per default nella directory dove si trova lamaggior parte dei file del registro di sistema (WIN-DOWS\system32\config), ma rilocabili editando il registro.L’utility Event Viewer permette di visualizzare le principalicategorie dei messaggi di log, che in Windows XP sono Ap-plicazione, Protezione e Sistema. Gli eventi di protezionenon sono registrati, a meno che tale funzione sia attivata at-traverso la seguente procedura:1. Fare clic su Start, scegliere Esegui, digitare mmc /a (si no-

ti lo spazio tra mmc e /a) e, quindi, fare clic su OK.2. Scegliere Aggiungi/Rimuovi snap-in dal menu File, quindi

fare clic su Aggiungi.3. In Snap-in selezionare Criteri di gruppo e fare clic su Ag-

giungi.4. In Selezione oggetto Criterio gruppo selezionare Computer

locale e fare clic su Fine, Chiudi e, quindi, OK.5. In Directory principale selezionare Criteri del computer lo-

cale e, quindi, fare clic su Criteri controllo. Il percorso è:Criteri del computer locale > Configurazione computer >Impostazioni di Windows > Impostazioni protezione > Cri-teri locali > Criteri controllo.

6. Nel riquadro dei dettagli, fare clic con il pulsante destrodel mouse sull'attributo o sull'evento che si desideracontrollare.

7. In Proprietà selezionare le opzioni desiderate, quindi sce-gliere OK.

8. Ripetere i passaggi 6 e 7 per gli altri eventi da controlla-re.Il Visualizzatore Eventi di Windows XP, per default, as-

segna 512 KB ai file di log e ricicla lo spazio dei messaggipiù vecchi di sette giorni. Nelle proprietà del programma sipossono incrementare tali parametri, per consentire il mo-nitoraggio degli eventi su periodi più estesi. In WindowsServer 2003 i valori di default sono decisamente superiori.Nelle distribuzioni Linux, solitamente, viene utilizzata la ro-tazione dei log, come illustrato al punto 5.7.6.4.

Un’altra visualizzazione disponi-bile in Windows è il Registro Errori(Start > Guida in linea… > Utilizza glistrumenti… > Informazioni avanzatesul sistema > Visualizza Registro Er-rori).

In Windows, un vasto repertorio

PC Open www.pcopen.it169

Visualizzazione dimessaggi in Kiwi Syslog

Distribuzionetemporale deimessaggi in Kiwi SyslogDaemon

Distribuzione deimessaggi per criticitàin Kiwi Syslog Daemon

Attivazione dellaregistrazione degli eventidi protezione in Windows

Visualizzatore deglieventi di sistema inWindows

Visualizzatore deglieventi di protezione inWindows

Visualizzatore deglieventi applicativi inWindows

Page 7: Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita di esse-re approfondita per gli aspetti relativi all’accesso ai ser- vizi di rete.

ITAdministrator - Sicurezza informatica Lezione 7C

di eventi di protezione può essere registrato e monitoratoattivando le Security Policy (criteri di protezione). In parti-colare, il Service Pack 2 di Windows XP ha ulteriormenteampliato il numero di criteri che possono essere definiti.Inoltre, è disponibile una serie di security template (modellidi protezione) che definiscono diverse serie di criteri diprotezione per i vari tipi di utilizzo del computer, per esem-pio membro di un dominio, workstation ad alta sicurezza,sicurezza ridotta per compatibilità con altri ambienti, e co-sì via.

Va sottolineato che l’accesso ai log in generale, e in par-ticolare alle informazioni relative alle autenticazioni fallite,deve essere ristretto agli amministratori che ne hanno ne-cessità. Non è raro che un utente inserisca frettolosamen-te nome utente e password al logon, talvolta col risultatodi inserire la password nel campo del nome utente. Taleinformazione non deve comparire in chiaro nei log, pernon compromettere le password.

Una delle abilità esercitate da chi pratica le intrusionipiù sofisticate consiste nel manipolare i log per cancellareogni traccia delle incursioni nel sistema. Per questo moti-vo, nei sistemi che utilizzano syslog, oltre a tenere aggior-nato il sistema ogni volta che è rilasciata una patch per ri-mediare a eventuali falle di syslog, è importante assicurareche venga tenuta traccia del fatto che il sistema è stato ma-nomesso. Ciò è particolarmente difficile quando un attac-cante ha i privilegi di root e può accedere ai file di log. Lasoluzione è sfruttare la capacità di syslog d’inviare una co-pia dei messaggi di log a un server remoto. Per esempio,per inviare una copia dei messaggi relativi a kernel, postae news a un server syslog remoto (con hostname pcremo-to), basta aggiungere la linea che segue al file di configura-zione /etc/syslog.conf:

kern.*, mail.*, news.*[TAB]@pcremoto(dove con [TAB] si intende un carattere di tabulazione)

Dopo tale modifica, occorre inviare un segnale –HUP(hang-up) al daemon syslog per forzarlo a rileggere il file diconfigurazione:

[giovanni]$ sudo killall –HUP syslogd

Si tenga presente che non tutti i servizi sono in grado diessere configurati o di inviare messaggi di log via syslog. Intal caso, si dovrebbe usare il comando cron per spostare irelativi file di log a un server remoto parecchie volte algiorno (più spesso avviene, meglio è).

I log applicativiLe applicazioni hanno due possibilità di logging: ap-

poggiarsi al sottosistema di logging del sistema operativo,

o utilizzare file propri. Una terza possibilità consiste nel re-gistrare le informazioni in una finestra di tipo consolle.Mentre ci sono vantaggi nell’utilizzare la funzionalità di log-ging del sistema operativo, talvolta ci sono motivi per sce-gliere soluzioni alternative.

Il log di certe informazioni può avere, ad esempio, un’u-tilità temporanea limitata alla fase di debug e diagnosi diun problema. Nel caso del mancato avvio di un’applica-zione o di un servizio, la comprensione delle cause può ri-chiedere una serie d’informazioni dettagliate sulla fase diavvio, ma non occorre conservare tali informazioni per untempo più o meno prolungato, come avviene per i file dilog. In casi del genere è preferibile utilizzare un file appo-sito, anche solo per la durata della sessione; in alternativa,si possono visualizzare in una finestra le informazioni su-gli eventi di interesse.

Un altro motivo per visualizzare le informazioni in unafinestra può essere la necessità d’inviare un allarme im-mediato; in tal caso, una copia delle informazioni dovreb-be essere anche registrata nei log. In effetti, è comune chela configurazione di syslog preveda che i messaggi con li-vello di severity emerg siano replicati anche sulla consoledi sistema, nella speranza che siano notati e determininoun’azione immediata.

Altre ragioni per gestire i log separatamente possonoderivare dal loro utilizzo specifico. Un esempio tipico èquello dei log di accesso a un Web server; essi compren-dono una notevole quantità di dati, utilizzati soprattuttoper rilevamenti statistici e per analizzare l’accesso al ser-ver con appositi strumenti. Avere tali informazioni distri-buite nel log di sistema causerebbe soltanto disagio e inef-ficienza.

Le modalità per configurare i log di un’applicazione so-no svariate. Possono includere la selezione dei tipi di even-ti da registrare (che possono essere ridotti o ampliati in ba-se alle circostanze) o limitarsi a indicare un livello di de-bugging o di verbosità dei messaggi, quando l’attenzione èrivolta più alla soluzione diproblemi che a istanze disicurezza. In altri casi, un fi-le di configurazione per-mette una definizione piùgranulare degli eventi daregistrare. L’esempio chesegue si riferisce alla defi-nizione dei tipi di evento re-gistrati da Diskeeper, ilprincipale deframmentato-re per Windows. Le impo-stazioni di default causano un’eccessiva occupazione dellog applicativo di Windows, il che suggerisce di attivare illog di Diskeeper solo in caso di problemi.

PC Open www.pcopen.it170

Visualizzazione delRegistro Errori inWindows

5.7.5.2. Sapere inche modo configurareil logging delleapplicazioni

La definizione deglieventi da registrare nellog di Diskeeper

Visualizzatore eventi diSpyware Doctor

Page 8: Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita di esse-re approfondita per gli aspetti relativi all’accesso ai ser- vizi di rete.

Lezione 7C IT Administrator - Sicurezza informatica

Altri esempi di applicazioni che registrano file di log so-no quelle di sicurezza: antivirus, firewall e antispyware, ilcorredo standard di un computer collegato a Internet.

Un altro esempio è la gestione del logging da parte di unserver OpenSSH, che si appoggia a syslog. Il file di configu-razione sshd_config include una sezione dedicata al logging,dove si può indicare sia una facility per syslog (il default èAUTH), sia un livello di verbosità che va da QUIET a DE-BUG3 (il default è INFO). Normalmente, il logging avvienevia syslog, ma si può usare l’opzione –d della linea di co-mando, che dice al processo di rimanere connesso al ter-minale (anziché andare in background) e d’inviare al ter-

minale stesso informazioni equivalenti al livello di verbo-sità DEBUG1. L’opzione –d può essere ripetuta fino a tre vol-te per raggiungere il livello DEBUG3.

Al contrario, le funzionalità di logging del server Apache2.0 sono estremamente estese, grazie anche al modulo diconfigurazione mod_log_config, e prevedono:1. l’utilizzo di diversi file di log specifici per registrare ac-

cessi, errori e altre attività legate a specifici moduli (co-me gli accessi via SSL);

2. la possibilità d’indicare un livello di verbosità per gli er-rori;

3. la possibilità d’indicare nella linea di comando, con le op-zioni –e e –E, il livello di debug e il file in cui salvare leinformazioni (in alternativa, a inviarle alla console comevisto per OpenSSH);

4. la possibilità di personalizzare il formato delle voci dei fi-le di log.Windows Server 2003 mette a disposizione una serie di

log di sistema in Visualizzatore Eventi, con la possibilitàd’interrogare i log file di altri computer in rete. I log di IIS so-no invece separati e includono molte più informazioni, co-

me, ad esempio, i visitatori del sito, il contenuto visualiz-zato e l'ora di ultima visualizzazione. Tali log permettono dimonitorare l'esito degli accessi ai siti, ed eventi come la let-tura e scrittura di file. Gli eventi possono essere registratiindipendentemente per siti, cartelle e file. I log di IIS utiliz-zano per default il formato standard W3C (World Wide WebConsortium) Extended Log File Format, compatibile conmolte utility di terze parti; sono supportati anche altri for-mati, tra cui l'invio dei record a un database tramite ODBC(Open DataBase Connectivity). I file risiedono per default insottodirectory di WINDOWS\system32\LogFiles; ogni gior-no viene creato un log file di nome exaammgg.log (doveaammgg rappresenta anno, mese e giorno).

Windows non include la funzione di logging remoto de-gli eventi, ma esistono utility come NTsyslog per ovviare atale carenza.

PC Open www.pcopen.it171

Visualizzazione del logantivirus di ZoneAlarm

IIS Manager in WindowsServer 2003

l file sshd_config diconfigurazione diOpenSSH

Proprietà di un sito webin IIS Manager

Proprietà generali dellogging in IIS

Proprietà avanzate dellogging in IIS

Visualizzatore eventi inWindows Server 2003

Page 9: Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita di esse-re approfondita per gli aspetti relativi all’accesso ai ser- vizi di rete.

ITAdministrator - Sicurezza informatica Lezione 7C

I log server centralizzatiQuando si deve gestire un certo numero di host, l’uso di

sistemi di log locali sulle singole macchine diventa rapi-damente ingestibile. La soluzione è di utilizzare un sistemadi logging centralizzato, con l’invio dei messaggi di log deisingoli sistemi e dispositivi di rete a un’unica macchina adi-bita a log server. Tramite appositi software, gli eventi pos-sono essere inseriti in un database relazionale, che rendepiù agevole la loro selezione e analisi.

L’uso di un log server centralizzato presenta vantaggianche dal punto della sicurezza:1. i log sono protetti: in caso di manomissione di un siste-

ma, l’attaccante non può cancellare dal log centrale letracce della propria presenza;

2. si possono rilevare le correlazioni tra eventi di sistemi di-versi, rilevando attacchi che potrebbero sfuggire all’esa-me dei log dei singoli host.Alcune precauzioni nell’allestire un log server sono le

seguenti:1. rendere sicura l’ubicazione: collocare il log server in un

luogo fisicamente sicuro, dietro un firewall e con regoleche filtrino l’accesso alla macchina;

2. disattivare tutti i servizi: la macchina deve essere confi-gurata in modo che la sua unica funzione sia raccoglie-re i file o i dati (se si usa un database) di log. Si devonoevitare altri usi, come server di stampa o di altri servizidi rete. Tutti i servizi non necessari devono essere di-sattivati.

3. Disattivare tutti i servizi Inetd (inetd o xinetd è il daemonche funge da superserver per una serie di servizi di re-te): gli unici servizi attivi nella configurazione Inetd do-vrebbero essere syslog (per ricevere i log) e SSH (per ve-dere i log).

4. Disattivare i servizi RPC (Remote Procedure Call): i ser-vizi RPC, attivi per default, non sono necessari.

5. Disattivare tutti gli account non necessari: l’unico ac-count necessario è quello di un log administrator.

6. Regolare l’orologio: perché i log abbiano un significatocoerente, occorre sincronizzare i clock di tutti i compu-ter e dispositivi che inviano messaggi di log, preferibil-mente impostando l’accesso periodico a un time serverNTP (Network Time Protocol).Una tecnica usata è quella di non assegnare un indiriz-

zo IP al server di log o, perlomeno, non farlo sulla schedache riceve i log, mettendola in modo 'promiscuo' in mododa poter leggere i pacchetti UDP e inserirli nei log. In talmodo, il log server diventa molto più difficilmente attac-cabile.

L’uso di un log server centralizzato può presentare dueproblemi: il primo è che i formati di logging delle applica-zioni e dei sistemi operativi sono spesso diversi; il secon-do è che il trasferimento di log in rete presenta rischi d’in-tercettazione o di denial of service. Syslog è sensibile al se-condo problema, dato che per motivi di efficienza utilizzail protocollo UDP (quindi eventuali perdite di pacchettipassano inosservate).

Per affrontare tali problemi, l’IETF ha costituito il grup-po di lavoro Security Issues in Network Event Logging (Sy-slog) con lo scopo di definire un formato standard per imessaggi, oltre che meccanismi affidabili di consegna deimessaggi. In particolare, la RFC 3195 definisce il trasferi-mento di messaggi syslog su TCP (che permette la prote-zione opzionale con SSL, per esempio con l’applicazioneStunnel). Ulteriori meccanismi, come la firma dei messag-gi di log, sono ancora allo stato di bozza. Esistono, co-munque, numerosi prodotti commerciali che installanopropri agenti che provvedono alla normalizzazione deimessaggi di log generati dai sistemi e software più comu-ni, che poi inviano a un log server centralizzato.

Un esempio di agente per il logging centralizzato in am-biente Windows è NTSyslog, distribuito con licenza open-source. Il parametro principale di configurazione èHKEY_LOCAL_MACHINE\SOFTWARE\SaberNet\Syslog, nelquale va indicato il nome dell’host remoto. Si possono an-che selezionare gli eventi di cui si desidera il logging.

Si può anche eseguire l’opposto, cioè il log centralizza-to in formato syslog su un server Windows, tramite appli-

PC Open www.pcopen.it172

5.7.5.3. Sapere inche modo predisporreun servizio di logcentralizzato

Attivazione delsincronismo periodico delclock di un firewall tramiteaccesso a server NTP

Attivazione del logremoto in un firewall

Logging syslogcentralizzato su Windowstramite DatagramSyslogServer

Page 10: Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita di esse-re approfondita per gli aspetti relativi all’accesso ai ser- vizi di rete.

Lezione 7C IT Administrator - Sicurezza informatica

cazioni come Datagram SyslogServer(www.syslogserver.com).

Vediamo ora una configurazione minima per un log ser-ver centralizzato. Il primo passo è configurare i sistemi dilogging degli host della rete in modo che inviino i messag-gi al server centrale. Quindi, è bene selezionare le infor-mazioni che si desidera inviare al server; per esempio, incaso di problemi hardware, un sistema può generare unenorme numero di messaggi che appesantiscono inutil-mente il server e rischiano di far perdere segnalazioni im-portanti. Perciò, alcuni tipi di messaggi possono essere la-sciati sui log locali o inviati in modo selettivo. Può essere adesempio utilizzato Syslog-ng, un prodotto di BalaBit(www.balabit.com) che tenta di migliorare la flessibilità disyslog agendo sulle aree di filtraggio, inoltro dei messaggi,integrità e cifratura dei messaggi, reporting remoto via UDPe TCP. Syslog-ng è incluso in alcune distribuzioni Linux, co-me SUSE Linux 10. Qui ne esaminiamo alcuni aspetti di con-figurazione per i lati client e server.

Sul client una configurazione di base richiede, come mi-nimo, l’indicazione di accettare messaggi sul socket Unixlocale e di trasmetterli al log server centrale, per esempio:options {sync(0);};source src {unix-stream("/dev/log"); internal()};destination dst {tcp("192.168.0.50" port(999);};log {source(src); destination(dst);};

Con un syslog tradizionale, l'invio di messaggi a un ser-ver remoto (via UDP) si otterrebbe inserendo in /etc/sy-slog.conf una linea del tipo:*.* @192.168.0.50

In generale, si dovrebbero inoltrare al server centraletutti i messaggi riguardanti la sicurezza, lasciando sul loglocale quelli che costituirebbero un inutile sovraccaricoper il server centrale.

Sul server si dovrà indicare di accettare connessioni sul-la porta indicata, per esempio:source s_tcp {tcp(ip(192.168.50.0) port(999) max-connections(10));};

In tal modo, il traffico viaggia in chiaro e chiunque puòquindi connettersi al log server. Può essere perciò preferi-bile utilizzare Stunnel, un programma per Windows e Linuxper cifrare le connessioni TCP tramite SSL. Esso consentel'autenticazione del client, mentre si può proteggere la por-ta su cui syslog-ng è in ascolto con iptables (istruzione perdefinire le regole dei firewall Linux) e, in aggiunta o alter-nativa, impostare come indirizzo di ascolto 127.0.0.1 (l'ho-st locale).

Con il tradizionale syslog, la ricezione dei messaggi dal-la rete avviene sulla porta UDP 514, che solitamente non èattiva per default, quindi deve essere abilitata tramite le op-zioni di configurazione di syslogd. Il traffico sarà in chiaro,senza l'opzione di usare SSL.

Sul server centralizzato, la soluzione più semplice per lagestione dei messaggi è salvarli in più file, inserendo nel fi-le di configurazione voci del tipo:destination mailinfo {file("/var/log/mail.info");};filter f_mailinfo {facility(mail) and level(info);};log {source(src); filter(f_mailinfo); destination(mailinfo);};

Tuttavia, una volta realizzato un log server centralizza-to, può essere preferibile appoggiarsi a un database SQL,che offre maggiore flessibilità nella gestione di un numeropotenzialmente elevato di messaggi e nella ricerca. Esisto-no allo scopo numerosi tutorial, tra cui Centralized syslog-ng to Mysql, disponibile presso http://vermeer.org/di-splay_doc.php?doc_id=1.

Esistono decine di strumenti, anche gratuiti, per l'anali-si dei file di log, sia di sistema sia, soprattutto, dei Web ser-ver. Altre utility permettono di trasferire i messaggi dai file

di log a database SQL, come MySQL e PostgreSQL. Tra i Weblog analyzer gratuiti citiamo Logrep, AVVStats, http-analy-ze, Analog e Webalizer.

La protezione dei logI log sono una fonte importante di informazioni per la ge-

stione dei sistemi e, in particolare, per il rilevamento dieventi attinenti aspetti di sicurezza. Inoltre, essi possonocostituire prove importanti in caso di investigazioni, peri-zie e contenziosi che coinvolgano le attività svolte sui si-stemi. Per questo, è importante garantirne l'integrità, lacorrettezza (per esempio data e ora esatte) e l'affidabilità.

In base a uno studio recente del CERT/CC (ComputerEmergency Response Team Coordination Center) e dell'USSecret Service, circa due terzi degli attacchi esaminati (ri-guardanti 49 casi recenti di sabotaggio a settori critici del-l'infrastruttura) proveniva da insider, cioè da personale del-le organizzazioni colpite (59% di ex dipendenti e 41% di di-pendenti effettivi). Gli insider erano per l'86% impiegati inruoli tecnici: 38% amministratori di sistema, 21% program-matori, 14% tecnici e 14% specialisti informatici. Sebbene avolte tale evidenza non sia accettata senza resistenze, è unfatto che – almeno negli USA – system administrator e tec-nici siano i primi a essere sospettati in caso di sabotaggio(intrusioni con gravi danni).

Anche se tali fatti non implicano un'identica situazioneeuropea o italiana, conviene tuttavia prevenire simili rischidefinendo adeguate policy di sicurezza, e predisponendo lecontromisure necessarie. Pertanto la protezione, anche deilog, deve pure valere nei confronti degli amministratori deisingoli sistemi o sottosistemi, in modo che i log non pos-sano essere alterati, nemmeno se un amministratore abu-sa dei propri privilegi di accesso. Per le problematiche di si-curezza, in primo luogo relative all'autenticazione, sarà be-ne fare uso dei log di sistema utilizzando un server centra-lizzato remoto, accessibile solo a una cerchia ristretta e fi-data di amministratori (in ambienti ad alta sicurezza si pos-sono ripartire le responsabilità in modo che nessun crimi-ne possa essere commesso senza la complicità tra più per-sone). Si manterrà, comunque, una copia locale dei log inmodo da non perdere le informazioni in caso di mancataconnettività con il server centrale remoto.

Mentre l'archiviazione a lungo termine dei log può ri-guardare particolari categorie di dati, in generale i log ven-gono salvati a rotazione, rimpiazzando i dati più vecchi conquelli più recenti. Il criterio può essere basato sull'occupa-zione di spazio su disco o sul periodo di tempo che si de-sidera monitorare. Windows prevede un ingombro massi-mo dei file di log e offre varie opzioni: cancellare gli eventipiù vecchi di un certo numero di giorni, cancellare eventiuna volta raggiunta la dimensione massima dei log, e can-cellare i log manualmente. Si può anche stabilire che il si-stema si blocchi quando il log di sicurezza è pieno, in mo-do che anche generando un alto numero di messaggi nonsi possano cancellare precedenti eventi che si vogliono na-scondere.

I sistemi Unix utilizzano, invece, tecniche di rotazionebasate generalmente su task attivati periodicamente (tipi-camente una volta al giorno) dal daemon cron. Uno stru-mento di uso comune è logrotate: in base alle impostazionidi un file di configurazione, quando esso è attivato rinomi-na i file di log numerandoli in sequenza, e ne crea di nuovi.Definendo, ad esempio, una rotazione su base giornalierae stabilendo un numero di file conservati pari a sette, sipossono registrare i log di una settimana, dopo di che ini-zia la rotazione e il file più recente rimpiazza quello più vec-chio, ricominciando con la numerazione (per esempio, da/var/log/messages1 a /var/log/messages7). Inoltre, prima edopo la rotazione, si possono eseguire comandi e i log ar-

PC Open www.pcopen.it173

5.7.5.4. Sapere inche modo proteggerei log di sistema damanomissioni

Page 11: Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita di esse-re approfondita per gli aspetti relativi all’accesso ai ser- vizi di rete.

ITAdministrator - Sicurezza informatica Lezione 7C

chiviati possono essere compressi. I log devono esserescrivibili solo dai processi adibiti alla rotazione e dagli am-ministratori addetti al logging, che per esempio devono po-ter ripristinare il servizio di logging in caso di malfunzio-namenti. Resta inteso che i diritti di scrittura servono soloa tale scopo, e che in nessun caso è autorizzata l'alterazio-ne dei contenuti dei file di log.

Come già citato, la corretta registrazione di data e ora,sincronizzata con un server NTP (Network Time Protocol),è essenziale per determinare i periodi di connessione degliutenti nell'ambito delle indagini sia tecniche, sia forensi.

Considerando che i file di log possono assumere di-mensioni notevoli, è buona norma collocare i log in un file-system dedicato a tale attività, in modo da prevenire in-convenienti (tra cui il blocco del sistema) se, nel periodo dirotazione dei file, si verifica una crescita improvvisa del-l'ingombro dei file (per esempio, a causa di un'alluvione dimessaggi di errore dovuti a un guasto).

Recentemente sono stati sviluppati strumenti che pre-vedono la firma dei log sia in fase di scrittura, sia in fase diarchiviazione, o la generazione di checkpoint (punti di ve-rifica) in cui si calcolano checksum (somme di verifica) sul-la base del contenuto dei file, protette crittograficamenteper rilevare ogni manomissione e garantire l'integrità dei fi-le.

Inoltre, sulla maggior parte dei sistemi Unix, si possonoutilizzare estensioni ai meccanismi di controllo degli ac-cessi del file system, in modo da consentire solo l'accoda-mento dei dati (append), senza possibilità di alterare i datigià registrati.

Un ultimo aspetto della gestione dei log è la loro con-servazione; non potendoli mantenere su disco a tempo in-definito a causa del progressivo ingombro, è necessariostabilire politiche di archiviazione e cancellazione. Esse di-pendono dalle tipologie dei dati, dalle esigenze aziendali edalle normative vigenti, e si applicano sia ai file di log, siaai contenuti di un eventuale database. La cifratura dei logarchiviati evita che le relative informazioni possano essereusate per agevolare violazioni alla sicurezza.

Controllo d’accesso dei servizi web

La sicurezza dei servizi Web comprende diversi aspetti,che vanno dai meccanismi di autenticazione del client e delserver, alla protezione delle comunicazioni, al controllo de-gli accessi per i file relativi al servizio, alla gestione dei pro-cessi applicativi che utilizzano il Web come interfaccia.

HTTP e HTTPSIl protocollo HTTPS, che consiste di HTTP all'interno di

un canale SSL (Secure Sockets Layer), è considerato un ser-vizio Web sicuro. Garantisce la riservatezza e l’integrità del-le comunicazioni, nonché l'autenticazione del server e, op-zionalmente, del client (l'autenticazione richiede chiaviasimmetriche e certificati). SSL e TLS (Transport Layer Se-curity) si sono evoluti fino a raggiungere un alto livello di af-fidabilità, tanto che la maggior parte delle transazioni fi-nanziarie si svolge attraverso HTTPS. Il protocollo SET (Se-cure Electronic Transaction), introdotto dalle società di car-te di credito, ha avuto scarsa accettazione sia per i costi(tra l'altro, richiede che anche il client sia dotato di certifi-cato), sia perché SSL è ritenuto abbastanza sicuro per lamaggior parte delle transazioni online.

SSL impone l'autenticazione del server, perché uno deiprincipali problemi con molte applicazioni e siti Web è ga-rantire all'utente di essere connesso al server giusto. Una

volta stabilito il canale protetto tra client e server, il clientpuò essere autenticato con strumenti tradizionali, comel'autenticazione del protocollo HTTP o quella realizzata dal-l'applicazione.

Spesso, per motivi di efficienza, la connessione al sitoWeb inizia in HTTP e passa a HTTPS solo al momento discambiare dati personali o riservati. La pagina può anchefare uso di frame, con la porzione sicura all'interno del fra-me e con porzioni non protette tutto intorno.

Interazione tra server e sistema

La scelta di un server HTTP dovrebbe tener conto delmodo in cui il server interagisce con il sistema sul quale èinstallato. Le modalità d’interazione possono essere diver-se, e non sempre desiderabili. In generale, qualsiasi intera-zione non necessaria con il sistema offre una possibilità ag-giuntiva di attaccare il sistema e, nello stesso tempo, au-menta il numero di componenti del sistema esposti, cia-scuno con le proprie potenziali vulnerabilità.

Una prima distinzione riguarda il fatto che il server siadestinato a utenti locali, per esempio in una Intranet, op-pure sia destinato a utenti specifici del servizio, o presti ad-dirittura un servizio anonimo. Nel primo caso è preferibileun'integrazione con i meccanismi di gestione e autentica-zione degli utenti locali, ad esempio nell'ambito di un do-minio Windows. Nel secondo caso è preferibile una gestio-ne separata degli utenti, eventualmente con strumentipropri del server.

Considerazioni analoghe valgono per il controllo degliaccessi ai file, qualora file diversi debbano esser accessibilia utenti con diritti diversi. Tale distinzione può essere ge-stita attraverso i diritti del file system se gli utenti sono lo-cali o del dominio, altrimenti può essere gestita dal server.

Un altro aspetto è quello degli applicativi (CGI - CommonGateway Interface - o servlet), che utilizzano il server HTTPcome interfaccia verso gli utenti. CGI, ad esempio, è l'in-terfaccia più vecchia (e sempre meno usata) tra applica-zioni e Web server; in pratica, permette al browser di chie-dere al Web server di eseguire un'applicazione (programmaeseguibile o script). Le applicazioni hanno, in generale, lanecessità di accedere a file e altre risorse; se attraverso ilWeb server si può determinare un comportamento ano-malo di tali applicativi, le risorse a cui hanno accesso pos-sono finire compromesse. Anche in tali casi deve essere ap-plicato con rigore il principio di concedere i privilegi mini-mi necessari.

Specialmente nel caso di soluzioni integrate come IIS (In-ternet Information Services, componente di Windows), è be-ne riconoscere quali sono i servizi esposti attraverso il ser-ver HTTP. Ad esempio, nel 2001 sono stati possibili nume-rosi attacchi a IIS, a causa del fatto che veniva esposto unservizio di accesso alle stampanti attraverso l'Internet Prin-ting Protocol, un protocollo per la gestione delle stampe coninterfaccia HTTP (utilizzato, peraltro, anche dal sistemaCUPS – Common Unix Printing System per la stampa su Unixe derivati). Nonostante il nome che porta, tale servizio è ac-cettabile su rete locale, ma è poco giustificabile su un ser-ver, dove andrebbe disattivato. Molti amministratori nonerano a conoscenza del fatto che esso fosse accessibile at-traverso IIS, e la vulnerabilità fu sfruttata da un worm (Sad-mind), come spesso accade quando una vulnerabilità vie-ne scoperta su server molto diffusi.

Con i server come Apache, esplicitamente nati per unutilizzo su Internet, è generalmente necessario installare unmodulo specifico al fine di attivare una funzionalità. Ciòrende il controllo immediato, sempre che l'installazione deimoduli sia verificata: molte distribuzioni installano per de-fault un gran numero di moduli. Altri worm hanno sfrutta-

PC Open www.pcopen.it174

5.7.6 Controllod’accesso dei serviziweb

5.7.6.1 Conoscere ladifferenza fra siti webHTTP e HTTPS

5.7.6.2 Sapere inche modol'interazione fra ilservizio web e le altrecomponenti disistema influenza lasicurezza

Page 12: Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita di esse-re approfondita per gli aspetti relativi all’accesso ai ser- vizi di rete.

Lezione 7C IT Administrator - Sicurezza informatica

to tale fatto per attaccare Apache; ad esempio, nel 2002 ilworm Slapper attaccava sistemi Linux configurati con Apa-che, mod_ssl e una versione vulnerabile delle librerieOpenSSL.

Attivazione di un server HTTPSNormalmente, il protocollo HTTP utilizza la porta 80 e

HTTPS la porta 443. L'attivazione di HTTPS su un Web ser-ver è solitamente un'operazione molto semplice. L'aspettoprincipale da curare nella configurazione è la generazionee installazione del certificato del server con la corrispon-dente chiave privata, in modo che siano utilizzabili per l'au-tenticazione SSL.

Come esempio, vediamo i passi fondamentali per l'atti-vazione del Web server Apache con OpenSSL (già integra-to in Apache2; con la versione 1.3 occorre installare OpenS-SL e mod_ssl, la sua interfaccia con Apache). Le immaginid'esempio si riferiscono a SUSE Linux 10.

Generazione e installazione del certificato per il server:i seguenti comandi permettono di generare un certifica-

to che può essere usato per i test prima di acquisirne unoda una Certification Authority commerciale, o di crearneuno con una propria CA.

openssl req –new –out www.example.com.csr

openssl rsa –in privkey.pem –out www.example.com.key

openssl x509 –in www.example.com.csr –outwww.example.com.crt –req –signkey www.example.com.key–days 365

openssl x509 –in www.example.com.crt –outwww.example.com.der.crt –outform DER

Il primo comando crea una richiesta di certificato; nel dia-logo che segue, si indica in particolare il Common Name peril quale il certificato è richiesto (vedi Common Name e Di-stinguished Name alla sezione 5.6.2 della lezione 6), coinci-dente con il nome completo di dominio del server(www.example.com, nell'esempio). Il comando richiede an-che l'immissione di una passphrase (frase usata come pas-sword) di protezione. PEM (Privacy-Enhanced Mail) è il for-mato standard usato da OpenSSL per le chiavi e i certificati.

L'uso di una passphrase non è pratico per la chiave pri-vata di un server, che deve accedervi in modo automaticocontinuamente. Perciò il secondo comando rimuove la pas-sphrase. Ciò significa che il file generato contiene la chiave

privata del server in chiaro, e deve quindi essere trattatocon grande cura; in particolare, deve essere leggibile (e nonscrivibile) dal solo server Web.

Una tecnica per mantenere la passphrase della chiave se-greta consiste nel farla inserire da un apposito programmadi backend configurando, al posto diSSLPassPhraseDialog builtin

il comandoSSLPassPhraseDialog exec:/etc/apache2/pass

dove pass è il comando che, una volta lanciato, scrive lapassphrase sul proprio output standard.

Il terzo comando crea un certificato autofirmato.Il quarto comando converte il certificato nel formato

DER, necessario per essere utilizzabile dal server. DER (Di-stinguished Encoding Rules) è un metodo di codifica per da-ta objects (strutture di dati, come ad esempio un certifica-to X.509) con firma digitale. Rientra negli standard ISO-OSI(Open Systems Interconnection dell'International Organiza-tion for Standardization).

I file www.example.com.crt e www.example.com.key del-l'esempio devono essere copiati in directory, dove sianotrovati dal server, per esempio /etc/apache2/ssl.crt e/etc/apache2/ssl.key (in SUSE Linux), o in/etc/httpd/conf/ssl.crt e /etc/httpd/conf/ssl.key in Fedora Co-re (derivato da Red Hat).

File di configurazioneA seconda del sistema operativo, possono essere ne-

cessarie modifiche al file di configurazione httpd.conf (pre-sente, ad esempio, in /etc/httpd/conf in Fedora Core 3). Perprima cosa è necessario attivare mod_ssl (se non lo è già).A seconda dell'architettura, può essere necessario inserirenel file httpd.conf una delle seguenti linee, o verificarne lapresenza:LoadModule ssl_module modules/libssl.soLoadModule ssl_module modules/ApacheModuleSSL.dllLoadModule ssl_module modules/ApacheModuleSSL.soLoadModule ssl_module modules/mod_ssl.so

Può anche essere necessario aggiungere la linea:AddModule mod_ssl.c

Nei sistemi con riferimento a SE Linux (un tentativo distandardizzazione seguito da alcune distribuzioni com-

PC Open www.pcopen.it175

5.7.6.3. Essere ingrado d'implementareuna versione sicura diun sito Web nonprotetto, generandochiavi e richiesta dicertificazione, einserendo chiavi ecertificati

Attivazione di mod_sslnella configurazione diFedora Core 3

Primo comando: larichiesta del certificatoper il server

Page 13: Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita di esse-re approfondita per gli aspetti relativi all’accesso ai ser- vizi di rete.

ITAdministrator - Sicurezza informatica Lezione 7C

merciali), si può dover modificare il file /etc/sysconfig/apa-che2 con l’inserimento della riga seguente:APACHE_SERVER_FLAGS="-D SSL"

e accertarsi che sia presente ssl nella riga:APACHE_MODULES="..."

Quindi, è necessario configurare la gestione di SSL al-l'interno di httpd.conf. Fra i parametri principali vi sono:SSLEngine onSSLRandomSeed startup builtin

e i parametri SSLCertificateFile e SSLCertificateKeyFile chedevono puntare ai due file <server>.crt e <server>.key (nel-l'esempio precedente: i file www.example.com.crt ewww.example.com.key).

In alcuni file di configurazione, la parte relativa a SSL èprotetta da una direttiva IfDefineSSL o IfDefine HAVE_SSL. Intali casi, il server deve essere eseguito con l'opzione –DSSLo –DHAVE_SSL. Su sistemi Unix, ciò può richiedere modifi-che del corrispondente file init, mentre in Windows può es-sere necessaria la modifica della chiave di registroHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Apache2.

Autenticazione con passwordSpesso si desidera che gli utenti di un sito Web siano au-

tenticati, almeno per accedere a parte del sito. In molti ca-si, tuttavia, essi sono utenti solo del servizio Web, non uten-ti del sistema. Si utilizza, quindi, un file di associazioni uten-te/password specifico per il server, da utilizzare solo perl'autenticazione HTTP. Non tutti i server Web offrono talepossibilità, che ha lo svantaggio di delegare al server, an-ziché al sistema operativo, il controllo dell'accesso al file.Facendo riferimento ad Apache, il modulo da installare di-pende dal tipo di database che s’intende utilizzare per ge-stire gli utenti: mod_auth utilizza il formato testo in chiaro,mentre più interessanti sono mod_auth_digest, che utilizzaun digest (hash) MD5, e mod_auth_ldap che utilizza un ser-ver LDAP.

Creazione di un file di utenti e passwordL'utility htpasswd permette di creare un file di password

adatto a essere utilizzato con Apache. Il comando:htpasswd –c –MD5 /etc/httpd/conf/passwd utente1

è un esempio (valido in Fedora Core) di come si può crea-re un nuovo file di password passwd (-c significa crea nuo-vo file) utilizzando l'hash MD5, e inserirvi l'utente utente1,per il quale viene chiesta la password.

Per maggiore flessibilità, è anche possibile creare grup-pi di utenti. Ad esempio si può creare un file/etc/httpd/conf/groups

in cui inserire gruppi di utenti nella forma:Gruppo1: utente1 utente2 utente3

A tal punto è possibile proteggere una directory inse-rendo, ad esempio, nel file di configurazione:<Location "/test1">AuthType Basic AuthName "Area di test 1"AuthUserFile /etc/httpd/conf/passwdAuthGroupFile /etc/httpd/conf/groupsrequire group Gruppo1</Location>

Così facendo, agli utenti che nel file /etc/httpd/conf/groups sono elencati per il gruppo Gruppo1 e che sono con-

tenuti nel file /etc/httpd/conf/passwd, viene presentatauna richiesta di autenticazione per "Area di test 1".

Per utilizzare la Digest Authentication anziché quella Ba-sic (che trasmette user e password in chiaro), è necessariomodificare AuthType da Basic a Digest. Basic e DigestAuthentication sono trattate nella RFC 2617.

Autenticazione SSL del clientL'autenticazione SSL del client è opzionale, e solitamen-

te assente, ma è possibile utilizzarla come meccanismo piùrobusto rispetto a quelli offerti da HTTP.

Per poter autenticare i client con SSL è necessario cheogni client autorizzato disponga di un proprio certificato,e che il certificato della corrispondente Certification Autho-rity sia installato sul server per la verifica. Si possono ac-quisire i certificati da un fornitore commerciale, ma è anchepossibile gestire in proprio (per esempio, nell'ambito diun'azienda) una CA per uso interno, tramite una versioneserver di Linux o di Windows. I passaggi necessari sono:1. creare una Certification Authority;2. installare il certificato della CA sul server e sui browser;3. creare e installare i certificati per gli utenti.

Tali operazioni sono possibili con un numero limitato dipassaggi. Tuttavia, non si deve sottovalutare la difficoltànella gestione dei certificati in un ambiente complesso, conmolti utenti e frequenti generazioni e revoche di certifica-ti. Si deve anche tenere conto della criticità della chiave pri-vata della CA, con la quale si possono generare certificativalidi per chiunque.

Creazione della Certification AuthorityPer creare una nuova CA su un server Linux, si può usa-

re l'utility CA.pl (uno script Perl), distribuita insieme aOpenSSL.

Il comando:CA.pl –newca

permette di eseguire i diversi passaggi necessari per lacreazione di una nuova CA. A tale scopo, esso utilizza i pa-rametri definiti nel file openssl.cnf, che possono essere per-sonalizzati prima di creare la CA. Se vengono usate le im-postazioni di default, la CA viene creata in una directorydemoCA.

Mediante tale operazione, si creano anche il certificatodella CA cacert.pem, e la corrispondente chiave privata pri-vate/cakey.pem, che verranno usati per firmare i certifica-ti degli utenti.

Installazione del certificato della CA sul server esul browser

Il comando:openssl x509 –in cacert.pem –out cacert.crt

prepara il certificato che deve essere pubblicato sul serverWeb e che sarà scaricato dai browser.

E' tuttavia necessario che venga inviato ai browser conil corretto tipo MIME (Multipurpose Internet Mail Extensions,uno standard per rappresentare vari tipi di dati binari sot-to forma di testo, usato non soltanto dai programmi di po-sta). A tale scopo, si può inserire la seguente istruzione inhttpd.conf:AddType application/x-x509-ca-cert.crt

Con Netscape/Mozilla è sufficiente scaricare il certifica-to per poterlo installare.

Con Internet Explorer, il certificato deve essere salvatosu disco; con un doppio clic sul file, viene attivata la pro-cedura d'installazione del certificato. E' poi preferibile atti-vare Strumenti > Opzioni Internet > Contenuto > Certificati >

PC Open www.pcopen.it176

5.7.6.4. Essere ingrado di configurareun sito Web perl'identificazione eautorizzazione deiclient tramitepassword in formatotesto

5.7.6.5. Essere ingrado di configurareun sito Web perl'identificazione eautorizzazione deiclient tramitecertificato, come inSSL V.3

Page 14: Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita di esse-re approfondita per gli aspetti relativi all’accesso ai ser- vizi di rete.

Lezione 7C IT Administrator - Sicurezza informatica

Autorità di certificazione fonti attendibili, selezionare il cer-tificato e verificare con Avanzate che le proprietà sianoquelle desiderate.

Per l'installazione sul server, basta copiare il certificatonella directory ssl.crt e aggiungere a httpd.conf la seguenteistruzione:SSLCACertificateFile conf/ssl.crt/cacert.crt

Creazione dei certificati per i client e per il serverLa creazione di nuovi certificati con la CA appena rea-

lizzata può avvenire con i due comandi:CA.pl –newreqCA.pl –sign

Il primo genera una richiesta di certificato nel file new-req.pem, mentre il secondo lo firma. Il nuovo certificato ècollocato in newcert.pem.

Per estrarre la chiave privata del server, viene usato ilcomando:openssl rsa –in newreq.pem –out server.key

(vedi anche l'esempio della sezione 5.7.6.3).Per disporre del certificato nel formato DER desiderato

(vedi 5.7.6.3), il comando è:openssl x509 –in newcert.pem –out server.crt –outformDER

Per preparare un certificato da importare in un client,dopo averlo firmato, è necessario produrre un oggetto informato PKCS12 (uno dei Public Key Cryptography Standardsdi RSA, che definisce come memorizzare chiavi private ecertificati con la protezione di una chiave simmetrica). Conil comando:CA.pl –pkcs12 newreq.pem

si produce un oggetto con estensione .p12 che può essereimportato nel client. Viene richiesta una passphrase perproteggere la chiave privata contenuta nel file. Va sottoli-neato che tale procedura per la creazione di certificaticlient espone la chiave privata, quindi deve essere usatasolo in contesti in cui tale fatto sia accettabile. In ogni ca-so, solo il comando CA.pl –sign deve essere eseguito dallaCA; gli altri sono preferibilmente eseguiti dall'utente. Un'al-ternativa è effettuare la richiesta online direttamente dalbrowser, per esempio tramite interfaccia Web (con Net-scape/Mozilla questo può essere ottenuto usando il tag key-gen all'interno di un form).

Configurazione del serverL'autenticazione del client viene controllata in Apache

dalla direttiva SSLVerifyClient. E' possibile utilizzarla sia glo-balmente, sia per singole aree. Ad esempio, il seguenteframmento di httpd.conf:SSLVerifyClient none<Directory /var/www/htm/logs>SSLVerifyClient requireSSLVerifyDepth 3SSLCACertificateFile /etc/httpd/conf/ssl.crt/cacert.crtSSLOptions +ExportCertDataSSLRequireSSLSSLRequire (%{SSL_CLIENT_S_DN_OU} in

{"gestione","audit"}\and %{TIME_WDAY} >=1 and %{TIME_WDAY} <=5\and %{TIME_HOUR} >=8 and %{TIME_HOUR} <=20)

</Directory>

indica che il sito non richiede autenticazione del client,tranne che per la directory /var//www/htm/logs, che è ac-cessibile solo via SSL. Per tale directory l'autenticazione èrichiesta, e sono ammessi solo utenti con un certificato va-

lido in cui l'Organization Unit (OU, vedi sezione 5.6.2, lezio-ne 6) sia gestione o audit e solo in orario di ufficio. I dati re-lativi al certificato client sono esportati e utilizzabili, adesempio, dagli applicativi CGI/SSI (Common Gateway Inter-face/Server Side Includes) come, ad esempio, un servizio diwebmail che può presentare la mailbox corretta in base alDN dell'utente (il Distinguished Name che indica univoca-mente un oggetto nella struttura di una directory).

In ambiente Windows, per esempio Windows Server2003, la creazione e configurazione di una CA richiede unaserie di passi eseguibili attraverso l'interfaccia grafica:1. configurazione del sistema operativo come domain ser-

ver2. installazione dei Certificate Services in Pannello di con-

trollo > Installazione applicazioni > Installazione compo-nenti di Windows. In tale fase, occorre dichiarare se la CAè root o subordinata, e se di tipo enterprise o standalone.

3. Configurazione della CA in Strumenti d'amministrazione >Certification Authority > selezione della CA > clic destro >Proprietà e relative sezioni.

4. Definizione delle politiche di rilascio dei certificati tra-mite un certificate template, ovvero un modello di rego-le che può essere scelto tra i tanti già pronti (per i vari ti-pi di utilizzo), o personalizzando uno di quelli standard.

5. Richieste di certificato, che possono avvenire in tre mo-di: auto-enrollment (autoiscrizione) senza interventoumano (una novità della PKI di Windows Server 2003; ri-chiede la configurazione di una group policy, o criterio digruppo); tramite la console certmgr.msc o tramite brow-ser (purché sia installato IIS sul server).

Un buon riferimento compatto sull'uso di Windows2003 è "Best Damn Windows Server 2003 Book Period" diSusan Snedaker, Syngres Publishing 2004.

PC Open www.pcopen.it177

Installazione di una CA inWindows Server 2003

Impostazione del databasedei certificati in WindowsServer 2003

Page 15: Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita di esse-re approfondita per gli aspetti relativi all’accesso ai ser- vizi di rete.

ITAdministrator - Sicurezza informatica Lezione 7C

Controllo degli accessiIl controllo degli accessi è un aspetto fondamentale in un

server Web. Il controllo minimo è impedire che vengano ri-chiesti documenti esterni all'area dedicata ai documentiche si intende pubblicare (solitamente una directory).

Il meccanismo che offre più garanzie da tale punto di vi-sta, almeno su sistemi di tipo Unix e nei casi in cui è utiliz-zabile, è l'uso di Change Root, chroot(). Grazie a esso, il si-stema non permette al processo di vedere il file system aldi fuori della directory indicata. Il meccanismo è abitual-mente utilizzato dai server FTP (File Transfer Protocol), espesso dai server di posta. Anche in caso di compromis-sione del server, il meccanismo non permette di raggiun-gere parti del sistema come i file di log o gli eseguibili deiprocessi di sistema, che fornirebbero il controllo dell'inte-

ro server. Tuttavia, l'efficacia di Change Root è limitataquando il processo controllato ha i privilegi di root e, co-munque, non impedisce di aprire connessioni di rete. Nelcaso dei server HTTP, inoltre, il meccanismo spesso non èutilizzabile perché le applicazioni CGI/SSI possono averenecessità di accesso ad ampie parti del sistema. In tali ca-si, si ritorna al controllo degli accessi fornito da:1. server HTTP per quanto riguarda i documenti forniti di-

rettamente;2. sistema operativo e controlli interni per quanto riguarda

gli applicativi CGI/SSI.I controlli messi a disposizione dai server HTTP più dif-

fusi offrono una certa flessibilità. E' comunque importantecapire a fondo la logica e il funzionamento di tali controlli:un impiego errato può esporre i dati ad accessi indebiti, ol'intero sistema può essere compromesso anche se tenutoaggiornato.

Proseguendo con l'esempio basato su Apache, l'accessopuò essere controllato in base ai seguenti fattori:1. autenticazione;2. indirizzo o dominio del mittente della richiesta;3. tipo di operazione (GET, PUT, POST, DELETE, i metodi –

l'equivalente di comandi – del protocollo HTTP, che èorientato agli oggetti; vedi RFC 1945).Il controllo di accesso può essere applicato a directory o

file. La configurazione dovrebbe essere definita, ogni voltache sia possibile, tramite direttive (tipicamente in sezioni<Directory>) del file httpd.conf, o di equivalenti file di confi-gurazione. Certe distribuzioni Linux utilizzano, infatti, unbreve httpd.conf che richiama, tramite Include, oltre una doz-zina di file specifici per i vari aspetti di configurazione.

Una soluzione alternativa, sconsigliata quando non siauna scelta obbligata, è l'uso dei file .htaccess all'interno del-le directory da controllare. In generale, i file .htaccess uti-lizzano la stessa sintassi dei file di configurazione princi-pali, e possono essere considerati come file di configura-zione distribuiti che agiscono sulla directory in cui sonocollocati più tutte le sottodirectory. Ciò che si può inserirenei file .htaccess è determinato dalla direttiva AllowOverri-de in httpd.conf, che permette (allow) che le direttive dei fi-le .htaccess prevalgano (override) su quelle centrali. L'usodi .htaccess può essere utile per il virtual hosting (creazionedi diversi siti Web all'interno di un sito fisico e di un domi-nio) e per modificare i controlli senza riavviare il server(per fargli rileggere httpd.conf). Tuttavia, un abuso di talepratica può far perdere il controllo di ciò che il server è ef-fettivamente autorizzato a pubblicare.

Una regola pratica è non usare mai i file .htaccess a me-no che non si possa accedere al (o ai) file centrali di con-figurazione, e l'amministratore non sia disposto a modifi-carli di frequente. Tutte le direttive utilizzabili nei file .htac-cess possono essere collocate nei file di configurazionecentrali.Le ragioni principali per non usare file .htaccess sono due:1. prestazioni: quando è presente un AllowOverride per

consentire l'uso di un .htaccess, Apache cerca in ogni di-rectory un file .htaccess, anche se non viene usato. Inol-tre, .htaccess è caricato ogni volta che un documento (co-me una pagina Web) viene richiesto. Per di più .htaccesssi applica anche alle sottodirectory, quindi Apache devecontrollare tutte le directory di livello superiore alla ri-cerca di un eventuale .htaccess.

2. Sicurezza: usando i file .htaccess si permette agli utenti dimodificare la configurazione del Web server, il che si puòtradurre in cambiamenti incontrollati. Perciò, prima diconcedere agli utenti tale privilegio (tramite AllowOver-ride), è bene considerare attentamente le opzioni. Po-trebbe anche accadere, tramite .htaccess, che agli utentivengano concessi meno privilegi di quanti siano neces-sari per la loro normale attività, creando problemi di sup-porto tecnico e di sicurezza (sia per la non disponibilitàdelle informazioni, sia per il rischio di adottare soluzio-

PC Open www.pcopen.it178

Configurazione della CA inWindows Server 2003

Scelta di un modello dipolicy (certificatetemplate) per il rilascio deicertificati

Richiesta di un certificatotramite la consolecertmgr.msc

5.7.6.6. Sapere qualetipo d'accesso suglioggetti d'una directorypuò essere controllatonei siti Web

Page 16: Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita di esse-re approfondita per gli aspetti relativi all’accesso ai ser- vizi di rete.

Lezione 7C IT Administrator - Sicurezza informatica

ni scorrette non conoscendo la reale causa del proble-ma).Come esempio, consideriamo l'uso di un file .htaccess

nella directory /www/htdocs/example contenente la se-guente direttiva (riguardante i formati di testo consentiti):AddType text/example .exm

La stessa direttiva può essere definita inserendo inhttpd.conf la seguente sezione:<Directory /www/htdocs/example>AddType text/example .exm</Directory>

Un esempio di utilizzo di .htaccess a scopo di autentica-zione è il seguente:1. inserire in httpd.conf la direttiva AllowOverride AuthConfig(senza la quale il file .htaccess non ha effetto)2. creare un file .htaccess con il seguente contenuto:AuthType BasicAuthName "Password Required"AuthUserFile /www/passwords/password.fileAuthGroupFile /www/passwords/group.fileRequire Group admins

La direttiva AllowOverride in httpd.conf permette di in-dicare per quali direttive prevale il file .htaccess. Ad esem-pio, l'indicazione AllowOveride FileInfo permette di far prevalere le direttive relative ai tipi di file,come AddEncoding o ErrorDocument.

I controlli per un oggetto sono definiti in httpd.conf tra-mite direttive <Directory>, <Location> (simile a Directory,ma con percorso relativo) e <File>. In un file .htaccess si pos-sono inserire le direttive ammesse per <Directory> o <Lo-cation>.

Oltre ai controlli di autenticazione già descritti, fra le nu-merose direttive sono importanti le seguenti:1. order: controlla in che ordine sono valutate le direttive al-

low e deny;2. allow: specifica quale richiedente può accedere a una da-

ta directory; il richiedente può essere all, un nome di do-minio, un indirizzo IP (anche parziale), una coppia indi-rizzo di rete/subnet mask e altro;

3. deny: come allow, salvo che specifica a chi è negato l'ac-cesso;

4. require: è utilizzata per il controllo utenti; può essere se-guita da user e da un elenco di utenti, group e da un elen-co di gruppi o da un più generico valid-user;

5. <Limit>: restringe l'effetto dei controlli di accesso ai meto-di HTTP elencati nella direttiva. Per esempio, la direttiva:

<Limit POST PUT DELETE>Require valid-user</Limit>

applica il controllo di accesso ai soli metodi POST, PUT eDELETE (utilizzati, rispettivamente, per inviare dati alserver, POST e PUT, oltre che per cancellarli). Per un'ap-plicazione CGI, può essere opportuno consentire il solometodo POST (con cui il client invia dati al server), nonpermettendo di scaricare codice dal server (metodoGET) per esaminarlo.

6. <LimitExcept>: le direttive di controllo accessi racchiusetra <LimitExcept> e </LimitExcept> si applicano a tutti imetodi HTTP, tranne quelli elencati negli argomenti, co-me nell'esempio:

<LimitExcept POST GET>Require valid-user</LimitExcept>

Configurazionedel controllo degli accessi

L'obiettivo di limitare gli accessi a specifiche directorypuò essere realizzato sia attraverso pratiche generali di

programmazione e di amministrazione, che limitino i con-tenuti e i diritti di accesso di file e directory, sia attraversoi file di configurazione relativi all'autenticazione di utenti eclient e relativi al Web server.

Riassumiano alcune modalità di configurazione del con-trollo degli accessi che sono state menzionate nei capitoliprecedenti.

Nel capitolo 5.7.6.4 abbiamo visto che si possono crea-re file di utenti/password e di gruppi di utenti, e che si puòproteggere una directory inserendo nel file di configura-zione di Apache una direttiva del tipo:<Location "/test1">AuthType Digest AuthName "Area di test 1"AuthUserFile /etc/httpd/conf/passwdAuthGroupFile /etc/httpd/conf/groupsrequire group Gruppo1</Location>

Così facendo, agli utenti che nel file /etc/httpd/conf/groups sono elencati per il gruppo Gruppo1 e che sono con-tenuti nel file /etc/httpd/conf/passwd, viene presentatauna richiesta di autenticazione per "Area di test 1".

Nel caso dell'autenticazione del client tramite SSL, nelcapitolo 5.7.6.5 abbiamo mostrato che l'autenticazione delclient viene controllata in Apache dalla direttiva SSLVerify-Client. Ad esempio, il seguente frammento di httpd.conf:SSLVerifyClient none<Directory /var/www/htm/logs>SSLVerifyClient requireSSLVerifyDepth 3SSLCACertificateFile /etc/httpd/conf/ssl.crt/cacert.crtSSLOptions +ExportCertDataSSLRequireSSLSSLRequire (%{SSL_CLIENT_S_DN_OU} in

{"gestione","audit"}\and %{TIME_WDAY} >=1 and %{TIME_WDAY} <=5\and %{TIME_HOUR} >=8 and %{TIME_HOUR} <=20)

</Directory>indica che il sito non richiede autenticazione del client,tranne che per la directory /var//www/htm/logs, che è ac-cessibile solo via SSL. Per tale directory, l'autenticazione èrichiesta e sono ammessi solo utenti con un certificato va-lido in cui l'Organization Unit (OU, vedi sezione 5.6.2, lezio-ne 6) sia gestione o audit e solo in orario di ufficio (da lu-nedì a venerdì, dalle 8 alle 20).

Nel capitolo 5.7.6.6 abbiamo visto che si può limitarel'accesso a directory e file con le direttive <Directory>, <Lo-cation> e <File> nel file di configurazione httpd.conf di Apa-che, e che tali direttive possono essere modificate da ana-loghe direttive inserite in un file .htaccess nella directory dacontrollare (o sua super-directory).

Per esempio, la direttiva:<Directory />

Order Deny, AllowDeny from all

</Directory>proibisce l'accesso al file system. Si possono aggiunge-

re appropriate direttive per consentire l'accesso a deter-minate directory, per esempio:<Directory /usr/users/*/public_html>

Order Deny, AllowDeny from all

</Directory><Directory /usr/local/httpd>

Order Deny, AllowDeny from all

</Directory>La direttiva <Location>, se usata, prevale su quella <Di-

rectory>. �

PC Open www.pcopen.it179

5.7.6.7. Essere ingrado d'applicare lecorrette limitazionid'accesso suspecifiche directorydi un sito Web

Page 17: Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita di esse-re approfondita per gli aspetti relativi all’accesso ai ser- vizi di rete.

Lezione 7C IT Administrator - Sicurezza informatica

GLOSSARIO3DES (Triple DES)Tripla applicazione del DES. L’algoritmo alla base di 3DESè lo stesso di DES, l’algoritmo più studiato e collaudato ditutti i tempi. 3DES è molto robusto e affidabile, ma è statoprogettato circa 30 anni fa ed è stato concepito perl’implementazione in hardware.AccountabilityVedi rendicontabilità.Accuratezzatutte le funzioni intese a garantire l’accuratezza delleinformazioni. AESPubblicato dal NIST nel 2001, è l’algoritmo richiesto perproteggere le informazioni riservate, ma non classificate,del governo statunitense. Nel 2003 il governo USA haautorizzato l’uso di AES per la cifratura di documenticlassificati fino al livello di secret con chiave di 128 bit e ditop secret con chiave di 192 o 256 bit. È previsto cherisulti sicuro per decenni a venire ed è utilizzabile senza ilpagamento di royalty.Affidabilità del serviziouna vasta categoria di contromisure, perché sono diversele aree che potrebbero compromettere l’affidabilità deiservizi informatici.Agentel’entità che mette in atto la minaccia viene chiamataagente. Esempi di agenti di minaccia sono un intrusocheentra in rete attraverso una porta del firewall, unprocesso che accede ai dati violando le regole di sicurezza,un tornado che spazza via il centro di calcolo o un utenteche inavvertitamente permette ad altri di vedere lepassword.Algoritmo (o cifrario)un insieme di regole logiche e matematiche usate nellacifratura e nella decifratura.Analisi del rischiosi classificano le informazioni e le risorse soggette aminacce e vulnerabilità e si identifica il livello di rischioassociato a ogni minaccia.Autenticitàgarantisce che eventi, documenti e messaggi venganoattribuiti con certezza al legittimo autore e a nessun altro. Beneun bene è qualsiasi cosa, materiale o immateriale, cheabbia un valore e debba quindi essere protetta.BS 7799Le linee guida BS 7799, oggi ISO/IEC 17799 e BS 7799-2,hanno una storia che risale agli inizi degli anni ’90, quandoil Dipartment of Trade and Industry britannico istituì ungruppo di lavoro con l’intento di fornire alle aziende lineeguida per la gestione della sicurezza delle informazioni. Nel1993 questo gruppo pubblicò il Code of practice forinformation security management, un insieme di buoneregole di comportamento per la sicurezza delleinformazioni.Business Continuity (talvolta chiamata business continuance) descrive iprocessi e le procedure che un’organizzazione mette inatto per assicurare che le funzioni essenziali rimanganooperative durante e dopo un disastro.Busta elettronicauna busta elettronica (digital envelope) consiste di unmessaggio che usa la cifratura simmetrica a chiavesegreta e una chiave segreta cifrata in modo asimmetrico.Qualunque messaggio formattato con CMS può essereincapsulato dentro un altro messaggio CMS, applicandoricorsivamente la busta elettronica. Ciò permette agliutenti di firmare una busta digitale, di cifrare una firmadigitale o di eseguire varie altre funzioni.CBC (Cipher Block Chaining)

uno dei principali cifrari a blocchi. Utilizza il blocco di testocifrato precedente e lo combina in XOR (OR esclusivo,un’operazione tra due bit che produce come risultato 1 se ibit sono diversi o 0 se sono uguali) con il bloccosuccessivo di testo in chiaro prima della cifratura. Il primoblocco è combinato in XOR con un Vettore diInizializzazione (IV, Initialization Vector), scelto con fortiproprietàdi pseudocasualità in modo che testi diversi producano lostesso testo cifrato.La decifratura funziona nel modo opposto: ogni blocco èdecifrato e combinato in XOR con il blocco precedente. Ilprimo blocco è decifrato e combinato in XOR con il vettored’inizializzazione.CEN (Comitato Europeo di Normalizzazione,www.cenorm.org)un organismo europeo composto dagli enti distandardizzazione dei paesi membri dell’Unione Europea edell’EFTA (European Fair Trade Association - tra cui l’UNIper l’Italia).CERT (Computer Emergency Response Team)(squadra di intervento per le emergenze informatiche) ha lamissione di operare con la comunità di Internet perfacilitare la risposta agli eventi riguardanti la sicurezzadegli host (i computer collegati a Internet), prendereiniziative per sensibilizzare la comunità sugli aspetti dellasicurezza e condurre ricerche rivolte a incrementare lasicurezza dei sistemi esistenti. CERT-CCil primo CERT (www.cert.org) è diventato il CERTCoordination Center (CERT-CC) ed è situato presso ilSoftware Engineering Institute, finanziato dal governo USAe gestito dalla Carnegie Mellon University di Pittsburg. Sifocalizza sulle violazioni alla sicurezza, allerta sulle nuoveminacce, reagisce agli attacchi (i cosiddetti incidents) efornisce assistenza, informazioni sulla vulnerabilità deiprodotti e istruzione con documenti e tutorial.Certification Authority (CA)la CA garantisce le chiavi pubbliche delle entità del propriodominio mediante l’emissione dei “certificati digitali” informato standard, contenenti: 1) una serie d’informazioni,tra cui il nome del titolare del certificato, la sua chiavepubblica, il periodo di validità del certificato e altreinformazioni che concorrono a identificare il titolare el’autorità che emette il certificato; 2) la firma digitale,apposta alle suddette informazioni utilizzando la chiaveprivata della CA.Chiavela sequenza segreta di bit che governa l’atto della cifraturao della decifratura.Chiave privatauna delle due chiavi usate nella crittografia asimmetrica. E’segreta e viene mantenuta in possesso del soloproprietario.Chiave pubblicauna delle due chiavi usate nella crittografia asimmetrica. E’pubblicamente disponibile a chiunque voglia comunicarecon il suo proprietario.Chiave segretala chiave usata nella crittografia simmetrica e comune siaal mittente sia al destinatario. Deve essere mantenutasegreta perché la sua conoscenza consente di decifrarequalsiasi messaggio cifrato alla fonte.Cifrare o cifratural’azione di trasformare i dati in formato illeggibile.Cifrario a blocchiopera sui dati un blocco alla volta (le dimensioni tipiche deiblocchi sono di 64 o 128 bit) e ogni operazione su unblocco è un’azione elementare.Cifrario a flussoopera invece un bit o un byte alla volta; una voltainizializzati con una chiave, producono un flusso di bit e si

PC Open www.pcopen.itG1

Page 18: Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita di esse-re approfondita per gli aspetti relativi all’accesso ai ser- vizi di rete.

ITAdministrator - Sicurezza informatica Lezione 7C

prestano alla cifratura di grandi quantità di dati.CMS (Cryptographic Message Syntax)il formato con cui sono codificati i messaggi creati conla cifratura asimmetrica è definito dallo standard PKCS #7Cryptographic Message Syntax (CMS). Altre proprietà delformato CMS sono: 1) gestisce la firma congiunta di piùfirmatari, 2) gestisce la firma per un numeroarbitrario di destinatari, 3) consente di aggiungere attributifirmati al messaggio, come la data e l’ora della firma, 4)consente di allegare al messaggio i certificati dei firmatari,agevolando la verifica della firma, 5) include gliidentificatori degli algoritmi crittografici utilizzati e glielementi che facilitano la decifratura e la verifica dellafirma.Common Criteria criteri standard di valutazione di applicabilità globale cheallinea i criteri di valutazione esistenti ed emergenti:TCSEC, ITSEC, il canadese CTCPEC (Canadian TrustedComputer Product Evaluation Criteria) e i criteri federaliUSA. Il progetto è stato sviluppato attraverso lacollaborazione degli enti nazionali di standardizzazione diStati Uniti, Canada, Francia, Germania, Regno Unito eOlanda. I benefici di questo sforzo comune comprendonola riduzione della complessità del sistema di valutazione,la disponibilità di un unico linguaggio per le definizioni eper i livelli di sicurezza e, a beneficio dei produttori, l’uso diun unico insieme di requisiti per vendere i prodotti sulmercato internazionale.Controllo degli accessile funzioni di sicurezza che verificano se il processo ol’utente, di cui è stata autenticata l’identità, ha il diritto diaccedere alla risorsa richiesta.Controllo del rischiovengono individuate le modalità che l’azienda intendeadottare per ridurre i rischi associati alla perdita delladisponibilità di informazioni e risorse informatiche e dellaintegrità e riservatezza di dati e informazioni.Contromisurele contromisure di sicurezza sono le realizzazioni e le azionivolte ad annullare o limitare le vulnerabilità e a contrastarele minacce.Contromisure di carattere fisicoQueste contromisure sono generalmente legate allaprevenzione e al controllo dell’accesso a installazioni,locali, attrezzature, mezzi di comunicazione.Contromisure di tipo proceduraledefiniscono passo per passo le operazioni per eseguire uncerto compito oppure regolano il comportamento degliutenti per gli aspetti che riguardano la sicurezza delleinformazioni e delle risorse. Contromisure di tipo tecnico informaticosono le contromisure realizzate attraverso mezzi hardware,firmware e software e prendono anche il nome di funzionidi sicurezza.Correttezzaè un attributo intrinseco di un prodotto (o componente oprocedura), che riflette il grado di corrispondenza tra leeffettive funzioni svolte dal prodotto e le sue specifiche.Criteri di valutazione della garanzia sono i metodi con cui viene valutata la fiducia che puòessere accordata aisistemi e ai prodotti informatici di sicurezza. Tra lepubblicazioni disponibili, le tre più significative sono i criteriamericani TCSEC (Trusted Computing Security EvaluationCriteria, 1985), i criteri europei ITSEC (Information SecurityEvaluation Criteria, 1991) e i criteri internazionali ISO/IEC15408, noti come Common Criteria e pubblicati nel 1999.Crittoanalisila pratica di ottenere il messaggio in chiaro dal messaggiocifrato senza disporre della chiave o senza scoprire ilsistema di cifratura.Crittografia

la scienza della scrittura nascosta (o segreta) chepermette di memorizzare e trasmettere dati in una formautilizzabile solo dagli individui a cui essi sono destinati.Crittografia asimmetricala chiave di cifratura è diversa da quella di decifratura.Detta anche crittografia a chiave pubblica.Crittografia simmetricala chiave di cifratura è la stessa usata per la decifratura, opossono essere derivate facilmente una dall’altra. Dettaanche crittografia a chiave segreta.Crittologialo studio della crittografia e della crittoanalisi.Crittosistemal’implementazione hardware o software della crittografia,che trasforma un messaggio in chiaro (plaintext) in unmessaggio cifrato (ciphertext) e poi di nuovo nelmessaggio in chiaro originario.CSIRT (Computer Security Incident ResponseTeam) squadre di intervento per gli incidenti di sicurezzainformatica coordinate dal CERT-Coordination Center.Custode dei datiha la responsabilità della manutenzione e della protezionedei dati.Decifrare o decifratural’azione di trasformare i dati in formato leggibile.DES (Data Encryption Standard)è l’algoritmo di cifratura più conosciuto ed è stato il primodi cui sono stati fornititutti i dettagli di implementazione. E’ stato incluso nellamaggioranza dei prodotti commerciali dotati di funzionalitàcrittografiche ed è stato usato dagli enti governativi. Peroltre un decennio, DES è stato considerato uno deglialgoritmi più efficaci ed efficienti, finché la NSA smise disupportarlo nel 1988, prevedendo la sua vulnerabilità afronte della crescita della potenza di calcolo dei computer.Digestvedi hash.Disaster Recoverynel contesto informatico, è la capacità di un’infrastrutturadi riprendere le operazioni dopo un disastro.Disponibilitàè il grado in cui le informazioni e le risorse informatichesono accessibili agli utenti che ne hanno diritto, nelmomento in cui servono. ECB (Electronic Code Book)un dei principali cifrari a blocchi. Ogni blocco di testo inchiaro viene trasformato in un blocco di testo cifrato. Lostesso blocco di testo, con la stessa chiave, producesempre lo stesso blocco di testo cifrato, il che consente aimalintenzionati di compilare un codice (code book) di tutti ipossibili testi cifrati corrispondenti a un dato testo inchiaro.Efficaciauna proprietà che mette in relazione la contromisura(prodotto, procedura o altro) con il contesto in cui èutilizzata, in particolare le vulnerabilità, la gravità e laprobabilità di attuazione delle minacce.ETSI (European Telecommunications Standards Institute)un’organizzazione europea indipendente, riconosciuta dallaCommissione Europea e dall’EFTA. Ha sede a SophiaAntipolis (Francia) ed è responsabile per lastandardizzazione delle tecnologie informatiche e dicomunicazioni (ICT) in Europa.Firma digitaleUna firma dev’essere difficile da falsificare, non ripudiabile(non può essere cancellata o disconosciuta), inalterabile(dopo l’apposizione della firma, non deve essere possibilemodificare il documento) e non trasferibile (da undocumentoa un altro). La firma digitale si basa sulla cifraturaasimmetrica di un hash o digest calcolato sul contenutodel documento o messaggio.

PC Open www.pcopen.itG2

Page 19: Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita di esse-re approfondita per gli aspetti relativi all’accesso ai ser- vizi di rete.

Lezione 7C IT Administrator - Sicurezza informatica

FIRST (Forum for Incident Response and Security Teams)I CERT o CSIRT delle varie nazioni sono collegati in unastruttura internazionale, il FIRST, che permette la rapidacondivisione delle informazioni utili a fronteggiare minaccee attacchi.Funzionalitàapplicato alla sicurezza, conserva il significato generaleche ha in altri settori; è l’insieme di ciò che un prodotto oun sistema informatico fornisce in relazione alla protezionedelle informazioni e, di riflesso, delle risorse e dei serviziinformatici.Funzioni di sicurezzaVedi contromisure di tipo tecnico informatico.Garanziaconcetto introdotto da chi si occupa di sicurezza peresprimere il grado in cui l’implementazione di unafunzionalità riduce una vulnerabilità o la possibilità diattuazione di una minaccia.Gestione del rischionella gestione del rischio si possono individuare due fasidistinte.1) Analisi del rischio. 2) Controllo del rischio. Hashun numero binario di lunghezza fissa, ricavato da un input(file, messaggio, blocco di dati eccetera) di lunghezzavariabile, che funge da “impronta” del dato di partenza.HMACUn tipo speciale di MAC specificato nella RFC 2104. HMACè anch’essa una funzione keyed hash, ma in realtàcostituisce un keyed hashall’interno di un keyed hash.IAB (Internet Architecture Board) un gruppo tecnico consultivo della Internet Society,responsabile della selezione dello IESG, della supervisionedell’architettura, della supervisione del processo distandardizzazione e della procedura di appello, della seriedelle RFC (Request For Comment), dei collegamenti esternie di consiglio all’ISOC.IANA (Internet Assigned Numbers Authority) mantiene le funzioni di coordinamento centraledell’Internet globale nel pubblico interesse. La IANAcustodisce i numerosi parametri e valori di protocollo unicinecessari per il funzionamento di Internet e per il suosviluppo futuro.ICANN (Internet Corporation for Assigned Names andNumbers)azienda non-profit che fu creata per assumere laresponsabilità dell’attribuzione degli spazi d’indirizzamentoIP, dell’assegnazione dei parametri dei protocolli, dellagestione del sistema dei domini e della gestione delsistema dei server root, funzioni che in precedenza eranoeseguite, sotto contratto con il governo USA, dalla IANA eda altre entità. È l’autorità per l’assegnazione dei nomi didominio a livello globale.Identificazione e autenticazioneLe funzioni di questa categoria servono a identificare unindividuo o un processo e ad autenticarne l’identità. IESG (Internet Engineering task Group) è responsabile della gestione tecnica delle attività dell’IETFe del processo di standardizzazione di Internet. Comeparte dell’ISOC, amministra tale processo secondo leregole e le procedure che sono state ratificate dai fiduciaridell’ISOC. Lo IESG è direttamente responsabile delle azioniassociate all’avvio e alla prosecuzione dell’iter distandardizzazione, inclusa l’approvazione finale dellespecifiche come Standard Internet. Lo IESG coordina eapprova gli standard tecnici.IETF (Internet Engineering Task Force)una vasta comunità internazionale di progettisti, operatori,produttori e ricercatori nel campo del networking,interessati all’evoluzione dell’architettura di Internet eall’affidabilità del suo funzionamento.Impatto

è la conseguenza dell’attuazione di una minaccia.Integritàè la fedele conservazione del contenuto originario di undocumento archiviato o trasmesso in rete, attestata dastrumenti che segnalano se il documento ha subitoalterazioni.Internet Society – ISOC un’organizzazione privata senza fini di lucro che riunisceprofessionisti nel mondo del networking e che ha lamissione di garantire il continuo funzionamento di Internete il suo potenziamento.IRTF (Internet Research Task Force) ha la missione di promuovere attività di ricerca chepossano contribuire in modo significativo al futuro sviluppodi Internet. Opera creando gruppi di ricerca focalizzati suiseguenti temi: protocolli, applicazioni, architettura etecnologia.ISO (International Organization for Standardization)la maggiore organizzazione internazionale distandardizzazione e comprende gli enti distandardizzazione nazionali di 146 paesi (l’UNI è il membroitaliano).ISO/IEC 17799 una serie di linee guida e di raccomandazioni compilata aseguito di consultazioni con le grandi aziende. I 36 obiettivie le 127 verifiche di sicurezza contenuti nel documentosono suddivisi in 10 aree, o domini, riportati nel riquadroA, II dieci domini formano una piramide che scende dallaprospettiva organizzativa (1, 2, 3, 4, 9, 10) verso quellaoperativa (6, 7, 8), con inclusi gli aspetti tecnici (5).ITSEC (InformationSecurity Evaluation Criteria)il primo tentativo di stabilire un unico standard divalutazione degli attributi di sicurezza da parte di moltipaesi europei.ITU (International Telecommunication Union)un’organizzazione internazionale, nell’ambito dell’ONU,dove governi e settore privato coordinano le reti e i serviziglobali di telecomunicazioni. Ha sede a Ginevra ecomprende i settori ITU-T (standardizzazione), ITU-R(radiocomunicazioni) e ITU-D (sviluppo).Keyed hashingFar dipendere l'hash del messaggio da una chiave segreta.Il keyed hashing viene usato nella crittografia simmetricaper produrre i codici MAC utilizzati per autenticare imessaggi e garantirne l’integrità.Keyspace(spazio delle chiavi) l’insieme di tutti i possibili valori cheuna chiave può assumere.MAC (Message Authentication Code)un hash calcolato su un messaggio con l’aggiunta di unachiave segreta condivisa, usato per verificare all’altro capodella comunicazione l’integrità del messaggio.MIME (Multipurpose Internet Mail Extensions)è lo standard che specifica come devono essere trasferiti idati multimediali e gli allegati di e-mail.Minacciaè un’azione potenziale, accidentale o deliberata, che puòportare alla violazione di uno o più obiettivi di sicurezza.Non ripudioimpedisce che un evento o documento possa esseredisconosciuto dal suo autore. Norme e linee guida segnaliamo le linee guida ISO/IEC 13335 e le norme BS(British Standard) 7799.Norme funzionali sono relative ai prodotti e hanno lo scopo principale diricercare l’interoperabilitàdei prodotti informatici. Coprono argomenti quali iprotocolli di comunicazione, il formato dei dati (peresempio in un certificato digitale o in una smartcard) ecosì via.

PC Open www.pcopen.itG3

Page 20: Impedire gli accessi non autorizzati in rete · ta nella terza lezione alla sezione 5.3.6, merita di esse-re approfondita per gli aspetti relativi all’accesso ai ser- vizi di rete.

ITAdministrator - Sicurezza informatica Lezione 7C

Obiettivigli obiettivi di sicurezza sono il grado di protezione che siintende predisporre per i beni, in termini di disponibilità,integrità e riservatezza.PGP (Pretty Good Privacy)un programma di sicurezza per la posta elettronicarealizzato da Phil Zimmermann e pubblicato inizialmentenel 1991 come freeware. Le funzionidi PGP sono: firma digitale, cifratura dei messaggi,compressione, conversione in ASCII (in base 64) esegmentazione dei messaggi; di queste, le prime duerientrano nel contesto delle applicazioni crittografiche.PKCS (PublicKey Cryptographic Standard) comprende un’intera serie di standard che hannol’obiettivo di agevolare l’implementazione delle tecnologiePKI (per esempio, PKCS #1 descrivelo standard di cifratura RSA). PKCS #7 specifica i formatibinari usati per la firma digitale e per la “bustaelettronica”. Lo standardPKCS #7 è stato adottato dall’IETF nella RFC 2315,aggiornatadalla RFC 2630.Politica di sicurezzaè un documento sintetico in cui il management superiore,o un comitato delegato allo scopo, delinea il ruolo dellasicurezza nell’organizzazione o in un suo aspettoparticolare. Privacyconsiste nella salvaguardia dei dati privati degli utenti,anche in conformità alla legge 196/2003 sulla protezionedei dati personali.Proprietario dei datiun membro del management superiore, il massimoresponsabile della protezione delle informazioni e dellasicurezza in generale.Recovery Point Objective (RPO) il momento nel tempo a cui il sistema è riportato.Recovery Time Objective (RTO)il lasso di tempo che intercorre prima di ripristinarel’infrastruttura.Rendicontabilità (accountability)le funzioni che permettono di attribuire la responsabilitàdegli eventi agli individui che li hanno causati.RischioConcettualmente, il rischio è la possibilità che si verifichiun evento dannoso ed è tanto maggiore quanto è fortel’impatto causato dall’evento e quanto è alta la probabilitàche esso si verifichi.Riservatezzaconsiste nel limitare l’accesso alle informazioni e allerisorse informatiche alle sole persone autorizzate e siapplica sia all’archiviazione sia alla comunicazione delleinformazioni.Riutilizzo degli oggettile funzioni che permettono di riutilizzare oggetti contenentiinformazioni riservate: supporti magnetici, supporti otticiriscrivibili, aree di memoria RAM, zone di memoria deiprocessori (registri, cache, ecc.), buffer di periferiche esimili.S/MIME (Secure/Multipurpose Internet Mail Extensions)è un protocollo che aggiunge la cifratura e la firmaelettronica ai messaggi MIME descritti nella RFC 1521(Mechanisms for Specifying and Describing the Format ofInternet Message Bodies).Scambio dati sicurole funzioni destinate a garantire la sicurezza delletrasmissioni. Il modello OSI Security Architecture (ISO7498-2) le classifica nelle seguenti sottoclassi:autenticazione, controllo dell’accesso, riservatezza,integrità (dell’hardware, dei dati e dei flussi di pacchettitrasmessi sia in modo connectionless, come UDP, sia

connection-oriented, come TCP, anche ai fini della correttasequenza dei pacchetti) e non ripudio.Secure Shell (SSH)un protocollo per realizzare un collegamento remoto sicuroda un computer a un altro attraverso una rete insicura.Supporta il login remoto sicuro, il trasferimento sicuro difile e l’inoltro sicuro del traffico di tipo TCP/IP e X Window.SSH è in grado di autenticare, cifrare e comprimere i datitrasmessi.Secure Sockets Layer (SSL) è un protocollo per la protezione di un canale dicomunicazione attraverso una rete e funziona allo strato ditrasporto, tra i protocolli di trasporto e di applicazione.Come altri protocolli di sicurezza di rete, SSL utilizza lacrittografia simmetrica e asimmetrica e le funzioni di hashper fornire l’autenticazione del server (e in opzione anchedel client), la cifratura dei messaggi e l’integrità dei dati.Sicurezza attivale misure di sicurezza che proteggono le informazioni inmodo proattivo, in modo cioè da anticipare e neutralizzare iproblemi futuri. Questo viene ottenutonon solo impedendo agli estranei di accedere alleinformazioni (sicurezza passiva o difensiva), ma rendendole informazioni intrinsecamente sicure a livello applicativo,proteggendone la riservatezza (confidentiality, chiamataanche confidenzialità), l’integrità e l’autenticità.Sicurezza passivaun approccio fondamentalmente difensivo o passivo, chevaluta quali rischi accettare, quali delegare a terzi e qualicontrollare, riducendoli o azzerandoli.TCSEC (Trusted Computing Security EvaluationCriteria)un sistema per valutare la funzionalità e garanzia di unprodotto, usato soprattutto negli USA e descritto nelcosiddetto Orange Book, un volume dalla copertinaarancione. Serve per valutare sistemi operativi,applicazioni e prodotti di vario genere. Testo cifrato (ciphertext)dati in forma cifrata o illeggibile.Testo in chiaro (plaintext o cleartext)dati in forma leggibile o intelligibile.TLS (Transport Layer Security) un protocollo definito dall’IETF nella RFC 2246, simile aSSL, ma con differenze soprattutto negli algoritmicrittografici utilizzati.UNINFOuna libera associazione a carattere tecnico, con lo scopo dipromuovere e di partecipare allo sviluppo della normativanel settore delle tecniche informatiche. L’UNINFO èassociato all’UNI, l’ente nazionale italiano di unificazione(www.uni.com/it) e rappresenta l’Italia presso CEN e ISO.Verifica (audit)le funzioni che registrano gli eventi in un file di logging, coninformazioni riguardo a errori e a violazioni di sicurezza.Vulnerabilitàuna vulnerabilità è un punto debole del sistemainformatico (hardware, software e procedure) che, secolpito o sfruttato da una minaccia, porta alla violazione diqualche obiettivo di sicurezza.Work factor (fattore di lavoro)il tempo, lo sforzo e le risorse che si stimano necessariper violare un crittosistema.

PC Open www.pcopen.itG4