Claudio Telmon claudio@telmon.org Frodi aziendali e sicurezza IT Giornata di studio AIEA Roma, 21 novembre 2001 Claudio Telmon claudio@telmon.org
Gli obbiettivi della sicurezza Riservatezza Integrità Disponibilità Autenticazione e log? Cosa significa “proteggere il sistema informativo”? Gli obbiettivi classici della sicurezza dei dati sono: la riservatezza: solo chi è autorizzato può leggere i dati l’integrità: solo chi è autorizzato può modificare i dati la disponibilità: i dati sono disponibili ai legittimi utenti quando questi ne hanno bisogno. L’autenticazione e i log sono stati finora strumenti, ma adesso sono a volte dei requisiti di legge. Cosa significa quindi proteggere un sistema informativo? Cosa offre un prodotto quando “protegge” un sistema?
Principi fondamentali Valutazione del rischio Fiducia (utenti, sistemisti…) Compartimentazione Ridondanza e difesa “in profondità” Quando si affronta la sicurezza di un sistema ci sono alcuni principi fondamentali che sono particolarmente importanti ed utili per ottenere una buona protezione. Non hanno a che fare con la scelta del prodotto ma con una buona progettazione. La valutazione del rischio è importante perché ci permette di dare il giusto peso alle possibili minacce, in modo da investire dove è effettivamente utile. Ci permette anche di capire qual è il rischio residuo, e quindi di capire su cosa siamo rimasti scoperti. Ci si fida sempre di qualcuno. L’importante non è non fidarsi, ma capire di chi ci si fida e perché. Ognuna di queste persone potrebbe abusare del suo ruolo; quanto siamo in grado di controllare le loro azioni? In ogni sistema ci sono parti con maggiore o minore criticità, e con funzioni diverse. Separare questi sottosistemi permette di evitare che la compromissione di uno, più debole, porti alla compromissione di uno più critico. Nessun meccanismo è perfetto. Nessuno si stupisce che un’automobile abbia anche il freno di emergenza, ma quando si tratta di spendere per sistemi che svolgono una funzione già coperta da altri, in sicurezza, giustificare l’investimento è sempre una cosa difficile; di solito invece il processo è quello opposto, si tende a sfrondare.
Cosa è cambiato nei sistemi? Il confine fra il proprio sistema informativo e l’esterno è sempre più sfumato I sistemi sono in perenne “beta test” Le tecnologie, i protocolli e i servizi anche Le aziende, che sia per una loro scelta o per non rimanere indietro rispetto alla concorrenza, hanno aperto il loro sistema informativo sia al pubblico che ad altre aziende, a volte anche concorrenti. Il confine del sistema informativo è diventato sfumato, rendendo più difficile imporre e controllare i propri criteri di sicurezza. Fra housing, outsourcing e simili spesso è più il controllo che hanno altri sui sistemi di quello che ha l’azienda. Gli SLA, che pure devono fare ancora molta strada, permettono solo di protestare dopo che c’è stato il danno, posto che lo si riconosca. I fornitori di software sono nella stessa condizione di pressione per il rilascio di nuovi prodotti, che quindi sono in un perenne beta test sulla pelle degli utenti. Anche le applicazioni sviluppate in casa hanno tempi stretti e spesso sono obsolete e sostituite prima ancora che il progetto sia completato. Anche le competenze spesso sono approssimative, perché nuove tecnologie e linguaggi sostituiscono continuamente quelli precedenti In questo clima di incertezza, mancano molti presupposti della sicurezza sono difficili da ottenere, vengono quindi messe continuamente toppe in sistemi dei quali nessuno, alla fine, ha una comprensione completa.
Cosa è cambiato negli attacchi? Tempi brevi, sia fra la scoperta della vulnerabilità e l’attacco, sia nella realizzazione dell’attacco Anonimato Irraggiungibilità dell’attaccante Metodicità delle ricerche dei bersagli Quando viene scoperta una nuova vulnerabilità (e quando viene pubblicata e non sfruttata “in proprio”, passano a volte pochi minuti prima che venga sfruttata per attaccare i sistemi. Gli attacchi possono avvenire in forma assolutamente anonima se avvengono attraverso reti come Internet, e anche se l’attaccante viene identificato, spesso non è praticamente possibile nessuna azione. A questo si aggiunge il fatto che la validità dei dati che possono dimostrare il legame fra il danno e l’attaccante può essere facilmente messa in discussione. A volte si sente ancora qualcuno che spera nel poco interesse suscitato dai propri sistemi, o nella “segretezza” di indirizzi e porte per evitare gli attacchi. Di fatto sulle reti pubbliche indirizzi e porte vengono verificati metodicamente alla ricerca di sistemi o servizi deboli. Bisogna anche ricordare che i dati di un sistema infromatico possono essere in generale modificati in ogni momento, a differenza dei documenti cartacei la cui manipolazione può essere in generale riconosciuta. Questo vuole dire che possono essere creati, modificati, cancellati senza che di questo rimanga traccia. Anche i log possono essere e vengono effettivamente modificati e cancellati, tanto che è difficile dimostrarne l’affidabilità in caso di contenzioso. Meccanismi come la firma digitale aiutano nei limiti in cui la chiave utilizzata è protetta.
Strumenti automatici La competenza necessaria per l’attacco è racchiusa nello strumento Il comportamento delle singole persone è più critico Persone senza competenze tecniche possono diventare pericolose Possono cambiare le tipologie di attaccanti L’attacco a sistemi informativi può avvenire, e avviene, sempre più con strumenti che realizzano l’attacco in modo automatico. La realizzazione di questi strumenti può aver richiesto competenze notevoli e la conoscenza del sistema attaccato, ma nel momento in cui sono realizzati e resi disponibili possono essere utilizzati da chiunque. Questo, insieme ad altro, ha ridotto la distanza fra varie tipologie di delinquenza, che non possedeva le conoscenze tecniche necessarie, e chi le conoscenze le aveva ma non era orientato ad azioni di criminalità in senso tradizionale. Dobbiamo quindi aspettarci attacchi anche sofisticati non solo dall’hacker genialoide con le sue motivazioni più o meno discutibili, ma anche da semplici delinquenti. L’impiegato disonesto, il truffatore, il taglieggiatore si possono trovare così ad avere strumenti che mai sarebbero riusciti a realizzare
Strumenti per la protezione dei sistemi Firewall: controllano il perimetro di una rete selezionando il traffico ammesso IDS: esaminano il traffico o le attività e “riconoscono” quelle illegittime VPN: cifrano e autenticano il traffico fra due sottoreti Strumenti per l’autenticazione: certificati, smart card, biometrici ACL, log, integrity check… Esistono numerosi strumenti che, se correttamente utilizzati, possono essere di grande aiuto nella protezione di reti e sistemi. Ognuno ha i suoi usi e i suoi limiti, e nessuno è una panacea.
La sicurezza non è un prodotto Analisi/ progettazione Assesment dell’esistente Verifica Gestione/ manutenzione Realizzazione Comprare e installare prodotti non basta: la sicurezza è molto più un problema di gestione, un processo di continua verifica e aggiornamento delle difese. Un sistema lasciato a se stesso per alcuni mesi ha ottime probabilità di diventare vulnerabile
Limiti dei prodotti I prodotti non sono tutti uguali, ma è difficile capire in cosa differiscono I report dei prodotti non sono mai esaustivi, e non danno risposte si/no: vanno interpretati Per quanto “trasparenti”, interferiscono sempre con le altre attività; la configurazione è spesso un compromesso Alla fine ci sono sempre dei canali “fidati”; chi è cosa c’è all’altra estremità? Le presentazioni commerciali dei prodotti li fanno sembrare tutti uguali, con al più la distinzione delle prestazioni o dell’interfaccia di gestione, ma non è così, anche se le differenze sono difficili da valutare; comunque “mettere un firewall” può voler dire molto poco a seconda dell’attacco dal quale ci si vuole difendere I log e report di questi strumenti spesso sono tutt’altro che ovvi da interpretare: una violazione di una regola o un warning corrispondono a un attacco, a un evento casuale, a un guasto o cosa? E come avere maggiori dettagli? Tutti questi strumenti finiscono per interferire sia con i servizi che con il comportamento degli utenti; per questo spesso non sono nella configurazione “più sicura” ma in quella “più accettabile” Tutti questi strumenti danno fiducia ad alcuni utenti/sistemi/servizi: quanto spesso questa fiducia è stata realmente valutata?
Cosa un firewall non può fare Senza una politica, un firewall serve a poco I firewall servono a poco contro insider che possono comunicare con Internet Il content filtering è spesso più una buzzword che una realtà Un firewall commerciale non può sapere cosa va la vostra applicazione basata su Web Prima si decide cosa può passare fra due reti e perché, poi si sceglie un prodotto adatto; comprare un “buon firewall” e poi mettere dei filtri che permettano il traffico in essere non è un buon metodo, e fra i tanti difetti non dice come trattare le nuove esigenze. I firewall lasciano comunque passare del traffico; un insider può sempre codificare informazioni su quei canali, quindi i firewall hanno una utilità limitata nel controllare gli utenti interni Di content filtering si parla molto, ma non bisogna illudersi: quello che riesce a controllare del traffico ammesso in un prodotto standard è molto poco Un’applicazione basata su web ha una tipologia di traffico specifica ed errori specifici: un firewall non può sapere quali sono, e quindi ha poco controllo
Cosa un IDS non può fare Gli IDS di solito se la cavano male con gli attacchi nuovi, a causa dell’equilibrio fra falsi positivi e falsi negativi Gli IDS se la cavano male con gli slow scan e attacchi Gli IDS risentono dei picchi di traffico e della frammentazione Gli IDS non riconoscono il traffico illegittimo che sembra legittimo Un IDS commerciale non può prevedere il traffico della vostra applicazione su Web Gli IDS hanno la necessità di non segnalare troppi falsi positivi, pena la perdita di fiducia dell’utente; questo li costringe a riconoscere comportamenti molto precisi, e quindi sono in difficoltà con pattern nuovi. Negli IDS è importante per certi attacchi il concetto di soglia; restare sotto quella soglia permette di non far scattare gli allarmi. All’opposto, sovraccaricare un IDS permette di non far capire cosa succede se non che ‘è un attacco. Un IDS riconosce traffico che notoriamente è pericoloso, ma non è in grado di sapere se su un canale legittimo sta transitando traffico illegittimo, a parte gli exploit noti. Neppure gli IDS, come i firewall, possono sapre cosa accetta e cosa non accetta la nostra applicazione basata su web.
Cosa una VPN non può fare Le VPN non proteggono i servizi pubblici (ma si possono usare per gestirli) Se un nodo è compromesso (un laptop, un PC di un sistemista) la VPN è spesso un ottimo canale per raggiungere le risorse critiche Gli IDS e le VPN lavorano male, e anche i firewall possono avere problemi Le VPN proteggono connessioni autenticate, e quindi servono poco per proteggere gli accessi pubblici (anche se sono utili per proteggere le connessioni per la gestione). Le VPN costituiscono delle sottoreti virtuali all’interno delle quali generalmente i vincoli sono minori. Se un nodo è compromesso, fisicamente o perché comunica con l’esterno, permette di accedere a quella sottorete ed ai suoi minori vincoli. Le VPN cifrano generalmente il traffico, e quindi gli altri strumenti che hanno bisogno di lavorare su quel traffico, IDS e firewall, possono avere problemi a fare il loro lavoro
Patching: una continua rincorsa Nuovi “bachi” vengono scoperti continuamente in sistemi operativi e applicazioni Sfruttarli è spesso immediato Correggerli richiede giorni, applicare le patch immediatamente non è possibile o opportuno C’è sempre una finestra di vulnerabilità Alla pubblicazione di un bug segue spesso di poche ore o pochi minuti la pubblicazione di un programma per sfruttarla (in ogni caso il programma può essere realizzato anche se non viene pubblicato). La realizzazione della patch/hotfix invece è più lenta, anche nei casi migliori passa almeno una giornata, e ancora più tempo passa prima che anche i sistemisiti più attenti la applichino. C’è sempre quindi una finestra di tempo in cui la vulnerabilità può essere sfruttata: patchare i sistemi, per quanto necessario, non è una soluzione. Da questo punto di vista sono fuorvianti i penetration test, che ci dicono lo stato del sistema, ma non ci dicono in che stato sarà appena sarà scoperta la prossima vulerabilità.
Niente sopperisce al monitoraggio e controllo dei sistemi Se il firewall non protegge la nostra applicazione Web L’IDS non scopre i nuovi attacchi La VPN non protegge i servizi pubblici E le patch arrivano tardi Niente sopperisce al monitoraggio e controllo dei sistemi Se nessuno di questi strumenti è una panacea, siamo indifesi? No: questi strumenti, se correttamente utilizzati riducono di molto il rischio, ma comunque il corretto utilizzo comprende sempre il monitoraggio e l’esame delle informazioni che forniscono, nonché il loro adeguamento alle novità, sia in termini di attacchi che, ad esempio, di servizi utilizzati sulla rete. Il controllo rimane comunque lo strumento più importante per la protezione delle reti.
“You can’t solve social problems with software” - M. J. Ranum Gli strumenti tecnici aiutano a imporre una politica di sicurezza e a verificarne il rispetto, ma se gli utenti non intendono ripsettarla trovano sempre il modo di aggirarla, e non è con il software che si risolvono questi problemi. Se non si ha un controllo sufficiente sul comportamento degli utenti legittimi (ad esempio perché sono convinti dell’utilità delle misure di sicurezza) difficilmente si otterrà la sicurezza desiderata.
Social engineering Consiste nel convincere qualcuno a svolgere per noi un’operazione che non dovrebbe essere fatta Non è possibile proteggersi con soli strumenti tecnici Funziona bene nelle grosse organizzazioni Esempi: I Love You accesso alle password Spesso l’anello più debole della catena è l’utente. Sia per disinformazione, per paura, per curiosità, o per trascuratezza, è spesso possibile convincerlo a fare per l’attaccante cose che questi non potrebbe fare. Questo è particolarmente critico per le frodi, che prevedono attacchi più mirati. Non è questione di strumenti tecnici, ma ancora una volta di educazione degli utenti e di controllo.
La politica di sicurezza Deve essere chiara a chi la deve rispettare L’utente si deve sentire tutelato dalla dirigenza se rispetta la politica Non può essere demandata al sistemista come semplice progettazione “tecnica”, perché comporta delle scelte e dei costi che influenzano tutto il sistema informativo La politica deve essere realistica e rispettata Oltre a uno strumento di pianificazione indispensabile, la politica di sicurezza è il vero strumento per il controllo degli utenti. Per esserlo tuttavia deve essere chiara e realistica, e deve esserne controllato il rispetto. È anche importante che l’utente si senta tutelato quando la rispetta, e quindi deve essere approvata ed effettivamente sostenuta dalla dirigenza. La politica di sicurezza non è una scelta puramente tecnica, e quindi non è opportuno farla decidere al sistemista, perché le regole influenzano diversi aspetti dell’uso del sistema informativo, che a loro volta incidono sulle attività che gli utenti possono svolgere. Peggio ancora è ricavare la politica dalle regole del firewall, a loro volta ricavate dal traffico esistente.
Autenticazione Serve ad associare agli utenti i diritti sulle risorse Serve a sapere chi ha svolto quali operazioni A volte è un requisito di legge Quanto protegge i nostri sistemi? Quanto protegge i sistemi pubblici? E se un utente autenticato viola i sistemi cosa facciamo? L’autenticazione è uno strumento importante, perché permette di associare i giusti diritti agli utenti. Ultimamente i prodotti per l’autenticazione vengono presentati come una soluzione definitiva ai problemi di sicurezza. Per quanto strumenti importanti, hanno i loro limiti, primo fra tutti il fatto che sostanzialmente si basano sull’ipotesi il sistema funzioni correttamente, che l’informazione di autenticazione sia protetta e che gli utenti si comportino correttamente. Al di là dell’efficacia o meno dell’azione preventiva, si potrebbe pensare che abbiano il vantaggio di poter, casomai, individuare e perseguire il malintenzionato; questo aspetto dipende però più da questioni legali e di contratto che dallo strumento tecnico.
Strumenti per l’autenticazione Si autentica: qualcosa che si sa: PIN, password, codici vari qualcosa che si ha: smart card, tessere ecc. qualcosa che si è: valori biometrici Scopo di questi strumenti è sempre di legare l’informazione di autenticazione al soggetto, in modo che non possa essere falisficata, duplicata o trasferita Si tende ad associare più di un tipo Lo scopo degli strumenti per l’autenticazione è legare un’informazione di autenticazione a un utente. Di fatto l’autenticazione è sempre legata ad uno strumento utilizzato per raccogliere e trasmettere l’informazione. Per ridurre i rischi, si tende ad associare più tipi diversi di strumenti (tessera e pin, tessera e lettura biometrica, lettura biometrica e pin).
Autenticazione con chiave pubblica Si basa sulla segretezza della chiave pubblica L’utente non ricorda la chiave pubblica, ma un PIN per sbloccarla A seconda di dove è memorizzata la chiave, l’autenticazione si riduce quindi alla segretezza del PIN e ad un sistema Con utenti “roaming” l’effetto è peggiore Sono sempre più diffusi strumenti centralizzati per la gestione degli utenti e della loro autenticazione mediante chiave pubblica (certificati); spesso gli strumenti offrono funzionalità di roaming degli utenti. In questo caso, quello che autentica realmente l’utente è solo il nome utente e il pin utilizzati per sbloccare il certificato: molta della sicurezza ottenuta è fittizia. Questo è vero per tutti i sistemi in cui l’utente di fatto fornisce solo un PIN o una password, a meno di condizioni particolari. Quello che viene di solito effetivamente protetto è il traffico in rete; di nuovo, bisogna chiedersi caso per caso cosa vuole dire “proteggere un sistema” e cosa offre realmente lo strumento.
Smart card e sistemi biometrici L’uso della smart card garantisce, salvo manomissioni, che la chiave privata non sia diffusa, ma non garantisce che la smart card non sia consegnata a un’altra persona o rubata I sistemi biometrici danno più garanzie? Il “cosa si ha” espone al furto o alla cessione, ma almeno impedisce, se ben realizzato, la falsificazione. I sistemi biometrici riescono realmente a legare l’informazione alla persona?
I dati sono dati 01100110001 01100110001 01100110001 Il dato biometrico è letto da un lettore e trasformato in bit, che vengono confrontati con quelli memorizzati in un archivio. Il meccanismo del confronto rende l’autenticazione biometrica in tutto simile all’uso di una password, ovvero uno dei meccanismi più deboli. L’ipotesi che l’autenticazione biometrica sia migliore si basa sull’idea che solo l’utente sia in grado di fornire l’informazione al sensore. Questo ha senso se chi deve autenticare l’utente controlla l’intero sistema, sensore compreso, altrimenti il dato può essere fornito dopo il sensore; a questo punto diventa debole come una password, ed ha gli stessi problemi con la non repudiation
Cosa si firma? Usare la chiave senza rubarla Il caso Quicken: nel gennaio 1997 un gruppo di hacker tedeschi (CCC) ha dimostrato in televisione di essere in grado di far eseguire delle operazioni bancarie senza conoscere il PIN….. Con la firma digitale sarebbe cambiato qualcosa? L’inaccessibilità della chiave non garantisce contro l’abuso L’uso di smart card protegge contro il furto della chiave privata, ma non contro il suo utilizzo, dato che l’utente la deve sbloccare e queste operazioni sono fatte attraverso il sistema dell’utente, che può essere compromesso: nella maggior parte delle leggi e contratti, a quel punto l’utente è comunque ritenuto responsabile, e quindi si può trovare da solo a cercare di dimostrare la propria estraneità a un’operazione.
Cosa si firma BBB AAA I meccanismi di firma funzionano finché il sistema utilizzato è sicuro. Di fatto l’utente non sa cosa la smart card sta per firmare, ma solo cosa gli viene presentato sullo schermo; è un programma che gestisce questa cosa, e quindi può mostrare dei dati e firmarne altri.
Assumere l’identità altrui Se il PC di un utente è compromesso, l’utente (interno o esterno all’azienda) può essere impersonato finora i worm hanno usato la rubrica solo per diffondersi... Si tratta invece dei sistemi meno controllati Non sono attacchi comuni per hacker generici, e quindi sono spesso trascurati Sarebbero adatti per frodi e attacchi mirati I pc degli utenti sono i sistemi meno controllati, meno curati e sono utilizzati nel modo più insicuro. Sono ottimi vettori per attacchi, e i worm mostrano come il social engineering funzioni bene. Contro questo tipo di problema, l’autenticazione fortenon solo serve a poco, ma può addirittura dare un falso senso di sicurezza.