SICUREZZA DEI SISTEMI WEB E
MOBILI
Prof.ssa BRAGHIN CHIARA Foglia Fabrizio
A.A. 2018/2019
INDICE
1. Introduzione al corso e alla Sicurezza Informatica – 2
a. Sicurezza Informatica – 2
2. Sicurezza Informatica: che cosa, da chi e da cosa proteggere – 4
a. Da chi proteggersi – 5
b. Da cosa proteggersi – 5
3. Controllo degli accessi e autenticazione – 6
a. La sicurezza informatica non è … – 6
b. Come proteggersi: progettazione della sicurezza – 6
c. Politiche per il controllo degli accessi – 8
4. Autenticazione uomo-macchina – 9
a. Autorizzazione e controllo degli accessi – 9
b. Come memorizzare le politiche per il controllo degli accessi – 9
c. Autenticazione uomo – macchina – 10
d. Autenticazione basata sulla conoscenza – 10
5. Autenticazione uomo – macchina (parte 2) – 12
a. Autenticazione basata sul possesso – 12
b. Autenticazione basata su una caratteristica biometrica – 13
6. Autenticazione (parte 2) – 15
a. Autenticazione in sistemi distribuiti? – 15
b. Protocolli challenge – response – 17
7. Autenticazione (parte 3) e Sicurezza dei sistemi Web (parte 1) – 18
a. Sicurezza dei Sistemi Web – 20
8. Sicurezza dei Sistemi Web (parte 2) – 21
a. Il protocollo HTTP – 22
9. Sicurezza dei Sistemi Web (parte 3) e Il protocollo HTTP: i cookie – 24
a. Cookie: funzionamento e vulnerabilità – 25
10. Sicurezza dei Sistemi Web (parte 4), Profilazione online e Privacy – 26
a. Privacy – 27
b. Profilazione Online – 27
11. Sicurezza dei Sistemi Web (parte 5), Profilazione online e Privacy – 28
a. Online Privacy: Tecniche di tracciamento e profilazione – 28
b. Online Privacy: contromisure – 29
c. Cookie, Privacy e diritto: quanto siamo tutelati – 29
12. Sicurezza dei Sistemi Web (parte 6): SQL Injection – 30
a. SQL Injection – 30
13. Sicurezza dei Sistemi Web (parte 7): Sicurezza della posta Elettronica – 32
a. Sicurezza della posta Elettronica – 32
14. Sicurezza dei Sistemi Web (parte 8): Attacchi XSS – 34
a. Sicurezza a lato client – 35
b. XSS – Cross Site Scripting – 35
15. Sicurezza dei Sistemi Web (parte 9) – 36
16. Sicurezza dei Sistemi Web (parte 10) – 37
17. Sicurezza dei Sistemi Web (parte 11): il Single Sign On – 38
a. Autenticazione e Single Sign On – 38
18. Single Sign On e Sicurezza dei Sistemi Mobili (parte 1) – 42
a. SAML e Single Sign On – 42
b. Sicurezza dei Sistemi Mobili – 43
c. Apple iOS – 43
19. Sicurezza dei Sistemi Mobili (parte 2) – 45
a. Android – 45
20. Sicurezza dei Sistemi Mobili (parte 3) – 46
a. Malware – 46 1
1. Introduzione al corso e alla Sicurezza Informatica
Gli obiettivi del corso di Sicurezza dei Sistemi Web e Mobile sono conoscere al meglio le problematiche di sicurezza esistenti dei
sistemi informatici.
Per far ciò, bisogna partire chiedendosi “cos’è la Sicurezza informatica??” per poi analizzare le varie problematiche di sicurezza
relative ai sistemi Web e mobili.
Programma del corso:
• Teoria
o Introduzione al problema della sicurezza informatica: da chi, da cosa e come proteggersi
o Controllo degli accessi: Autorizzazione, Identificazione e Autenticazione
o Comunicazione sicura lungo un canale insicuro
o Sicurezza nei sistemi Web:
▪ HTTP: funzionamento e problemi di sicurezza
▪ Online privacy e profilazione utenti: tecniche e contromisure
▪ Code Injection:
• SQL Injection
• XSS: Cross Site Scripting
▪ Sicurezza della posta elettronica
• Phishing, scamming, spamming
o Sicurezza nei sistemi Mobili:
▪ Malware
▪ Vulnerabilità e attacchi comuni nei dispositivi mobili
▪ Problemi dei protocolli di comunicazione
• Pratica
o Controllo degli accessi in Linux/Unix
o Configurazione di un web server Apache
o SQL Injection
o XSS
o Uso dei cookie, profilazione utenti
a. Sicurezza Informatica?
Per iniziare a raggiungere gli obiettivi del corso bisogna cercare di rispondere alle seguenti domande:
• Cosa si intende per sicurezza informatica?
• Quali sono i (nuovi) pericoli che affliggono i sistemi digitali?
• Perché ci deve interessare la sicurezza informatica?
Il 13 settembre 2017, il presidente della commissione Junker ha affermato: “La cybersecurity è la seconda emergenza in Europa,
dopo il cambiamento climatico e prima dell’immigrazione”.
Questo ci fa capire che l’importanza di questo argomento, ma cosa deve proteggere la cybersecurity?
Ad esempio, il furto di laptop, smartphone, navigatori GPS per cui si ha perdita fisica del dispositivo e la perdita dei dati.
Molto tempo fa (quando ancora non esisteva il Web) bastava mettere in sicurezza il proprio PC in un luogo sicuro o con una
password forte.
Con l’avvento del Web, non bastano più le misure di sicurezza precedenti, perché il PC ora avrà delle connessioni dirette che
fisicamente non si possono proteggere.
Infatti, una problematica di Sicurezza Informatica è questa:
Essendo internet un canale insicuro (ovvero che chiunque può
connettersi ad Internet) Alice e Bob (che possono essere
persone o Web Server) possono comunicare in modo sicuro?
Ovvero possono comunicare:
• Senza che nessuno legga i loro messaggi
(comunicazione privata)
• Senza che nessuno modifichi i loro messaggi
• Con la certezza di parlare proprio tra loro (autenticazione)
2
Un’ altra problematica di Sicurezza Informatica è quella per cui un servizio online deve essere sempre available ovvero disponibile.
Nel caso in cui un servizio online subisca un attacco, deve essere sempre in grado di rilevarlo e gestirlo.
Questo significa che un sistema è sicuro quando riesce a gestire attacchi e garantire il servizio sempre.
Quando si mette in sicurezza un sistema, bisogna sempre pensare al Worst Case (ovvero al peggior caso).
Non bisogna pensare che uno scenario non sia possibile ma, al contrario, bisogna prendere in considerazione qualsiasi forma di
scenario possibile.
Infatti, se si è a conoscenza di essere in una zona ad alto rischio (ad esempio una zona sismica) bisogna pensare di avere un backup
dei dati in una zona sicura per poter recuperare i dati in caso di perdita.
Un altro scenario comune nell’ambito della Sicurezza Informatica è il phishing, ovvero gli attacchi nei quali le persone ignare
“abboccano” subendo così un attacco informatico.
Un esempio è l’attacco Ransomware, il quale prende in ostaggio tutti i tuoi dati e ti obbliga a pagare un riscatto per riaverli.
Se fossero dati importanti (e non si ha un back-up) la vittima si vede obbligata a pagare.
Oltre alla sicurezza nella perdita dei propri dati, un altro aspetto importante riguarda la privacy: infatti, sembra non esserci molta
privacy nel mondo digitale (alcuni siti conoscono le mie abitudini).
A riguardo esiste il GDPR – General Data Protection Regolation, ovvero una legge che cerca di formalizzare e specificare cosa sia
lecito o cosa sia un dato sensibile.
Ma perché sono così importanti i nostri dati sensibili?
Se pensiamo ai servizi di Social Network, ci offrono un servizio gratuito ma si sostengono tramite la pubblicità.
Infatti, la pubblicità che ci viene mostrata viene personalizzata analizzando le abitudini dell’utente.
In generale, possiamo distinguere diversi obiettivi degli attacchi informatici:
• Hardware: distruzione e/o furto di apparecchiature
• Software: sottrazione o modifiche del software
• Dati: cancellazione, lettura e/o modifica di dati non autorizzate
Alcuni esempi possono essere:
• Frodi
• Furto di proprietà intellettuale
• Furto di identità
• Furto di marchi registrati
• Furto di database
• Sorveglianza e spionaggio
A questo punto possiamo dare una definizione informale di Sicurezza Informatica: in generale, quando si parla di sicurezza si pensa
ad una assenza di rischio o pericolo, mentre quando si parla di informatica si pensa alla disciplina che si occupa dell’elaborazione
automatica, memorizzazione e trasmissione di informazioni.
Quindi, la Sicurezza Informatica possiamo dire che riguarda la prevenzione o protezione contro accesso, distruzione o alterazione
di risorse/informazioni da parte di utenti non autorizzati.
Se vogliamo dare una definizione più precisa di Sicurezza Informatica bisogna dire che è l’abilità di un sistema di proteggere
informazioni e risorse rispetto alle nozioni di CIA:
• Confidentiality – Confidenzialità
• Integrity – Integrità
• Availability – Disponibilità
Questi sono i mattoncini alla base della Sicurezza Informatica. 3
2. Sicurezza Informatica: che cosa, da chi e da cosa proteggere
Abbiamo detto che i dati digitali sono una parte essenziale nella Sicurezza Informatica e deve proteggerli nell’infrastruttura
(cyberspace) fatta di Internet come canale di comunicazione.
Infatti, mettere in sicurezza un sistema informatico equivale alla messa in sicurezza dei dati in un mondo in cui siamo sempre
connessi tramite Internet.
Infatti, internet permette di comunicare tra persone che non si conoscono e di far interagire dispositivi diversi.
Il cyberspace è un sistema molto complesso ed eterogeneo.
Abbiamo dato una definizione di Sicurezza Informatica in termini di proprietà di sicurezza (CIA) ma cosa significano in particolare?
La confidenzialità significa assicurare che le informazioni non siano accessibili ad utenti non autorizzati.
Ma come faccio a stabilire se una persona è autorizzata o no?
Questo è un aspetto che riguarderà l’autenticazione.
Questo aspetto è importante se i dati che non devono essere accessibili sono informazioni personali dell’utente e quindi si parla di
privatezza (privacy).
La privacy deve assicurare che gli utenti possano controllare quali informazioni su di loro vengano raccolte, chi le usi e per quale
scopo, chi le mantenga.
Nel mondo reale, spesso si ricorre all’uso dell’anonimato per far sì che non sia possibile risalire all’autore dei dati o di un azione.
Questo è difficile da garantire nel mondo digitale.
Un’altra proprietà di sicurezza è l’integrità, ovvero assicurare che le informazioni non siano alterabili da utenti non autorizzati.
Rilevare un attacco all’integrità significa essere in grado di rilevare eventuali modifiche non autorizzate.
Infatti, la mancanza di integrità è spesso sinonimo di falsificazione.
La disponibilità, invece, significa assicurare che le informazioni siano disponibili agli utenti autorizzati, ovvero assicurare che un
sistema sia operativo e funzionante in ogni momento.
Queste tre proprietà spesso sono in conflitto.
Un esempio sono la confidenzialità e la disponibilità: se non permetto a
nessuno di leggere una informazione, ho confidenzialità ma non
disponibilità.
Quando si mette in sicurezza un sistema, bisogna selezionare in modo
corretto le tre proprietà che voglio utilizzare basandosi su quali risorse
sono da proteggere e da chi.
In questo modo, per proteggere un sistema definisco una politica.
Oltre a queste tre proprietà, esistono altre proprietà di sicurezza:
• Autenticazione – authentication:
o assicurare che i soggetti siano effettivamente chi affermano di essere
o assicurare che un messaggio provenga effettivamente dal mittente
• Non ripudio – non repudiation:
o Assicurare che il mittente di un messaggio non possa negare il fatto di aver spedito il messaggio e che il
destinatario non possa negare di averlo ricevuto
• Safety – Gestione eccezioni:
o Fare accorgimenti atti ad eliminare la produzione di danni irreparabili all’interno di un sistema
• Reliability – affidabilità:
o Prevenzione da eventi che possono produrre danni di qualsiasi gravità al sistema.
Ma allora, esiste un sistema che sia al 100% sicuro?
Assolutamente no: ci possono essere errori umani nel software e comunque “la sicurezza non è un prodotto, ma un processo”,
ovvero che non è un concetto assoluto, quindi può funzionare per un contesto mentre per un altro no.
La sicurezza è una catena e la sua resistenza è determinata dall’anello più debole.
Quindi è essenziale chiarire:
• Cosa proteggere
• Da chi proteggere
• Come proteggere
• Come prevenire
• Come comportarsi in caso di attacco
• Come riconoscere un attacco 4
a. Da chi proteggersi?
I possibili attaccanti sono:
• Errori umani non voluti
• Hacker in cerca di sfide
• Impiegati o clienti in cerca di vendetta
• Piccoli criminali
• Crimine organizzato
• Gruppi terroristici
• Agenti di spionaggio
Obiettivi dell’attacco possono essere:
• Virus contagiosi
• Sfregio di pagine web
• Furto di numero di carte di credito
• Truffe on-line
• Furto di proprietà intellettuali
• Cancellazione di dati
• Denial of Service (DoS)
• Lettura di file privati
Quando si parla di attaccanti bisogna fare una distinzione:
• Hacker: persone esperta di sistemi informatici in grado di introdursi in rete protette o di acquisire una conoscenza del
sistema sul quale interviene, per poi essere in grado di accedervi o adattarlo alle proprie esigenze
• Cracker: hacker con fini illeciti
• Script kiddie: utente con poca o nessuna cultura informatica che utilizzare malware creati da altri.
b. Da cosa proteggersi?
La protezione deve riguardare:
• Vulnerabilità: debolezza del sistema che potrebbe permettere violazioni alla sicurezza e causare danni.
Alcune caratteristiche intrinseche dei sistemi rendono possibili gli attacchi.
Un esempio, è l’uso di Internet, oppure l’omogeneità dei sistemi operativi per cui alcuni sono più diffusi di altri, e quindi,
un attacco a quel sistema richiede minore sforza a superficie più estesa.
Un altro esempio, è il costo della sicurezza: infatti, la gente vuole sicurezza, ma non vogliono pagare per averla.
•
• Minaccia: circostanza o evento che potrebbe causare violazioni alla sicurezza
In questo mondo automizzato, sono nate nel tempo nuove minacce dal momento che con l’automazione è molto più
veloce decifrare i dati e compiere attacchi.
Infatti grazie all’automazione i microfurti possono diventare una fortuna oppure permette di trarre profitto anche da
attacchi con probabilità di successo minima (SPAM, phishing).
Nel mondo digitale, una minaccia è anche la mancanza di una distanza fisica che rende esposte tutte le persone collegate.
Inoltre, grazie alla rete, le tecniche per compiere un attacco si diffondono molto rapidamente, e quindi, diventare hacker
non richiede grandi abilità.
• Attacco: evento che sfrutta una vulnerabilità del sistema per violarne la sicurezza
Esistono due tipologie di attacco:
o Non dolosi: non esiste una volontà esplicita (Disastri naturali, errori umani, …)
o Dolosi: utenti illegittimi o legittimi che abusano delle proprie autorizzazioni (Sabotaggio, falsificazione, …)
5
3. Controllo degli accessi e autenticazione
Abbiamo dato una definizione informale di Sicurezza Informatica (prevenzione o protezione contro accesso, distruzione o
alterazione di risorse/informazioni da parte di utenti non autorizzati) e una definizione formale (garantire le proprietà di sicurezza
CIA) ma son sufficienti?
a. La sicurezza informatica non è …
La sicurezza informatica non è:
• Crittografia: può non essere sufficiente essendo internet un canale insicuro
• Password: è un sistema molto debole perché spesso si sbaglia l’uso.
Ad esempio, capita che si scrivono le password su un foglio che può essere rubato.
Anche il sistema può essere un problema: come memorizza la nostra password?
• Firewall: non basta mettere un computer tra rete esterna ed interna che filtra tutto ciò che passa
La sicurezza è una proprietà di vari livelli architetturali (Sistema Operativo, rete, applicazione, …) ed è costosa nel senso di risorse
computazionali.
Spesso, richiederebbe il ridisegno di un sistema preesistente, che non è sempre possibile.
b. Come proteggersi: progettazione della sicurezza
Spesso non è sufficiente garantire le proprietà di sicurezza CIA.
Prima di mettere in sicurezza un sistema, bisogna conoscerlo, capire quali proprietà voglio garantire e come garantirle e da qui
iniziare la progettazione che si divide in diverse fasi:
• Prevenzione: guardo il mio sistema e stabilisco quali proprietà garantire
• Rilevamento: rilevare se una proprietà non è garantita
• Reazione: in caso si subisca un attacco, rilevarlo in tempo ed avere un “piano B” pronto
Come abbiamo sempre detto, non esiste sicurezza in senso assoluto.
La prevenzione può ridurre la possibilità che abbia luogo una violazione o ridurre i danni ma spesso viene bypassata.
Il rilevamento non sempre è possibile in tempo reale e funziona solo con attacchi già noti.
Quindi, l’unica cosa che posso fare è abbassare il rischio di subire un attacco ma non posso rimuoverlo.
Inoltre, la sicurezza ha un costo in termini di:
• Acquisto, quindi in termini di denaro
• Aumento del carico del sistema, quindi una diminuzione di prestazioni
• Accettazione dell’utente, avendo meno prestazione, l’utente può essere deluso oppure infastidito dal meccanismo di
sicurezza (password troppo complicata)
Quindi alla nostra definizione informale (prevenzione)di Sicurezza Informatica, &egra
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.
Scarica il documento per vederlo tutto.
-
Riassunto Sistema qualità e sicurezza in laboratorio
-
Web Marketing - Riassunto schematizzato
-
Riassunto esame Sistemi Informativi, prof. C. Cappiello
-
Riassunto "Sicurezza in cantiere"