Sicurezza e Privatezza
Elisa Notarangelo
2020
Contents
1 Introduzione 1
1.1 Un sistema sicuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Terminologia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3 Storia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Prime intrusioni . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.5 Termine Hacker . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2 Cybersecurity Ethics 6
3 Elementi di crittografia 10
3.1 Def di crittografia e i componenti principali protocollo crittografico . . . . . 10
3.2 Protocolli a chiave privata o simmetrica . . . . . . . . . . . . . . . . . . . . . . . 11
3.3 L’algoritmo di Diffie-Hellman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.4 Crittografia a chiave pubblica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.5 Funzioni hash one-way . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.6 Applicazioni di crittografia nella cybersecurity . . . . . . . . . . . . . . . . . . . 21
4 Fundamentals 22
4.1 Motivazioni dietro un attacco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4.2 Come i computer vengono attaccati . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.3 10 principi di sicurezza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
4.4 Caso di studio: strategia di sicurezza nella sicurezza fisica . . . . . . . . . . . 24
4.5 Sicurezza logica: le strategia di basi per la sicurezza . . . . . . . . . . . . . . . 25
4.6 Modello: security model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5 Identification and authentication 28
5.1 Identificazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.2 Autenticazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.3 What you know . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.4 What you are: Biometric . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.5 Something you have . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
5.6 Strong authentication . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
6 Identitification and authorization: what can go wrong 34
6.1 Password . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.2 Sistemi biometrici . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
7 The authorization process (Hardware Access Control) 40
7.1 CyberSecurity policy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
7.2 Architettura Intel 80386 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.3 Codice utente non può modificare dati di sistema operativo . . . . . . . . . . 44
7.4 Controlled invocation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
7.5 Page level protections . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
ii
8 Operating systems Protection (Unix case study) 51
8.1 Matrice del controllo degli accessi . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
8.1.1 Groups . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
8.1.2 Access Control List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
8.1.3 Capability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
8.2 Caso di studio: UNIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
8.3 Unix ACL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
8.4 Complete mediation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
8.5 Unix authorization process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
9 Audit e Cerficate authority 60
9.1 Audit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
9.2 Cerficate authority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
9.2.1 Attacco man in the middle . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
9.3 PKI and X.509 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
9.3.1 Diffie Hellman con certificati . . . . . . . . . . . . . . . . . . . . . . . . . . 66
9.4 Carta di credito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
9.5 Pretty good privacy -GnuPrivacyGuard . . . . . . . . . . . . . . . . . . . . . . . 68
10 Authorization System what can go wrong 71
10.0.1 The buffer overflow attack . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
11 Integer Overflow, Race Condition, Countermeasures 81
11.1 Integer Overflow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
11.2 Signedness bug . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
11.3 Race conditions ot TOCTOU(Time of Check Time of Use) . . . . . . . . . . . 83
11.4 Memory error exploits: countermeasures . . . . . . . . . . . . . . . . . . . . . . 84
11.4.1 ASLR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
11.4.2 Stack guard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
11.4.3 Non executable stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
11.5 Intrusion detection systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
12 Malware 93
12.0.1 Logic bombs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
12.0.2 computer viruses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
12.0.3 Computer Worms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
12.0.4 Trojan Houses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
12.0.5 Rootkits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
12.0.6 Malware zombies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
12.0.7 Impatto finanziario dei malware . . . . . . . . . . . . . . . . . . . . . . . . 98
13 Antivirus e Windows Access Control 99
13.1 Antivirus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
13.2 Windows access control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
13.2.1 Autenticazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
13.2.2 Autorizzazione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
13.2.3 Logging . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
14 Webinar: Microsoft Windows Identity and Access Control 107
15 Network Security 111
15.1 ARP Spoofing and MITM attack . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
iii
16 Network security II 121
16.1 Packet Sniffers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
16.2 Protocollo IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
16.3 ICMP internet control message protocol . . . . . . . . . . . . . . . . . . . . . . 124
16.3.1 Ping of death . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
16.3.2 Smurf attack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
16.4 UDP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
16.5 TCP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
16.6 SYN Flood . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
16.7 Session Signature . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
16.8 DDOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
17 Network security: DNS attacks e IPSEC 130
17.1 DNS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
17.2 DNS caching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
17.3 Denial of service attacks on dns . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
17.4 DNS spoofing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
17.5 Networl security: contromisure IPSEC . . . . . . . . . . . . . . . . . . . . . . . 134
17.5.1 Tunneling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
18 Network Security- Defenses 138
18.1 IPsec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
18.2 Transport level security . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
19 Network Security - Firewall e IDS/IPS 148
19.1 Firewall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
19.2 Firewall configuration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
19.3 IDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
20 Web Security 154
20.1 Attacks on clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
20.2 Attacchi a livello server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
21 Il sistema per la Gestione della Sicurezza delle informazioni (SGSI) 159
21.1 ISMS(SGSI) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
22 SGSI parte 2 167
22.0.1 Standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
22.0.2 ISO 27002:2018 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
23 Introduction to privacy 172
23.1 PET (spiegata dal prof di laboratorio) . . . . . . . . . . . . . . . . . . . . . . . . 173
24 Il regolamento generale sulla protezione dei dati (GDPR) 175
iv
Lezione 1
Introduzione
Studiare la Cybersecurity è diventato fondamentale, conoscere i punti deboli è diventata una
conoscenza strategica. Ci sono guerre basate sull’informazione, la cosı̀ detta Information War-
fare(o guerra dell’informazione è una metodologia di approccio al conflitto armato, imperniato sulla
gestione e l’uso dell’informazione in ogni sua forma e a qualunque livello con lo scopo di assicurarsi il
decisivo vantaggio militare specialmente in un contesto militare combinato e integrato), le informazioni
sono ormai sequenze di bit e le attività umane sono dipendenti dalle macchine.
La Cybersecurity è una disciplina legata ai calcolatori, con lo scopo di garantire la sicurezza , la pro-
tezione e la continuazione delle operazioni anche in presenza di attacchi.
La Cybersecurity è una materia interdisciplinare che coinvolge anche la legge, la politica, il fattore
umano, l’etica e rischio menageriale (quindi gli aspetti economici). Quindi non è solo informatica,
bisogna conoscere altri aspetti, analizzarmi e studiarli per poter prendere le decisioni migliori.
La Privacy è una disciplina che inizialmente unita alla sicurity per poi andare a separsi.
La Privacy è un diritto che è diventato fondamentale intorno al 1900, è stato evidenziato come diritto
degli esseri umani ed è diventato importante sopratutto con le tecnologie di comunicazione, poiché
l’uso inappropriato tende a minare la privacy delle persone, minacciare i dati personali.
Sistema sicuro è un sistema informatico fornito di meccanismi di protezione che prevengono la
corruzione dei dati, l’intercettazione dei dati e la perdita di dati o gli accessi non autorizzati. Durante
il corso individueremo meccanismi di protezione contro corruzione dei dati, quindi contro l’accesso e
cancellazione dei dati personali.
Gli accessi non autorizzati, computer virus, accedono in modo non autorizzato con il rischio di cancella
dati; i malware possono arrivare sul calcolatore in maniera nascosta e intercettare i dati. L’esperto di
Cybersecurity ha il compito di creare un sistema informatico che evita queste minacce; anche se non
può esistere un sistema totalmente sicuro.
1.1 Un sistema sicuro
• è sicuro rispetto a certe proprietà,
• viene definito un avversario rispetto a cui il sistema è sicuro,
• è impossibile definire un sistema sicuro contro tutti, infatti la sicurezza non è proprietà assoluta
ma relativa.
Linux e Windows offrono sistemi di protezione, se fossimo in grado di accede però all’hard disk con
un boot alternativo non servirebbe a niente avere sistemi di protezione.
Come si definisce un sistema sicuro, ci sono 3 proprità C.I.A
• Integrity (integrità) 1
• Confidentialy(riservatezza)
• Availability (disponibilità)
Confidenzialità il sistema garantisce l’impossibilità di avere un accesso non autorizzato alle infor-
mazioni che contiene, mantiene la segretezza delle informazioni presenti, e la segretezza rispetto a
quelle che vogliamo mantenere segrete. La confidenzialità richiede la protezione dei dati, il meccan-
ismo che mi permette di proteggere i dati è la Crittografia.
Integrità la proprietà che non consente la modifica delle informazioni in modo non autorizzato. Ran-
domsware viola la proprietà di integrità modificando le informazioni. Per soddisfare la proprietà di
integrità:
• Backup,
• Checksum, verifica integrità,
• Correzione dei dati
La confidenzialità e l’integrità sono legate più ai dati.
Disponibilità è legata al servizio più che all’informazione, i servizi in un sistema sono modifica-
bili se è necessario, ci dice che viene garantita la disponibilità se quando dobbiamo accedere a un
sistema possiamo farlo senza problemi ( un esempio è il sito ariel a cui sono stati richiesti troppi
accessi e ha difficoltà a garantire la disponibilità).Ci sono delle tecniche per affrontare il problema:
• protezioni fisiche che servono per evitare che le infrastruttura venga messa fuori uso (se ad
esempio tolgo la corrente il server non è più disponibile)
• Ridondanza (come i raid in sisop)
Ogni autore considera altre proprietà che comunque caratterizzano altri aspetti fondamentali A.A.A:
• Autenticità
• Assurance
• Anonimità
Assurance tecnica che serve a garantire la sicurezza del sistema, sono una serie di meccanismi per
far guadagnare sicurezza. Ad esempio quando si compra un elettrodomestico c’è un certifica TUV per
garantire che l’oggetto è stato sottoposto a test che garantiscono robustezza. Serve all’utente finale
per garantire sicurezza e fiducia , è una procedure che garantisce l’affidabilità. Esistono meccanismi
di certificazioni rispetto ai livelli sicurezza, ma sono molto costose, pochi le adotta, sono obbligatorie
in contesti militari, come NATO.
La gestione della fiducia dipende da:
• Politiche che specificano il comportamento che le persone o i sistemi hanno per se stessi e gli
altri
• Permessi che descrivono il comportamento consentito da gli agenti che interagiscono con le
persone o i sistemi
• Protezione che descrive i meccanismi per rispettare i permessi e le politiche
Autenticità o non ripudiabilità Se ad esempio uno riceve una mail come posso sapere se è veramente
lui e non un virus, devo poterlo garantire. Un metodo per garantire l’autenticità sono le firme digitali.
Anonimato consente di eseguire transazioni o fare attività senza poter ricondurre alla persona che
l’ha svolta, può essere utile in alcuni contesti, ma spesso viene utilizzata in modo illecito. Ad esempio
2
quando si compra online o si cerca un prodotto poi si continuano a ricevere pubblicità per indurre
acquisto, questo perché sono state vendute le informazioni. Con l’anonimato non avrei avuto questo
problema. Il lato negativo però sono i messaggi minatori e altri forme di violazioni di cui parleremo
con la privacy. Abbiamo diversi tool per garantire l’anonimato:
• aggregazione: combinazione di dati di molti individui in modo tale da non essere ricondotti a
un solo individuo
• miscelazione: intreccio di transazioni e informazioni in modo tale da non essere ricondotti a un
solo individuo
• proxies: agenti fidati che sono disposti a impegnarsi in azioni per un individuo in modo da non
potersi ricondurre a quella persona.
• Pseudonimi: identità fittizie utilizzate al posto di quelle reali
Perchè i sistemi informatici non sono sicuri ?
Perchè quando scriviamo programmi commettiamo errori, poiché la mente umana commette degli
errori, o anche per colpa di informatici che non svolgono bene il loro lavoro. Negli anni 90 il problema
si è ingrandito perché c’è stata una crescita esponenziale dei software e del numero di dati. I software
che vengono costruiti hanno circa 20/30 errori ogni 1000 linee. Se consideriamo che windows 10 ha 50
milioni di linee avrà molti errori, 50mila*20= 1 milioni di bug, che non sono tutti bug di sicurity.
Sicurity Bug consentono agli hacker di accedere in maniera non autorizzata a un sistema.
1.2 Terminologia
• Avversario: minaccia al sistema
• Attacco: assalto alla sicurezza del sistema, portato da una minaccia(threat); è un atto volon-
tario fatto per evadere sistemi di sicurezza(vedremo alcune tecniche attacco)
• Contromisure: è un azione, una procedura o tecniche per ridurre una minaccia eliminando o
prevedendola, eliminarla è difficile, cerchiamo di ridurre i danni che può causare, quindi dobbiamo
capire i possibili attacchi e minimizzare danni.
• Rischi: perdita attesa, è legato alla probabilità di un attacco * perdita. Vengono fatte delle
stime sulla probabilità * costo e poi l’azienda decide se assumere il rischio o fare degli investi-
menti per avere delle contromisure.
Risk Management per esempio quando si fa garanzia si chiede il costo e si decide se correre il
rischio o fare l’assicurazione. Gli uomoni di Cybersecurity fanno concettualmente la stessa cosa.
• Security policy: regole e pratiche che specificano quali sono le regole e le proprietà che bisogna
rispettare sui servizi sicuri.
• Asset: le risorse che si vogliono proteggere, che possono essere beni, componenti hardware,
software
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.