SlideShare a Scribd company logo
DIPARTIMENTO DI MATEMATICA E INFORMATICA
Corso di Laurea Triennale in Informatica
Tesi di Laurea
Sicurezza delle Reti Informatiche:
Le vulnerabilit`a
Candidato:
Riccardo Melioli
Matricola 247967
Relatore:
Chiar.mo Prof. Roberto Alfieri
Anno Accademico 2015–2016
Indice
1 Introduzione 1
1.0.1 Definizione di Sicurezza delle reti informatiche . . . . . . . . . 1
1.0.2 Politiche di Sicurezza . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Normative e Standard . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.1.1 Servizi di Sicurezza (RFC2828) . . . . . . . . . . . . . . . . . 3
1.1.2 La prevenzione dei guasti accidentali e dagli attacchi informatici
(ISO 27001) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.3 Protezione dei dati personali (Decreto Legislativo 196/2003) . 4
1.2 Sicurezza dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Metodi di Attacco 7
2.1 Attacco passivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.1 Raccolta di informazioni su possibili obiettivi . . . . . . . . . 7
2.1.2 Intercettazione delle comunicazioni . . . . . . . . . . . . . . . 8
2.2 Attacco attivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
2.2.1 Fabbricazione dell’identità di un’altra entità . . . . . . . . . . 9
2.2.2 Interruzione/compromissione di servizi . . . . . . . . . . . . . 10
2.2.3 Sfruttamento di bug nel software o vulnerabilità nel sistema . 10
2.2.4 Diffusione intenzionale di vulnerabilità: Malware . . . . . . . 11
2.2.5 Ingegneria Sociale . . . . . . . . . . . . . . . . . . . . . . . . 16
3 Metodi di Difesa 18
3.1 Policy per l’utente e l’amministratore . . . . . . . . . . . . . . . . . . 18
3.2 Difesa della LAN o dell’Host . . . . . . . . . . . . . . . . . . . . . . . 20
3.3 Rinforzo di autenticazione e riservatezza . . . . . . . . . . . . . . . . 23
4 Vulnerabilità 34
4.1 Vulnerabilità ed Exploit . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1.1 Vulnerabilità . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
4.1.2 Categorie delle vulnerabilità . . . . . . . . . . . . . . . . . . . 35
4.1.3 Ciclo di vita delle vulnerabilità . . . . . . . . . . . . . . . . . 36
4.1.4 Exploit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2 Vulnerability Assessment . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.3 Vulnerability Scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.3.1 Nessus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3.1.1 Storia . . . . . . . . . . . . . . . . . . . . . . . . . . 40
4.3.1.2 Cos’è . . . . . . . . . . . . . . . . . . . . . . . . . . 41
i
INDICE ii
4.3.1.3 Come funziona . . . . . . . . . . . . . . . . . . . . . 41
4.3.1.4 Struttura . . . . . . . . . . . . . . . . . . . . . . . . 42
4.3.1.5 Knowledge Base . . . . . . . . . . . . . . . . . . . . 42
4.3.1.6 Scansione di un sistema . . . . . . . . . . . . . . . . 43
4.3.1.7 Interpretazione dei risultati . . . . . . . . . . . . . . 44
4.3.1.8 Tipi di licenza . . . . . . . . . . . . . . . . . . . . . 45
4.3.2 OpenVAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.3.2.1 Storia . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.3.2.2 Cos’è . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.3.2.3 Come Funziona . . . . . . . . . . . . . . . . . . . . . 49
4.3.2.4 Struttura . . . . . . . . . . . . . . . . . . . . . . . . 50
4.3.2.5 Aggiornamento NVT . . . . . . . . . . . . . . . . . 52
4.3.2.6 Codice Sorgente OpenVAS . . . . . . . . . . . . . . 53
4.3.2.7 Software di sicurezza integrati in OpenVAS . . . . . 53
4.4 Vulnerability Database . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.4.0.1 CVE . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5 Il Linguaggio NASL e Applicazioni 62
5.1 Il Linguaggio NASL . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.1.1 La grammatica NASL . . . . . . . . . . . . . . . . . . . . . . 63
5.1.2 Le librerie NASL . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.1.2.1 Costanti predefinite . . . . . . . . . . . . . . . . . . 64
5.1.2.2 Funzioni . . . . . . . . . . . . . . . . . . . . . . . . 65
5.2 Plugin in NASL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.3 Esempi di plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.3.1 Forging Packet . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.3.1.1 Forging Packet IP - IP Spoofing . . . . . . . . . . . 71
5.3.1.2 Forging Packet UDP - DNS Spoofing / DNS Cache
Poisoning . . . . . . . . . . . . . . . . . . . . . . . . 74
5.3.1.3 Forging Packet TCP - Reset Attack . . . . . . . . . 76
5.3.2 FTP test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.3.3 Teardrop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.3.4 Port Checker . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6 Caso d’uso: Rete INFN Parma 88
6.1 INFN - Istituto Nazionale di Fisica Nucleare . . . . . . . . . . . . . . 88
6.2 Struttura della rete INFN di Parma . . . . . . . . . . . . . . . . . . 89
6.3 Vulnerability Assessment della rete INFN di Parma . . . . . . . . . . 90
6.3.1 Scansione delle vulnerabilità . . . . . . . . . . . . . . . . . . . 91
6.3.2 Valutazioni sugli host vulnerabili . . . . . . . . . . . . . . . . 94
6.4 Attacco ad un host vulnerabile . . . . . . . . . . . . . . . . . . . . . 94
6.4.1 Plugin in NASL - RCE attack . . . . . . . . . . . . . . . . . . 94
Conclusioni 97
Bibliografia 100
Elenco delle figure
2.1 Diffusione Malware . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Infezioni Malware Q2 2015 . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3 Numero di utenti attaccati da Ransomware (Q4 2014 - Q3 2015) . . 16
2.4 Spam in proporzione al traffico mail, Gennaio - Giugno 2015 . . . . . 17
2.5 Paesi da cui proviene lo spam, Q2 2015 . . . . . . . . . . . . . . . . . 17
3.1 LAN e Personal Firewall . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.2 Crittografia Simmetrica . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.3 Crittografia Asimmetrica . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.4 Certificato X.509 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.5 Autenticazione tramite password: PAP . . . . . . . . . . . . . . . . . 28
3.6 Autenticazione tramite password: CHAP . . . . . . . . . . . . . . . . 29
3.7 Autenticazione con challenge e chiave simmetrica . . . . . . . . . . . 29
3.8 Autenticazione Kerberos . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.9 Sicurezza nelle comunicazioni . . . . . . . . . . . . . . . . . . . . . . 32
4.1 Vulnerabilità per anno, dal 1999 al 2016 . . . . . . . . . . . . . . . . 35
4.2 Vulnerabilità per tipo, dal 1999 al 2016 . . . . . . . . . . . . . . . . . 36
4.3 Finestra temporale di una vulnerabilità . . . . . . . . . . . . . . . . . 37
4.4 Distribuzione degli exploit usati negli attacchi, per tipo di applicazione,
2015 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.5 Esempio di un report di Nessus . . . . . . . . . . . . . . . . . . . . . 42
4.6 Nessus scansione tradizionale . . . . . . . . . . . . . . . . . . . . . . 46
4.7 Nessus Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.8 Funzionamento delle componenti di OpenVAS . . . . . . . . . . . . . 49
4.9 Esempio di un report di OpenVAS . . . . . . . . . . . . . . . . . . . 50
4.10 Protocolli di comunicazione delle componenti di OpenVAS . . . . . . 51
4.11 OpenVAS NVT feed . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.12 Struttura del codice sorgente di OpenVAS . . . . . . . . . . . . . . . 53
4.13 W3af: schermata principale . . . . . . . . . . . . . . . . . . . . . . . 57
4.14 Vulnerabilità, per anno, dal 2005 al 2014, OSVDB . . . . . . . . . . 58
4.15 Vulnerabilità, per anno, dal 2005 al 2014, NVD . . . . . . . . . . . . 59
4.16 Metriche CVSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5.1 Precedenza degli operatori nel linguaggio NASL, dalla maggiore prio-
rità alla minore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.2 Esecuzione plugin NASL con interprete di Nessus . . . . . . . . . . . 71
iii
5.3 Forging IP - Wireshark . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.4 Forging UDP DNS attack - Wireshark . . . . . . . . . . . . . . . . . 75
5.5 Forging TCP Reset Attack - Wireshark . . . . . . . . . . . . . . . . . 77
5.6 FTP Test - Kali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.7 FTP Test - Wireshark . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.8 Teardrop - Wireshark . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.9 Port Checker - Kali . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.10 Port Checker - Richiesta - Wireshark . . . . . . . . . . . . . . . . . . 86
5.11 Port Checker - Risposta - Wireshark . . . . . . . . . . . . . . . . . . 87
6.1 Mappa delle strutture INFN . . . . . . . . . . . . . . . . . . . . . . . 89
6.2 Risultati della scansione della rete INFN con Nessus . . . . . . . . . 91
6.3 Elenco Vulnerabilità di un host della rete INFN . . . . . . . . . . . . 92
6.4 Dettagli di una vulnerabilità di un host della rete INFN . . . . . . . 93
6.5 Remote Code Execution - Vittima . . . . . . . . . . . . . . . . . . . 96
6.6 Remote Code Execution - Attaccante . . . . . . . . . . . . . . . . . . 97
Elenco delle tabelle
1.1 Categorizzazione della dimensione delle reti . . . . . . . . . . . . . . 2
1.2 Criticità dei diversi tipi di dati presenti nelle aziende . . . . . . . . . 6
2.1 Infezioni Malware Q2 2015 . . . . . . . . . . . . . . . . . . . . . . . . 11
4.1 Confronto funzionalità di ricerca delle diverse licenze di Nessus . . . 47
4.3 Confronto funzionalità di gestione delle diverse licenze di Nessus . . . 47
4.2 Confronto capacita della valutazione del rischio delle diverse licenze
di Nessus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.4 Confronto report delle diverse licenze di Nessus . . . . . . . . . . . . 48
iv
Abstract
La Sicurezza informatica è il ramo dell’informatica che si occupa dell’analisi delle
vulnerabilità, del rischio, delle minacce e della successiva protezione dell’integrità
logico-funzionale. In particolare, nella sicurezza delle reti si valutano l’eventuale
presenza di vulnerabilità dei singoli nodi che compongono la rete, la sicurezza dello
scambio di informazioni tra i nodi e tutto quello che riguarda l’interfacciarsi di un
nodo in una rete.
Negli ultimi anni ha acquisito progressivamente maggiore interesse a causa della
crescente informatizzazione della società e dei servizi, in particolare per i settori dove
le informazioni conservate, scambiate o create sono di importanza critica.
La problematica della sicurezza delle reti consiste nel compromesso tra le misure di
sicurezza da adottare per proteggere la rete da accessi indesiderati e la versatilità
con cui essa opera. Particolarmente critica è la problematica legata alla presenza
di vulnerabilità che può compromettere l’intero funzionamento della rete stessa e
l’integrità dei nodi da cui è composta.
Il seguente documento ha lo scopo di analizzare dettagliatamente i metodi utilizzati
per l’attacco e la difesa delle reti informatiche, illustrando con particolare attenzione
le vulnerabilità, come rilevarle, verificarne l’effettivo pericolo ed agire di conseguenza
per rimuoverle, portando i singoli nodi della rete e, conseguentemente la rete stessa,
in uno stato sicuro. Vengono inoltre descritti, un caso d’uso alla rete INFN di Parma,
effettuando un vulnerability assessment ed un esempio completo di attacco ad un
host vulnerabile e la creazione di programmi, in linguaggio NASL, dimostrativi di
diversi tipi di attacchi informatici, svolti durante il periodo di tirocinio.
v
Capitolo 1
Introduzione
Nei primi decenni della loro esistenza le reti informatiche vennero utilizzate
prevalentemente dai ricercatori universitari per inviare e-mail e dalle aziende per
condividere le stampanti. In quelle applicazioni non essendo tendenzialmente critiche,
non si prestava particolare attenzione alla sicurezza. Negli ultimi anni è diventato
un problema molto sentito in ambito tecnico-informatico per via della crescente
informatizzazione della società e dei servizi (pubblici e privati) in termini di apparati
e sistemi informatici.
La sicurezza informatica è un argomento vasto, che copre una moltitudine di
problemi. Nella forma più semplice, riguarda come fare in modo che intrusi non
riescano a leggere (o modificare di nascosto) i messaggi destinati a terzi. Si occupa
inoltre di impedire che determinate persone possano accedere a servizi remoti che non
sono autorizzati ad usare. La sicurezza si occupa anche di come accertarsi dell’identità
dei mittenti dei messaggi, di come impedire l’intercettazione e la ripetizione di
messaggi legittimi catturati sulla rete e di come perseguire chi afferma di non aver
mai spedito certi messaggi.
1.0.1 Definizione di Sicurezza delle reti informatiche
Con il termine sicurezza informatica si intende quel ramo dell’informatica che si
occupa dell’analisi delle vulnerabilità, del rischio, delle minacce e della successiva
protezione dell’integrità logico-funzionale. In particolare, nella sicurezza delle reti
si valutano l’eventuale presenza di vulnerabilità dei singoli nodi che compongono la
rete, la sicurezza dello scambio di informazioni tra i nodi e tutto quello che riguarda
l’interfacciarsi di un nodo in una rete.
1.0.2 Politiche di Sicurezza
La realizzazione di un sistema che garantisca un’assoluta protezione da abusi
è impossibile, ma è possibile attivare meccanismi di sicurezza tali da limitare e
scoraggiare i tentativi.
La politica di sicurezza è quindi un compromesso, dettato dalle proprie necessità, tra
il costo per attivarla ed il beneficio ottenuto in termini di diminuzione del rischio.
Le politiche variano a seconda delle dimensioni delle reti, comportandone diverse
necessità, elenchiamo di seguito una possibile categorizzazione delle dimensioni:
1
CAPITOLO 1. INTRODUZIONE 2
• Domestica (Home): Rete di dimensioni limitate, utilizzata tipicamente al-
l’interno dello stesso edificio, la quale si interfaccia con internet tramite un
modem-router, solitamente non professionale, che può avere anche le funziona-
lità di AP Wireless e di Firewall. Il numero di servizi attivati è basso, dato
che generalmente non vi sono installati Server (Web, mail, DNS, ...). L’utenza
necessità quasi univocamente di collegarsi verso l’esterno o a dispositivi locali
alla rete: NAS, dispositivi di Casting, Mediaserver.
La Sicurezza è data dal firewall, che di default è bloccante per ogni servizio
proveniente dall’esterno.
• Aziendale (Corporate): Rete di dimensioni variabili a seconda delle necessità
dell’azienda, tendenzialmente superano la dimensione di una rete domestica, è
composta da più dispositivi professionali che gestiscono tutta l’infrastruttura
della rete, permettendo la suddivisione in zone e il controllo del traffico di ogni
zona. Il numero di servizi attivati è elevato, dato che nell’ambito aziendale, per
rispondere al fabbisogno informatico richiesto dall’attività, sono spesso forniti
servizi: VPN, Web, mail, DNS, ...
Questa necessità di servizi comporta ad un alto fabbisogno di sicurezza, perciò
sono spesso impiegati dispositivi di controllo del traffico, anti-virus di rete e
controlli periodici per verificcare la presenza di eventuali vulnerabilità.
• Fornitore di servizio (Provider): Rete di grande dimensione, svolge il ruolo
di fornire connessione a utenti pubblici e privati, è composta da dispositivi ad
altissime prestazione che connettono le reti assegnate agli utenti, sia fra di loro
che con internet. Il numero di servizi è alto dato dipende dal tipo di utenza.
La Sicurezza si limita a monitorare e analizzare superficialmente il traffico, per
non gravare sulle prestazioni, bloccando le connessioni a certi indirizzi presenti
in una determinata blacklist, che spesso contiene siti bloccati dallo stato di
apparenza del provider, inoltre potrebbe essere presente un anti-virus di rete,
che impedisce il download di file che potrebbero compromettere l’integrità del
sistema.
Riassumiamo nella tabella 1.1 le precedenti categorie:
Rete Numero di Host Numero di Servizi Protezione
Domestica Piccola (∼ 1-254) Basso Base
Aziendale Media (∼ 255-1024) Alto Elevata
Fornitore di servizio Grande (∼ > 1024) Alto Minima
Tabella 1.1: Categorizzazione della dimensione delle reti
1.1 Normative e Standard
Nella seguente sezione verranno trattate le Normative e Standard vigenti e inerenti
all’abito informatico, facendo riferimento ad organi internazionali come IETF (Inter-
net Engineering Task Force), ISO (International Organization for Standardization).
CAPITOLO 1. INTRODUZIONE 3
1.1.1 Servizi di Sicurezza (RFC2828)
L’Internet Engineering Task Force (IETF), organismo internazionale, libero,
composto da tecnici, specialisti e ricercatori interessati all’evoluzione tecnica e
tecnologica di Internet definisce e classifica i servizi di sicurezza nel seguente modo
(RFC2828 (Internet Security Glossary – Maggio 2000):
• Autenticazione: un servizio che consente di accertare l’identità dichiarata da
un’entità (origine dei dati o peer in una comunicazione) mediate la verifica di
credenziali.
• Autorizzazione: protegge l’accesso ad una risorsa mediante l’applicazione di
“Security Policy”.
• Audit: registrazione di eventi di sistema o di rete. Consente di rintracciare,
ricostruire (ed eventualmente addebitare) l’utilizzo delle risorse.
• Confidenzialità/Riservatezza: impedisce l’utilizzo delle informazioni da
accessi non autorizzati.
• Integrità dei dati: consente di garantire che i dati acceduti non sono stati
modificati.
• Integrità dei sistemi: protegge le risorse del sistema contro modifiche,
distruzioni accidentali o non autorizzate.
• Non ripudio: fornisce protezione contro il ripudio nel coinvolgimento in una
comunicazione. Può essere:
– Non ripudio della sorgente: prova chi è il mittente dei dati in una
transazione.
– Non ripudio della destinazione: prova che i dati sono arrivati ad uno
specifico destinatario.
• Disponibilità: fornisce una protezione per garantire accessibilità di una risorsa
di sistema o di rete.
1.1.2 La prevenzione dei guasti accidentali e dagli attacchi infor-
matici (ISO 27001)
Lo standard internazionali di sicurezza ISO 27001, è una norma che definisce
i requisiti per impostare e gestire un Sistema di Gestione della Sicurezza delle
Informazioni, ed include aspetti relativi alla sicurezza logica, fisica ed organizzativa.
L’obiettivo di questo standard è la salvaguardia dei dati e dei sistemi che li contengono
per difenderli da guasti tecnici accidentali o in caso di danneggiamenti fisici subiti
dai sistemi. Spesso le tecniche di protezione da eventi accidentali sono un’ottima
risposta anche a problemi di sicurezza dovuti a attacchi informatici, dato che gli
obiettivi di tali standard sono:
• protezione dei dati contenuti nei sistemi;
• garanzia di continuità di servizio (business continuity).
CAPITOLO 1. INTRODUZIONE 4
1.1.3 Protezione dei dati personali (Decreto Legislativo 196/2003)
il Decreto legislativo n. 196 emanato il 30 giugno 2003, è una norma della
Repubblica Italiana riguardante la protezione dei dati personali (comunemente noto
anche come codice della privacy), il quale, tutela il diritto del singolo sui propri dati
personali e, conseguentemente, alla disciplina delle diverse operazioni di gestione
(tecnicamente "trattamento") dei dati, riguardanti la raccolta, l’elaborazione, il
raffronto, la cancellazione, la modifica, la comunicazione o la diffusione degli stessi.
Il contenuto del decreto fa chiarezza fornendo precise definizioni:
• Trattamento dei dati: qualunque operazione o complesso di operazioni,
effettuati anche senza l’ausilio di strumenti elettronici, concernenti la raccolta, la
registrazione, l’organizzazione, la conservazione, la consultazione, l’elaborazione,
la modifica, la selezione, l’estrazione, il raffronto, l’utilizzo, l’interconnessione,
il blocco, la comunicazione, la diffusione, la cancellazione e la distruzione di
dati, anche se non registrati in una banca dati.
• Dato personale: identificano le informazioni relative alla persona fisica, iden-
tificati o identificabili, anche indirettamente, mediante riferimento a qualsiasi
altro dato, ivi compreso un numero di riconoscimento personale.
• Dati identificativi: dati personali che permettono l’identificazione diretta
dell’interessato.
• Dati sensibili: dati personali idonei a rivelare:
– l’origine razziale ed etnica;
– le convinzioni religiose, filosofiche o di altro genere;
– le opinioni politiche;
– l’adesione a partiti, sindacati, associazioni od organizzazioni a carattere
religioso, filosofico, politico o sindacale;
– lo stato di salute e la vita sessuale.
• Dati giudiziari: dati personali in materia di casellario giudiziale, di anagrafe
delle sanzioni amministrative dipendenti da reato e dei relativi carichi pendenti.
Inoltre possono essere quei dati personali indicanti la qualità di imputato o di
indagato.
Lo Stato Italiano tutela il cittadino in caso di lesione nei diritti sui propri dati a
mente del d. lgs. 196/03 (ad esempio: raccolta dei dati senza il consenso, consenso
acquisito senza fornire la preventiva informativa di legge, trattamento dei dati oltre i
limiti del consenso dato, negazione o limitazione al diritto di accesso) il quale può
ricorrere al Garante per la protezione dei dati personali (con una procedura piuttosto
rapida e costi contenuti) o al giudice civile (con costi e tempi maggiori). Se invece si
è addirittura subito un danno per trattamento dei dati non conforme alla legge (non
necessariamente economico) il risarcimento può essere concesso in via esclusiva solo
dal giudice civile.
CAPITOLO 1. INTRODUZIONE 5
1.2 Sicurezza dei dati
La protezione dei dati è uno degli aspetti centrali della sicurezza informatica,
in particolare nell’ambito aziendale, l’informazione è considerata un bene aziendale.
La maggior parte delle informazioni sono custodite su supporti informatici, ogni
organizzazione (Università, Ente di ricerca, Banca, Azienda Commerciale, ...) deve
essere in grado di garantire la sicurezza dei propri dati, in un contesto dove i rischi
informatici causati dalle violazioni dei sistemi di sicurezza sono in continuo aumento.
Per questo esistono, a carico delle imprese, precisi obblighi in materia di privacy, tra
cui quello di redigere annualmente uno specifico documento programmatico sulla
sicurezza.
I rischi diretti per un’azienda possono essere riassunti in:
• furti di denaro, informazioni, dati sui propri clienti;
• perdita di produttività dovute a corruzioni dei dati o danneggiamento dei
sistemi, con in aggiunta il danno economico dovuto al ripristino delle normali
condizioni di operatività.
Accanto ad essi sono presenti numerosi rischi indiretti come:
• perdita di potenziali clienti;
• svantaggi sui propri prodotti;
• impatto negativo sul proprio brand name;
• esposizioni legali al non rispetto delle clausole di riservatezza e al non rispetto
delle leggi della privacy.
Ogni tipo di aziende necessita di differenti gradi di sicurezza per ogni tipo di dato
trattato, a seconda di quanto le informazioni da loro create, scambiate o ottenute
siano critiche a livello di privacy, come trattato nella sezione 1.1.3, perciò si può
affermare che è la tipologia del dato che da importanza alla sicurezza.
Per fornire un quadro più completo della tipologia di dati presenti nelle aziende
vengono definiti, in aggiunta a quelli visti nella sezione 1.1.3, i seguenti tipi di dati:
• Dati amministrativi: dati relativi alla gestione dell’organizzazione.
• Dati economici: dati relativi alla situazione economica di un individuo.
• Dati di ricerca: dati relativi a studi e ricerche effettuate da ricercatori in
ambito universitario o negli enti di ricerca.
• Dati di produzione: dati relativi alla fase di produzione, ad esempio i dati
rilevati dalle macchine.
Nella tabella 1.2 si confrontano alcune tipologie di aziende e i dati trattati in
esse.
CAPITOLO 1. INTRODUZIONE 6
Tipologia di azienda Tipologia di dato trattato Livello di criticità dei dati
Banca Personali Medio
Giudiziari Medio
Identificativi Medio
Monetari Alto
Ospedale Personali Medio
Identificativi Medio
Amministrativi Medio
Sensibili Alto
Azienda Commerciale Personali Medio
Identificativi Medio
Amministrativi Medio
Produzione Medio/Alto
Università/Ente di ricerca Personali Medio
Identificativi Medio
Amministrativi Medio
Ricerca Basso
Tabella 1.2: Criticità dei diversi tipi di dati presenti nelle aziende
Come anticipato dalla tabella 1.2 aziende come le banche contengono informazioni
critiche di ogni individuo, come i dati personali, necessari per poter intestare conti
o svolgere attività relative alla banca e dati monetari inerenti alle situazioni dei
conti correnti e altri servizi offerti, quest’ultima tipologia di dato è di particolare
importanza dato che il core business delle banche si basa proprio su questi dati
interni. Perciò è di fondamentale importanza tutelare queste informazioni, in modo
che non vi siano accessi da persone non autorizzate o nel caso più grave che possano
essere modificate.
Similmente gli ospedali trattano dati particolarmente critici, dal punto di vista della
situazione sanitaria dell’individuo(dati sensibili), perciò anche per tali strutture è
fondamentale tutelare tali dati.
Differente è la situazione dei dati nelle Aziende Commerciali, oltre a dipendere
ovviamente dal tipo di attività commerciale svolta, perciò più il core business di tale
attività è incentrato sui dati, più il livello di criticità dei dati aumenta, dipende inoltre
dalla quantità di dati personali e identificativi richiesti all’individuo per svolgere
tale attività. Quindi la necessità di sicurezza informatica in questo caso può variare.
Infine per le Università e Enti di Ricerca si ha un livello di criticità tendenzialmente
basso dato che spesso il materiale viene divulgato alla comunità, però si necessita di
proteggere l’identità dei dipendenti e l’autenticità del materiale prodotto da essi.
Capitolo 2
Metodi di Attacco
Un attacco è un tentativo di accesso non autorizzato al sistema e di utilizzo non
autorizzato dei dati che può compromettere la riservatezza, l’integrità o anche la
disponibilità dei dati o del sistema stesso. Gli attacchi si possono suddividere in
passivi e attivi; gli attacchi passivi compromettono l’autenticazione e la riservatezza
per entrare in possesso di dati privati; gli attacchi attivi compromettono l’integrità
e la disponibilità, cioè hanno come obiettivo l’alterazione delle informazioni o il
danneggiamento del sistema per renderlo non utilizzabile. Spesso quando un sistema
viene compromesso l’intruso inserisce programmi o virus per mascherare l’attacco, in
modo che non possa essere individuato, per procurarsi informazioni aggiuntive e per
creare un accesso (backdoor) da sfruttare successivamente.
2.1 Attacco passivo
Questi attacchi sono finalizzati ad ottenere informazioni dai computer e stimare
le possibili modalità di intrusione remota.
2.1.1 Raccolta di informazioni su possibili obiettivi
Attacco alla Confidenzialità/Riservatezza, i principali tipi di attacco sono:
• Network Monitor: sistema che analizza costantemente il traffico di rete.
L’amministratore della rete, spesso, configura allarmi (via email o SMS) per
l’avviso di eventuali situazioni critiche.
• Port Scanner: tecnica per sondare un server o un host stabilendo quali porte
siano in ascolto sulla macchina. Questo è spesso utilizzato dagli amministratori
per verificare le politiche di sicurezza delle loro reti, e dagli hacker per identificare
i servizi in esecuzione su un host e sfruttarne le vulnerabilità.
Un portscan è un processo che invia le richieste dei client a un intervallo
di indirizzi di porte su un host, con l’obiettivo di trovare una porta aperta.
Elaborando le risposte è possibile stabilire quali servizi di rete siano attivi su
quel computer. Una porta si dice "in ascolto" ("listening") o "aperta" quando
vi è un servizio, programma o processo che la usa.
7
CAPITOLO 2. METODI DI ATTACCO 8
2.1.2 Intercettazione delle comunicazioni
Attacco alla Confidenzialità/Riservatezza, i principali tipi di attacco sono:
• Sniffing: attività di intercettazione passiva dei dati che transitano in una
rete telematica che permette l’intercettazione fraudolenta di password o altre
informazioni sensibili. I prodotti software utilizzati per eseguire queste attività
vengono detti sniffer, ed oltre ad intercettare e memorizzare il traffico, offrono
funzionalità di analisi del traffico stesso. Gli sniffer intercettano i singoli
pacchetti, decodificando le varie intestazioni di livello datalink, rete, trasporto,
applicativo. Inoltre possono offrire strumenti che analizzano ad esempio tutti i
pacchetti di una connessione TCP per valutare il comportamento del protocollo
o per ricostruire lo scambio di dati tra le applicazioni.
Lo sniffing si può applicare in più modalità:
– Sniffing del traffico locale: il traffico può essere intercettato da uno
degli host coinvolti nella comunicazione, indipendentemente dal tipo di
interfaccia di rete su cui viene inviato.
– Sniffing in reti locali: per intercettare i dati in una rete locale è
necessario possedere od ottenere l’accesso fisico al mezzo trasmissivo.
– Sniffing in reti ethernet non-switched: in questo tipo di reti ethernet
il mezzo trasmissivo (cavo coassiale o, attualmente, cavo UTP o STP
connesso ad un hub) è condiviso, quindi tutte le schede di rete dei com-
puter nella rete locale ricevono tutti i pacchetti, anche quelli destinati
ad altri, selezionando i propri a seconda dell’indirizzo MAC (indirizzo
hardware univoco della scheda di rete). Lo sniffing in questo caso consiste
nell’impostare sull’interfaccia di rete la cosiddetta modalità promiscua,
che disattivando questo "filtro hardware" permette al sistema l’ascolto di
tutto il traffico passante sul cavo.
– Sniffing in reti ethernet switched: in questo caso l’apparato centrale
della rete, definito switch, si occupa di inoltrare su ciascuna porta solo il
traffico destinato al dispositivo collegato a quella porta: ciascuna interfac-
cia di rete riceve, quindi solo i pacchetti destinati al proprio indirizzo ed i
pacchetti di broadcast. L’impostazione della modalità promiscua è quindi
insufficiente per poter intercettare il traffico in una rete gestita da switch.
In questo caso ci si può collegare ad una porta chiamata "SPAN" nella
terminologica di Cisco, "Roving Analysis" per 3Com e "port mirroring"
per gli altri produttori, che riceve il traffico circolante su tutte le porte
dello switch. Alcuni metodi per poter ricevere tutto il traffico dallo switch
da una porta qualunque sono il MAC flooding, l’ARP poisoning e il port
stealing.
– Sniffing in reti geografiche: per intercettare i dati che transitano su
reti geografiche si utilizzano tecniche Man in the middle analoghe a quelle
accennate in precedenza, operanti però a livello più alto: possono inter-
venire a livello di instradamento del traffico IP (routing), oppure inviare
alle vittime informazioni fittizie per quanto riguarda la corrispondenza tra
dominio e indirizzi IP sfruttando l’assenza di autenticazione del sistema
DNS.
CAPITOLO 2. METODI DI ATTACCO 9
• Eavesdropping: attività di intercettazione passiva dei segnali radio decodifi-
cando, o cercando di decodificare, i dati trasmessi da terzi. Le stesse componenti
hardware che sono utilizzate (schede di rete) per trasmettere e ricevere dati,
possono essere modificate in modo da intercettare il traffico trasmesso su un
particolare canale o sua una certa frequenza della rete. Questo attacco necessita
che la periferica modificata si trovi nel raggio di trasmissione wireless e, con
questi apparecchi "scanner", si possono raccogliere i dati relativi alla trasmis-
sione: range del segnale, utilizzatori della rete, periodo di attività e inattività
della stessa e altro ancora, che possono essere impiegati per pianificare un
attacco mirato alla rete, anche se le comunicazioni sono crittografate.
2.2 Attacco attivo
Questi attacchi sono finalizzati alla penetrazione remota del computer, al furto o
alterazione dei dati o al danneggiamento del sistema.
2.2.1 Fabbricazione dell’identità di un’altra entità
Attacco all’autenticazione, il principale tipo di attacco è lo spoofing, tipo di at-
tacco informatico dove viene impiegata la falsificazione dell’identità (spoof). Quando
la falsificazione non avviene in campo informatico si parla di social engineering. I
tipi di spoofing sono:
• User account spoofing: usare nome utente e password di un altro utente
senza averne il diritto. Può avvenire utilizzando strumenti come sniffer e
password crackers.
• IP Address spoofing: si basa sul fatto che la maggior parte dei router
all’interno di una rete controllino solo l’indirizzo IP di destinazione e non quello
sorgente. Le finalità di tale tecnica sono:
– superare alcune tecniche difensive contro le intrusioni, in particolare quelle
basate sull’autenticazione dell’indirizzo;
– realizzare attacchi DDoS, ad esempio NTP reflection.
• MAC Address forging: il MAC address viene modificato impersonando
l’indirizzo della vittima. Diversi sistemi di autenticazione/autorizzazione sono
basati su MAC address, ad esempio:
– autenticazione verso DHCP server;
– sessioni attive su Captive Portal (session Hijacking).
• ARP Spoofing / Poisoning: consiste nell’inviare intenzionalmente e in
modo forzato risposte ARP contenenti dati inesatti. In questo modo la tabella
ARP di un host conterrà dati alterati.
CAPITOLO 2. METODI DI ATTACCO 10
2.2.2 Interruzione/compromissione di servizi
Attacco alla disponibilità del servizio, i principali tipi di attacco sono:
• Denial of Service (DoS): in questo tipo di attacco si cerca di portare il
funzionamento di un sistema informatico che fornisce un servizio, ad esempio
un sito web, al limite delle prestazioni, fino a renderlo non più in grado di
erogare il servizio.
Gli attacchi possono essere:
– diretti (l’attaccante interagisce direttamente con la vittima);
– indiretti (l’attaccante sfrutta terze parti).
Gli attacchi vengono abitualmente attuati inviando molti pacchetti di richieste,
di solito ad un server Web, FTP o di posta elettronica saturandone le risorse e
rendendo tale sistema instabile, quindi qualsiasi sistema collegato ad Internet e
che fornisca servizi di rete basati sul TCP è soggetto al rischio di attacchi DoS.
I principali attacchi sono:
– Flooding:
∗ Ping floods: invio di pacchetti ICMP, in numero maggiore a quel-
li gestibili dal sistema attaccato; l’aggressore invia un grosso flus-
so di traffico ICMP echo verso una serie di indirizzi di broadcast
attribuendosi come indirizzo sorgente quello della vittima.
∗ TCP SYN Floods: funziona se un server alloca le risorse relative
alla connessione dopo aver ricevuto un SYN, ma prima di aver ricevuto
un messaggio ACK.
– Invio di pacchetti malformati:
∗ Ping di grandi dimensioni (ping of death): può causare buffer
overflow con conseguente blocco del servizio o, nei casi più gravi, crash
del sistema.
∗ UDP bombs: pacchetti UDP costruiti con valori illegali in certi
campi. In qualche sistema operativo la ricezione di tali pacchetti
imprevisti causa il crash.
• Distributed DoS (DDoS): per rendere più efficace l’attacco in genere vengono
utilizzati molti computer, talvolta inconsapevoli sui quali precedentemente è
stato inoculato un programma appositamente creato per attacchi DoS e che si
attiva ad un comando proveniente dall’hacker creatore.
2.2.3 Sfruttamento di bug nel software o vulnerabilità nel sistema
Attacco all’integrità dei sistemi e all’autenticazione, il principale tipo di attacco
è l’applicazione degli exploit noti.
Un exploit è un termine usato in informatica per identificare un codice che, sfruttando
un bug o una vulnerabilità, porta all’acquisizione di privilegi o al denial of service di
un computer. L’argomento degli esploit verrà approfondito nel capitolo 4.
CAPITOLO 2. METODI DI ATTACCO 11
2.2.4 Diffusione intenzionale di vulnerabilità: Malware
Attacco all’integrità dei sistemi, software che indeboliscono la sicurezza di una
risorsa, cioè interferiscono con le operazioni svolte da un computer, rubarono in-
formazioni sensibili, accedono a sistemi informatici privati, o mostrano pubblicità
indesiderata. L’informatizzazione della società e delle tecniche pubblicitarie, avvenuta
negli ultimi anni, ha scaturito un forte aumento dei malware presenti in rete, come
mostrato dalla figura 2.1
Figura 2.1: Diffusione Malware
Riguardo la diffusione di malware per tipo, PandaLabs, nota software house di
antivirus riporta i seguenti dati del Q2 2015 (tabella 2.1 e grafico 2.2):
Tipologia di Malware Infezioni Percentuali
Trojans 76,25%
Viruses 1,53
Worms 2,40
Adware/Spyware 5,43
Other 14,39
Tabella 2.1: Infezioni Malware Q2 2015
CAPITOLO 2. METODI DI ATTACCO 12
Figura 2.2: Infezioni Malware Q2 2015
I principali tipi di malware sono:
• Virus: sono parti di codice che si diffondono copiandosi all’interno di altri
programmi, o in una particolare sezione del disco fisso, in modo da essere
eseguiti ogni volta che il file infetto viene aperto. Un virus può sfruttare le
vulnerabilità (exploit) di un sistema operativo arrecando danni al sistema,
rallentando o rendendo inutilizzabile il dispositivo infetto.
Un Virus è solitamente composto da un numero molto ridotto di istruzioni, (da
pochi byte ad alcuni kilobyte, per rendersi più difficile da individuare e facile
da copiare), ed è specializzato per eseguire soltanto poche e semplici operazioni
e ottimizzato per impiegare il minor numero di risorse, in modo da rendersi il
più possibile invisibile.
Caratteristica principale di un virus è quella di riprodursi e quindi diffondersi
nel computer ogni volta che viene aperto il file infetto, perciò per essere attivato,
deve infettare un programma ospite, o una sequenza di codice che viene lanciata
automaticamente, come ad esempio nel caso dei boot sector virus.
La tecnica solitamente usata dai virus è quella di infettare i file eseguibili: il virus
inserisce una copia di sé stesso nel file eseguibile che deve infettare, pone tra le
prime istruzioni di tale eseguibile un’istruzione di salto alla prima linea della
sua copia ed alla fine di essa mette un altro salto all’inizio dell’esecuzione del
programma. In questo modo quando un utente lancia un programma infettato
viene dapprima impercettibilmente eseguito il virus, e poi il programma.
I virus informatici più semplici sono composti da due parti essenziali, sufficienti
ad assicurarne la replicazione:
– Routine di ricerca: si occupa di ricercare dei file adatti ad essere infettati
dal virus e controlla che gli stessi non ne contengano già una copia, per
evitare una ripetuta infezione dello stesso file.
– Routine di infezione: copia il codice virale all’interno di ogni file selezionato
dalla routine di ricerca, affinché venga eseguito ogni volta che il file infetto
viene aperto, in maniera trasparente rispetto all’utente.
CAPITOLO 2. METODI DI ATTACCO 13
Molti virus sono progettati per eseguire del codice estraneo alle finalità di
replicazione del virus stesso e contengono dunque altri due elementi:
– Routine di attivazione: contiene i criteri in base ai quali il virus decide se
effettuare o meno l’attacco (es. una data, o il raggiungimento di un certo
numero di file infetti).
– Payload: una sequenza di istruzioni in genere dannosa per il sistema ospite,
come ad esempio la cancellazione di alcuni file o la visualizzazione di mes-
saggi pop-up sullo schermo (gli adware sono malware che si specializzano
nel far apparire banner pubblicitari su computer della vittima).
I virus possono essere criptati e magari cambiare algoritmo e/o chiave ogni
volta che vengono eseguiti, quindi possono contenere altri tre elementi:
– Routine di decifratura: contenente le istruzioni per decifrare il codice del
virus.
– Routine di cifratura: di solito criptata essa stessa, che contiene il procedi-
mento per criptare ogni copia del virus.
– Routine di mutazione: si occupa di modificare le routine di cifratura e
decifratura per ogni nuova copia del virus.
• Worms: è una particolare categoria di malware in grado di autoreplicarsi. E’
simile ad un virus, ma a differenza di questo non necessita di legarsi ad altri
eseguibili per diffondersi.
Tipicamente un worm modifica il computer che infetta, in modo da venire
eseguito ogni volta che si avvia la macchina e rimanere attivo finché non si
spegne il computer o non si arresta il processo corrispondente. Il worm tenta
di replicarsi sfruttando Internet in diversi modi.
Il mezzo più comune impiegato dai worm per diffondersi è la posta elettronica:
il programma maligno ricerca indirizzi e-mail memorizzati nel computer ospite
ed invia una copia di se stesso come file allegato (attachment) a tutti o parte
degli indirizzi che è riuscito a raccogliere. I messaggi contenenti il worm
utilizzano spesso tecniche di social engineering per indurre il destinatario ad
aprire l’allegato, che spesso ha un nome che permette al worm di camuffarsi
come file non eseguibile.
Questi eseguibili maligni possono anche sfruttare i circuiti del file sharing per
diffondersi. In questo caso si copiano tra i file condivisi dall’utente vittima,
spacciandosi per programmi ambiti o per crack di programmi molto costosi o
ricercati, in modo da indurre altri utenti a scaricarlo ed eseguirlo.
La tipologia più pericolosa di worm sfrutta dei bug di alcuni software o sistemi
operativi, in modo da diffondersi automaticamente a tutti i computer vulnerabili
connessi in rete.
• Bot: (o robot) è un’applicazione software che esegue attività automatizzate
(script) su Internet . Solitamente, svolgono compiti che sono semplici e struttu-
ralmente ripetitivi, ad un tasso più elevato di quanto sarebbe possibile per un
essere umano.
CAPITOLO 2. METODI DI ATTACCO 14
Vengono largamente utilizzati nel web spidering (web crawler), in quanto auto-
matizzano le operazioni di recupero e analisi delle informazioni dai server web,
più rapidamente di quanto possa fare un umano. Uno dei punti di forza dei
bot risiede nella difficoltà di identificarli dagli esseri umani.
• Spyware: è un tipo di software che raccoglie informazioni riguardanti l’attività
online di un utente (siti visitati, acquisti eseguiti in rete, ...) senza il suo con-
senso, trasmettendole tramite Internet, il più delle volte, ad organizzazioni che
le utilizzeranno per trarne profitto, solitamente attraverso l’invio di pubblicità
mirata.
Gli spyware, a differenza dei virus e dei worm, non hanno la capacità di dif-
fondersi autonomamente, quindi richiedono l’intervento dell’utente per essere
installati. In questo senso sono dunque simili ai trojan.
Uno spyware può essere installato sul computer di un ignaro utente sfruttando
le consuete tecniche di ingegneria sociale. Molti programmi offerti "gratuita-
mente" su Internet nascondono in realtà un malware di questo tipo: il software
dunque non è gratuito, ma viene pagato attraverso un’invasione della privacy
dell’utente, spesso inconsapevole.
Gli spyware costituiscono innanzi tutto una minaccia per la privacy dell’utente,
in quanto sottraggono senza autorizzazione informazioni sul suo comportamento
quando connesso ad Internet: tempo medio di navigazione, orari di connessione,
siti Web visitati, se non dati più riservati come gli indirizzi e-mail e le password.
Questi malware portano con sé anche delle conseguenze sul funzionamento
del computer su cui sono installati. I danni vanno dall’utilizzo di banda della
connessione ad Internet, con conseguente riduzione della velocità percepita
dall’utente, all’occupazione di cicli di CPU e di spazio nella memoria RAM.
Nessuno spyware ha lo scopo di rendere inutilizzabile il sistema su cui è in-
stallato, dato che esso deve essere funzionante per consentire la raccolta e
l’invio delle informazioni. Malfunzionamenti sono tuttavia piuttosto comuni,
soprattutto nel caso si accumulino molti spyware. Un sintomo comune di una
grave infezione da spyware è la difficoltà di connettersi ad Internet, oppure la
presenza di tentativi di connessione non richiesti dall’utente.
Esistono specifici programmi antispyware concepiti appositamente per rilevare
e cancellare spyware dal sistema. Bisogna tuttavia considerare che la rimozione
di un componente spyware potrebbe causare il malfunzionamento del software
di cui esso faceva parte, e che non tutti gli spyware vengono sempre riconosciuti
o rimossi da antivirus e antispyware.
• Keylogger: è uno strumento in grado di intercettare tutto ciò che un utente
digita sulla tastiera del proprio, o di un altro computer. Esistono vari tipi di
keylogger:
– Hardware: vengono collegati al cavo di comunicazione tra la tastiera ed il
computer o all’interno della tastiera.
– Software: programmi che controllano e salvano la sequenza di tasti che
viene digitata da un utente.
• Trojan: (o trojan horse, dall’inglese "Cavallo di Troia") è un tipo di malware
che deve il suo nome al fatto che le sue funzionalità sono nascoste all’interno di
CAPITOLO 2. METODI DI ATTACCO 15
un programma apparentemente utile; è dunque l’utente stesso che installando
ed eseguendo un certo programma, inconsapevolmente, installa ed esegue anche
il codice trojan nascosto.
In genere col termine Trojan ci si riferisce ai trojan ad accesso remoto (detti
anche RAT dall’inglese Remote Administration Tool), composti generalmente
da 2 file: il file server, che viene installato nella macchina vittima, ed un file
client, usato dall’attaccante per inviare istruzioni che il server esegue. In questo
modo, la vittima è indotta ad eseguire il programma.
I trojan non si diffondono autonomamente come i virus o i worm, quindi
richiedono un intervento diretto dell’aggressore per far giungere l’eseguibile
maligno alla vittima. A volte agiscono insieme: un worm viene iniettato in
rete con l’intento di installare dei trojan sui sistemi. Spesso è la vittima stessa
a ricercare e scaricare un trojan sul proprio computer, ad esempio inseriti
all’interno di programmi piratati.
Vengono in genere riconosciuti da un antivirus aggiornato come tutti i malware;
nel caso il trojan in questione non sia ancora stato scoperto dalle software house
degli antivirus, è possibile che esso venga rilevato, con la scansione euristica,
come probabile malware.
• Backdoor: sono "porte" di servizio (cioè le porte sul retro) che consentono di
superare in parte o totalmente le procedure di sicurezza attivate in un sistema
informatico.
Queste "porte" possono essere intenzionalmente create dai gestori del sistema
informatico per permettere una più agevole opera di manutenzione dell’infra-
struttura informatica mentre più spesso da cracker intenzionati a manomettere
il sistema. Possono anche essere installate autonomamente da alcuni malware
(come virus, worm o trojan), in modo da consentire ad un utente esterno di
prendere il controllo remoto della macchina senza l’autorizzazione del pro-
prietario. Oltre ad essere molto pericolosi per l’integrità delle informazioni
presenti sul sistema, le backdoor installate dai virus possono essere utilizzate
per condurre degli attacchi di tipo DDoS.
• Ransomware: è un tipo di malware che limita l’accesso del dispositivo che
infetta, richiedendo un riscatto da pagare per rimuovere la limitazione. Ad
esempio alcune forme di ransomware bloccano il sistema richiedendo all’utente
il pagamento per sbloccarlo, altri invece cifrano i file dell’utente chiedendo di
pagare per riportare i file cifrati in chiaro.
I ransomware più sofisticati utilizzano sistemi ibridi di criptazione (che non
necessitano di condivisione di chiavi fra i due utenti) sui documenti della vittima,
adottando una chiave privata casuale e una chiave pubblica fissa. L’autore del
malware è l’unico a conoscere la chiave di decriptazione privata.
I Ransomware sono in continua diffusione come riporta Kaspersky in figura 2.3
CAPITOLO 2. METODI DI ATTACCO 16
Figura 2.3: Numero di utenti attaccati da Ransomware (Q4 2014 - Q3 2015)
2.2.5 Ingegneria Sociale
Nel campo della sicurezza delle informazioni per ingegneria sociale (dall’inglese
social engineering) si intende lo studio del comportamento individuale di una persona
al fine di capire informazioni utili. Le principali tecniche sono:
• Phishing: è una attività illegale che sfrutta una tecnica di ingegneria sociale,
ed è utilizzata per ottenere l’accesso a informazioni personali o riservate con la
finalità del furto d’identità mediante l’utilizzo delle comunicazioni elettroniche,
soprattutto messaggi di posta elettronica fasulli o messaggi istantanei, ma
anche contatti telefonici.
Grazie a messaggi che imitano grafico e logo dei siti istituzionali, l’utente è
ingannato e portato a rivelare dati personali, come numero di conto corrente,
numero di carta di credito, codici di identificazione.
• Spam: lo spamming è l’invio di messaggi, anche verso indirizzi generici, non
verificati o sconosciuti, ad alta frequenza o a carattere di monotematicità tale da
renderli indesiderati (generalmente commerciali o offensivi). Può essere attuato
attraverso qualunque sistema di comunicazione, ma il più usato è Internet,
attraverso messaggi di posta elettronica, chat, tag board, forum, Facebook e
altri servizi di rete sociale.
Il principale scopo dello spamming è la pubblicità, il cui oggetto può andare
dalle più comuni offerte commerciali a proposte di vendita di materiale por-
nografico o illegale, come software pirata e farmaci senza prescrizione medica,
da discutibili progetti finanziari a veri e propri tentativi di truffa. L’80% delle
email inviate oggi nel mondo è Spam.
In merito alla proporzione di spam nel traffico mail (Figura 2.4) e alla prove-
nienza dello spam (Figura 2.5), Kaspersky, nota software house di antivirus
riporta i seguenti dati del Q2 2015.
CAPITOLO 2. METODI DI ATTACCO 17
Figura 2.4: Spam in proporzione al traffico mail, Gennaio - Giugno 2015
Figura 2.5: Paesi da cui proviene lo spam, Q2 2015
Capitolo 3
Metodi di Difesa
Per proteggere una rete da tali fattori di rischio, visti nel capito 2, vi sono varie
tecniche o approcci, come impostare policy per gli utenti e gli amministratori, impo-
stare sistemi di difesa della LAN o dell’host interessato e rinforzare l’autenticazione
e la riservatezza nelle comunicazioni.
3.1 Policy per l’utente e l’amministratore
• Password Policy: metodo di difesa all’autenticazione, sono un insieme di
regole volte a migliorare la sicurezza del computer, incoraggiando gli utenti
a utilizzare password complesse e non prevedibile. Le password policy sono
spesso parte del regolamento ufficiale di un’organizzazione e possono essere
insegnate come parte della formazione di sensibilizzazione alla sicurezza.
Alcuni governi hanno quadri di autenticazione nazionali che definiscono i
requisiti per l’autenticazione degli utenti per i servizi pubblici, inclusi i requisiti
per le password. I componenti tipici di una password policy include:
– Lunghezza e composizione password: molte Policy richiedono una
lunghezza minima della password, dato che le password più lunghe sono le
più sicure; certi sistemi impongono una lunghezza massima della password
per compatibilità con i sistemi legacy. Vengono inoltre suggeriti o imposti
requisiti del tipo di password che l’utente può scegliere, come ad esempio:
∗ l’uso di caratteri maiuscoli e minuscoli (Case Sensitivity);
∗ includere numeri e caratteri speciali (@, #, $);
∗ proibire parole presenti nella password blacklist e nelle informazioni
personali dell’utente;
∗ proibire password formate da date, numeri di telefono o numeri
comuni.
– Password Blacklist: lista di password bloccate per l’uso. Contiene
password costituite da combinazioni di caratteri che soddiferebbero la
policy, ma non dovrebbero essere utilizzate, perché ritenute insicure per
uno o più motivi, ad esempio essere facilmente prevedibile.
– Password duration: richiede all’utente di cambiare la password perio-
dicamente, ogni 90 o 180 giorni. Certi sistemi inseriscono la password
18
CAPITOLO 3. METODI DI DIFESA 19
precedente alla modifica nella blacklist, in modo che non sia più possibile
riutilizzarla.
• Antivirus/Antispam: metodo di difesa all’integrità di sistema e alla dispo-
nibilità, è un software programmato per funzionare su un computer atto a
prevenire, rilevare ed eventualmente rendere inoffensivi codici dannosi, noti
anche come malware, spiegati nel capitolo 2.2.4. Solitamente non si limita alla
funzione di eliminazione dei programmi malevoli ma ha anche una funzione
preventiva, impedendo che un virus possa entrare in un sistema ed infettarlo.
Gli antivirus non sono una protezione totale contro la totalità dei virus infor-
matici esistenti al mondo. Inoltre, un antivirus si basa su determinate regole e
algoritmi scritti da esseri umani, e pertanto queste possono portare a errori
("falsi positivi", ossia file riconosciuti come infetti quando non lo sono, e "falsi
negativi", il caso opposto) e a decisioni sbagliate. Un’ulteriore limitazione è
dovuta al fatto che un virus potrebbe essere ancora non abbastanza diffuso, e
quindi non essere ancora stato studiato da tutti i produttori di antivirus.
Gli antivirus utilizzano tecniche di analisi statica, che si basano esclusivamente
sull’analisi di codice e dati dei file binari e analisi dinamica (sandbox e honey-
pot), che si basano sull’esecuzione dinamica di un file per capire se è maligno o
benigno.
Uno dei principali metodi di funzionamento degli antivirus si basa sulla ricerca
nella memoria RAM o all’interno dei file presenti in un computer di uno schema
tipico di ogni virus: in pratica ogni virus è composto da un numero ben preciso
di istruzioni e il programma non fa altro che cercare se questa sequenza è
presente all’interno dei file o in memoria. Uno schema di questo tipo viene
anche detto "virus signature". Il successo di questa tecnica di ricerca si basa sul
costante aggiornamento degli schemi che l’antivirus è in grado di riconoscere,
aggiornamento effettuato solitamente da un gruppo di persone in seguito alle
segnalazioni degli utenti e da gruppi specializzati nell’individuazione di nuovi
virus.
• Aggiornamenti automatici: metodo di difesa all’integrità di sistema, è il
processo di sostituzione di un componente software di un sistema informatico
con un componente di uguale funzione più recente, avente lo scopo di risolvere
dei difetti riscontrati nel precedente componente, migliorarne le prestazioni
oppure aggiungere nuove funzioni. Questo permette di rimuovere bug presenti
sul software e vulnerabilità, e di conseguenza impedire l’utilizzo di exploit.
• Analisi dei Log: metodo di difesa all’auditing, consiste nella gestione e
nell’analisi degli eventi di sistema e di rete, come ad esempio: azioni eseguite
dal sistema, cambiamento di una password, login di un certo utente e messaggi
di errore di una applicazione, questo permette:
– Warning: individuare rapidamente eventuali attacchi in corso.
– Trouble-shooting: mantenere uno storico degli eventi per tracciare le
attività.
• CERT: (o CSIRT – Computer Security Incident Response Team) metodo di
difesa alla disponibilità, è un servizio offerto all’interno di una comunità di
CAPITOLO 3. METODI DI DIFESA 20
utenti Internet per la gestione di emergenze in seguito ad attacchi informatici. I
CERT si pongono come un punto di riferimento per gli utenti della rete, in grado
di aiutarli a risolvere qualunque problema legato alla sicurezza informatica.
Di norma un CERT è composto da persone specializzate in diversi ambiti,
per esempio amministratori di rete, amministratori di sistema ed esperti in
sicurezza informatica. Essi sono a conoscenza di come dovrebbero apparire,
in condizioni normali, i settori di loro competenza, e dunque sono in grado di
accorgersi immediatamente dell’eventuale verificarsi di un’anomalia.
I compiti fondamentali di un CERT consistono nel rispondere alle segnalazioni
degli utenti vittime di incidenti informatici e nell’analizzare i sistemi hardware
e software per individuarvi eventuali vulnerabilità.
3.2 Difesa della LAN o dell’Host
• Vulnerability scanner: è un programma progettato per ricercare e mappare
le vulnerabilità(debolezze) di un’applicazione, di un computer o di una rete.
Questo argomento viene trattato principalmente dalla presente tesi (Sezione
4.3).
• Sniffer: metodo visto nella sottosezione 2.1.2 può essere utilizzato anche come
metodo di difesa alla disponibilità, considerandolo un programma di utilità che
intercetta passivamente i dati che transitano nella rete, permettendo l’analisi e
l’individuazione di problemi di comunicazione o di tentativi di intrusione.
• Firewall: metodo di difesa all’integrità di sistema, è una entità hardware o
software che si pone tra internet e la rete (LAN firewall) o host (Personal
Firewall) che si vuole proteggere. Il firewall svolge una funzione di filtro,
consentendo il transito solamente alle connessioni ritenute lecite mediante una
opportuna “Policy”. Gli obiettivi principali dei firewall sono:
– monitorare, limitare e autenticare l’accesso alla rete da proteggere, nei
confronti di accessi provenienti dall’esterno (Internet);
– monitorare, limitare e autenticare l’accesso all’esterno (Internet) da parte
dell’utenza interna.
Un firewall filtra il traffico sulla base di un insieme di regole che definiscono
una policy di sicurezza. Esistono due politiche per l’applicazione delle regole:
– policy default-deny: viene permesso solo ciò che viene dichiarato esplicita-
mente, il resto viene vietato.
– policy default-allow: viene vietato solo ciò che viene dichiarato esplicita-
mente, il resto viene permesso.
Tutti i firewall utilizzano la politica default-deny poiché garantisce una maggiore
sicurezza e una maggiore accuratezza nella definizione delle regole rispetto alla
politica default-allow, anche se quest’ultima consente una configurazione più
semplice.
L’analisi dei pacchetti che costituiscono il traffico, secondo i criteri di sicurezza
formalizzati dalle regole, si traduce in una delle seguenti azioni:
CAPITOLO 3. METODI DI DIFESA 21
– allow: il firewall lascia passare il pacchetto.
– deny: il firewall blocca il pacchetto e lo rimanda al mittente.
– drop: il firewall blocca il pacchetto e lo scarta senza inviare alcuna
segnalazione al mittente.
Figura 3.1: LAN e Personal Firewall
I firewall possono essere di 2 tipi:
– I packet filter: agiscono a livello rete e trasporto, analizza tutti i pacchet-
ti in transito e applica azioni del tipo permit/deny sulla base di politiche
basate sugli indirizzi IP e le porte di provenienza e/o di destinazione. Gli
obiettivi dei firewall packet filter sono:
∗ rendere visibili ad internet solamente i servizi di rete destinati ad
un accesso pubblico (protezione dei servizi intranet e dei servizi
“inconsapevoli”);
∗ bloccare il traffico indesiderato (es: P2P, ...);
∗ strumento per la gestione delle emergenze (bloccare un host ostile o
contaminato da virus).
Agisce a livello di pacchetti IP, ma deve leggere anche i primi byte del
livello 4 per leggere le porte TCP o UDP.
– I proxy: agiscono a livello applicazione, sono programmi applicativi con
funzioni di tramite tra client e server. In modo implicito o esplicito il
client deve rivolgersi al proxy per poter raggiungere il server. Occorre un
proxy specifico per ogni applicazione. Gli obiettivi dei firewall proxy sono:
∗ mettere in comunicazione client e server che non hanno visibilità
diretta (ad esempio se il client è in una intranet);
∗ migliorare le prestazioni (es: Web Caching);
∗ aggiungere funzionalità di security (monitoraggio, autenticazione,
filtro).
• IDS(Intrusion detection system): metodo di difesa alla disponibilità, è un
dispositivo software/hardware per identificare accessi non autorizzati a host
o LAN. L’IDS generalmente si appoggia su un database per memorizzare le
CAPITOLO 3. METODI DI DIFESA 22
regole utilizzate per individuare le violazioni di sicurezza.
Gli IDS consistono in un insieme di tecniche e metodologie realizzate ad-hoc per
rilevare pacchetti dati sospetti a livello di rete, di trasporto o di applicazione;
sono infatti utilizzati per rilevare tutti gli attacchi alle reti informatiche e
ai computer. Questi attacchi includono gli attacchi alle reti informatiche
tramite lo sfruttamento di un servizio vulnerabile, attacchi attraverso l’invio di
dati malformati e applicazioni malevole, tentativi di accesso agli host tramite
innalzamento illecito dei privilegi degli utenti, accessi non autorizzati a computer
e file, e i classici programmi malevoli come virus, trojan e worm.
Gli IDS sono classificabili nel seguente modo:
– Host IDS (HIDS): software che analizza file di log del sistema, le system
call, le modifiche al file system del computer (modifiche nel file delle
password, nel database degli utenti e della gestione dei privilegi, ...) e
altre componenti del computer. Si basa sulla differenza tra lo stato
analizzato ed uno stato iniziale.
– Network IDS (NIDS): è un sistema che analizza il traffico che passa su
un segmento di rete dov’è attestato, cercando tracce di attacchi. Il suo
funzionamento è regolato in base a due principi:
∗ Signature matching: con cui l’ids cattura il traffico e lo confronta con
un database di firme di attacchi.
∗ Network analysis: che entra in funzione quando il signature matching
fallisce e che è in grado di rilevare anomalie nei flussi di traffico e
quindi di rilevare anche quegli attacchi che non sono ancora stati
scoperti come tali.
– Network Node IDS (NNIDS): analizza il traffico di rete che passa su
un unico nodo. Differente da Host-based IDS, dato che NNIDS non opera
nei file all’interno del sistema.La differenza tra NNIDS e NIDS è che nel
NNIDS il traffico analizzato è dell’unico nodo e non quello dell’intera rete.
Un applicazione del NNIDS è quella di installarlo in un dispositivo VPN
in modo tale che il traffico venga analizzato una volta decriptato.
– Hybrid IDS: combina HIDS e NIDS. Le informazioni recuperate dagli
agenti in esecuzioni negli Host vengono integrate con le informazioni
prelevate dalla rete locale.
Un IDS non può bloccare o filtrare i pacchetti in ingresso ed in uscita, né tanto
meno può modificarli, quindi non cerca di bloccare le intrusioni, ma si limita a
rilevarle e segnalarle.
• Port scanner: è una tecnica informatica progettata per rilevare quali porte
siano in ascolto su una macchina, permettendo di verificare se lo stato di tali
porte rispettino le politiche di sicurezza della rete di appartenenza di quella
macchina. Questo argomento viene trattato in modo approfondito nella sezione
4.3.2.7.
• Honeypot: è un sistema o componente hardware o software usato come "trap-
pola" o "esca" a fini di protezione contro gli attacchi informatici. Solitamente
CAPITOLO 3. METODI DI DIFESA 23
consiste in un computer o un sito che sembra essere parte della rete e conte-
nere informazioni preziose, ma che in realtà è ben isolato e non ha contenuti
sensibili o critici; potrebbe anche essere un file, un record, o un indirizzo IP
non utilizzato.
Il valore primario di un honeypot è l’informazione che esso dà sulla natura e la
frequenza di eventuali attacchi subiti dalla rete. Gli honeypot non contengono
informazioni reali e quindi non dovrebbero essere coinvolti da nessuna attività;
rilevazioni in senso opposto possono rivelare intrusioni non autorizzate o male-
vole in corso.
Gli honeypot possono portare dei rischi ad una rete, e devono essere maneggiati
con cura. Se non sono ben protetti, un hacker potrebbe usarli per entrare in
altri sistemi.
• Tecniche Antispam: le tecnica principale per limitare la ricezione di spam è
il filtraggio delle email mediante l’utilizzo di una lista con determinate regole,
vi sono diversi tipi di liste, elenchiamo di seguito le principali:
– Black list: lista di server classificati spammers che viene attivata sul mail
server rifiutando mail che provengono da questa lista. L’amministratore
del mailserver può costruire manualmente una propria lista o può avvalersi
di servizi in Internet che distribuiscono automaticamente le liste.
– Gray-List: si basano sul fatto che i mailer usati dagli spammer general-
mente tentano l’invio di una email una sola volta: Il GrayListing consiste
nel rigetto della ricezione della mail al primo tentativo, che verrà accettata
ad un successivo tentativo, dopo un tempo stabilito (tipicamente 300 sec.).
– White List: liste di mittenti “fidati” su cui non vengono effettuati con-
trolli antispam. Include gli host accettati da Gray-list e host inseriti
manualmente dall’amministratore.
– Filtri Bayesiani: sono filtri che cercano di classificare le mail in arrivo
assegnando un punteggio numerico a frasi o modelli che si presentano
nel messaggio. Ogni messaggio riceve quindi un punteggio compressivo
(tra 0 e 1) che, dopo aver stabilito una soglia, ci consente di classificare il
messaggio. Il filtro richiede un addestramento con mail spam e no-spam
con cui viene creato un database di riferimento.
3.3 Rinforzo di autenticazione e riservatezza
• Crittografia: tecnica che permette di "cifrare" un messaggio rendendolo
incomprensibile a tutti fuorché al suo destinatario.
In generale i due processi principali che vengono applicati in crittografia sono:
– Cifratura: trasformazione carattere per carattere(o bit a bit), senza
considerare la struttura linguistica del messaggio.
I sistemi di cifratura possono lavorare per:
∗ Trasposizione: chiamata anche permutazione significa mescolare i
caratteri di un messaggio in un nuovo ordine.
CAPITOLO 3. METODI DI DIFESA 24
∗ Sostituzione: scambiando un carattere con un altro carattere in
accordo con una regola specifica
Una cifratura che implementa entrambe le tecniche (trasposizione e
sostituzione) è chiamata "cifratura composta".
– Codifica: opera a livello di parola o frase.
Ogni sistema di crittografia ha due parti essenziali: un algoritmo (per codificare
e decodificare) e una "chiave", la quale data in input con il testo "in chiaro"
all’algoritmo, darà poi il testo codificato. In ogni moderno sistema di crittografia
si assume che l’algoritmo sia conosciuto dai potenziali "nemici", quindi la
sicurezza di un sistema risiede solo ed esclusivamente nella segretezza della
chiave.
Le principali tecniche di crittografia sono:
– Crittografia simmetrica: metodo con algoritmi che usano la stessa
chiave per cifrare e decifrare i messaggi. La chiave è detta segreta o
privata ed è un parametro di una funzione invertibile, servendo sia nella
fase di cifratura sia in quella decifratura, rende necessario che sia il mittente
che il destinatario sia a conoscenza di tale chiave.
Il principio di funzionamento si compone di tre fasi:
1. Il mittente cifra il messaggio con la chiave segreta.
2. Si trasmette il messaggio cifrato attraverso un canale.
3. Il destinatario riceve il messaggio cifrato e lo decifra con la chiave
segreta.
Figura 3.2: Crittografia Simmetrica
I vantaggi dell’utilizzo di tale metodo sono la velocità di funzionamento,
dato che gli algoritmi per cifrare e decifrare sono molto veloci, di conse-
guenza permettono l’utilizzo di chiavi molto lunghe, comportando una
maggiore sicurezza, e riguardo l’autenticità, l’integrità e la riservatezza,
ipotizzando che il gruppo di persone che possiedono la chiave sia quello
voluto, possiamo affermare che siano strettamente soddisfatte.
Gli svantaggi dell’utilizzo di tale metodo sono inerenti alla semplicità delle
operazioni utilizzate dagli algoritmi simmetrici, che diventano possibili
sempre in minor tempo, dato l’aumento dei tassi di velocità dei processori
degli elaboratori e dall’utilizzo di una chiave identica sia per il mittente che
CAPITOLO 3. METODI DI DIFESA 25
per i destinatari, questo comporta, nel caso il destinatario non disponesse
della chiave, al problema di fornirgliela mediante un canale sicuro e nel
caso il destinatario avesse già tale chiave, ai problemi legati all’affidabilità
di esso, cioè la possibilità che la chiave venga persa o data ad altri non
autorizzati.
Tra i vari algoritmi a chiave privata o segreta, quello che ha ottenuto
maggiore sviluppo e successo è stato il DES(Data Encryption Standard)
– Crittografia asimmetrica: metodo con algoritmi la cui chiave di crip-
tazione è diversa da quella di decrittazione: cosi facendo è possibile
distribuire la chiave di decrittazione (chiave pubblica) e mantenere segreta
la chiave di criptazione (chiave privata).
I concetti su cui si basa è che un messaggio criptato con una chiave può es-
sere decrittato solo con l’altra chiave e che è matematicamente improbabile
ricavare una chiave dall’altra, ovvero le chiavi devono essere indipendenti;
la conoscenza di una non deve concedere nessuna informazione utile alla
ricostruzione dell’altra. Vi sono due modalità di funzionamento:
∗ Modalità Autenticazione: solo il possessore della chiave privata può
aver cifrato il file. Ciò garantisce anche l’integrità del documento (una
volta decifrato e modificato, solo il possessore della chiave privata può
cifrarlo di nuovo) e il non ripudio da parte del firmatario, tuttavia
non è garantita la riservatezza per il destinatario dato che chiunque
sia in possesso della chiave pubblica può decifrare il file.
∗ Modalità Confidenziale: la confidenzialità e l’integrità del file sono
garantite dal fatto che solo il possessore della chiave privata può
decrittare il file.
Figura 3.3: Crittografia Asimmetrica
I vantaggi della crittografia asimmetrica, risolvono i problemi tipici della
crittografia a chiave simmetrica, ad esempio lo scambio delle chiavi non
CAPITOLO 3. METODI DI DIFESA 26
è più critico, anzi dato che le chiavi sono da considerarsi pubbliche non
esiste più alcun problema in merito, inoltre il problema dell’autenticità
del mittente viene risolto, in quanto solo il titolare di quella chiave pri-
vata potrà aver generato il messaggio corrispondente alla relativa chiave
pubblica. Si risolve il problema della riservatezza, poiché l’algoritmo è
simmetrico dal punto di vista delle chiavi (ciò che viene criptato con la
chiave privata va decrittato con quella pubblica, ma anche viceversa) è
sufficiente criptare un messaggio con la chiave pubblica affinché solo il
titolare della corrispondente chiave privata possa leggerlo.
Lo svantaggio principale della crittografia asimmetrica consiste nel fatto
che gli algoritmi utilizzati svolgano numerosi e complessi calcoli renden-
do la loro implementazione poco efficiente, soprattutto quando occorre
garantire una lunghezza minima della chiave superiore ai 1024 bit.
– Crittografia quantistica: consiste in un approccio alla crittografia che
utilizza peculiari proprietà della meccanica quantistica nella fase dello
scambio della chiave per evitare che questa possa essere intercettata da un
attaccante senza che le due parti in gioco se ne accorgano. Si utilizza questo
principio per realizzare un cifrario perfetto del tipo One Time Pad(la
chiave di cifratura è lunga quanto il testo e non riutilizzabile), senza il
problema di dover scambiare la chiave (anche se lunga quanto il messaggio)
necessariamente su un canale sicuro. Questo perché se attraverso il canale
passassero microparticelle e un potenziale nemico cercasse di intercettarle
dovrebbe compiere un’osservazione e quindi modificherebbe lo stato della
comunicazione, facendosi scoprire.
La crittografia ha diverse applicazioni, le principali sono:
– Message Digest: il Message Digest (MD) e’ una sequenza di bit di
lunghezza limitata e fissa associata ad un messaggio (P) del quale ne
rappresenta la firma (o impronta), si ottiene mediante una funzione crit-
tografica di hash, che è un algoritmo matematico che trasforma dei dati
di lunghezza arbitraria (messaggio) in una stringa binaria di dimensione
fissa. Inoltre tale funzione non è invertibile, ovvero non e’ possibile risalire
al messaggio originale avendo come unico elemento il MD. Se il massaggio
cambia anche di un solo bit il MD diventa completamente diverso.
L’algoritmo deve essere “Collision Free” , ovvero deve evitare (o minimiz-
zare) la possibilità che 2 messaggi generino lo stesso MD. Per questo il
MD non può essere troppo breve. Le principali applicazioni sono:
∗ Verificare l’integrità di messaggi o file: il messaggio P viene spedito
assieme al MD; chi li riceve ricalcola i MD e lo compara con quello
ricevuto, se corrisponde allora il messaggio è quello corrispondente al
MD spedito.
∗ Verifica della password: viene memorizzato il MD della password in
chiaro e per verificare che la password inviata sia quella corrispondente,
bisogna confrontare l’MD memorizzato in chiaro con l’MD ricavato
calcolando la funzione di hash con la password ricevuta.
CAPITOLO 3. METODI DI DIFESA 27
Le funzioni crittografiche di hash comunemente utilizzate in diversi stan-
dard e applicativi sono MD5 e SHA-1.
– Certificati: è un documento elettronico che attesta l’associazione uni-
voca tra una chiave pubblica e l’identità di un soggetto (una persona,
una società, un computer, ...) che dichiara di utilizzarla nell’ambito delle
procedure di cifratura asimmetrica e autenticazione tramite firma digitale.
Il certificato è fornito da un ente terzo fidato e riconosciuto come au-
torità di certificazione (CA), è a sua volta autenticato per evitarne la
falsificazione sempre attraverso firma digitale ovvero cifrato con la chiave
privata dell’associazione la quale fornisce poi la rispettiva chiave pubblica
associata per verificarlo.
I certificati risolvono l’impraticabilità dello scambio di chiavi pubbliche
utilizzate per la crittografia tra gli utenti, garantendo che una chiave
pubblica sia associata alla vera identità del soggetto che la rivendica
come propria. X.509 è lo standard Internazionale emanato da ITU per
il formato dei Certificati. Questo standard stabilisce quali informazioni
possono comporre un certificato, i principali campi sono:
∗ Version: numero della versione di X.509 (v1, v2 o v3).
∗ Serial Number: numero univoco di emissione da parte della CA.
∗ Signature Algorithm: algoritmo usato per firmare il certificato.
∗ Issuer: Distinguished Name DN della CA che ha emesso il certificato.
∗ Validity: inizio e fine del periodo di Validità.
∗ Subject: Distinguished Name DN del proprietario del Certificato.
∗ Subject Public Key Info : chiave pubblica (Modulo + Esponente) e
algoritmo utilizzato.
∗ X509v3 Extensions: estensioni opzionali (solo v3).
∗ Signature: firma da parte della CA (MD del Certificato, cifrato con
la chiave privata della CA).
Figura 3.4: Certificato X.509
La CA è un ente che firma le richieste di certificato da parte di una
comunità di utenti/host/software garantendone l’identità. La CA possiede
una propria coppia di chiavi e autofirma la propria richiesta (self-signed).
Per identificare univocamente i certificati esiste un name-space gerarchico
di certificati, in cui ogni nodo ha un attributo e un valore.
I certificati X.509 possono essere rappresentati in diversi possibili formati,
i principali sono:
∗ DER: formato binario utilizzato in ambiente Windows e Java con
estensioni .DER o .CER.
CAPITOLO 3. METODI DI DIFESA 28
∗ PEM: formato testuale (base64) ed e’ utilizzato prevalentemente in
ambiente Unix. Può contenere certificati, richieste di certificati, chiavi
private e PKCS12.
∗ PKCS (Public Key Cryptography Standards): e’ un gruppo si Stan-
dard creati da “RSA Data Security” con lo scopo di creare formati di
interoperabilità.
• Protocolli di Autenticazione: l’autenticazione è un servizio di sicurezza
che consente di accertare l’identità dichiarata da una entità (origine dei dati
o peer in una comunicazione), mediate la verifica di credenziali. Le tecniche
possono basarsi sulla conoscenza di un segreto (password, PIN, ..), tecniche
crittografiche o caratteristiche biometriche (se si tratta di una persona). Le
principali tecniche di autenticazione sono:
– Autenticazione tramite password: è un protocollo largamente utiliz-
zato perché facile da implementare e da usare. E’ insicuro specialmente
quando la password non viene modificata regolarmente, è individuabile
con attacco a dizionario, viene trasmessa in chiaro. I principali protocolli
di autenticazione significativi basati su password:
∗ PAP (Password Authentication Protocol): è usato esclusivamente dal
protocollo PPP e presume che il canale sia sicuro (non intercettabile);
Le fasi sono:
1. Il client manda al server il proprio nome e la password.
2. Il server cerca in una tabella il nome utente e verifica la correttezza
della password applicando una funzione di trasformazione (che
consente di evitare che il server memorizzi la password in chiaro).
Figura 3.5: Autenticazione tramite password: PAP
∗ CHAP (Challenge Handshake Authentication Protocol): è usato in
PPP e Windows; Le fasi sono:
1. Il server invia un numero casuale, in figura 3.6 corrisponde a "c"
(challenge) utilizzato dal client come salt.
2. La funzione di trasformazione, in figura 3.6 corrisponde ad "r", è
calcolata sia dal server che dal client.
CAPITOLO 3. METODI DI DIFESA 29
Figura 3.6: Autenticazione tramite password: CHAP
Il vantaggio è che la password non viene scambiata tra client e server,
ma il problema è che il DB delle password deve essere salvato in
chiaro, quindi vulnerabile ad attacco.
∗ OTP (One-Time Password): simile a CHAP, l’unica differenza è che
"c" non è più un numero casuale, ma diventa un numero progressivo.
Una OTP non può essere memorizzata da una persona, quindi richiede
una tecnologia supplementare per poter essere utilizzata.
L’algoritmo OTP principale è TOTP(Time based OTP), le password
sono generate con un algoritmo funzione di una chiave segreta e il
tempo corrente.
– Autenticazione con challenge e chiave simmetrica: le fasi sono:
1. Il client e il server , che condividono una chiave simmetrica S, creano
un numero casuale, detto Challenge (c1 e c2).
2. Il server invia la propria identità (B) e il proprio Challenge (c1).
3. Il client risponde inviando la propria identità (A) e la cifratura di c1,
c2 e B.
4. Il server chiude il protocollo inviando la cifratura di c1, c2 e A.
Figura 3.7: Autenticazione con challenge e chiave simmetrica
Il vantaggio è che i messaggi cifrati non sono esposti ad attacco al dizionario,
ma il problema è che se abbiamo N nodi ogni nodo deve conoscere N-1
chiavi.
CAPITOLO 3. METODI DI DIFESA 30
– Autenticazione con KDC: il modello del “Centro di Distribuzione delle
Chiavi” (KDC, Key Distribution Center) si applica ad una comunità di N
entità (persone/host/servizi) che devono autenticarsi reciprocamente. In
questo schema ogni utente ha una singola chiave condivisa con il KDC.
Le fasi, quando A deve comunicare con B, sono:
1. A condivide con KDC la chiave Ka, B condivide con KDC la chiave
Kb.
2. A sceglie una chiave di sessione Ks, invia a KDC la chiave e B, in
modo cifrato.
3. KDC decifra Ks e la invia a B.
Il vantaggio è che basta la singola chiave Ka per comunicare con N entità,
ma il problemi è che A deve inserire la chiave Ka per ogni connessione.
– Autenticazione Kerberos: Kerberos e’ un protocollo di Autenticazione
(progettato al MIT) che implementa il modello del “Centro di Distribuzione
delle Chiavi”. Un sistema Kerberos gestisce una comunità di utenti
(REALM) in cui ogni utente ha una singola chiave condivisa Ka con il
KDC, ma il KDC si compone del AS (Authentication Server) che gestisce
il LOGIN e del TGS (Ticket Granting Server) che gestisce la sessione.
La password di A (Ka) viene usata una sola volta per tutte le autenticazioni
della sessione (Single Sign On - SSO) e rimane sul computer del client solo
per pochi millisecondi. La chiave di sessione che A presenta a B serve solo
a dimostrare l’identità di A (autenticazione). B deciderà cosa consentire
di fare ad A (autorizzazione).
Le fasi sono:
1. A chiede all’AS la chiave di sessione Ks (Login sul REALM). (Frecce
rosse in figura 3.8).
2. A deve comunicare con B, quindi chiede al TGS un Ticket Kab da
usare con B. (Frecce Gialle in figura 3.8).
3. A si rivolge a B comunicandogli la chiave di sessione Kab. (Frecce
verdi in figura 3.8).
CAPITOLO 3. METODI DI DIFESA 31
Figura 3.8: Autenticazione Kerberos
– Autenticazione con PKI (Public Key Infrastructure): è un insieme di
processi e mezzi tecnologici che consentono a terze parti fidate di verificare
o farsi garanti dell’identità di un utente, oltre che di associare una chiave
pubblica a un utente, normalmente per mezzo di software distribuito in
modo coordinato su diversi sistemi. L’utilizzo di una PKI (Public Key
Infrastructure) ha il vantaggio di non richiedere preventivamente chiavi
condivise. Le fasi per la comunicazione, considerando che i nodi A e B
hanno una coppia di chiavi(pubblica e privata) sono:
1. A invia la propria Identità e un Challenge Ra a B, cifrati con la chiave
pubblica di B.
2. B decifra il messaggio, sceglie una chiave di sessione Ks e la invia ad
A.
3. A risponde con il Challenge di B cifrato con la chiave di sessione Ks.
Questo protocollo garantisce, come servizi di sicurezza, la confidenzialità,
dato che la chiave di sessione Ks è condivisa e l’autenticazione, dato che
gli host hanno verificato l’identità reciproca.
• Sicurezza nelle comunicazioni: la cifratura di una comunicazione può
avvenire a diversi livelli:
– Applicazione: alcune applicazioni cifrate si appoggiano sull’applicazione
in chiaro. Il payload viene cifrato e quindi veicolato da applicativo non
cifrato.
– Sessione: il protocollo SSL/TLS fornisce un Layer intermedio tra TCP
e applicazione che consente di cifrare le applicazioni. Questo richiede la
riscrittura delle applicazioni che devono interfacciarsi al Layer SSL anziché
TCP.
CAPITOLO 3. METODI DI DIFESA 32
– Rete: IPsec e’ un Layer di cifratura che viene posizionato a livello rete,
rendendo la cifratura trasparente al livello delle applicazioni, che non
devono essere modificate. Anche se funziona a livello rete, è orientato
alla connessione, a causa della cifratura con chiave, ne consegue che le
comunicazioni UDP attraverso IPsec sono poco efficienti per l’ OverHead
elevato.
Una “connessione” IPsec chiamata SA (Security Association), e’ una
connessione Simplex e ha un identificatore di sicurezza associato. Per una
connessione Duplex è necessario attivare un SA per ciascuna direzione.
L’Identificatore, scritto in ogni pacchetto, consente al ricevente individuare
la SA e quindi di reperire la chiave di decifratura.
IPsec, analogamente a SSL, è formato da:
Un protocollo per lo scambio delle chiavi necessarie per la cifratura del
canale:
∗ IKE (Internet Key Exchange): è utilizzato per stabilire una SA, è a
livello applicazione e usa UDP come trasporto sulla porta 500.
L’obiettivo e’ stabilire una Shared Session Secret da cui poi derivare la
chiave per cifrare la SA. Viene utilizzato l’algoritmo di Diffie-Hellman.
Due protocolli alternativi per la cifratura dei dati sul canale:
∗ AH (Authentication Header): gestisce integrità, ma non confiden-
zialità, dato che non ha la cifratura. Il protocollo determina una
intestazione di 24 Byte che contiene l’HMAC del Datagramma IP
(Header+payload) e può essere inserita nelle estensioni dei protocolli
IPv4 e IPv6 (Transport Mode) o nell’estensione di un nuova intesta-
zione IP che come payload incapsula il pacchetto IP originale (Tunnel
Mode).
∗ ESP (Encapsultating Security Payload): rispetto a AH, aggiunge
la confidenzialità poiché il payload viene cifrato. Il campo HMAC
(diversamente da AH) non copre l’Header IP ed è accodato al payload
cifrato, cosi può essere calcolato mentre il pacchetto sta uscendo.
La cifratura avviene in modalità Transport, cioè viene cifrata la trama
di trasporto (TCP Header + Payload) o in modalità Tunnel, che viene
cifrato il pacchetto IP (old IP header+TCP header+payload).
Figura 3.9: Sicurezza nelle comunicazioni
CAPITOLO 3. METODI DI DIFESA 33
• VPN(Virtual Private Network): è una rete di telecomunicazioni privata, instau-
rata tra soggetti che utilizzano, come infrastruttura di trasporto, un sistema di
trasmissione pubblico e condiviso, come ad esempio la rete Internet. Lo scopo
delle reti VPN è quello di offrire alle aziende, a un costo inferiore, le stesse
possibilità delle linee private in affitto, ma sfruttando reti condivise pubbliche.
Una VPN è come l’estensione, a scala geografica, di una rete locale privata
aziendale che colleghi tra loro siti interni all’azienda stessa variamente dislocati
su un ampio territorio, sfruttando l’instradamento tramite IP per il trasporto su
scala geografica e realizzando di fatto una rete LAN, detta appunto "virtuale"
e "privata", logicamente del tutto equivalente a un’infrastruttura fisica di rete.
I protocolli più utilizzati per realizzare i tunnel cifrati della VPN sono: IPsec
con ESP in tunnel mode e SSL/TLS
Capitolo 4
Vulnerabilità
Nel presente capitolo verrà affrontato l’argomento centrale di questa tesi, le
vulnerabilità. Illustrando e dettagliando cosa sono, quando si presentano, cosa
comporta la loro presenza, come si possono rilevare e come funzionano i software per
la rilevazione di vulnerabilità.
4.1 Vulnerabilità ed Exploit
In questa sezione vedremo cosa sono le vulnerabilità e gli esploit, cercando di
definirli, categorizzarli e spiegarne l’ambito in cui possiamo trovarli.
4.1.1 Vulnerabilità
Secondo la terminologia CVE del MITRE, società statunitense senza fini di
lucro, che svolge ricerca e crea soluzioni in particolare nel campo della sicurezza
informatica per gli Stati Uniti d’America, si definisco le vulnerabilità come uno stato
degli elaboratori in cui si permette ad un attaccante di:
• eseguire comandi come un altro utente;
• accedere a dati ai quali esso non è autorizzato;
• assumere un identità altrui;
• condurre un denial of service.
Quindi le vulnerabilità di un sistema informatico consistono nelle sue, varie ed
eventuali, falle di sicurezza, che il sistema può presentare, sotto diverse forme. Queste
falle di sicurezza possono essere sfruttati dagli exploit per poi condurre attacchi
informatici, definiamo un exploit come un frammento di codice, una sequenza
di comandi, o un insieme di dati, che prendono vantaggio da un bug o da una
vulnerabilità per acquisire privilegi di accesso, eseguire codice o creare DoS su di una
risorsa.
L’informatizzazione della società e quindi maggiori necessità informatiche, hanno
comportato ad un aumento dei prodotti e di conseguenza delle vulnerabilità, come
si può osservare dalla figura 4.1 dove vengono mostrate il numero di vulnerabilità,
suddivisione per anno, rilevate in internet dal 1999 al 2016.
34
CAPITOLO 4. VULNERABILITÀ 35
Figura 4.1: Vulnerabilità per anno, dal 1999 al 2016
4.1.2 Categorie delle vulnerabilità
Le categorie delle vulnerabilità sono identificate in base al tipo di disservizio che
possono causare, elenchiamo i principali tipi di vulnerabilità:
• Denial of Service: vulnerabilità che rende una macchina o i servizi da essa
offerti non disponibili, impedendone l’utilizzo ai suoi utenti.
• Arbitrary Code Execution: vulnerabilità data da un bug software che
permette all’attaccante di eseguire codice arbitrariamente sulla macchina della
vittima.
• Buffer overflow: condizione di errore che si verifica a runtime quando in un
buffer di una data dimensione vengono scritti dati di dimensioni maggiori.
• XSS(Cross-site scripting): vulnerabilità che affligge siti web dinamici che
impiegano un insufficiente controllo dell’input nei form. Permette di inserire o
eseguire codice lato client al fine di attuare un insieme variegato di attacchi
(raccolta, manipolazione e reindirizzamento di informazioni riservate, ...).
• Directory Traversal: vulnerabilità che permette di accedere a file e directory
che sono memorizzate fuori dalla web root folder.
• Bypass Something: vulnerabilità data da un bug che permette di aggirare il
sistema o meccanismi di sicurezza, permettendo di ottenere l’accesso al sistema
o alla rete.
• Gain Information: vulnerabilità che permettono all’attaccante di ottenere
informazioni sulla macchina o servizi della vittima.
• Gain Privilege (Privilege escalation): tramite un bug, dovuto a un errore di
programmazione o all’assenza di un controllo in un sistema operativo o in un
CAPITOLO 4. VULNERABILITÀ 36
applicazione software, permette di ottenere i privilegi di accesso a risorse che
normalmente non sarebbero accessibili.
• SQL Injection : vulnerabilità data dall’inefficienza dei controlli sui dati
ricevuti in input e permette l’inserimento di codice maligno all’interno di una
query SQL.
• File Inclusion: vulnerabilità presente nei siti web e permette all’attaccante di
includere un file, a causa di assenza di controlli sull’input immesso dall’utente.
Questo può portare ad esempio al Code Execution sul server web.
• Memory Corruption: vulnerabilità che permette la modifica di contenuti
in certe locazioni di memoria, permettendo di cambiare il comportamento del
programma o leggere valori interni.
• CSRF:(Cross-site request forgery) vulnerabilità dei siti web dinamici quando
sono progettati per ricevere richieste da un client senza meccanismi per con-
trollare se la richiesta è stata invitata intenzionalmente dall’utente o da un
sistema automatico del browser.
• Http Response Splitting: vulnerabilità delle applicazioni web, il quale
attaccante invia request http che forzano il server web nel generare un output,
il quale viene interpretato dalla vittima(un altro client) come due response
http invece che una(come dovrebbe essere), quindi eseguendo codice come se
arrivasse unicamente dall’applicazione web.
In figura 4.2 vengono mostrate il numero di vulnerabilità, suddivise per tipo,
rilevate in internet dal 1999 al 2016
Figura 4.2: Vulnerabilità per tipo, dal 1999 al 2016
4.1.3 Ciclo di vita delle vulnerabilità
Una vulnerabilità attraversa diverse fasi della sua evoluzione che ne determinano
la criticità e la diffusione.
CAPITOLO 4. VULNERABILITÀ 37
1. Creazione: durante la fase di sviluppo viene introdotto nel codice un errore.
2. Scoperta: un esperto di sicurezza scopre l’errore all’interno del codice, intuisce
che questo ha una o più conseguenze negative sulla sicurezza del software o del
sistema.
Da questo momento si parla di vulnerabilità e non più di errore nel codice;
3. Condivisione: la conoscenza della vulnerabilità scoperta viene fatta prima
circolare in ambito ristretto, poi si diffonde anche grazie allo sviluppo di tool
automatici che ne fanno uso.
4. Pubblicazione Patch/Upgrade: il produttore del sistema viene a conoscen-
za della vulnerabilità, quindi corregge l’errore emettendo una patch o una nuova
versione del codice. La presenza di tale vulnerabilità, insieme alla presenza
della patch disponibile viene resa pubblica.
5. Installazione Patch/Upgrade: i sistemisti installano la patch/upgrade nei
sistemi per risolvere le vulnerabilità.
Tutti i sistemi sono soggetti a una finestra di esposizione, anche se gestiti al
meglio. Infatti la scoperta di nuove vulnerabilità è impredicibile. Inoltre, la cono-
scenza dell’individuazione delle nuove vulnerabilità circola velocemente e altrettanto
velocemente la disponibilità di tool automatici atti all’utilizzo delle vulnerabilità
trovate. Purtroppo, le patch rappresentano una soluzione spesso inefficace in quanto
vi è scarsa consapevolezza di molti sistemisti, la frequenza di emissione troppo elevata
e spesso causa di malfunzionamenti o nuovi problemi.
Figura 4.3: Finestra temporale di una vulnerabilità
E’ interessante notare che la curva di figura 4.3 cresce rapidamente nonostante il
fatto che sfruttare alcune vulnerabilità sia complesso. Questo è dovuto principalmente
a due fattori:
• Scripting: dopo le prime intrusioni, compiute da esperti, la tecnica per
realizzarle viene automatizzata (scrittura di script, descrizione delle procedure).
CAPITOLO 4. VULNERABILITÀ 38
• Script Kiddies: la disponibilità di exploit (tool automatici) permette di sfrut-
tare con successo vulnerabilità nei sistemi anche a persone dotate di scar-
se competenze tecniche, aumentando drasticamente il numero dei potenziali
attaccanti.
4.1.4 Exploit
Un exploit è un frammento di codice, una sequenza di comandi, o un insieme di
dati, che prendono vantaggio da un bug o da una vulnerabilità per acquisire privilegi
di accesso, eseguire codice o creare DoS su di una risorsa.
Ci sono diversi modi per classificare gli exploit. Il più comune è una classificazione
a seconda del modo in cui l’exploit contatta l’applicazione vulnerabile, quindi si
possono distinguere in:
• Exploit remoto: compiuto attraverso la rete e sfrutta la vulnerabilità senza
precedenti accessi al sistema.
• Exploit locale: richiede un preventivo accesso al sistema e solitamente fa
aumentare i privilegi dell’utente oltre a quelli impostati dall’amministratore.
Gli exploit possono anche essere classificati a seconda del tipo di vulnerabilità che
sfruttano, quindi prendendo il nome della categoria dove rientra la vulnerabilità,
come visto nella sezione della categorizzazione delle vulnerabilità (4.1.2).
Lo scopo di molti exploit è quello di acquisire i privilegi di amministratore su un
sistema, per poi poter svolgere qualsiasi azione voluta. Normalmente un exploit
sfrutta solo una specifica falla, e quando viene pubblicato questa falla è riparata e
l’exploit diventa inutile per le nuove versioni del programma. Per questo motivo
alcuni hacker non divulgano gli exploit trovati ma li tengono riservati per loro o per
la loro comunità. Questi exploit sono chiamati zero day exploit, altrimenti detti
script kiddie.
Nella figura 4.4 dove è rappresentata la distribuzione degli esploit usati negli attacchi,
per tipo di applicazione, nel corso dell’anno 2015, si può notare che la maggior parte
degli attacchi usa exploit inerenti ai browser. Questo può dipendere, in parte dalla
presenza di bug nel codice dei browser, ma principalmente dal fatto che, oltre ad
essere una delle applicazione sicuramente presente in un elaboratore e una delle più
utilizzate, è l’applicazione che permette all’utente di interfacciarsi direttamente su
internet, questo la rende l’applicazione più interessante su cui effettuare attacchi.
4.2 Vulnerability Assessment
Volendo valutare il livello di sicurezza di una certa configurazione di un sistema, il
primo passo da compiere è sicuramente quello di eseguire un vulnerability assessment.
Tale valutazione delle vulnerabilità consiste di un processo volto a valutare l’efficacia
dei meccanismi di sicurezza e quindi alla individuazione, alla quantificazione e all’as-
segnazione di priorità riguardo le eventuali vulnerabilità di un sistema. Le operazioni
appena descritte hanno lo scopo, una volta trovate le falle di sicurezza, di migliorare
il sistema e prevenire eventuali attacchi basati sui dati riscontrati.
Questa ricerca può essere effettuata da vari strumenti, ad esempio gli scanner di
CAPITOLO 4. VULNERABILITÀ 39
Figura 4.4: Distribuzione degli exploit usati negli attacchi, per tipo di applicazione, 2015
vulnerabilità, che saranno spiegati in modo approfondito nella sezione 4.3.
In questa attività, non si simula il malintenzionato, quindi, è necessario facilitare
il più possibile l’attività di Vulnerability assessment. Ad esempio, se la rete presa
in considerazione ha un firewall, le varie scansioni è preferibile farle oltre il firewall.
Questo perché, farle prima dell’apparato genererebbe molti falsi positivi, in quanto il
firewall blocca le richieste.
E’ importante, sottolineare che questo genere di attività, pur portando sicuramente un
valore aggiunto alla sicurezza attuale dell’infrastruttura aziendale presa in considera-
zione, ha anche delle limitazioni. Questa attività soffre del problema di degradazione,
ossia, nel tempo nuove vulnerabilità verranno scoperte, nuove macchine verranno
aggiunte o tolte dalla rete, nuove patch verranno installate sulle macchine, nuovi
servizi verranno attivati, e dato che il Vulnerability assessment è "una fotografia"
della situazione del momento, è quindi fondamentale ripeterlo ogni qual volta sia
necessario verificare il livello di sicurezza del sistema, prestando attenzione che i vari
apparati, che si vuole analizzare, siano accesi e collegati alla rete.
Dato che spesso le workstation sono multi-utente, ed ogni utente abilita servizi
personali, ovviamente durante l’attività di Vulnerability assessment essendo attivo un
solo utente, solo quest’ultimo verrà analizzato. E’ quindi fondamentale, che durante
l’attività di analisi, la macchina sia loggata con l’utenza più usata, o comunque
di maggior interesse. Inoltre a volte è possibile che alcune workstation, abbiano
installata una o più macchine virtuali, e anche quest’ultime potrebbero essere messe
in rete, queste macchine, se non sono attive, non saranno analizzate.
4.3 Vulnerability Scanner
Un vulnerability scanner è un programma progettato per ricercare e mappare le
debolezze di un’applicazione, di un computer o di una rete, eseguendo scansioni. Le
scansioni possono essere in modo "non invasivo" o "invasivo".
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità
Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità

More Related Content

What's hot

Empire Kurulumu ve Kullanımı
Empire Kurulumu ve Kullanımı Empire Kurulumu ve Kullanımı
Empire Kurulumu ve Kullanımı
BGA Cyber Security
 
PKI
PKIPKI
Protection contre l'ARP poisoning et MITM
Protection contre l'ARP poisoning et MITMProtection contre l'ARP poisoning et MITM
Protection contre l'ARP poisoning et MITM
ESD Cybersecurity Academy
 
Threat hunting on the wire
Threat hunting on the wireThreat hunting on the wire
Threat hunting on the wire
InfoSec Addicts
 
Conservazione digitale e fascicolo elettronico
Conservazione digitale e fascicolo elettronicoConservazione digitale e fascicolo elettronico
Conservazione digitale e fascicolo elettronico
Alfonso Pisani
 
Jose Miguel Holguin & Marc Salinas - Taller de análisis de memoria RAM en sis...
Jose Miguel Holguin & Marc Salinas - Taller de análisis de memoria RAM en sis...Jose Miguel Holguin & Marc Salinas - Taller de análisis de memoria RAM en sis...
Jose Miguel Holguin & Marc Salinas - Taller de análisis de memoria RAM en sis...
RootedCON
 
Routage ospf
Routage ospfRoutage ospf
Routage ospf
Ines Kechiche
 
Analisi delle corrispondenze multiple
Analisi delle corrispondenze multipleAnalisi delle corrispondenze multiple
Analisi delle corrispondenze multiple
Marco D'Alessandro
 
Basic seduction PDF EBook Download-FREE
Basic seduction PDF EBook Download-FREEBasic seduction PDF EBook Download-FREE
Basic seduction PDF EBook Download-FREE
kartoloe
 
reseaux et systemes avances
 reseaux et systemes avances reseaux et systemes avances
reseaux et systemes avances
mohamednacim
 
sécurité informatique
sécurité informatiquesécurité informatique
sécurité informatique
Mohammed Zaoui
 
Rapport finiale
Rapport finialeRapport finiale
Rapport finiale
marwenbencheikhali
 
Mise en place des réseaux LAN interconnectés par un réseau WAN
Mise en place des réseaux LAN interconnectés par un réseau WANMise en place des réseaux LAN interconnectés par un réseau WAN
Mise en place des réseaux LAN interconnectés par un réseau WAN
Ghassen Chaieb
 
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
BGA Cyber Security
 
Indice.Tesi
Indice.TesiIndice.Tesi
Indice.Tesigiogioba
 
Il protocollo informatico e gestione documentale
Il protocollo informatico e gestione documentaleIl protocollo informatico e gestione documentale
Il protocollo informatico e gestione documentaleCesare Ciabatti
 
Dispensa del corso di Cybersecurity
Dispensa del corso di CybersecurityDispensa del corso di Cybersecurity
Dispensa del corso di Cybersecurity
Gianmarco Beato
 
Plateforme centralisée d’analyse des logs des frontaux http en temps réel dan...
Plateforme centralisée d’analyse des logs des frontaux http en temps réel dan...Plateforme centralisée d’analyse des logs des frontaux http en temps réel dan...
Plateforme centralisée d’analyse des logs des frontaux http en temps réel dan...
Guillaume MOCQUET
 
B4X Programming Gettings Started v1.9
B4X Programming Gettings Started v1.9B4X Programming Gettings Started v1.9
B4X Programming Gettings Started v1.9
B4X
 
Tesi Laurea Sergio Taddia
Tesi Laurea Sergio TaddiaTesi Laurea Sergio Taddia
Tesi Laurea Sergio Taddia
Sergio Taddia
 

What's hot (20)

Empire Kurulumu ve Kullanımı
Empire Kurulumu ve Kullanımı Empire Kurulumu ve Kullanımı
Empire Kurulumu ve Kullanımı
 
PKI
PKIPKI
PKI
 
Protection contre l'ARP poisoning et MITM
Protection contre l'ARP poisoning et MITMProtection contre l'ARP poisoning et MITM
Protection contre l'ARP poisoning et MITM
 
Threat hunting on the wire
Threat hunting on the wireThreat hunting on the wire
Threat hunting on the wire
 
Conservazione digitale e fascicolo elettronico
Conservazione digitale e fascicolo elettronicoConservazione digitale e fascicolo elettronico
Conservazione digitale e fascicolo elettronico
 
Jose Miguel Holguin & Marc Salinas - Taller de análisis de memoria RAM en sis...
Jose Miguel Holguin & Marc Salinas - Taller de análisis de memoria RAM en sis...Jose Miguel Holguin & Marc Salinas - Taller de análisis de memoria RAM en sis...
Jose Miguel Holguin & Marc Salinas - Taller de análisis de memoria RAM en sis...
 
Routage ospf
Routage ospfRoutage ospf
Routage ospf
 
Analisi delle corrispondenze multiple
Analisi delle corrispondenze multipleAnalisi delle corrispondenze multiple
Analisi delle corrispondenze multiple
 
Basic seduction PDF EBook Download-FREE
Basic seduction PDF EBook Download-FREEBasic seduction PDF EBook Download-FREE
Basic seduction PDF EBook Download-FREE
 
reseaux et systemes avances
 reseaux et systemes avances reseaux et systemes avances
reseaux et systemes avances
 
sécurité informatique
sécurité informatiquesécurité informatique
sécurité informatique
 
Rapport finiale
Rapport finialeRapport finiale
Rapport finiale
 
Mise en place des réseaux LAN interconnectés par un réseau WAN
Mise en place des réseaux LAN interconnectés par un réseau WANMise en place des réseaux LAN interconnectés par un réseau WAN
Mise en place des réseaux LAN interconnectés par un réseau WAN
 
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
 
Indice.Tesi
Indice.TesiIndice.Tesi
Indice.Tesi
 
Il protocollo informatico e gestione documentale
Il protocollo informatico e gestione documentaleIl protocollo informatico e gestione documentale
Il protocollo informatico e gestione documentale
 
Dispensa del corso di Cybersecurity
Dispensa del corso di CybersecurityDispensa del corso di Cybersecurity
Dispensa del corso di Cybersecurity
 
Plateforme centralisée d’analyse des logs des frontaux http en temps réel dan...
Plateforme centralisée d’analyse des logs des frontaux http en temps réel dan...Plateforme centralisée d’analyse des logs des frontaux http en temps réel dan...
Plateforme centralisée d’analyse des logs des frontaux http en temps réel dan...
 
B4X Programming Gettings Started v1.9
B4X Programming Gettings Started v1.9B4X Programming Gettings Started v1.9
B4X Programming Gettings Started v1.9
 
Tesi Laurea Sergio Taddia
Tesi Laurea Sergio TaddiaTesi Laurea Sergio Taddia
Tesi Laurea Sergio Taddia
 

Viewers also liked

Proteggere i dispositivi mobili - ISACA Venice - festival ICT 2015
Proteggere i dispositivi mobili - ISACA Venice - festival ICT 2015Proteggere i dispositivi mobili - ISACA Venice - festival ICT 2015
Proteggere i dispositivi mobili - ISACA Venice - festival ICT 2015
festival ICT 2016
 
Certificato laurea triennale
Certificato laurea triennaleCertificato laurea triennale
Certificato laurea triennalemarco bonifazi
 
Certificato laurea con esami
Certificato laurea con esamiCertificato laurea con esami
Certificato laurea con esamimarco bonifazi
 
Certificato laureaconesami
Certificato laureaconesamiCertificato laureaconesami
Certificato laureaconesami
Lorenzo Cea
 
Certificato laurea ing unibo certificatotimbrato-new
Certificato laurea ing   unibo certificatotimbrato-newCertificato laurea ing   unibo certificatotimbrato-new
Certificato laurea ing unibo certificatotimbrato-new
Marco Mazzanti
 
CERTIFICATO DI LAUREA CON ESAMI E VOTI
CERTIFICATO DI LAUREA CON ESAMI E VOTICERTIFICATO DI LAUREA CON ESAMI E VOTI
CERTIFICATO DI LAUREA CON ESAMI E VOTINicola Sindaco
 

Viewers also liked (6)

Proteggere i dispositivi mobili - ISACA Venice - festival ICT 2015
Proteggere i dispositivi mobili - ISACA Venice - festival ICT 2015Proteggere i dispositivi mobili - ISACA Venice - festival ICT 2015
Proteggere i dispositivi mobili - ISACA Venice - festival ICT 2015
 
Certificato laurea triennale
Certificato laurea triennaleCertificato laurea triennale
Certificato laurea triennale
 
Certificato laurea con esami
Certificato laurea con esamiCertificato laurea con esami
Certificato laurea con esami
 
Certificato laureaconesami
Certificato laureaconesamiCertificato laureaconesami
Certificato laureaconesami
 
Certificato laurea ing unibo certificatotimbrato-new
Certificato laurea ing   unibo certificatotimbrato-newCertificato laurea ing   unibo certificatotimbrato-new
Certificato laurea ing unibo certificatotimbrato-new
 
CERTIFICATO DI LAUREA CON ESAMI E VOTI
CERTIFICATO DI LAUREA CON ESAMI E VOTICERTIFICATO DI LAUREA CON ESAMI E VOTI
CERTIFICATO DI LAUREA CON ESAMI E VOTI
 

Similar to Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità

Anomaly detection in network traffic flows with big data analysis techniques
Anomaly detection in network traffic flows with big data analysis techniques Anomaly detection in network traffic flows with big data analysis techniques
Anomaly detection in network traffic flows with big data analysis techniques
Maurizio Cacace
 
Inoltro di pacchetti ip in sistemi linux
Inoltro di pacchetti ip in sistemi linuxInoltro di pacchetti ip in sistemi linux
Inoltro di pacchetti ip in sistemi linuxCe.Se.N.A. Security
 
Profilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiProfilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzati
Pietro Corona
 
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...danieledegan
 
Tesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEM
Tesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEMTesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEM
Tesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEM
Davide Ciambelli
 
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...Ce.Se.N.A. Security
 
Publish/Subscribe EDI with Content-Based Routing
Publish/Subscribe EDI with Content-Based RoutingPublish/Subscribe EDI with Content-Based Routing
Publish/Subscribe EDI with Content-Based Routing
Nicola Mezzetti
 
Reti neurali di convoluzione per la visione artificiale - Tesi di Laurea Magi...
Reti neurali di convoluzione per la visione artificiale - Tesi di Laurea Magi...Reti neurali di convoluzione per la visione artificiale - Tesi di Laurea Magi...
Reti neurali di convoluzione per la visione artificiale - Tesi di Laurea Magi...
Daniele Ciriello
 
Implementazione di protocolli e simulatori MATLAB per lo sviluppo del livello...
Implementazione di protocolli e simulatori MATLAB per lo sviluppo del livello...Implementazione di protocolli e simulatori MATLAB per lo sviluppo del livello...
Implementazione di protocolli e simulatori MATLAB per lo sviluppo del livello...
michael_mozzon
 
Il tutorial di Python
Il tutorial di PythonIl tutorial di Python
Il tutorial di Python
AmmLibera AL
 
Monitoraggio di mac address in lan
Monitoraggio di mac address in lanMonitoraggio di mac address in lan
Monitoraggio di mac address in lanCe.Se.N.A. Security
 
[Thesis] IBSS: Intelligent Brake Support System
[Thesis] IBSS: Intelligent Brake Support System [Thesis] IBSS: Intelligent Brake Support System
[Thesis] IBSS: Intelligent Brake Support System
Stefano Bonetta
 
Interfaccia utente basata su eye-tracking per sistemi di controllo ambientale
Interfaccia utente basata su eye-tracking per sistemi di controllo ambientaleInterfaccia utente basata su eye-tracking per sistemi di controllo ambientale
Interfaccia utente basata su eye-tracking per sistemi di controllo ambientale
Luigi De Russis
 
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
Idriss Riouak
 
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Francesco Komauli
 
Openfisca Managing Tool: a tool to manage fiscal sistems
Openfisca Managing Tool: a tool to manage fiscal sistemsOpenfisca Managing Tool: a tool to manage fiscal sistems
Openfisca Managing Tool: a tool to manage fiscal sistems
Lorenzo Stacchio
 
GaPiL - Guida alla Programmazione in Linux
GaPiL - Guida alla Programmazione in LinuxGaPiL - Guida alla Programmazione in Linux
GaPiL - Guida alla Programmazione in Linux
AmmLibera AL
 

Similar to Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità (20)

Anomaly detection in network traffic flows with big data analysis techniques
Anomaly detection in network traffic flows with big data analysis techniques Anomaly detection in network traffic flows with big data analysis techniques
Anomaly detection in network traffic flows with big data analysis techniques
 
Inoltro di pacchetti ip in sistemi linux
Inoltro di pacchetti ip in sistemi linuxInoltro di pacchetti ip in sistemi linux
Inoltro di pacchetti ip in sistemi linux
 
Profilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzatiProfilazione utente in ambienti virtualizzati
Profilazione utente in ambienti virtualizzati
 
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
Autenticazione Continua Durante la Navigazione Web Basata sulla Dinamica del ...
 
Sat howto
Sat howtoSat howto
Sat howto
 
Tesiandroid
TesiandroidTesiandroid
Tesiandroid
 
Tesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEM
Tesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEMTesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEM
Tesi Triennale - Grid Credit System: un portale per la sostenibilità di COMPCHEM
 
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
Rilevamento di attacchi di rete tramite protocolli di monitoraggio per router...
 
Publish/Subscribe EDI with Content-Based Routing
Publish/Subscribe EDI with Content-Based RoutingPublish/Subscribe EDI with Content-Based Routing
Publish/Subscribe EDI with Content-Based Routing
 
Reti neurali di convoluzione per la visione artificiale - Tesi di Laurea Magi...
Reti neurali di convoluzione per la visione artificiale - Tesi di Laurea Magi...Reti neurali di convoluzione per la visione artificiale - Tesi di Laurea Magi...
Reti neurali di convoluzione per la visione artificiale - Tesi di Laurea Magi...
 
Implementazione di protocolli e simulatori MATLAB per lo sviluppo del livello...
Implementazione di protocolli e simulatori MATLAB per lo sviluppo del livello...Implementazione di protocolli e simulatori MATLAB per lo sviluppo del livello...
Implementazione di protocolli e simulatori MATLAB per lo sviluppo del livello...
 
Il tutorial di Python
Il tutorial di PythonIl tutorial di Python
Il tutorial di Python
 
Monitoraggio di mac address in lan
Monitoraggio di mac address in lanMonitoraggio di mac address in lan
Monitoraggio di mac address in lan
 
[Thesis] IBSS: Intelligent Brake Support System
[Thesis] IBSS: Intelligent Brake Support System [Thesis] IBSS: Intelligent Brake Support System
[Thesis] IBSS: Intelligent Brake Support System
 
Interfaccia utente basata su eye-tracking per sistemi di controllo ambientale
Interfaccia utente basata su eye-tracking per sistemi di controllo ambientaleInterfaccia utente basata su eye-tracking per sistemi di controllo ambientale
Interfaccia utente basata su eye-tracking per sistemi di controllo ambientale
 
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
Uno studio sull'efficacia di checker automatici per la modernizzazione di cod...
 
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
Implementazione in Java di plugin Maven per algoritmi di addestramento per re...
 
Monitoraggio di rete con nagios
Monitoraggio di rete con nagiosMonitoraggio di rete con nagios
Monitoraggio di rete con nagios
 
Openfisca Managing Tool: a tool to manage fiscal sistems
Openfisca Managing Tool: a tool to manage fiscal sistemsOpenfisca Managing Tool: a tool to manage fiscal sistems
Openfisca Managing Tool: a tool to manage fiscal sistems
 
GaPiL - Guida alla Programmazione in Linux
GaPiL - Guida alla Programmazione in LinuxGaPiL - Guida alla Programmazione in Linux
GaPiL - Guida alla Programmazione in Linux
 

Tesi di Laurea sulla Sicurezza delle Reti Informatiche: Le vulnerabilità

  • 1. DIPARTIMENTO DI MATEMATICA E INFORMATICA Corso di Laurea Triennale in Informatica Tesi di Laurea Sicurezza delle Reti Informatiche: Le vulnerabilit`a Candidato: Riccardo Melioli Matricola 247967 Relatore: Chiar.mo Prof. Roberto Alfieri Anno Accademico 2015–2016
  • 2. Indice 1 Introduzione 1 1.0.1 Definizione di Sicurezza delle reti informatiche . . . . . . . . . 1 1.0.2 Politiche di Sicurezza . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 Normative e Standard . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.1 Servizi di Sicurezza (RFC2828) . . . . . . . . . . . . . . . . . 3 1.1.2 La prevenzione dei guasti accidentali e dagli attacchi informatici (ISO 27001) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.3 Protezione dei dati personali (Decreto Legislativo 196/2003) . 4 1.2 Sicurezza dei dati . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Metodi di Attacco 7 2.1 Attacco passivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.1.1 Raccolta di informazioni su possibili obiettivi . . . . . . . . . 7 2.1.2 Intercettazione delle comunicazioni . . . . . . . . . . . . . . . 8 2.2 Attacco attivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.1 Fabbricazione dell’identità di un’altra entità . . . . . . . . . . 9 2.2.2 Interruzione/compromissione di servizi . . . . . . . . . . . . . 10 2.2.3 Sfruttamento di bug nel software o vulnerabilità nel sistema . 10 2.2.4 Diffusione intenzionale di vulnerabilità: Malware . . . . . . . 11 2.2.5 Ingegneria Sociale . . . . . . . . . . . . . . . . . . . . . . . . 16 3 Metodi di Difesa 18 3.1 Policy per l’utente e l’amministratore . . . . . . . . . . . . . . . . . . 18 3.2 Difesa della LAN o dell’Host . . . . . . . . . . . . . . . . . . . . . . . 20 3.3 Rinforzo di autenticazione e riservatezza . . . . . . . . . . . . . . . . 23 4 Vulnerabilità 34 4.1 Vulnerabilità ed Exploit . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.1 Vulnerabilità . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.2 Categorie delle vulnerabilità . . . . . . . . . . . . . . . . . . . 35 4.1.3 Ciclo di vita delle vulnerabilità . . . . . . . . . . . . . . . . . 36 4.1.4 Exploit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2 Vulnerability Assessment . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.3 Vulnerability Scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.3.1 Nessus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.3.1.1 Storia . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.3.1.2 Cos’è . . . . . . . . . . . . . . . . . . . . . . . . . . 41 i
  • 3. INDICE ii 4.3.1.3 Come funziona . . . . . . . . . . . . . . . . . . . . . 41 4.3.1.4 Struttura . . . . . . . . . . . . . . . . . . . . . . . . 42 4.3.1.5 Knowledge Base . . . . . . . . . . . . . . . . . . . . 42 4.3.1.6 Scansione di un sistema . . . . . . . . . . . . . . . . 43 4.3.1.7 Interpretazione dei risultati . . . . . . . . . . . . . . 44 4.3.1.8 Tipi di licenza . . . . . . . . . . . . . . . . . . . . . 45 4.3.2 OpenVAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.3.2.1 Storia . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.3.2.2 Cos’è . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.3.2.3 Come Funziona . . . . . . . . . . . . . . . . . . . . . 49 4.3.2.4 Struttura . . . . . . . . . . . . . . . . . . . . . . . . 50 4.3.2.5 Aggiornamento NVT . . . . . . . . . . . . . . . . . 52 4.3.2.6 Codice Sorgente OpenVAS . . . . . . . . . . . . . . 53 4.3.2.7 Software di sicurezza integrati in OpenVAS . . . . . 53 4.4 Vulnerability Database . . . . . . . . . . . . . . . . . . . . . . . . . . 57 4.4.0.1 CVE . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5 Il Linguaggio NASL e Applicazioni 62 5.1 Il Linguaggio NASL . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.1.1 La grammatica NASL . . . . . . . . . . . . . . . . . . . . . . 63 5.1.2 Le librerie NASL . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.1.2.1 Costanti predefinite . . . . . . . . . . . . . . . . . . 64 5.1.2.2 Funzioni . . . . . . . . . . . . . . . . . . . . . . . . 65 5.2 Plugin in NASL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.3 Esempi di plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 5.3.1 Forging Packet . . . . . . . . . . . . . . . . . . . . . . . . . . 71 5.3.1.1 Forging Packet IP - IP Spoofing . . . . . . . . . . . 71 5.3.1.2 Forging Packet UDP - DNS Spoofing / DNS Cache Poisoning . . . . . . . . . . . . . . . . . . . . . . . . 74 5.3.1.3 Forging Packet TCP - Reset Attack . . . . . . . . . 76 5.3.2 FTP test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5.3.3 Teardrop . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 5.3.4 Port Checker . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 6 Caso d’uso: Rete INFN Parma 88 6.1 INFN - Istituto Nazionale di Fisica Nucleare . . . . . . . . . . . . . . 88 6.2 Struttura della rete INFN di Parma . . . . . . . . . . . . . . . . . . 89 6.3 Vulnerability Assessment della rete INFN di Parma . . . . . . . . . . 90 6.3.1 Scansione delle vulnerabilità . . . . . . . . . . . . . . . . . . . 91 6.3.2 Valutazioni sugli host vulnerabili . . . . . . . . . . . . . . . . 94 6.4 Attacco ad un host vulnerabile . . . . . . . . . . . . . . . . . . . . . 94 6.4.1 Plugin in NASL - RCE attack . . . . . . . . . . . . . . . . . . 94 Conclusioni 97 Bibliografia 100
  • 4. Elenco delle figure 2.1 Diffusione Malware . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 Infezioni Malware Q2 2015 . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3 Numero di utenti attaccati da Ransomware (Q4 2014 - Q3 2015) . . 16 2.4 Spam in proporzione al traffico mail, Gennaio - Giugno 2015 . . . . . 17 2.5 Paesi da cui proviene lo spam, Q2 2015 . . . . . . . . . . . . . . . . . 17 3.1 LAN e Personal Firewall . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.2 Crittografia Simmetrica . . . . . . . . . . . . . . . . . . . . . . . . . 24 3.3 Crittografia Asimmetrica . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.4 Certificato X.509 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.5 Autenticazione tramite password: PAP . . . . . . . . . . . . . . . . . 28 3.6 Autenticazione tramite password: CHAP . . . . . . . . . . . . . . . . 29 3.7 Autenticazione con challenge e chiave simmetrica . . . . . . . . . . . 29 3.8 Autenticazione Kerberos . . . . . . . . . . . . . . . . . . . . . . . . . 31 3.9 Sicurezza nelle comunicazioni . . . . . . . . . . . . . . . . . . . . . . 32 4.1 Vulnerabilità per anno, dal 1999 al 2016 . . . . . . . . . . . . . . . . 35 4.2 Vulnerabilità per tipo, dal 1999 al 2016 . . . . . . . . . . . . . . . . . 36 4.3 Finestra temporale di una vulnerabilità . . . . . . . . . . . . . . . . . 37 4.4 Distribuzione degli exploit usati negli attacchi, per tipo di applicazione, 2015 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.5 Esempio di un report di Nessus . . . . . . . . . . . . . . . . . . . . . 42 4.6 Nessus scansione tradizionale . . . . . . . . . . . . . . . . . . . . . . 46 4.7 Nessus Agent . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 4.8 Funzionamento delle componenti di OpenVAS . . . . . . . . . . . . . 49 4.9 Esempio di un report di OpenVAS . . . . . . . . . . . . . . . . . . . 50 4.10 Protocolli di comunicazione delle componenti di OpenVAS . . . . . . 51 4.11 OpenVAS NVT feed . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.12 Struttura del codice sorgente di OpenVAS . . . . . . . . . . . . . . . 53 4.13 W3af: schermata principale . . . . . . . . . . . . . . . . . . . . . . . 57 4.14 Vulnerabilità, per anno, dal 2005 al 2014, OSVDB . . . . . . . . . . 58 4.15 Vulnerabilità, per anno, dal 2005 al 2014, NVD . . . . . . . . . . . . 59 4.16 Metriche CVSS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5.1 Precedenza degli operatori nel linguaggio NASL, dalla maggiore prio- rità alla minore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.2 Esecuzione plugin NASL con interprete di Nessus . . . . . . . . . . . 71 iii
  • 5. 5.3 Forging IP - Wireshark . . . . . . . . . . . . . . . . . . . . . . . . . . 73 5.4 Forging UDP DNS attack - Wireshark . . . . . . . . . . . . . . . . . 75 5.5 Forging TCP Reset Attack - Wireshark . . . . . . . . . . . . . . . . . 77 5.6 FTP Test - Kali . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 5.7 FTP Test - Wireshark . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.8 Teardrop - Wireshark . . . . . . . . . . . . . . . . . . . . . . . . . . 83 5.9 Port Checker - Kali . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 5.10 Port Checker - Richiesta - Wireshark . . . . . . . . . . . . . . . . . . 86 5.11 Port Checker - Risposta - Wireshark . . . . . . . . . . . . . . . . . . 87 6.1 Mappa delle strutture INFN . . . . . . . . . . . . . . . . . . . . . . . 89 6.2 Risultati della scansione della rete INFN con Nessus . . . . . . . . . 91 6.3 Elenco Vulnerabilità di un host della rete INFN . . . . . . . . . . . . 92 6.4 Dettagli di una vulnerabilità di un host della rete INFN . . . . . . . 93 6.5 Remote Code Execution - Vittima . . . . . . . . . . . . . . . . . . . 96 6.6 Remote Code Execution - Attaccante . . . . . . . . . . . . . . . . . . 97 Elenco delle tabelle 1.1 Categorizzazione della dimensione delle reti . . . . . . . . . . . . . . 2 1.2 Criticità dei diversi tipi di dati presenti nelle aziende . . . . . . . . . 6 2.1 Infezioni Malware Q2 2015 . . . . . . . . . . . . . . . . . . . . . . . . 11 4.1 Confronto funzionalità di ricerca delle diverse licenze di Nessus . . . 47 4.3 Confronto funzionalità di gestione delle diverse licenze di Nessus . . . 47 4.2 Confronto capacita della valutazione del rischio delle diverse licenze di Nessus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.4 Confronto report delle diverse licenze di Nessus . . . . . . . . . . . . 48 iv
  • 6. Abstract La Sicurezza informatica è il ramo dell’informatica che si occupa dell’analisi delle vulnerabilità, del rischio, delle minacce e della successiva protezione dell’integrità logico-funzionale. In particolare, nella sicurezza delle reti si valutano l’eventuale presenza di vulnerabilità dei singoli nodi che compongono la rete, la sicurezza dello scambio di informazioni tra i nodi e tutto quello che riguarda l’interfacciarsi di un nodo in una rete. Negli ultimi anni ha acquisito progressivamente maggiore interesse a causa della crescente informatizzazione della società e dei servizi, in particolare per i settori dove le informazioni conservate, scambiate o create sono di importanza critica. La problematica della sicurezza delle reti consiste nel compromesso tra le misure di sicurezza da adottare per proteggere la rete da accessi indesiderati e la versatilità con cui essa opera. Particolarmente critica è la problematica legata alla presenza di vulnerabilità che può compromettere l’intero funzionamento della rete stessa e l’integrità dei nodi da cui è composta. Il seguente documento ha lo scopo di analizzare dettagliatamente i metodi utilizzati per l’attacco e la difesa delle reti informatiche, illustrando con particolare attenzione le vulnerabilità, come rilevarle, verificarne l’effettivo pericolo ed agire di conseguenza per rimuoverle, portando i singoli nodi della rete e, conseguentemente la rete stessa, in uno stato sicuro. Vengono inoltre descritti, un caso d’uso alla rete INFN di Parma, effettuando un vulnerability assessment ed un esempio completo di attacco ad un host vulnerabile e la creazione di programmi, in linguaggio NASL, dimostrativi di diversi tipi di attacchi informatici, svolti durante il periodo di tirocinio. v
  • 7. Capitolo 1 Introduzione Nei primi decenni della loro esistenza le reti informatiche vennero utilizzate prevalentemente dai ricercatori universitari per inviare e-mail e dalle aziende per condividere le stampanti. In quelle applicazioni non essendo tendenzialmente critiche, non si prestava particolare attenzione alla sicurezza. Negli ultimi anni è diventato un problema molto sentito in ambito tecnico-informatico per via della crescente informatizzazione della società e dei servizi (pubblici e privati) in termini di apparati e sistemi informatici. La sicurezza informatica è un argomento vasto, che copre una moltitudine di problemi. Nella forma più semplice, riguarda come fare in modo che intrusi non riescano a leggere (o modificare di nascosto) i messaggi destinati a terzi. Si occupa inoltre di impedire che determinate persone possano accedere a servizi remoti che non sono autorizzati ad usare. La sicurezza si occupa anche di come accertarsi dell’identità dei mittenti dei messaggi, di come impedire l’intercettazione e la ripetizione di messaggi legittimi catturati sulla rete e di come perseguire chi afferma di non aver mai spedito certi messaggi. 1.0.1 Definizione di Sicurezza delle reti informatiche Con il termine sicurezza informatica si intende quel ramo dell’informatica che si occupa dell’analisi delle vulnerabilità, del rischio, delle minacce e della successiva protezione dell’integrità logico-funzionale. In particolare, nella sicurezza delle reti si valutano l’eventuale presenza di vulnerabilità dei singoli nodi che compongono la rete, la sicurezza dello scambio di informazioni tra i nodi e tutto quello che riguarda l’interfacciarsi di un nodo in una rete. 1.0.2 Politiche di Sicurezza La realizzazione di un sistema che garantisca un’assoluta protezione da abusi è impossibile, ma è possibile attivare meccanismi di sicurezza tali da limitare e scoraggiare i tentativi. La politica di sicurezza è quindi un compromesso, dettato dalle proprie necessità, tra il costo per attivarla ed il beneficio ottenuto in termini di diminuzione del rischio. Le politiche variano a seconda delle dimensioni delle reti, comportandone diverse necessità, elenchiamo di seguito una possibile categorizzazione delle dimensioni: 1
  • 8. CAPITOLO 1. INTRODUZIONE 2 • Domestica (Home): Rete di dimensioni limitate, utilizzata tipicamente al- l’interno dello stesso edificio, la quale si interfaccia con internet tramite un modem-router, solitamente non professionale, che può avere anche le funziona- lità di AP Wireless e di Firewall. Il numero di servizi attivati è basso, dato che generalmente non vi sono installati Server (Web, mail, DNS, ...). L’utenza necessità quasi univocamente di collegarsi verso l’esterno o a dispositivi locali alla rete: NAS, dispositivi di Casting, Mediaserver. La Sicurezza è data dal firewall, che di default è bloccante per ogni servizio proveniente dall’esterno. • Aziendale (Corporate): Rete di dimensioni variabili a seconda delle necessità dell’azienda, tendenzialmente superano la dimensione di una rete domestica, è composta da più dispositivi professionali che gestiscono tutta l’infrastruttura della rete, permettendo la suddivisione in zone e il controllo del traffico di ogni zona. Il numero di servizi attivati è elevato, dato che nell’ambito aziendale, per rispondere al fabbisogno informatico richiesto dall’attività, sono spesso forniti servizi: VPN, Web, mail, DNS, ... Questa necessità di servizi comporta ad un alto fabbisogno di sicurezza, perciò sono spesso impiegati dispositivi di controllo del traffico, anti-virus di rete e controlli periodici per verificcare la presenza di eventuali vulnerabilità. • Fornitore di servizio (Provider): Rete di grande dimensione, svolge il ruolo di fornire connessione a utenti pubblici e privati, è composta da dispositivi ad altissime prestazione che connettono le reti assegnate agli utenti, sia fra di loro che con internet. Il numero di servizi è alto dato dipende dal tipo di utenza. La Sicurezza si limita a monitorare e analizzare superficialmente il traffico, per non gravare sulle prestazioni, bloccando le connessioni a certi indirizzi presenti in una determinata blacklist, che spesso contiene siti bloccati dallo stato di apparenza del provider, inoltre potrebbe essere presente un anti-virus di rete, che impedisce il download di file che potrebbero compromettere l’integrità del sistema. Riassumiamo nella tabella 1.1 le precedenti categorie: Rete Numero di Host Numero di Servizi Protezione Domestica Piccola (∼ 1-254) Basso Base Aziendale Media (∼ 255-1024) Alto Elevata Fornitore di servizio Grande (∼ > 1024) Alto Minima Tabella 1.1: Categorizzazione della dimensione delle reti 1.1 Normative e Standard Nella seguente sezione verranno trattate le Normative e Standard vigenti e inerenti all’abito informatico, facendo riferimento ad organi internazionali come IETF (Inter- net Engineering Task Force), ISO (International Organization for Standardization).
  • 9. CAPITOLO 1. INTRODUZIONE 3 1.1.1 Servizi di Sicurezza (RFC2828) L’Internet Engineering Task Force (IETF), organismo internazionale, libero, composto da tecnici, specialisti e ricercatori interessati all’evoluzione tecnica e tecnologica di Internet definisce e classifica i servizi di sicurezza nel seguente modo (RFC2828 (Internet Security Glossary – Maggio 2000): • Autenticazione: un servizio che consente di accertare l’identità dichiarata da un’entità (origine dei dati o peer in una comunicazione) mediate la verifica di credenziali. • Autorizzazione: protegge l’accesso ad una risorsa mediante l’applicazione di “Security Policy”. • Audit: registrazione di eventi di sistema o di rete. Consente di rintracciare, ricostruire (ed eventualmente addebitare) l’utilizzo delle risorse. • Confidenzialità/Riservatezza: impedisce l’utilizzo delle informazioni da accessi non autorizzati. • Integrità dei dati: consente di garantire che i dati acceduti non sono stati modificati. • Integrità dei sistemi: protegge le risorse del sistema contro modifiche, distruzioni accidentali o non autorizzate. • Non ripudio: fornisce protezione contro il ripudio nel coinvolgimento in una comunicazione. Può essere: – Non ripudio della sorgente: prova chi è il mittente dei dati in una transazione. – Non ripudio della destinazione: prova che i dati sono arrivati ad uno specifico destinatario. • Disponibilità: fornisce una protezione per garantire accessibilità di una risorsa di sistema o di rete. 1.1.2 La prevenzione dei guasti accidentali e dagli attacchi infor- matici (ISO 27001) Lo standard internazionali di sicurezza ISO 27001, è una norma che definisce i requisiti per impostare e gestire un Sistema di Gestione della Sicurezza delle Informazioni, ed include aspetti relativi alla sicurezza logica, fisica ed organizzativa. L’obiettivo di questo standard è la salvaguardia dei dati e dei sistemi che li contengono per difenderli da guasti tecnici accidentali o in caso di danneggiamenti fisici subiti dai sistemi. Spesso le tecniche di protezione da eventi accidentali sono un’ottima risposta anche a problemi di sicurezza dovuti a attacchi informatici, dato che gli obiettivi di tali standard sono: • protezione dei dati contenuti nei sistemi; • garanzia di continuità di servizio (business continuity).
  • 10. CAPITOLO 1. INTRODUZIONE 4 1.1.3 Protezione dei dati personali (Decreto Legislativo 196/2003) il Decreto legislativo n. 196 emanato il 30 giugno 2003, è una norma della Repubblica Italiana riguardante la protezione dei dati personali (comunemente noto anche come codice della privacy), il quale, tutela il diritto del singolo sui propri dati personali e, conseguentemente, alla disciplina delle diverse operazioni di gestione (tecnicamente "trattamento") dei dati, riguardanti la raccolta, l’elaborazione, il raffronto, la cancellazione, la modifica, la comunicazione o la diffusione degli stessi. Il contenuto del decreto fa chiarezza fornendo precise definizioni: • Trattamento dei dati: qualunque operazione o complesso di operazioni, effettuati anche senza l’ausilio di strumenti elettronici, concernenti la raccolta, la registrazione, l’organizzazione, la conservazione, la consultazione, l’elaborazione, la modifica, la selezione, l’estrazione, il raffronto, l’utilizzo, l’interconnessione, il blocco, la comunicazione, la diffusione, la cancellazione e la distruzione di dati, anche se non registrati in una banca dati. • Dato personale: identificano le informazioni relative alla persona fisica, iden- tificati o identificabili, anche indirettamente, mediante riferimento a qualsiasi altro dato, ivi compreso un numero di riconoscimento personale. • Dati identificativi: dati personali che permettono l’identificazione diretta dell’interessato. • Dati sensibili: dati personali idonei a rivelare: – l’origine razziale ed etnica; – le convinzioni religiose, filosofiche o di altro genere; – le opinioni politiche; – l’adesione a partiti, sindacati, associazioni od organizzazioni a carattere religioso, filosofico, politico o sindacale; – lo stato di salute e la vita sessuale. • Dati giudiziari: dati personali in materia di casellario giudiziale, di anagrafe delle sanzioni amministrative dipendenti da reato e dei relativi carichi pendenti. Inoltre possono essere quei dati personali indicanti la qualità di imputato o di indagato. Lo Stato Italiano tutela il cittadino in caso di lesione nei diritti sui propri dati a mente del d. lgs. 196/03 (ad esempio: raccolta dei dati senza il consenso, consenso acquisito senza fornire la preventiva informativa di legge, trattamento dei dati oltre i limiti del consenso dato, negazione o limitazione al diritto di accesso) il quale può ricorrere al Garante per la protezione dei dati personali (con una procedura piuttosto rapida e costi contenuti) o al giudice civile (con costi e tempi maggiori). Se invece si è addirittura subito un danno per trattamento dei dati non conforme alla legge (non necessariamente economico) il risarcimento può essere concesso in via esclusiva solo dal giudice civile.
  • 11. CAPITOLO 1. INTRODUZIONE 5 1.2 Sicurezza dei dati La protezione dei dati è uno degli aspetti centrali della sicurezza informatica, in particolare nell’ambito aziendale, l’informazione è considerata un bene aziendale. La maggior parte delle informazioni sono custodite su supporti informatici, ogni organizzazione (Università, Ente di ricerca, Banca, Azienda Commerciale, ...) deve essere in grado di garantire la sicurezza dei propri dati, in un contesto dove i rischi informatici causati dalle violazioni dei sistemi di sicurezza sono in continuo aumento. Per questo esistono, a carico delle imprese, precisi obblighi in materia di privacy, tra cui quello di redigere annualmente uno specifico documento programmatico sulla sicurezza. I rischi diretti per un’azienda possono essere riassunti in: • furti di denaro, informazioni, dati sui propri clienti; • perdita di produttività dovute a corruzioni dei dati o danneggiamento dei sistemi, con in aggiunta il danno economico dovuto al ripristino delle normali condizioni di operatività. Accanto ad essi sono presenti numerosi rischi indiretti come: • perdita di potenziali clienti; • svantaggi sui propri prodotti; • impatto negativo sul proprio brand name; • esposizioni legali al non rispetto delle clausole di riservatezza e al non rispetto delle leggi della privacy. Ogni tipo di aziende necessita di differenti gradi di sicurezza per ogni tipo di dato trattato, a seconda di quanto le informazioni da loro create, scambiate o ottenute siano critiche a livello di privacy, come trattato nella sezione 1.1.3, perciò si può affermare che è la tipologia del dato che da importanza alla sicurezza. Per fornire un quadro più completo della tipologia di dati presenti nelle aziende vengono definiti, in aggiunta a quelli visti nella sezione 1.1.3, i seguenti tipi di dati: • Dati amministrativi: dati relativi alla gestione dell’organizzazione. • Dati economici: dati relativi alla situazione economica di un individuo. • Dati di ricerca: dati relativi a studi e ricerche effettuate da ricercatori in ambito universitario o negli enti di ricerca. • Dati di produzione: dati relativi alla fase di produzione, ad esempio i dati rilevati dalle macchine. Nella tabella 1.2 si confrontano alcune tipologie di aziende e i dati trattati in esse.
  • 12. CAPITOLO 1. INTRODUZIONE 6 Tipologia di azienda Tipologia di dato trattato Livello di criticità dei dati Banca Personali Medio Giudiziari Medio Identificativi Medio Monetari Alto Ospedale Personali Medio Identificativi Medio Amministrativi Medio Sensibili Alto Azienda Commerciale Personali Medio Identificativi Medio Amministrativi Medio Produzione Medio/Alto Università/Ente di ricerca Personali Medio Identificativi Medio Amministrativi Medio Ricerca Basso Tabella 1.2: Criticità dei diversi tipi di dati presenti nelle aziende Come anticipato dalla tabella 1.2 aziende come le banche contengono informazioni critiche di ogni individuo, come i dati personali, necessari per poter intestare conti o svolgere attività relative alla banca e dati monetari inerenti alle situazioni dei conti correnti e altri servizi offerti, quest’ultima tipologia di dato è di particolare importanza dato che il core business delle banche si basa proprio su questi dati interni. Perciò è di fondamentale importanza tutelare queste informazioni, in modo che non vi siano accessi da persone non autorizzate o nel caso più grave che possano essere modificate. Similmente gli ospedali trattano dati particolarmente critici, dal punto di vista della situazione sanitaria dell’individuo(dati sensibili), perciò anche per tali strutture è fondamentale tutelare tali dati. Differente è la situazione dei dati nelle Aziende Commerciali, oltre a dipendere ovviamente dal tipo di attività commerciale svolta, perciò più il core business di tale attività è incentrato sui dati, più il livello di criticità dei dati aumenta, dipende inoltre dalla quantità di dati personali e identificativi richiesti all’individuo per svolgere tale attività. Quindi la necessità di sicurezza informatica in questo caso può variare. Infine per le Università e Enti di Ricerca si ha un livello di criticità tendenzialmente basso dato che spesso il materiale viene divulgato alla comunità, però si necessita di proteggere l’identità dei dipendenti e l’autenticità del materiale prodotto da essi.
  • 13. Capitolo 2 Metodi di Attacco Un attacco è un tentativo di accesso non autorizzato al sistema e di utilizzo non autorizzato dei dati che può compromettere la riservatezza, l’integrità o anche la disponibilità dei dati o del sistema stesso. Gli attacchi si possono suddividere in passivi e attivi; gli attacchi passivi compromettono l’autenticazione e la riservatezza per entrare in possesso di dati privati; gli attacchi attivi compromettono l’integrità e la disponibilità, cioè hanno come obiettivo l’alterazione delle informazioni o il danneggiamento del sistema per renderlo non utilizzabile. Spesso quando un sistema viene compromesso l’intruso inserisce programmi o virus per mascherare l’attacco, in modo che non possa essere individuato, per procurarsi informazioni aggiuntive e per creare un accesso (backdoor) da sfruttare successivamente. 2.1 Attacco passivo Questi attacchi sono finalizzati ad ottenere informazioni dai computer e stimare le possibili modalità di intrusione remota. 2.1.1 Raccolta di informazioni su possibili obiettivi Attacco alla Confidenzialità/Riservatezza, i principali tipi di attacco sono: • Network Monitor: sistema che analizza costantemente il traffico di rete. L’amministratore della rete, spesso, configura allarmi (via email o SMS) per l’avviso di eventuali situazioni critiche. • Port Scanner: tecnica per sondare un server o un host stabilendo quali porte siano in ascolto sulla macchina. Questo è spesso utilizzato dagli amministratori per verificare le politiche di sicurezza delle loro reti, e dagli hacker per identificare i servizi in esecuzione su un host e sfruttarne le vulnerabilità. Un portscan è un processo che invia le richieste dei client a un intervallo di indirizzi di porte su un host, con l’obiettivo di trovare una porta aperta. Elaborando le risposte è possibile stabilire quali servizi di rete siano attivi su quel computer. Una porta si dice "in ascolto" ("listening") o "aperta" quando vi è un servizio, programma o processo che la usa. 7
  • 14. CAPITOLO 2. METODI DI ATTACCO 8 2.1.2 Intercettazione delle comunicazioni Attacco alla Confidenzialità/Riservatezza, i principali tipi di attacco sono: • Sniffing: attività di intercettazione passiva dei dati che transitano in una rete telematica che permette l’intercettazione fraudolenta di password o altre informazioni sensibili. I prodotti software utilizzati per eseguire queste attività vengono detti sniffer, ed oltre ad intercettare e memorizzare il traffico, offrono funzionalità di analisi del traffico stesso. Gli sniffer intercettano i singoli pacchetti, decodificando le varie intestazioni di livello datalink, rete, trasporto, applicativo. Inoltre possono offrire strumenti che analizzano ad esempio tutti i pacchetti di una connessione TCP per valutare il comportamento del protocollo o per ricostruire lo scambio di dati tra le applicazioni. Lo sniffing si può applicare in più modalità: – Sniffing del traffico locale: il traffico può essere intercettato da uno degli host coinvolti nella comunicazione, indipendentemente dal tipo di interfaccia di rete su cui viene inviato. – Sniffing in reti locali: per intercettare i dati in una rete locale è necessario possedere od ottenere l’accesso fisico al mezzo trasmissivo. – Sniffing in reti ethernet non-switched: in questo tipo di reti ethernet il mezzo trasmissivo (cavo coassiale o, attualmente, cavo UTP o STP connesso ad un hub) è condiviso, quindi tutte le schede di rete dei com- puter nella rete locale ricevono tutti i pacchetti, anche quelli destinati ad altri, selezionando i propri a seconda dell’indirizzo MAC (indirizzo hardware univoco della scheda di rete). Lo sniffing in questo caso consiste nell’impostare sull’interfaccia di rete la cosiddetta modalità promiscua, che disattivando questo "filtro hardware" permette al sistema l’ascolto di tutto il traffico passante sul cavo. – Sniffing in reti ethernet switched: in questo caso l’apparato centrale della rete, definito switch, si occupa di inoltrare su ciascuna porta solo il traffico destinato al dispositivo collegato a quella porta: ciascuna interfac- cia di rete riceve, quindi solo i pacchetti destinati al proprio indirizzo ed i pacchetti di broadcast. L’impostazione della modalità promiscua è quindi insufficiente per poter intercettare il traffico in una rete gestita da switch. In questo caso ci si può collegare ad una porta chiamata "SPAN" nella terminologica di Cisco, "Roving Analysis" per 3Com e "port mirroring" per gli altri produttori, che riceve il traffico circolante su tutte le porte dello switch. Alcuni metodi per poter ricevere tutto il traffico dallo switch da una porta qualunque sono il MAC flooding, l’ARP poisoning e il port stealing. – Sniffing in reti geografiche: per intercettare i dati che transitano su reti geografiche si utilizzano tecniche Man in the middle analoghe a quelle accennate in precedenza, operanti però a livello più alto: possono inter- venire a livello di instradamento del traffico IP (routing), oppure inviare alle vittime informazioni fittizie per quanto riguarda la corrispondenza tra dominio e indirizzi IP sfruttando l’assenza di autenticazione del sistema DNS.
  • 15. CAPITOLO 2. METODI DI ATTACCO 9 • Eavesdropping: attività di intercettazione passiva dei segnali radio decodifi- cando, o cercando di decodificare, i dati trasmessi da terzi. Le stesse componenti hardware che sono utilizzate (schede di rete) per trasmettere e ricevere dati, possono essere modificate in modo da intercettare il traffico trasmesso su un particolare canale o sua una certa frequenza della rete. Questo attacco necessita che la periferica modificata si trovi nel raggio di trasmissione wireless e, con questi apparecchi "scanner", si possono raccogliere i dati relativi alla trasmis- sione: range del segnale, utilizzatori della rete, periodo di attività e inattività della stessa e altro ancora, che possono essere impiegati per pianificare un attacco mirato alla rete, anche se le comunicazioni sono crittografate. 2.2 Attacco attivo Questi attacchi sono finalizzati alla penetrazione remota del computer, al furto o alterazione dei dati o al danneggiamento del sistema. 2.2.1 Fabbricazione dell’identità di un’altra entità Attacco all’autenticazione, il principale tipo di attacco è lo spoofing, tipo di at- tacco informatico dove viene impiegata la falsificazione dell’identità (spoof). Quando la falsificazione non avviene in campo informatico si parla di social engineering. I tipi di spoofing sono: • User account spoofing: usare nome utente e password di un altro utente senza averne il diritto. Può avvenire utilizzando strumenti come sniffer e password crackers. • IP Address spoofing: si basa sul fatto che la maggior parte dei router all’interno di una rete controllino solo l’indirizzo IP di destinazione e non quello sorgente. Le finalità di tale tecnica sono: – superare alcune tecniche difensive contro le intrusioni, in particolare quelle basate sull’autenticazione dell’indirizzo; – realizzare attacchi DDoS, ad esempio NTP reflection. • MAC Address forging: il MAC address viene modificato impersonando l’indirizzo della vittima. Diversi sistemi di autenticazione/autorizzazione sono basati su MAC address, ad esempio: – autenticazione verso DHCP server; – sessioni attive su Captive Portal (session Hijacking). • ARP Spoofing / Poisoning: consiste nell’inviare intenzionalmente e in modo forzato risposte ARP contenenti dati inesatti. In questo modo la tabella ARP di un host conterrà dati alterati.
  • 16. CAPITOLO 2. METODI DI ATTACCO 10 2.2.2 Interruzione/compromissione di servizi Attacco alla disponibilità del servizio, i principali tipi di attacco sono: • Denial of Service (DoS): in questo tipo di attacco si cerca di portare il funzionamento di un sistema informatico che fornisce un servizio, ad esempio un sito web, al limite delle prestazioni, fino a renderlo non più in grado di erogare il servizio. Gli attacchi possono essere: – diretti (l’attaccante interagisce direttamente con la vittima); – indiretti (l’attaccante sfrutta terze parti). Gli attacchi vengono abitualmente attuati inviando molti pacchetti di richieste, di solito ad un server Web, FTP o di posta elettronica saturandone le risorse e rendendo tale sistema instabile, quindi qualsiasi sistema collegato ad Internet e che fornisca servizi di rete basati sul TCP è soggetto al rischio di attacchi DoS. I principali attacchi sono: – Flooding: ∗ Ping floods: invio di pacchetti ICMP, in numero maggiore a quel- li gestibili dal sistema attaccato; l’aggressore invia un grosso flus- so di traffico ICMP echo verso una serie di indirizzi di broadcast attribuendosi come indirizzo sorgente quello della vittima. ∗ TCP SYN Floods: funziona se un server alloca le risorse relative alla connessione dopo aver ricevuto un SYN, ma prima di aver ricevuto un messaggio ACK. – Invio di pacchetti malformati: ∗ Ping di grandi dimensioni (ping of death): può causare buffer overflow con conseguente blocco del servizio o, nei casi più gravi, crash del sistema. ∗ UDP bombs: pacchetti UDP costruiti con valori illegali in certi campi. In qualche sistema operativo la ricezione di tali pacchetti imprevisti causa il crash. • Distributed DoS (DDoS): per rendere più efficace l’attacco in genere vengono utilizzati molti computer, talvolta inconsapevoli sui quali precedentemente è stato inoculato un programma appositamente creato per attacchi DoS e che si attiva ad un comando proveniente dall’hacker creatore. 2.2.3 Sfruttamento di bug nel software o vulnerabilità nel sistema Attacco all’integrità dei sistemi e all’autenticazione, il principale tipo di attacco è l’applicazione degli exploit noti. Un exploit è un termine usato in informatica per identificare un codice che, sfruttando un bug o una vulnerabilità, porta all’acquisizione di privilegi o al denial of service di un computer. L’argomento degli esploit verrà approfondito nel capitolo 4.
  • 17. CAPITOLO 2. METODI DI ATTACCO 11 2.2.4 Diffusione intenzionale di vulnerabilità: Malware Attacco all’integrità dei sistemi, software che indeboliscono la sicurezza di una risorsa, cioè interferiscono con le operazioni svolte da un computer, rubarono in- formazioni sensibili, accedono a sistemi informatici privati, o mostrano pubblicità indesiderata. L’informatizzazione della società e delle tecniche pubblicitarie, avvenuta negli ultimi anni, ha scaturito un forte aumento dei malware presenti in rete, come mostrato dalla figura 2.1 Figura 2.1: Diffusione Malware Riguardo la diffusione di malware per tipo, PandaLabs, nota software house di antivirus riporta i seguenti dati del Q2 2015 (tabella 2.1 e grafico 2.2): Tipologia di Malware Infezioni Percentuali Trojans 76,25% Viruses 1,53 Worms 2,40 Adware/Spyware 5,43 Other 14,39 Tabella 2.1: Infezioni Malware Q2 2015
  • 18. CAPITOLO 2. METODI DI ATTACCO 12 Figura 2.2: Infezioni Malware Q2 2015 I principali tipi di malware sono: • Virus: sono parti di codice che si diffondono copiandosi all’interno di altri programmi, o in una particolare sezione del disco fisso, in modo da essere eseguiti ogni volta che il file infetto viene aperto. Un virus può sfruttare le vulnerabilità (exploit) di un sistema operativo arrecando danni al sistema, rallentando o rendendo inutilizzabile il dispositivo infetto. Un Virus è solitamente composto da un numero molto ridotto di istruzioni, (da pochi byte ad alcuni kilobyte, per rendersi più difficile da individuare e facile da copiare), ed è specializzato per eseguire soltanto poche e semplici operazioni e ottimizzato per impiegare il minor numero di risorse, in modo da rendersi il più possibile invisibile. Caratteristica principale di un virus è quella di riprodursi e quindi diffondersi nel computer ogni volta che viene aperto il file infetto, perciò per essere attivato, deve infettare un programma ospite, o una sequenza di codice che viene lanciata automaticamente, come ad esempio nel caso dei boot sector virus. La tecnica solitamente usata dai virus è quella di infettare i file eseguibili: il virus inserisce una copia di sé stesso nel file eseguibile che deve infettare, pone tra le prime istruzioni di tale eseguibile un’istruzione di salto alla prima linea della sua copia ed alla fine di essa mette un altro salto all’inizio dell’esecuzione del programma. In questo modo quando un utente lancia un programma infettato viene dapprima impercettibilmente eseguito il virus, e poi il programma. I virus informatici più semplici sono composti da due parti essenziali, sufficienti ad assicurarne la replicazione: – Routine di ricerca: si occupa di ricercare dei file adatti ad essere infettati dal virus e controlla che gli stessi non ne contengano già una copia, per evitare una ripetuta infezione dello stesso file. – Routine di infezione: copia il codice virale all’interno di ogni file selezionato dalla routine di ricerca, affinché venga eseguito ogni volta che il file infetto viene aperto, in maniera trasparente rispetto all’utente.
  • 19. CAPITOLO 2. METODI DI ATTACCO 13 Molti virus sono progettati per eseguire del codice estraneo alle finalità di replicazione del virus stesso e contengono dunque altri due elementi: – Routine di attivazione: contiene i criteri in base ai quali il virus decide se effettuare o meno l’attacco (es. una data, o il raggiungimento di un certo numero di file infetti). – Payload: una sequenza di istruzioni in genere dannosa per il sistema ospite, come ad esempio la cancellazione di alcuni file o la visualizzazione di mes- saggi pop-up sullo schermo (gli adware sono malware che si specializzano nel far apparire banner pubblicitari su computer della vittima). I virus possono essere criptati e magari cambiare algoritmo e/o chiave ogni volta che vengono eseguiti, quindi possono contenere altri tre elementi: – Routine di decifratura: contenente le istruzioni per decifrare il codice del virus. – Routine di cifratura: di solito criptata essa stessa, che contiene il procedi- mento per criptare ogni copia del virus. – Routine di mutazione: si occupa di modificare le routine di cifratura e decifratura per ogni nuova copia del virus. • Worms: è una particolare categoria di malware in grado di autoreplicarsi. E’ simile ad un virus, ma a differenza di questo non necessita di legarsi ad altri eseguibili per diffondersi. Tipicamente un worm modifica il computer che infetta, in modo da venire eseguito ogni volta che si avvia la macchina e rimanere attivo finché non si spegne il computer o non si arresta il processo corrispondente. Il worm tenta di replicarsi sfruttando Internet in diversi modi. Il mezzo più comune impiegato dai worm per diffondersi è la posta elettronica: il programma maligno ricerca indirizzi e-mail memorizzati nel computer ospite ed invia una copia di se stesso come file allegato (attachment) a tutti o parte degli indirizzi che è riuscito a raccogliere. I messaggi contenenti il worm utilizzano spesso tecniche di social engineering per indurre il destinatario ad aprire l’allegato, che spesso ha un nome che permette al worm di camuffarsi come file non eseguibile. Questi eseguibili maligni possono anche sfruttare i circuiti del file sharing per diffondersi. In questo caso si copiano tra i file condivisi dall’utente vittima, spacciandosi per programmi ambiti o per crack di programmi molto costosi o ricercati, in modo da indurre altri utenti a scaricarlo ed eseguirlo. La tipologia più pericolosa di worm sfrutta dei bug di alcuni software o sistemi operativi, in modo da diffondersi automaticamente a tutti i computer vulnerabili connessi in rete. • Bot: (o robot) è un’applicazione software che esegue attività automatizzate (script) su Internet . Solitamente, svolgono compiti che sono semplici e struttu- ralmente ripetitivi, ad un tasso più elevato di quanto sarebbe possibile per un essere umano.
  • 20. CAPITOLO 2. METODI DI ATTACCO 14 Vengono largamente utilizzati nel web spidering (web crawler), in quanto auto- matizzano le operazioni di recupero e analisi delle informazioni dai server web, più rapidamente di quanto possa fare un umano. Uno dei punti di forza dei bot risiede nella difficoltà di identificarli dagli esseri umani. • Spyware: è un tipo di software che raccoglie informazioni riguardanti l’attività online di un utente (siti visitati, acquisti eseguiti in rete, ...) senza il suo con- senso, trasmettendole tramite Internet, il più delle volte, ad organizzazioni che le utilizzeranno per trarne profitto, solitamente attraverso l’invio di pubblicità mirata. Gli spyware, a differenza dei virus e dei worm, non hanno la capacità di dif- fondersi autonomamente, quindi richiedono l’intervento dell’utente per essere installati. In questo senso sono dunque simili ai trojan. Uno spyware può essere installato sul computer di un ignaro utente sfruttando le consuete tecniche di ingegneria sociale. Molti programmi offerti "gratuita- mente" su Internet nascondono in realtà un malware di questo tipo: il software dunque non è gratuito, ma viene pagato attraverso un’invasione della privacy dell’utente, spesso inconsapevole. Gli spyware costituiscono innanzi tutto una minaccia per la privacy dell’utente, in quanto sottraggono senza autorizzazione informazioni sul suo comportamento quando connesso ad Internet: tempo medio di navigazione, orari di connessione, siti Web visitati, se non dati più riservati come gli indirizzi e-mail e le password. Questi malware portano con sé anche delle conseguenze sul funzionamento del computer su cui sono installati. I danni vanno dall’utilizzo di banda della connessione ad Internet, con conseguente riduzione della velocità percepita dall’utente, all’occupazione di cicli di CPU e di spazio nella memoria RAM. Nessuno spyware ha lo scopo di rendere inutilizzabile il sistema su cui è in- stallato, dato che esso deve essere funzionante per consentire la raccolta e l’invio delle informazioni. Malfunzionamenti sono tuttavia piuttosto comuni, soprattutto nel caso si accumulino molti spyware. Un sintomo comune di una grave infezione da spyware è la difficoltà di connettersi ad Internet, oppure la presenza di tentativi di connessione non richiesti dall’utente. Esistono specifici programmi antispyware concepiti appositamente per rilevare e cancellare spyware dal sistema. Bisogna tuttavia considerare che la rimozione di un componente spyware potrebbe causare il malfunzionamento del software di cui esso faceva parte, e che non tutti gli spyware vengono sempre riconosciuti o rimossi da antivirus e antispyware. • Keylogger: è uno strumento in grado di intercettare tutto ciò che un utente digita sulla tastiera del proprio, o di un altro computer. Esistono vari tipi di keylogger: – Hardware: vengono collegati al cavo di comunicazione tra la tastiera ed il computer o all’interno della tastiera. – Software: programmi che controllano e salvano la sequenza di tasti che viene digitata da un utente. • Trojan: (o trojan horse, dall’inglese "Cavallo di Troia") è un tipo di malware che deve il suo nome al fatto che le sue funzionalità sono nascoste all’interno di
  • 21. CAPITOLO 2. METODI DI ATTACCO 15 un programma apparentemente utile; è dunque l’utente stesso che installando ed eseguendo un certo programma, inconsapevolmente, installa ed esegue anche il codice trojan nascosto. In genere col termine Trojan ci si riferisce ai trojan ad accesso remoto (detti anche RAT dall’inglese Remote Administration Tool), composti generalmente da 2 file: il file server, che viene installato nella macchina vittima, ed un file client, usato dall’attaccante per inviare istruzioni che il server esegue. In questo modo, la vittima è indotta ad eseguire il programma. I trojan non si diffondono autonomamente come i virus o i worm, quindi richiedono un intervento diretto dell’aggressore per far giungere l’eseguibile maligno alla vittima. A volte agiscono insieme: un worm viene iniettato in rete con l’intento di installare dei trojan sui sistemi. Spesso è la vittima stessa a ricercare e scaricare un trojan sul proprio computer, ad esempio inseriti all’interno di programmi piratati. Vengono in genere riconosciuti da un antivirus aggiornato come tutti i malware; nel caso il trojan in questione non sia ancora stato scoperto dalle software house degli antivirus, è possibile che esso venga rilevato, con la scansione euristica, come probabile malware. • Backdoor: sono "porte" di servizio (cioè le porte sul retro) che consentono di superare in parte o totalmente le procedure di sicurezza attivate in un sistema informatico. Queste "porte" possono essere intenzionalmente create dai gestori del sistema informatico per permettere una più agevole opera di manutenzione dell’infra- struttura informatica mentre più spesso da cracker intenzionati a manomettere il sistema. Possono anche essere installate autonomamente da alcuni malware (come virus, worm o trojan), in modo da consentire ad un utente esterno di prendere il controllo remoto della macchina senza l’autorizzazione del pro- prietario. Oltre ad essere molto pericolosi per l’integrità delle informazioni presenti sul sistema, le backdoor installate dai virus possono essere utilizzate per condurre degli attacchi di tipo DDoS. • Ransomware: è un tipo di malware che limita l’accesso del dispositivo che infetta, richiedendo un riscatto da pagare per rimuovere la limitazione. Ad esempio alcune forme di ransomware bloccano il sistema richiedendo all’utente il pagamento per sbloccarlo, altri invece cifrano i file dell’utente chiedendo di pagare per riportare i file cifrati in chiaro. I ransomware più sofisticati utilizzano sistemi ibridi di criptazione (che non necessitano di condivisione di chiavi fra i due utenti) sui documenti della vittima, adottando una chiave privata casuale e una chiave pubblica fissa. L’autore del malware è l’unico a conoscere la chiave di decriptazione privata. I Ransomware sono in continua diffusione come riporta Kaspersky in figura 2.3
  • 22. CAPITOLO 2. METODI DI ATTACCO 16 Figura 2.3: Numero di utenti attaccati da Ransomware (Q4 2014 - Q3 2015) 2.2.5 Ingegneria Sociale Nel campo della sicurezza delle informazioni per ingegneria sociale (dall’inglese social engineering) si intende lo studio del comportamento individuale di una persona al fine di capire informazioni utili. Le principali tecniche sono: • Phishing: è una attività illegale che sfrutta una tecnica di ingegneria sociale, ed è utilizzata per ottenere l’accesso a informazioni personali o riservate con la finalità del furto d’identità mediante l’utilizzo delle comunicazioni elettroniche, soprattutto messaggi di posta elettronica fasulli o messaggi istantanei, ma anche contatti telefonici. Grazie a messaggi che imitano grafico e logo dei siti istituzionali, l’utente è ingannato e portato a rivelare dati personali, come numero di conto corrente, numero di carta di credito, codici di identificazione. • Spam: lo spamming è l’invio di messaggi, anche verso indirizzi generici, non verificati o sconosciuti, ad alta frequenza o a carattere di monotematicità tale da renderli indesiderati (generalmente commerciali o offensivi). Può essere attuato attraverso qualunque sistema di comunicazione, ma il più usato è Internet, attraverso messaggi di posta elettronica, chat, tag board, forum, Facebook e altri servizi di rete sociale. Il principale scopo dello spamming è la pubblicità, il cui oggetto può andare dalle più comuni offerte commerciali a proposte di vendita di materiale por- nografico o illegale, come software pirata e farmaci senza prescrizione medica, da discutibili progetti finanziari a veri e propri tentativi di truffa. L’80% delle email inviate oggi nel mondo è Spam. In merito alla proporzione di spam nel traffico mail (Figura 2.4) e alla prove- nienza dello spam (Figura 2.5), Kaspersky, nota software house di antivirus riporta i seguenti dati del Q2 2015.
  • 23. CAPITOLO 2. METODI DI ATTACCO 17 Figura 2.4: Spam in proporzione al traffico mail, Gennaio - Giugno 2015 Figura 2.5: Paesi da cui proviene lo spam, Q2 2015
  • 24. Capitolo 3 Metodi di Difesa Per proteggere una rete da tali fattori di rischio, visti nel capito 2, vi sono varie tecniche o approcci, come impostare policy per gli utenti e gli amministratori, impo- stare sistemi di difesa della LAN o dell’host interessato e rinforzare l’autenticazione e la riservatezza nelle comunicazioni. 3.1 Policy per l’utente e l’amministratore • Password Policy: metodo di difesa all’autenticazione, sono un insieme di regole volte a migliorare la sicurezza del computer, incoraggiando gli utenti a utilizzare password complesse e non prevedibile. Le password policy sono spesso parte del regolamento ufficiale di un’organizzazione e possono essere insegnate come parte della formazione di sensibilizzazione alla sicurezza. Alcuni governi hanno quadri di autenticazione nazionali che definiscono i requisiti per l’autenticazione degli utenti per i servizi pubblici, inclusi i requisiti per le password. I componenti tipici di una password policy include: – Lunghezza e composizione password: molte Policy richiedono una lunghezza minima della password, dato che le password più lunghe sono le più sicure; certi sistemi impongono una lunghezza massima della password per compatibilità con i sistemi legacy. Vengono inoltre suggeriti o imposti requisiti del tipo di password che l’utente può scegliere, come ad esempio: ∗ l’uso di caratteri maiuscoli e minuscoli (Case Sensitivity); ∗ includere numeri e caratteri speciali (@, #, $); ∗ proibire parole presenti nella password blacklist e nelle informazioni personali dell’utente; ∗ proibire password formate da date, numeri di telefono o numeri comuni. – Password Blacklist: lista di password bloccate per l’uso. Contiene password costituite da combinazioni di caratteri che soddiferebbero la policy, ma non dovrebbero essere utilizzate, perché ritenute insicure per uno o più motivi, ad esempio essere facilmente prevedibile. – Password duration: richiede all’utente di cambiare la password perio- dicamente, ogni 90 o 180 giorni. Certi sistemi inseriscono la password 18
  • 25. CAPITOLO 3. METODI DI DIFESA 19 precedente alla modifica nella blacklist, in modo che non sia più possibile riutilizzarla. • Antivirus/Antispam: metodo di difesa all’integrità di sistema e alla dispo- nibilità, è un software programmato per funzionare su un computer atto a prevenire, rilevare ed eventualmente rendere inoffensivi codici dannosi, noti anche come malware, spiegati nel capitolo 2.2.4. Solitamente non si limita alla funzione di eliminazione dei programmi malevoli ma ha anche una funzione preventiva, impedendo che un virus possa entrare in un sistema ed infettarlo. Gli antivirus non sono una protezione totale contro la totalità dei virus infor- matici esistenti al mondo. Inoltre, un antivirus si basa su determinate regole e algoritmi scritti da esseri umani, e pertanto queste possono portare a errori ("falsi positivi", ossia file riconosciuti come infetti quando non lo sono, e "falsi negativi", il caso opposto) e a decisioni sbagliate. Un’ulteriore limitazione è dovuta al fatto che un virus potrebbe essere ancora non abbastanza diffuso, e quindi non essere ancora stato studiato da tutti i produttori di antivirus. Gli antivirus utilizzano tecniche di analisi statica, che si basano esclusivamente sull’analisi di codice e dati dei file binari e analisi dinamica (sandbox e honey- pot), che si basano sull’esecuzione dinamica di un file per capire se è maligno o benigno. Uno dei principali metodi di funzionamento degli antivirus si basa sulla ricerca nella memoria RAM o all’interno dei file presenti in un computer di uno schema tipico di ogni virus: in pratica ogni virus è composto da un numero ben preciso di istruzioni e il programma non fa altro che cercare se questa sequenza è presente all’interno dei file o in memoria. Uno schema di questo tipo viene anche detto "virus signature". Il successo di questa tecnica di ricerca si basa sul costante aggiornamento degli schemi che l’antivirus è in grado di riconoscere, aggiornamento effettuato solitamente da un gruppo di persone in seguito alle segnalazioni degli utenti e da gruppi specializzati nell’individuazione di nuovi virus. • Aggiornamenti automatici: metodo di difesa all’integrità di sistema, è il processo di sostituzione di un componente software di un sistema informatico con un componente di uguale funzione più recente, avente lo scopo di risolvere dei difetti riscontrati nel precedente componente, migliorarne le prestazioni oppure aggiungere nuove funzioni. Questo permette di rimuovere bug presenti sul software e vulnerabilità, e di conseguenza impedire l’utilizzo di exploit. • Analisi dei Log: metodo di difesa all’auditing, consiste nella gestione e nell’analisi degli eventi di sistema e di rete, come ad esempio: azioni eseguite dal sistema, cambiamento di una password, login di un certo utente e messaggi di errore di una applicazione, questo permette: – Warning: individuare rapidamente eventuali attacchi in corso. – Trouble-shooting: mantenere uno storico degli eventi per tracciare le attività. • CERT: (o CSIRT – Computer Security Incident Response Team) metodo di difesa alla disponibilità, è un servizio offerto all’interno di una comunità di
  • 26. CAPITOLO 3. METODI DI DIFESA 20 utenti Internet per la gestione di emergenze in seguito ad attacchi informatici. I CERT si pongono come un punto di riferimento per gli utenti della rete, in grado di aiutarli a risolvere qualunque problema legato alla sicurezza informatica. Di norma un CERT è composto da persone specializzate in diversi ambiti, per esempio amministratori di rete, amministratori di sistema ed esperti in sicurezza informatica. Essi sono a conoscenza di come dovrebbero apparire, in condizioni normali, i settori di loro competenza, e dunque sono in grado di accorgersi immediatamente dell’eventuale verificarsi di un’anomalia. I compiti fondamentali di un CERT consistono nel rispondere alle segnalazioni degli utenti vittime di incidenti informatici e nell’analizzare i sistemi hardware e software per individuarvi eventuali vulnerabilità. 3.2 Difesa della LAN o dell’Host • Vulnerability scanner: è un programma progettato per ricercare e mappare le vulnerabilità(debolezze) di un’applicazione, di un computer o di una rete. Questo argomento viene trattato principalmente dalla presente tesi (Sezione 4.3). • Sniffer: metodo visto nella sottosezione 2.1.2 può essere utilizzato anche come metodo di difesa alla disponibilità, considerandolo un programma di utilità che intercetta passivamente i dati che transitano nella rete, permettendo l’analisi e l’individuazione di problemi di comunicazione o di tentativi di intrusione. • Firewall: metodo di difesa all’integrità di sistema, è una entità hardware o software che si pone tra internet e la rete (LAN firewall) o host (Personal Firewall) che si vuole proteggere. Il firewall svolge una funzione di filtro, consentendo il transito solamente alle connessioni ritenute lecite mediante una opportuna “Policy”. Gli obiettivi principali dei firewall sono: – monitorare, limitare e autenticare l’accesso alla rete da proteggere, nei confronti di accessi provenienti dall’esterno (Internet); – monitorare, limitare e autenticare l’accesso all’esterno (Internet) da parte dell’utenza interna. Un firewall filtra il traffico sulla base di un insieme di regole che definiscono una policy di sicurezza. Esistono due politiche per l’applicazione delle regole: – policy default-deny: viene permesso solo ciò che viene dichiarato esplicita- mente, il resto viene vietato. – policy default-allow: viene vietato solo ciò che viene dichiarato esplicita- mente, il resto viene permesso. Tutti i firewall utilizzano la politica default-deny poiché garantisce una maggiore sicurezza e una maggiore accuratezza nella definizione delle regole rispetto alla politica default-allow, anche se quest’ultima consente una configurazione più semplice. L’analisi dei pacchetti che costituiscono il traffico, secondo i criteri di sicurezza formalizzati dalle regole, si traduce in una delle seguenti azioni:
  • 27. CAPITOLO 3. METODI DI DIFESA 21 – allow: il firewall lascia passare il pacchetto. – deny: il firewall blocca il pacchetto e lo rimanda al mittente. – drop: il firewall blocca il pacchetto e lo scarta senza inviare alcuna segnalazione al mittente. Figura 3.1: LAN e Personal Firewall I firewall possono essere di 2 tipi: – I packet filter: agiscono a livello rete e trasporto, analizza tutti i pacchet- ti in transito e applica azioni del tipo permit/deny sulla base di politiche basate sugli indirizzi IP e le porte di provenienza e/o di destinazione. Gli obiettivi dei firewall packet filter sono: ∗ rendere visibili ad internet solamente i servizi di rete destinati ad un accesso pubblico (protezione dei servizi intranet e dei servizi “inconsapevoli”); ∗ bloccare il traffico indesiderato (es: P2P, ...); ∗ strumento per la gestione delle emergenze (bloccare un host ostile o contaminato da virus). Agisce a livello di pacchetti IP, ma deve leggere anche i primi byte del livello 4 per leggere le porte TCP o UDP. – I proxy: agiscono a livello applicazione, sono programmi applicativi con funzioni di tramite tra client e server. In modo implicito o esplicito il client deve rivolgersi al proxy per poter raggiungere il server. Occorre un proxy specifico per ogni applicazione. Gli obiettivi dei firewall proxy sono: ∗ mettere in comunicazione client e server che non hanno visibilità diretta (ad esempio se il client è in una intranet); ∗ migliorare le prestazioni (es: Web Caching); ∗ aggiungere funzionalità di security (monitoraggio, autenticazione, filtro). • IDS(Intrusion detection system): metodo di difesa alla disponibilità, è un dispositivo software/hardware per identificare accessi non autorizzati a host o LAN. L’IDS generalmente si appoggia su un database per memorizzare le
  • 28. CAPITOLO 3. METODI DI DIFESA 22 regole utilizzate per individuare le violazioni di sicurezza. Gli IDS consistono in un insieme di tecniche e metodologie realizzate ad-hoc per rilevare pacchetti dati sospetti a livello di rete, di trasporto o di applicazione; sono infatti utilizzati per rilevare tutti gli attacchi alle reti informatiche e ai computer. Questi attacchi includono gli attacchi alle reti informatiche tramite lo sfruttamento di un servizio vulnerabile, attacchi attraverso l’invio di dati malformati e applicazioni malevole, tentativi di accesso agli host tramite innalzamento illecito dei privilegi degli utenti, accessi non autorizzati a computer e file, e i classici programmi malevoli come virus, trojan e worm. Gli IDS sono classificabili nel seguente modo: – Host IDS (HIDS): software che analizza file di log del sistema, le system call, le modifiche al file system del computer (modifiche nel file delle password, nel database degli utenti e della gestione dei privilegi, ...) e altre componenti del computer. Si basa sulla differenza tra lo stato analizzato ed uno stato iniziale. – Network IDS (NIDS): è un sistema che analizza il traffico che passa su un segmento di rete dov’è attestato, cercando tracce di attacchi. Il suo funzionamento è regolato in base a due principi: ∗ Signature matching: con cui l’ids cattura il traffico e lo confronta con un database di firme di attacchi. ∗ Network analysis: che entra in funzione quando il signature matching fallisce e che è in grado di rilevare anomalie nei flussi di traffico e quindi di rilevare anche quegli attacchi che non sono ancora stati scoperti come tali. – Network Node IDS (NNIDS): analizza il traffico di rete che passa su un unico nodo. Differente da Host-based IDS, dato che NNIDS non opera nei file all’interno del sistema.La differenza tra NNIDS e NIDS è che nel NNIDS il traffico analizzato è dell’unico nodo e non quello dell’intera rete. Un applicazione del NNIDS è quella di installarlo in un dispositivo VPN in modo tale che il traffico venga analizzato una volta decriptato. – Hybrid IDS: combina HIDS e NIDS. Le informazioni recuperate dagli agenti in esecuzioni negli Host vengono integrate con le informazioni prelevate dalla rete locale. Un IDS non può bloccare o filtrare i pacchetti in ingresso ed in uscita, né tanto meno può modificarli, quindi non cerca di bloccare le intrusioni, ma si limita a rilevarle e segnalarle. • Port scanner: è una tecnica informatica progettata per rilevare quali porte siano in ascolto su una macchina, permettendo di verificare se lo stato di tali porte rispettino le politiche di sicurezza della rete di appartenenza di quella macchina. Questo argomento viene trattato in modo approfondito nella sezione 4.3.2.7. • Honeypot: è un sistema o componente hardware o software usato come "trap- pola" o "esca" a fini di protezione contro gli attacchi informatici. Solitamente
  • 29. CAPITOLO 3. METODI DI DIFESA 23 consiste in un computer o un sito che sembra essere parte della rete e conte- nere informazioni preziose, ma che in realtà è ben isolato e non ha contenuti sensibili o critici; potrebbe anche essere un file, un record, o un indirizzo IP non utilizzato. Il valore primario di un honeypot è l’informazione che esso dà sulla natura e la frequenza di eventuali attacchi subiti dalla rete. Gli honeypot non contengono informazioni reali e quindi non dovrebbero essere coinvolti da nessuna attività; rilevazioni in senso opposto possono rivelare intrusioni non autorizzate o male- vole in corso. Gli honeypot possono portare dei rischi ad una rete, e devono essere maneggiati con cura. Se non sono ben protetti, un hacker potrebbe usarli per entrare in altri sistemi. • Tecniche Antispam: le tecnica principale per limitare la ricezione di spam è il filtraggio delle email mediante l’utilizzo di una lista con determinate regole, vi sono diversi tipi di liste, elenchiamo di seguito le principali: – Black list: lista di server classificati spammers che viene attivata sul mail server rifiutando mail che provengono da questa lista. L’amministratore del mailserver può costruire manualmente una propria lista o può avvalersi di servizi in Internet che distribuiscono automaticamente le liste. – Gray-List: si basano sul fatto che i mailer usati dagli spammer general- mente tentano l’invio di una email una sola volta: Il GrayListing consiste nel rigetto della ricezione della mail al primo tentativo, che verrà accettata ad un successivo tentativo, dopo un tempo stabilito (tipicamente 300 sec.). – White List: liste di mittenti “fidati” su cui non vengono effettuati con- trolli antispam. Include gli host accettati da Gray-list e host inseriti manualmente dall’amministratore. – Filtri Bayesiani: sono filtri che cercano di classificare le mail in arrivo assegnando un punteggio numerico a frasi o modelli che si presentano nel messaggio. Ogni messaggio riceve quindi un punteggio compressivo (tra 0 e 1) che, dopo aver stabilito una soglia, ci consente di classificare il messaggio. Il filtro richiede un addestramento con mail spam e no-spam con cui viene creato un database di riferimento. 3.3 Rinforzo di autenticazione e riservatezza • Crittografia: tecnica che permette di "cifrare" un messaggio rendendolo incomprensibile a tutti fuorché al suo destinatario. In generale i due processi principali che vengono applicati in crittografia sono: – Cifratura: trasformazione carattere per carattere(o bit a bit), senza considerare la struttura linguistica del messaggio. I sistemi di cifratura possono lavorare per: ∗ Trasposizione: chiamata anche permutazione significa mescolare i caratteri di un messaggio in un nuovo ordine.
  • 30. CAPITOLO 3. METODI DI DIFESA 24 ∗ Sostituzione: scambiando un carattere con un altro carattere in accordo con una regola specifica Una cifratura che implementa entrambe le tecniche (trasposizione e sostituzione) è chiamata "cifratura composta". – Codifica: opera a livello di parola o frase. Ogni sistema di crittografia ha due parti essenziali: un algoritmo (per codificare e decodificare) e una "chiave", la quale data in input con il testo "in chiaro" all’algoritmo, darà poi il testo codificato. In ogni moderno sistema di crittografia si assume che l’algoritmo sia conosciuto dai potenziali "nemici", quindi la sicurezza di un sistema risiede solo ed esclusivamente nella segretezza della chiave. Le principali tecniche di crittografia sono: – Crittografia simmetrica: metodo con algoritmi che usano la stessa chiave per cifrare e decifrare i messaggi. La chiave è detta segreta o privata ed è un parametro di una funzione invertibile, servendo sia nella fase di cifratura sia in quella decifratura, rende necessario che sia il mittente che il destinatario sia a conoscenza di tale chiave. Il principio di funzionamento si compone di tre fasi: 1. Il mittente cifra il messaggio con la chiave segreta. 2. Si trasmette il messaggio cifrato attraverso un canale. 3. Il destinatario riceve il messaggio cifrato e lo decifra con la chiave segreta. Figura 3.2: Crittografia Simmetrica I vantaggi dell’utilizzo di tale metodo sono la velocità di funzionamento, dato che gli algoritmi per cifrare e decifrare sono molto veloci, di conse- guenza permettono l’utilizzo di chiavi molto lunghe, comportando una maggiore sicurezza, e riguardo l’autenticità, l’integrità e la riservatezza, ipotizzando che il gruppo di persone che possiedono la chiave sia quello voluto, possiamo affermare che siano strettamente soddisfatte. Gli svantaggi dell’utilizzo di tale metodo sono inerenti alla semplicità delle operazioni utilizzate dagli algoritmi simmetrici, che diventano possibili sempre in minor tempo, dato l’aumento dei tassi di velocità dei processori degli elaboratori e dall’utilizzo di una chiave identica sia per il mittente che
  • 31. CAPITOLO 3. METODI DI DIFESA 25 per i destinatari, questo comporta, nel caso il destinatario non disponesse della chiave, al problema di fornirgliela mediante un canale sicuro e nel caso il destinatario avesse già tale chiave, ai problemi legati all’affidabilità di esso, cioè la possibilità che la chiave venga persa o data ad altri non autorizzati. Tra i vari algoritmi a chiave privata o segreta, quello che ha ottenuto maggiore sviluppo e successo è stato il DES(Data Encryption Standard) – Crittografia asimmetrica: metodo con algoritmi la cui chiave di crip- tazione è diversa da quella di decrittazione: cosi facendo è possibile distribuire la chiave di decrittazione (chiave pubblica) e mantenere segreta la chiave di criptazione (chiave privata). I concetti su cui si basa è che un messaggio criptato con una chiave può es- sere decrittato solo con l’altra chiave e che è matematicamente improbabile ricavare una chiave dall’altra, ovvero le chiavi devono essere indipendenti; la conoscenza di una non deve concedere nessuna informazione utile alla ricostruzione dell’altra. Vi sono due modalità di funzionamento: ∗ Modalità Autenticazione: solo il possessore della chiave privata può aver cifrato il file. Ciò garantisce anche l’integrità del documento (una volta decifrato e modificato, solo il possessore della chiave privata può cifrarlo di nuovo) e il non ripudio da parte del firmatario, tuttavia non è garantita la riservatezza per il destinatario dato che chiunque sia in possesso della chiave pubblica può decifrare il file. ∗ Modalità Confidenziale: la confidenzialità e l’integrità del file sono garantite dal fatto che solo il possessore della chiave privata può decrittare il file. Figura 3.3: Crittografia Asimmetrica I vantaggi della crittografia asimmetrica, risolvono i problemi tipici della crittografia a chiave simmetrica, ad esempio lo scambio delle chiavi non
  • 32. CAPITOLO 3. METODI DI DIFESA 26 è più critico, anzi dato che le chiavi sono da considerarsi pubbliche non esiste più alcun problema in merito, inoltre il problema dell’autenticità del mittente viene risolto, in quanto solo il titolare di quella chiave pri- vata potrà aver generato il messaggio corrispondente alla relativa chiave pubblica. Si risolve il problema della riservatezza, poiché l’algoritmo è simmetrico dal punto di vista delle chiavi (ciò che viene criptato con la chiave privata va decrittato con quella pubblica, ma anche viceversa) è sufficiente criptare un messaggio con la chiave pubblica affinché solo il titolare della corrispondente chiave privata possa leggerlo. Lo svantaggio principale della crittografia asimmetrica consiste nel fatto che gli algoritmi utilizzati svolgano numerosi e complessi calcoli renden- do la loro implementazione poco efficiente, soprattutto quando occorre garantire una lunghezza minima della chiave superiore ai 1024 bit. – Crittografia quantistica: consiste in un approccio alla crittografia che utilizza peculiari proprietà della meccanica quantistica nella fase dello scambio della chiave per evitare che questa possa essere intercettata da un attaccante senza che le due parti in gioco se ne accorgano. Si utilizza questo principio per realizzare un cifrario perfetto del tipo One Time Pad(la chiave di cifratura è lunga quanto il testo e non riutilizzabile), senza il problema di dover scambiare la chiave (anche se lunga quanto il messaggio) necessariamente su un canale sicuro. Questo perché se attraverso il canale passassero microparticelle e un potenziale nemico cercasse di intercettarle dovrebbe compiere un’osservazione e quindi modificherebbe lo stato della comunicazione, facendosi scoprire. La crittografia ha diverse applicazioni, le principali sono: – Message Digest: il Message Digest (MD) e’ una sequenza di bit di lunghezza limitata e fissa associata ad un messaggio (P) del quale ne rappresenta la firma (o impronta), si ottiene mediante una funzione crit- tografica di hash, che è un algoritmo matematico che trasforma dei dati di lunghezza arbitraria (messaggio) in una stringa binaria di dimensione fissa. Inoltre tale funzione non è invertibile, ovvero non e’ possibile risalire al messaggio originale avendo come unico elemento il MD. Se il massaggio cambia anche di un solo bit il MD diventa completamente diverso. L’algoritmo deve essere “Collision Free” , ovvero deve evitare (o minimiz- zare) la possibilità che 2 messaggi generino lo stesso MD. Per questo il MD non può essere troppo breve. Le principali applicazioni sono: ∗ Verificare l’integrità di messaggi o file: il messaggio P viene spedito assieme al MD; chi li riceve ricalcola i MD e lo compara con quello ricevuto, se corrisponde allora il messaggio è quello corrispondente al MD spedito. ∗ Verifica della password: viene memorizzato il MD della password in chiaro e per verificare che la password inviata sia quella corrispondente, bisogna confrontare l’MD memorizzato in chiaro con l’MD ricavato calcolando la funzione di hash con la password ricevuta.
  • 33. CAPITOLO 3. METODI DI DIFESA 27 Le funzioni crittografiche di hash comunemente utilizzate in diversi stan- dard e applicativi sono MD5 e SHA-1. – Certificati: è un documento elettronico che attesta l’associazione uni- voca tra una chiave pubblica e l’identità di un soggetto (una persona, una società, un computer, ...) che dichiara di utilizzarla nell’ambito delle procedure di cifratura asimmetrica e autenticazione tramite firma digitale. Il certificato è fornito da un ente terzo fidato e riconosciuto come au- torità di certificazione (CA), è a sua volta autenticato per evitarne la falsificazione sempre attraverso firma digitale ovvero cifrato con la chiave privata dell’associazione la quale fornisce poi la rispettiva chiave pubblica associata per verificarlo. I certificati risolvono l’impraticabilità dello scambio di chiavi pubbliche utilizzate per la crittografia tra gli utenti, garantendo che una chiave pubblica sia associata alla vera identità del soggetto che la rivendica come propria. X.509 è lo standard Internazionale emanato da ITU per il formato dei Certificati. Questo standard stabilisce quali informazioni possono comporre un certificato, i principali campi sono: ∗ Version: numero della versione di X.509 (v1, v2 o v3). ∗ Serial Number: numero univoco di emissione da parte della CA. ∗ Signature Algorithm: algoritmo usato per firmare il certificato. ∗ Issuer: Distinguished Name DN della CA che ha emesso il certificato. ∗ Validity: inizio e fine del periodo di Validità. ∗ Subject: Distinguished Name DN del proprietario del Certificato. ∗ Subject Public Key Info : chiave pubblica (Modulo + Esponente) e algoritmo utilizzato. ∗ X509v3 Extensions: estensioni opzionali (solo v3). ∗ Signature: firma da parte della CA (MD del Certificato, cifrato con la chiave privata della CA). Figura 3.4: Certificato X.509 La CA è un ente che firma le richieste di certificato da parte di una comunità di utenti/host/software garantendone l’identità. La CA possiede una propria coppia di chiavi e autofirma la propria richiesta (self-signed). Per identificare univocamente i certificati esiste un name-space gerarchico di certificati, in cui ogni nodo ha un attributo e un valore. I certificati X.509 possono essere rappresentati in diversi possibili formati, i principali sono: ∗ DER: formato binario utilizzato in ambiente Windows e Java con estensioni .DER o .CER.
  • 34. CAPITOLO 3. METODI DI DIFESA 28 ∗ PEM: formato testuale (base64) ed e’ utilizzato prevalentemente in ambiente Unix. Può contenere certificati, richieste di certificati, chiavi private e PKCS12. ∗ PKCS (Public Key Cryptography Standards): e’ un gruppo si Stan- dard creati da “RSA Data Security” con lo scopo di creare formati di interoperabilità. • Protocolli di Autenticazione: l’autenticazione è un servizio di sicurezza che consente di accertare l’identità dichiarata da una entità (origine dei dati o peer in una comunicazione), mediate la verifica di credenziali. Le tecniche possono basarsi sulla conoscenza di un segreto (password, PIN, ..), tecniche crittografiche o caratteristiche biometriche (se si tratta di una persona). Le principali tecniche di autenticazione sono: – Autenticazione tramite password: è un protocollo largamente utiliz- zato perché facile da implementare e da usare. E’ insicuro specialmente quando la password non viene modificata regolarmente, è individuabile con attacco a dizionario, viene trasmessa in chiaro. I principali protocolli di autenticazione significativi basati su password: ∗ PAP (Password Authentication Protocol): è usato esclusivamente dal protocollo PPP e presume che il canale sia sicuro (non intercettabile); Le fasi sono: 1. Il client manda al server il proprio nome e la password. 2. Il server cerca in una tabella il nome utente e verifica la correttezza della password applicando una funzione di trasformazione (che consente di evitare che il server memorizzi la password in chiaro). Figura 3.5: Autenticazione tramite password: PAP ∗ CHAP (Challenge Handshake Authentication Protocol): è usato in PPP e Windows; Le fasi sono: 1. Il server invia un numero casuale, in figura 3.6 corrisponde a "c" (challenge) utilizzato dal client come salt. 2. La funzione di trasformazione, in figura 3.6 corrisponde ad "r", è calcolata sia dal server che dal client.
  • 35. CAPITOLO 3. METODI DI DIFESA 29 Figura 3.6: Autenticazione tramite password: CHAP Il vantaggio è che la password non viene scambiata tra client e server, ma il problema è che il DB delle password deve essere salvato in chiaro, quindi vulnerabile ad attacco. ∗ OTP (One-Time Password): simile a CHAP, l’unica differenza è che "c" non è più un numero casuale, ma diventa un numero progressivo. Una OTP non può essere memorizzata da una persona, quindi richiede una tecnologia supplementare per poter essere utilizzata. L’algoritmo OTP principale è TOTP(Time based OTP), le password sono generate con un algoritmo funzione di una chiave segreta e il tempo corrente. – Autenticazione con challenge e chiave simmetrica: le fasi sono: 1. Il client e il server , che condividono una chiave simmetrica S, creano un numero casuale, detto Challenge (c1 e c2). 2. Il server invia la propria identità (B) e il proprio Challenge (c1). 3. Il client risponde inviando la propria identità (A) e la cifratura di c1, c2 e B. 4. Il server chiude il protocollo inviando la cifratura di c1, c2 e A. Figura 3.7: Autenticazione con challenge e chiave simmetrica Il vantaggio è che i messaggi cifrati non sono esposti ad attacco al dizionario, ma il problema è che se abbiamo N nodi ogni nodo deve conoscere N-1 chiavi.
  • 36. CAPITOLO 3. METODI DI DIFESA 30 – Autenticazione con KDC: il modello del “Centro di Distribuzione delle Chiavi” (KDC, Key Distribution Center) si applica ad una comunità di N entità (persone/host/servizi) che devono autenticarsi reciprocamente. In questo schema ogni utente ha una singola chiave condivisa con il KDC. Le fasi, quando A deve comunicare con B, sono: 1. A condivide con KDC la chiave Ka, B condivide con KDC la chiave Kb. 2. A sceglie una chiave di sessione Ks, invia a KDC la chiave e B, in modo cifrato. 3. KDC decifra Ks e la invia a B. Il vantaggio è che basta la singola chiave Ka per comunicare con N entità, ma il problemi è che A deve inserire la chiave Ka per ogni connessione. – Autenticazione Kerberos: Kerberos e’ un protocollo di Autenticazione (progettato al MIT) che implementa il modello del “Centro di Distribuzione delle Chiavi”. Un sistema Kerberos gestisce una comunità di utenti (REALM) in cui ogni utente ha una singola chiave condivisa Ka con il KDC, ma il KDC si compone del AS (Authentication Server) che gestisce il LOGIN e del TGS (Ticket Granting Server) che gestisce la sessione. La password di A (Ka) viene usata una sola volta per tutte le autenticazioni della sessione (Single Sign On - SSO) e rimane sul computer del client solo per pochi millisecondi. La chiave di sessione che A presenta a B serve solo a dimostrare l’identità di A (autenticazione). B deciderà cosa consentire di fare ad A (autorizzazione). Le fasi sono: 1. A chiede all’AS la chiave di sessione Ks (Login sul REALM). (Frecce rosse in figura 3.8). 2. A deve comunicare con B, quindi chiede al TGS un Ticket Kab da usare con B. (Frecce Gialle in figura 3.8). 3. A si rivolge a B comunicandogli la chiave di sessione Kab. (Frecce verdi in figura 3.8).
  • 37. CAPITOLO 3. METODI DI DIFESA 31 Figura 3.8: Autenticazione Kerberos – Autenticazione con PKI (Public Key Infrastructure): è un insieme di processi e mezzi tecnologici che consentono a terze parti fidate di verificare o farsi garanti dell’identità di un utente, oltre che di associare una chiave pubblica a un utente, normalmente per mezzo di software distribuito in modo coordinato su diversi sistemi. L’utilizzo di una PKI (Public Key Infrastructure) ha il vantaggio di non richiedere preventivamente chiavi condivise. Le fasi per la comunicazione, considerando che i nodi A e B hanno una coppia di chiavi(pubblica e privata) sono: 1. A invia la propria Identità e un Challenge Ra a B, cifrati con la chiave pubblica di B. 2. B decifra il messaggio, sceglie una chiave di sessione Ks e la invia ad A. 3. A risponde con il Challenge di B cifrato con la chiave di sessione Ks. Questo protocollo garantisce, come servizi di sicurezza, la confidenzialità, dato che la chiave di sessione Ks è condivisa e l’autenticazione, dato che gli host hanno verificato l’identità reciproca. • Sicurezza nelle comunicazioni: la cifratura di una comunicazione può avvenire a diversi livelli: – Applicazione: alcune applicazioni cifrate si appoggiano sull’applicazione in chiaro. Il payload viene cifrato e quindi veicolato da applicativo non cifrato. – Sessione: il protocollo SSL/TLS fornisce un Layer intermedio tra TCP e applicazione che consente di cifrare le applicazioni. Questo richiede la riscrittura delle applicazioni che devono interfacciarsi al Layer SSL anziché TCP.
  • 38. CAPITOLO 3. METODI DI DIFESA 32 – Rete: IPsec e’ un Layer di cifratura che viene posizionato a livello rete, rendendo la cifratura trasparente al livello delle applicazioni, che non devono essere modificate. Anche se funziona a livello rete, è orientato alla connessione, a causa della cifratura con chiave, ne consegue che le comunicazioni UDP attraverso IPsec sono poco efficienti per l’ OverHead elevato. Una “connessione” IPsec chiamata SA (Security Association), e’ una connessione Simplex e ha un identificatore di sicurezza associato. Per una connessione Duplex è necessario attivare un SA per ciascuna direzione. L’Identificatore, scritto in ogni pacchetto, consente al ricevente individuare la SA e quindi di reperire la chiave di decifratura. IPsec, analogamente a SSL, è formato da: Un protocollo per lo scambio delle chiavi necessarie per la cifratura del canale: ∗ IKE (Internet Key Exchange): è utilizzato per stabilire una SA, è a livello applicazione e usa UDP come trasporto sulla porta 500. L’obiettivo e’ stabilire una Shared Session Secret da cui poi derivare la chiave per cifrare la SA. Viene utilizzato l’algoritmo di Diffie-Hellman. Due protocolli alternativi per la cifratura dei dati sul canale: ∗ AH (Authentication Header): gestisce integrità, ma non confiden- zialità, dato che non ha la cifratura. Il protocollo determina una intestazione di 24 Byte che contiene l’HMAC del Datagramma IP (Header+payload) e può essere inserita nelle estensioni dei protocolli IPv4 e IPv6 (Transport Mode) o nell’estensione di un nuova intesta- zione IP che come payload incapsula il pacchetto IP originale (Tunnel Mode). ∗ ESP (Encapsultating Security Payload): rispetto a AH, aggiunge la confidenzialità poiché il payload viene cifrato. Il campo HMAC (diversamente da AH) non copre l’Header IP ed è accodato al payload cifrato, cosi può essere calcolato mentre il pacchetto sta uscendo. La cifratura avviene in modalità Transport, cioè viene cifrata la trama di trasporto (TCP Header + Payload) o in modalità Tunnel, che viene cifrato il pacchetto IP (old IP header+TCP header+payload). Figura 3.9: Sicurezza nelle comunicazioni
  • 39. CAPITOLO 3. METODI DI DIFESA 33 • VPN(Virtual Private Network): è una rete di telecomunicazioni privata, instau- rata tra soggetti che utilizzano, come infrastruttura di trasporto, un sistema di trasmissione pubblico e condiviso, come ad esempio la rete Internet. Lo scopo delle reti VPN è quello di offrire alle aziende, a un costo inferiore, le stesse possibilità delle linee private in affitto, ma sfruttando reti condivise pubbliche. Una VPN è come l’estensione, a scala geografica, di una rete locale privata aziendale che colleghi tra loro siti interni all’azienda stessa variamente dislocati su un ampio territorio, sfruttando l’instradamento tramite IP per il trasporto su scala geografica e realizzando di fatto una rete LAN, detta appunto "virtuale" e "privata", logicamente del tutto equivalente a un’infrastruttura fisica di rete. I protocolli più utilizzati per realizzare i tunnel cifrati della VPN sono: IPsec con ESP in tunnel mode e SSL/TLS
  • 40. Capitolo 4 Vulnerabilità Nel presente capitolo verrà affrontato l’argomento centrale di questa tesi, le vulnerabilità. Illustrando e dettagliando cosa sono, quando si presentano, cosa comporta la loro presenza, come si possono rilevare e come funzionano i software per la rilevazione di vulnerabilità. 4.1 Vulnerabilità ed Exploit In questa sezione vedremo cosa sono le vulnerabilità e gli esploit, cercando di definirli, categorizzarli e spiegarne l’ambito in cui possiamo trovarli. 4.1.1 Vulnerabilità Secondo la terminologia CVE del MITRE, società statunitense senza fini di lucro, che svolge ricerca e crea soluzioni in particolare nel campo della sicurezza informatica per gli Stati Uniti d’America, si definisco le vulnerabilità come uno stato degli elaboratori in cui si permette ad un attaccante di: • eseguire comandi come un altro utente; • accedere a dati ai quali esso non è autorizzato; • assumere un identità altrui; • condurre un denial of service. Quindi le vulnerabilità di un sistema informatico consistono nelle sue, varie ed eventuali, falle di sicurezza, che il sistema può presentare, sotto diverse forme. Queste falle di sicurezza possono essere sfruttati dagli exploit per poi condurre attacchi informatici, definiamo un exploit come un frammento di codice, una sequenza di comandi, o un insieme di dati, che prendono vantaggio da un bug o da una vulnerabilità per acquisire privilegi di accesso, eseguire codice o creare DoS su di una risorsa. L’informatizzazione della società e quindi maggiori necessità informatiche, hanno comportato ad un aumento dei prodotti e di conseguenza delle vulnerabilità, come si può osservare dalla figura 4.1 dove vengono mostrate il numero di vulnerabilità, suddivisione per anno, rilevate in internet dal 1999 al 2016. 34
  • 41. CAPITOLO 4. VULNERABILITÀ 35 Figura 4.1: Vulnerabilità per anno, dal 1999 al 2016 4.1.2 Categorie delle vulnerabilità Le categorie delle vulnerabilità sono identificate in base al tipo di disservizio che possono causare, elenchiamo i principali tipi di vulnerabilità: • Denial of Service: vulnerabilità che rende una macchina o i servizi da essa offerti non disponibili, impedendone l’utilizzo ai suoi utenti. • Arbitrary Code Execution: vulnerabilità data da un bug software che permette all’attaccante di eseguire codice arbitrariamente sulla macchina della vittima. • Buffer overflow: condizione di errore che si verifica a runtime quando in un buffer di una data dimensione vengono scritti dati di dimensioni maggiori. • XSS(Cross-site scripting): vulnerabilità che affligge siti web dinamici che impiegano un insufficiente controllo dell’input nei form. Permette di inserire o eseguire codice lato client al fine di attuare un insieme variegato di attacchi (raccolta, manipolazione e reindirizzamento di informazioni riservate, ...). • Directory Traversal: vulnerabilità che permette di accedere a file e directory che sono memorizzate fuori dalla web root folder. • Bypass Something: vulnerabilità data da un bug che permette di aggirare il sistema o meccanismi di sicurezza, permettendo di ottenere l’accesso al sistema o alla rete. • Gain Information: vulnerabilità che permettono all’attaccante di ottenere informazioni sulla macchina o servizi della vittima. • Gain Privilege (Privilege escalation): tramite un bug, dovuto a un errore di programmazione o all’assenza di un controllo in un sistema operativo o in un
  • 42. CAPITOLO 4. VULNERABILITÀ 36 applicazione software, permette di ottenere i privilegi di accesso a risorse che normalmente non sarebbero accessibili. • SQL Injection : vulnerabilità data dall’inefficienza dei controlli sui dati ricevuti in input e permette l’inserimento di codice maligno all’interno di una query SQL. • File Inclusion: vulnerabilità presente nei siti web e permette all’attaccante di includere un file, a causa di assenza di controlli sull’input immesso dall’utente. Questo può portare ad esempio al Code Execution sul server web. • Memory Corruption: vulnerabilità che permette la modifica di contenuti in certe locazioni di memoria, permettendo di cambiare il comportamento del programma o leggere valori interni. • CSRF:(Cross-site request forgery) vulnerabilità dei siti web dinamici quando sono progettati per ricevere richieste da un client senza meccanismi per con- trollare se la richiesta è stata invitata intenzionalmente dall’utente o da un sistema automatico del browser. • Http Response Splitting: vulnerabilità delle applicazioni web, il quale attaccante invia request http che forzano il server web nel generare un output, il quale viene interpretato dalla vittima(un altro client) come due response http invece che una(come dovrebbe essere), quindi eseguendo codice come se arrivasse unicamente dall’applicazione web. In figura 4.2 vengono mostrate il numero di vulnerabilità, suddivise per tipo, rilevate in internet dal 1999 al 2016 Figura 4.2: Vulnerabilità per tipo, dal 1999 al 2016 4.1.3 Ciclo di vita delle vulnerabilità Una vulnerabilità attraversa diverse fasi della sua evoluzione che ne determinano la criticità e la diffusione.
  • 43. CAPITOLO 4. VULNERABILITÀ 37 1. Creazione: durante la fase di sviluppo viene introdotto nel codice un errore. 2. Scoperta: un esperto di sicurezza scopre l’errore all’interno del codice, intuisce che questo ha una o più conseguenze negative sulla sicurezza del software o del sistema. Da questo momento si parla di vulnerabilità e non più di errore nel codice; 3. Condivisione: la conoscenza della vulnerabilità scoperta viene fatta prima circolare in ambito ristretto, poi si diffonde anche grazie allo sviluppo di tool automatici che ne fanno uso. 4. Pubblicazione Patch/Upgrade: il produttore del sistema viene a conoscen- za della vulnerabilità, quindi corregge l’errore emettendo una patch o una nuova versione del codice. La presenza di tale vulnerabilità, insieme alla presenza della patch disponibile viene resa pubblica. 5. Installazione Patch/Upgrade: i sistemisti installano la patch/upgrade nei sistemi per risolvere le vulnerabilità. Tutti i sistemi sono soggetti a una finestra di esposizione, anche se gestiti al meglio. Infatti la scoperta di nuove vulnerabilità è impredicibile. Inoltre, la cono- scenza dell’individuazione delle nuove vulnerabilità circola velocemente e altrettanto velocemente la disponibilità di tool automatici atti all’utilizzo delle vulnerabilità trovate. Purtroppo, le patch rappresentano una soluzione spesso inefficace in quanto vi è scarsa consapevolezza di molti sistemisti, la frequenza di emissione troppo elevata e spesso causa di malfunzionamenti o nuovi problemi. Figura 4.3: Finestra temporale di una vulnerabilità E’ interessante notare che la curva di figura 4.3 cresce rapidamente nonostante il fatto che sfruttare alcune vulnerabilità sia complesso. Questo è dovuto principalmente a due fattori: • Scripting: dopo le prime intrusioni, compiute da esperti, la tecnica per realizzarle viene automatizzata (scrittura di script, descrizione delle procedure).
  • 44. CAPITOLO 4. VULNERABILITÀ 38 • Script Kiddies: la disponibilità di exploit (tool automatici) permette di sfrut- tare con successo vulnerabilità nei sistemi anche a persone dotate di scar- se competenze tecniche, aumentando drasticamente il numero dei potenziali attaccanti. 4.1.4 Exploit Un exploit è un frammento di codice, una sequenza di comandi, o un insieme di dati, che prendono vantaggio da un bug o da una vulnerabilità per acquisire privilegi di accesso, eseguire codice o creare DoS su di una risorsa. Ci sono diversi modi per classificare gli exploit. Il più comune è una classificazione a seconda del modo in cui l’exploit contatta l’applicazione vulnerabile, quindi si possono distinguere in: • Exploit remoto: compiuto attraverso la rete e sfrutta la vulnerabilità senza precedenti accessi al sistema. • Exploit locale: richiede un preventivo accesso al sistema e solitamente fa aumentare i privilegi dell’utente oltre a quelli impostati dall’amministratore. Gli exploit possono anche essere classificati a seconda del tipo di vulnerabilità che sfruttano, quindi prendendo il nome della categoria dove rientra la vulnerabilità, come visto nella sezione della categorizzazione delle vulnerabilità (4.1.2). Lo scopo di molti exploit è quello di acquisire i privilegi di amministratore su un sistema, per poi poter svolgere qualsiasi azione voluta. Normalmente un exploit sfrutta solo una specifica falla, e quando viene pubblicato questa falla è riparata e l’exploit diventa inutile per le nuove versioni del programma. Per questo motivo alcuni hacker non divulgano gli exploit trovati ma li tengono riservati per loro o per la loro comunità. Questi exploit sono chiamati zero day exploit, altrimenti detti script kiddie. Nella figura 4.4 dove è rappresentata la distribuzione degli esploit usati negli attacchi, per tipo di applicazione, nel corso dell’anno 2015, si può notare che la maggior parte degli attacchi usa exploit inerenti ai browser. Questo può dipendere, in parte dalla presenza di bug nel codice dei browser, ma principalmente dal fatto che, oltre ad essere una delle applicazione sicuramente presente in un elaboratore e una delle più utilizzate, è l’applicazione che permette all’utente di interfacciarsi direttamente su internet, questo la rende l’applicazione più interessante su cui effettuare attacchi. 4.2 Vulnerability Assessment Volendo valutare il livello di sicurezza di una certa configurazione di un sistema, il primo passo da compiere è sicuramente quello di eseguire un vulnerability assessment. Tale valutazione delle vulnerabilità consiste di un processo volto a valutare l’efficacia dei meccanismi di sicurezza e quindi alla individuazione, alla quantificazione e all’as- segnazione di priorità riguardo le eventuali vulnerabilità di un sistema. Le operazioni appena descritte hanno lo scopo, una volta trovate le falle di sicurezza, di migliorare il sistema e prevenire eventuali attacchi basati sui dati riscontrati. Questa ricerca può essere effettuata da vari strumenti, ad esempio gli scanner di
  • 45. CAPITOLO 4. VULNERABILITÀ 39 Figura 4.4: Distribuzione degli exploit usati negli attacchi, per tipo di applicazione, 2015 vulnerabilità, che saranno spiegati in modo approfondito nella sezione 4.3. In questa attività, non si simula il malintenzionato, quindi, è necessario facilitare il più possibile l’attività di Vulnerability assessment. Ad esempio, se la rete presa in considerazione ha un firewall, le varie scansioni è preferibile farle oltre il firewall. Questo perché, farle prima dell’apparato genererebbe molti falsi positivi, in quanto il firewall blocca le richieste. E’ importante, sottolineare che questo genere di attività, pur portando sicuramente un valore aggiunto alla sicurezza attuale dell’infrastruttura aziendale presa in considera- zione, ha anche delle limitazioni. Questa attività soffre del problema di degradazione, ossia, nel tempo nuove vulnerabilità verranno scoperte, nuove macchine verranno aggiunte o tolte dalla rete, nuove patch verranno installate sulle macchine, nuovi servizi verranno attivati, e dato che il Vulnerability assessment è "una fotografia" della situazione del momento, è quindi fondamentale ripeterlo ogni qual volta sia necessario verificare il livello di sicurezza del sistema, prestando attenzione che i vari apparati, che si vuole analizzare, siano accesi e collegati alla rete. Dato che spesso le workstation sono multi-utente, ed ogni utente abilita servizi personali, ovviamente durante l’attività di Vulnerability assessment essendo attivo un solo utente, solo quest’ultimo verrà analizzato. E’ quindi fondamentale, che durante l’attività di analisi, la macchina sia loggata con l’utenza più usata, o comunque di maggior interesse. Inoltre a volte è possibile che alcune workstation, abbiano installata una o più macchine virtuali, e anche quest’ultime potrebbero essere messe in rete, queste macchine, se non sono attive, non saranno analizzate. 4.3 Vulnerability Scanner Un vulnerability scanner è un programma progettato per ricercare e mappare le debolezze di un’applicazione, di un computer o di una rete, eseguendo scansioni. Le scansioni possono essere in modo "non invasivo" o "invasivo".