sommario - pralab.diee.unica.itpralab.diee.unica.it/sites/default/files/01sec.introduzione.pdf ·...
TRANSCRIPT
SICUREZZA INFORMATICA
Giorgio Giacinto DIEE - Dip. Ing. Elettrica ed Elettronica
Università degli Studi di Cagliari [email protected]
Giorgio Giacinto 2014
Sommario ! Cosa vuol dire sicurezza? ! Cosa si intende per sicurezza informatica? ! Principali vulnerabilità di un sistema informatico ! Tecniche di prevenzione ! Tecniche di rilevazione e difesa ! Sfide in corso
1
Cos’è la sicurezza e come si realizza
Giorgio Giacinto 2014
La sicurezza è fondata sulla fiducia ! Nelle società la realizzazione del singolo individuo si
raggiunge attraverso la fiducia reciproca ! Sicurezza: regole, attività, controlli per prevenire l’abuso
di fiducia ! Bruce Schneier (CSO in BT) “Liars and Outliers: Enabling the
Trust that Society Needs to Thrive” (2012) ! La progettazione di un sistema di sicurezza implica
meccanismi per ! l’identificazione ! l'autenticazione ! l'autorizzazione di persone fidate
La fiducia è un aspetto essenziale nella
valutazione della sicurezza
3
Giorgio Giacinto 2014
La sicurezza richiede compromessi
Non esiste la sicurezza assoluta! ! La quantità di sicurezza che si può ottenere dipende da
ciò a cui si può rinunciare pur di ottenerla ! La valutazione del miglior compromesso fra rinuncia e sicurezza
è soggettivo (dipende cioè dal contesto) ! La valutazione del compromesso deve tener conto di
! Pericoli: i modi in cui un malintenzionato può nuocere a un sistema
! Rischi: una combinazione fra la probabilità che un evento pericoloso effettivamente avvenga e la gravità delle conseguenze dell�attacco, se portato a termine
Problema non esiste una definizione univoca di pericolo e rischio!
4
Giorgio Giacinto 2014
Valutazione di un sistema di sicurezza ! La sicurezza è un processo, non un prodotto.
La sicurezza è un sistema (insieme di elementi coordinati al conseguimento di un effetto) complesso.
! Come si può valutare l’efficacia di un sistema di sicurezza?
Uno schema in 5 punti 1. Quali sono le risorse da proteggere? 2. Quali sono i rischi cui sono soggette le risorse? 3. In quale misura la soluzione di sicurezza in esame mitiga i rischi? 4. Quali sono i rischi associati alla soluzione di sicurezza in esame? 5. Quali sono i costi e i compromessi legati alla soluzione di
sicurezza in esame?
5
Attacco Watering Hole
Giorgio Giacinto 2014 6
F-S
ecur
e 20
13
Giorgio Giacinto 2014
La rilevazione entra in gioco quando fallisce la prevenzione ! I meccanismi di prevenzione sono la parte più
difficile da realizzare in un sistema di sicurezza. Tutti i moderni sistemi di sicurezza al fine di essere utilizzabili e efficaci devono combinare meccanismi di prevenzione con meccanismi di rilevazione e reazione
7
Giorgio Giacinto 2014
La sicurezza è un sistema complesso ! La sicurezza è un sistema che interagisce con
! se stesso ! le risorse che devono essere protette ! L’ambiente circostante
! Queste interazioni possono provocare malfunzionamenti anche in assenza di attacchi!
Tutte le possibili cause di malfunzionamento devono essere esaminate con cura
…gli avversari sono sempre in numero inferiore agli utilizzatori legittimi!
8
Giorgio Giacinto 2014
Malfunzionamenti dei sistemi di sicurezza ! Cosa succede in caso di malfunzionamento?
! Malfunzionamenti Attivi il sistema si attiva quando non dovrebbe
! Malfunzionamenti Passivi il sistema non si attiva quando dovrebbe
ora, le situazioni di pericolo sono in genere molto rare…
…quindi spesso è molto più importante analizzare il comportamento del sistema in caso di malfunzionamenti in assenza di pericolo (attivi) piuttosto che i malfunzionamenti dovuti alla mancata attivazione in caso di reale pericolo (passivi)
9
Giorgio Giacinto 2014
Malfunzionamenti attivi ! Il sistema produce un falso allarme
! Le conseguenze possono essere semplicemente fastidiose, ma anche terribilmente gravi, se all�allarme è associato un qualche meccanismo automatico di contrattacco
! La rarità degli eventi che devono essere rilevati è spesso la causa dei malfunzionamenti ! Per poter rilevare eventi rari, è spesso necessario
accettare la produzione di un certo numero di falsi allarmi
10
La sicurezza informatica
Definizioni e Pericoli
Giorgio Giacinto 2014
Aspetti peculiari sicurezza informatica ! Rapporto fra guadagno e costo per ottenerlo
estremamente alto ! Immaterialità dell’informazione ! Rischi estremamente bassi
! Rapinare una banca… ! …o trasferire soldi via Internet? Per molti anni il rischio è stato sottovalutato per una visione romantica della violazione dei sistemi informatici
12
Giorgio Giacinto 2014
Il ritardo nella sicurezza informatica ! Convinzione che l’approccio logico-matematico
potesse garantire la sicurezza delle informazioni ! Sottovalutazione del rapido incremento della potenza
di calcolo degli elaboratori elettronici ! Le conseguenze di un attacco informatico non
sempre sono immediatamente tangibili… ! …cosa succederebbe se venisse attaccato il software
di ausilio al controllo del traffico aereo… ! …o macchine di ausilio a funzioni vitali…
13
Evoluzione degli attacchi informatici
Giorgio Giacinto 2014 14
Giorgio Giacinto 2014
Chi ha interesse ad attaccare un sistema informatico? ! Oggi la maggior parte delle informazioni vitali per
l’economia, la salute, la sicurezza, ecc. sono memorizzate, trasmesse, elaborate in formato digitale Avversari ! Concorrenti ! Spionaggio (industriale o militare) ! Terrorismo ! Frodi
15
Giorgio Giacinto 2014 16
Giorgio Giacinto 2014 17
Giorgio Giacinto 2014 18
Giorgio Giacinto 2014
Il mercato sommerso
19
Symantec 2011
Giorgio Giacinto 2014
Alcune definizioni ! Vulnerabilità
! Debolezza nel sistema di sicurezza che può essere sfruttata per provocare danni o perdite
! Minaccia ! Un insieme di circostanze potenzialmente in grado di
causare perdite e danni ! Attacco
! Realizzazione di una minaccia attraverso lo sfruttamento di una vulnerabilità per provocare danni o perdite
20
Giorgio Giacinto 2014
Classificazione delle minacce
Disponibilità ! Le risorse computazionali
devono essere sempre disponibili
Riservatezza ! Le informazioni devono
essere accessibili solo alle entità autorizzate
Integrità ! Le risorse e le
informazioni devono poter essere sempre considerate autentiche
21
Giorgio Giacinto 2014
Ruolo di un sistema di sicurezza informatica
22
Giorgio Giacinto 2014
Minacce alla sicurezza di un sistema informatico ! La funzione di un sistema informatico può essere
schematizzata come un flusso di informazione da una sorgente (ad es., un file) a una destinazione (ad es., un file, un monitor, ecc.)
! Si possono così suddividere le minacce alla sicurezza informatica in quattro categorie definite in termini di modifica del flusso normale dell�informazione
Informationsource
Informationdestination
(a) Normal flow
(b) Interruption (c) Interception
(d) Modification (e) Fabrication
Figure 15.2 Security Threats
23
Giorgio Giacinto 2014
1. Interruzione ! Una delle risorse del sistema viene distrutta o
resa inutilizzabile
! Qualche esempio: Distruzione di parti hardware Interruzione della linea di comunicazione Disabilitazione del sistema di gestione del file system
! Questa tipologia di attacco minaccia la disponibilità del sistema ed è di solito chiamato �Denial of Service� (DoS)
24
Giorgio Giacinto 2014
2. Intercettazione ! Una terza parte non autorizzata ottiene accesso a una
risorsa del sistema ! Alcuni esempi:
Intercettazione di dati che transitano in una rete Copia non autorizzata di dati o programmi Furto delle password
! Questa tipologia di attacco minaccia la confidenzialità
25
Giorgio Giacinto 2014
3. Modifica ! Una parte terza non autorizzata non solo accede a una
risorsa ma è anche in grado di alterarla ! Alcuni esempi:
Modifica di valori in un file di dati Modifica di un programma in modo che funzioni in modo diverso Modifica del contenuto dei messaggi trasmessi in una rete
! Questa tipologia di attacco minaccia l�integrità
26
Giorgio Giacinto 2014
4. Fabbricazione ! Una parte terza non autorizzata inserisce nel
sistema oggetti contraffatti ! Alcuni esempi:
Inserimento di messaggi spuri in una rete Aggiunta di record in un file
! Questa tipologia di attacco minaccia l’integrità
27
Giorgio Giacinto 2014
In sintesi… Availability Confidentiality Integrity/Authenticity
Hardware Equipment is stolen or disabled, thus denying the device
Software Programs are deleted, denying access to users
An unauthorised copy of software is made
A working program is modified, either to cause it to fail during execution ot to cause it to do some unintended task
Data Files are deleted, denying access to users
An unauthorised read of data is performed. An analysis of statistical data reveals underlying data
Existing files are modified or new files are fabricated
Communication lines
Messages are destroyed or deleted. Communication lines or networks are rendered unavailable
Messages are read. The traffic pattern of messages is observed
Messages are modified, delayed, reordered, or duplicated. False messages are fabricated
28
Giorgio Giacinto 2014
Difesa dalle minacce
29
Vulnerabilità dei sistemi informatici
Giorgio Giacinto 2014
Risorse hardware di un sistema informatico ! Le minacce sono legate prevalentemente alla
disponibilità ! Danni accidentali o deliberati ! Furto
! Misure di prevenzione a livello fisico ! controllo degli accessi alle sale macchine, ridondanza
apparati (server, rete, alimentazione, clima, ecc.)
31
Giorgio Giacinto 2014
Software di base e applicativo ! I �programmi�, siano essi sistemi operativi o
applicazioni, possono contenere errori o vulnerabilità non volute
! C’è una vasta comunità di cracker e di organizzazioni criminali che lavorano per ! Scoprire le vulnerabilità ! Sfruttarle in modo da ricavarne vantaggi economici
! I maggiori produttori di software e le più grosse aziende di sicurezza informatica svolgono un compito analogo
32
Giorgio Giacinto 2014
Vulnerabilità e attacchi contro programmi ! Le vulnerabilità dei programmi sono legate a
molteplici fattori ! Comportamento non previsto in risposta a particolari
valori in ingresso o a sequenze di operazioni ! Possibilità di interagire con altri programmi ! Collegamenti in rete (dov’è il perimetro del sistema?)
! Le vulnerabilità vengono sfruttate per far eseguire all’insaputa dell’utente dei programmi malevoli (malware)
33
Giorgio Giacinto 2014
Ciclo di vita delle vulnerabilità
Fonte: IBM Internet Security Systems"X-Force® 2008 Trend & Risk Report"
34
Giorgio Giacinto 2014
Vulnerabilità individuate globalmente dal 1996 al 2013
35
Reale sfruttamento delle vulnerabilità
Giorgio Giacinto 2014 36
IBM Internet Security Systems X-Force® 2012 Mid-Term Trend & Risk Report"
Vulnerabilità Sistemi Operativi Smartphone
Giorgio Giacinto 2014 37
IBM Internet Security Systems X-Force® 2012 Mid-Term Trend & Risk Report"
Tempi di correzione (patch) delle vulnerabilità
Giorgio Giacinto 2014 38
Vulnerabilità non corrette
Giorgio Giacinto 2014 39
IBM Internet Security Systems X-Force® 2012 Mid-Term Trend & Risk Report"
Come vengono sfruttate le vulnerabilità?
Giorgio Giacinto 2014
Malware (Malicious Software) ! Due categorie principali
! Programmi che hanno bisogno di un altro programma che li ospiti ! Non possono esistere indipendentemente, ma solo
all’interno di applicazioni utente, programmi di utilità, programmi di sistema, ecc.
! Programmi indipendenti ! Programmi che possono essere eseguiti come processi
individuali dal SO
41
Giorgio Giacinto 2014 42
Giorgio Giacinto 2014 43
Giorgio Giacinto 2014
Una tassonomia dei programmi malevoli
44
Giorgio Giacinto 2014
Trapdoor ! Un ingresso segreto che consente l’accesso al
programma evitando alcune o tutte le protezioni ! Usate in genere dai programmatori per test e
debugging Utile per attivare il programma se per qualche motivo la routine di autenticazione non funziona
! Il SO difficilmente può implementare dei controlli sulle trapdoor
45
Giorgio Giacinto 2014
Logic Bomb ! Codice all’interno di un programma impostato
per �esplodere� al verificarsi di una (o più) condizioni ! Presenza o mancanza di certi file ! Un certo giorno della settimana (o dell’anno) ! ID utente che sta eseguendo il programma
46
Giorgio Giacinto 2014
Cavallo di Troia ! Un programma apparentemente utile che
contiene codice nascosto che esegue operazioni indesiderate e/o pericolose ! L’utente autorizzato (eseguendo il programma
apparentemente utile) esegue funzioni scritte da un utente non autorizzato Ad esempio, può cambiare I permessi dei file, ecc.
! Cavalli di troia nascosti nei compilatori, editor di testo, giochi, ecc.
47
Giorgio Giacinto 2014
Virus ! Programmi che possono �infettare� altri
programmi, modificandoli ! La modifica contiene una copia del programma-virus ! Il programma infettato può infettare altri programmi
48
Giorgio Giacinto 2014
Worm
Utilizza connessioni di rete per propagarsi da un sistema ad un altro ! Attraverso i programmi di posta elettronica
! Un worm spedisce una copia di se ad altri sistemi ! Capacità di esecuzione remota
! Un worm esegue una copia di se stesso in un altro sistema
! Capacità di log-in remoto ! Un worm si collega ad un sistema remoto come utente e
usa i comandi di terminale per copiare se stesso da un sistema ad un altro
49
Giorgio Giacinto 2014
Polimorfismo ! Individuata una vulnerabilità in un programma, si
possono scrivere diversi virus o worm che ne approfittano
! Esistono programmi che automaticamente generano diverse versioni di virus e worm (polimorfismo) al fine di sfuggire alle analisi degli antivirus
50
Giorgio Giacinto 2014
Zombie
Un programma la cui esecuzione è nascosta all’utente
! Questo computer è usato per effettuare attacchi che difficilmente possono essere ricondotti all’autore dello zombie
! Gli zombie sono inseriti in centinaia di computer appartenenti ad utenti ignari
51
Giorgio Giacinto 2014
Phishing
! È una delle modalità più diffuse per infettare i computer ! Messaggi email apparentemente innocui (spam)
invitano l’utente a visitare un sito Internet ! Il sito, apparentemente innocuo, può contenere cavalli
di troia che vengono scaricati in locale anche all’insaputa dell’utente
52
Giorgio Giacinto 2014 53
Giorgio Giacinto 2014
Meccanismi di diffusione del malware
54
Symantec 2012
Meccanismi di diffusione del malware
Giorgio Giacinto 2014 55
Symantec 2012
Giorgio Giacinto 2014
Botnet ! Reti di computer infettati all’insaputa degli amministratori
(zombie) Questi computer (bots) vengono controllati da alcuni server che impartiscono i comandi alla rete ! Ad es. nel 2010 l’88% delle email di spam è stato spedito tramite
botnet (fonte: Symantec, 2011)
! L’utilizzo di queste reti per fini illeciti o criminali viene venduto nel mercato sommerso
! La rilevazione delle botnet è estremamente complessa ! I comandi inviati agli zombie sono mascherati ! Gli indirizzi dei server che inviano i comandi cambiano molto
velocemente
56
Giorgio Giacinto 2014 57
Giorgio Giacinto 2014 58
Distribuzione geografica dei bot in Italia
Giorgio Giacinto 2014 59
Symantec
Attacchi contro applicazioni web
Giorgio Giacinto 2014
Vulnerabilità di applicazioni web
61
Vulnerabilità dei browser
Giorgio Giacinto 2014 62
Giorgio Giacinto 2014
Vulnerabilità delle piattaforme web e dei relativi plug-in
63
Giorgio Giacinto 2014
Vulnerabilità dei plug-in dei browser web
64
Vulnerabilità di applicazioni utente
Vulnerabilità legate a documenti
Giorgio Giacinto 2014 66
Vulnerabilità legate a software multimediali
Giorgio Giacinto 2014 67
Valutazione criticità delle vulnerabilità
Giorgio Giacinto 2014
Valutazione della criticità delle vulnerabilità
CVSS (Common Vulnerability Scoring System) http://www.first.org/cvss
Esistono varianti proposte da aziende che sviluppano prodotti per la sicurezza informatica (ad es., IBM, Symantec, ecc.)
69
Giorgio Giacinto 2014
Valutazione criticità vulnerabilità - IBM X-Force
70
Tecniche di difesa
Giorgio Giacinto 2014
Tecniche di prevenzione ! Protezione fisica dei dispositivi hardware
! Accesso (ai locali, ai computer, alla rete, ecc.) regolato da password, codici temporanei, biometrie, ecc.
! Accesso alle risorse personalizzato ! Copie di backup e ridondanza ! Crittografia ! Software aggiornato e fidato
72
Giorgio Giacinto 2014
Protezione fisica ! I computer non devono essere accessibili a
chiunque ! Locali sorvegliati e condizionati nel caso di centri
di elaborazione dati ! Le memorie di massa portatili (pendrive, CD/
DVD, ecc.) devono essere custodite con cura.
73
Giorgio Giacinto 2014
Accesso controllato
! Password ! Challange-response
Biometriche
74
Token
Generatori di One-Time Password
Smart card
Giorgio Giacinto 2014
Difesa dei dati ! I dati sono il cuore di un sistema informatico
! Conservarli con cura in luoghi sicuri ! Effettuare copie di riserva ! Proteggere con password e crittografare i dati
! In caso di furto delle memorie portabili si previene l’accesso non autorizzato ai dati
75
Giorgio Giacinto 2014
Utilizzo di software fidato ! Usare solo applicazioni di cui sia certa la fonte
! Molti sistemi operativi effettuano il controllo prima di eseguire una nuova applicazione
! Aggiornare le applicazioni secondo le indicazioni del produttore
! Certificazione del software http://www.commoncriteriaportal.org
76
Giorgio Giacinto 2014
Antivirus efficaci ! Consentono di rilevare tutti i tipi di malware
conosciuti ! Difesa da virus, worm, cavalli di troia ecc. che
possono essere ricevuti con la posta elettronica, visitando siti web, ecc.
! Diversi prodotti sul mercato per diverse tipologie di utenti
77
Giorgio Giacinto 2014
Firewall ! Sistemi posti nei punti d’accesso a una rete
locale per autorizzare o negare le connessioni entranti o uscenti ! Sistemi basati su regole scritte dagli amministratori di
rete per restringere l’accesso alla rete o a certe zone di essa
! La restrizione sulle connessioni uscenti consente di evitare che gli utenti della rete locale possano connettersi a siti potenzialmente nocivi
78
Giorgio Giacinto 2014
Intrusion Detection Systems ! Sistemi che analizzano il traffico di un segmento
di una rete locale o le operazioni eseguite da un computer ! Basati su regole o su statistiche di utilizzo della rete o
del computer ! Consentono di rilevare
! tentativi di accesso non autorizzato alla rete ! Malware in transito sulla rete
! Possono bloccare tentativi di attacco prima che giungano agli utenti
79
Progettare sistemi informatici sicuri
Giorgio Giacinto 2014
Perché la sicurezza informatica è un problema? ! Software sempre più complesso e difficile da
verificare ! L’effetto della cooperazione di diverse
applicazioni è spesso difficilmente prevedibile ! Velocità di rilascio di nuove versioni ! Velocità di individuazione di vulnerabilità
! Spesso lo sviluppo dei programmi non tiene conto della sicurezza!
81
Giorgio Giacinto 2014
Scrittura di codice sicuro ! Come evitare la presenza di vulnerabilità nei
programmi? ! Fino a poco tempo fa le regole di programmazione
non tenevano conto della potenziale vulnerabilità ! Recentemente sono state proposte diverse
metodologie di sviluppo software che mirano a limitare la probabilità di presenza di vulnerabilità Esempio: OWASP
82
Sistemi Operativi ! I Sistemi Operativi moderni rendono più
complicato scrivere Virus e Worm efficaci grazie all’adozione di tecniche sofisticate di gestione della memoria e dei processi quali ! ASRL Address Space Layout Randomization ! DEP Data Execution Prevention ! Sandboxing
Giorgio Giacinto 2014 83
Giorgio Giacinto 2014
Architetture software sicure ! Oggi molti sistemi informatici collaborano fra loro
scambiandosi informazioni ! Ad es. , s is temi informat iv i del la Pubbl ica
Amministrazione ! Protocolli di avvio connessione ! Interazione su canali criptati ! Meccanismi di autenticazione forte
84
Sfide in corso
Giorgio Giacinto 2014
BYOD Bring Your Own Device ! I dipendenti si collegano alla rete aziendale con i
loro dispositivi personali ! Possibile causa di minaccia alla sicurezza aziendale
! Applicazioni vulnerabili per smartphone su mercati non ufficiali ! Android ! iOS “Jailbreak”
86
Giorgio Giacinto 2014
Web 2.0, social networking, P2P, ecc. ! Scambio di informazioni e applicazioni
! Un avversario può trovare informazioni utili su di noi ! Le applicazioni scambiate o rese disponibili possono
contenere vulnerabilità o codice non sicuro
87
Giorgio Giacinto 2014
Virtualizzazione ! Oggi è possibile eseguire su una stessa
piattaforma hardware un certo numero di sistemi operativi ! Ambienti fra loro separati ! Possono consentire maggiore sicurezza fra ambienti
distinti ! Problema
! Rendere sicuro il livello del sistema che gestisce la virtualizzazione
88
Giorgio Giacinto 2014
Cloud computing ! Anziché dedicare un calcolatore a un insieme di
applicazioni, le applicazioni possono migrare fra i calcolatori collegati in rete per migliorare l’efficienza hardware ! Software as a Service (SaaS) ! Storage as a Service ! Infrastructure as a service ! ….
! Come garantire la sicurezza?
89
La sicurezza informatica nel 2020 secondo Bruce Schneier ! Deperimeterization
! La rete non è una fortezza che lascia fuori i cattivi. Oggi una rete è più simile a una città, con pendolari che entrano e escono di continuo, per i quali occorre definire meccanismi affidabili di autenticazione, autorizzazione, e stabilire relazioni di fiducia reciproca.
! Consumerization ! I consumatori vogliono acquistare subito i prodotti di
ultima generazione, e utilizzarli per tutte le loro attività quotidiane
Giorgio Giacinto 2014 90
La sicurezza informatica nel 2020 secondo Bruce Schneier ! Decentralization
! La tendenza attuale è quella di memorizzare foto, documenti, email, ecc. a un server centrale localizzato da qualche parte nel mondo in modo da poterli avere sempre a disposizione da qualunque postazione
! Deconcentration ! L’era dei computer “general-purpose” sta tramontando
a favore di dispositivi “special-purpose” (smartphone, tablet, ecc.)
Giorgio Giacinto 2014 91
La sicurezza informatica nel 2020 secondo Bruce Schneier ! Decustomerization
! Ciascun utente può ottenere servizi IT senza avere un rapporto economico diretto con il fornitore (es. motori di ricerca, social networks, ecc.). Non è escluso che in futuro anche l’hardware possa essere gratuito
! Depersonization ! Le applicazioni svolgeranno un numero maggiore di
compiti al posto dell’utente (ad es., individuando le preferenze e i gusti dell’utente nella gestione della posta, nella navigazione nei siti web, ecc.)
Giorgio Giacinto 2014 92