sistemi operativi - university of cagliari · » i “programmi”, sistemi operativi o...
TRANSCRIPT
La sicurezza richiede compromessi
Non esiste la sicurezza assoluta!» La quantità di sicurezza che si può ottenere dipende da
ciò a cui si può rinunciare pur di ottenerla˃ La valutazione del miglior compromesso fra rinuncia e
sicurezza è soggettivo (dipende cioè dal contesto)» La valutazione del compromesso deve tener conto di
˃ Pericoli: i modi in cui un malintenzionato può nuocere a un sistema
˃ Rischi: una combinazione fra la probabilità che un evento pericoloso effettivamente avvenga e la gravità delle conseguenze dellattacco, se portato a termine
Problemanon esiste una definizione univoca di pericolo e rischio!
Gior
gio
Giac
into
201
8
3
Aspetti peculiari sicurezza informatica» Rapporto fra guadagno e costo per ottenerlo
estremamente alto» Immaterialità dell’informazione» Rischi estremamente bassi
˃ Rapinare una banca…˃ …o trasferire soldi via Internet?
Per molti anni il rischio è stato sottovalutato per una visione romantica della violazione dei sistemi informatici
Gior
gio
Giac
into
201
8
4
Chi ha interesse ad attaccare un sistema informatico?» Oggi la maggior parte delle informazioni vitali
per l’economia, la salute, la sicurezza, ecc. sono memorizzate, trasmesse, elaborate in formato digitaleAvversari˃ Concorrenti˃ Spionaggio (industriale o militare)˃ Criminalità organizzata˃ Terrorismo˃ Frodi
Gior
gio
Giac
into
201
8
5
Il mercato sommersoPrezzi 2014 (fonte: Symantec ISTR20 – 2015)» 1.000 Indirizzi email da $0,50 a $10» Dati su carte di credito da $0,50 a $20» Scansione di passaporti da $1 a $2» Credenziali d’accesso a piattaforme di gioco da $10 a $15» Malware da $12 a $3.500» 1.000 followers su social network da $2 a $12» Account di servizi cloud da $7 a $8» 1M di invii verificati di email di spam da $70 a $150» SIM Russe registrate e attivate $100
Gior
gio
Giac
into
201
8
6
Alcune definizioni
˃ Debolezza nel sistema che può essere sfruttata per provocare danni o perdite
˃ Un insieme di circostanze potenzialmente in grado di causare perdite e danni attraverso lo sfruttamento di una o più vulnerabilità
˃ Realizzazione di una minaccia attraverso lo sfruttamento di una vulnerabilità per provocare danni o perdite
Gior
gio
Giac
into
201
8
7
Software di base e applicativo» I “programmi”, sistemi operativi o applicazioni,
possono contenere errori o vulnerabilità non volute
» C’è una vasta comunità di hacker ma soprattutto di organizzazioni criminali che lavorano per˃ Scoprire le vulnerabilità˃ Sfruttarle in modo da ricavarne vantaggi economici
» I maggiori produttori di software e le più grosse aziende di sicurezza informatica svolgono un compito analogo
Gior
gio
Giac
into
201
8
8
Vulnerabilità e attacchi contro programmi» Le vulnerabilità dei programmi sono legate a
molteplici fattori˃ Comportamento non previsto in risposta a
particolari valori in ingresso o a sequenze di operazioni
˃ Possibilità di interagire con altri programmi˃ Collegamenti in rete (dov’è il perimetro del sistema?)
» Le vulnerabilità vengono sfruttate per far eseguire all’insaputa dell’utente dei programmi malevoli (malware)
Gior
gio
Giac
into
201
8
9
Gior
gio
Giac
into
201
8
10
https://cve.mitre.org
Valutazione della pericolositàdelle vulnerabilità
CVSS (Common Vulnerability Scoring System)http://www.first.org/cvss
Esistono varianti proposte da aziende che sviluppano prodotti per la sicurezza informatica (ad es., IBM, Symantec, ecc.)
Gior
gio
Giac
into
201
8
11
Vulnerabilità individuate dal 1996 al 2014
Gior
gio
Giac
into
201
8
Fonte IBM
12
Gior
gio
Giac
into
201
8
13
Vulnerabilità dei sistemi operativi nel 2016
Sicurezza informatica
Gior
gio
Giac
into
201
8
Disponibilitàl Le risorse computazionali
devono essere sempre disponibili
Riservatezzal Le informazioni devono
essere accessibili solo alle entità autorizzate
Integritàl Le risorse e le informazioni
devono poter essere sempre considerate autentiche
14
Ruolo di un sistema di sicurezza informatica
Gior
gio
Giac
into
201
8
15
Minacce alla sicurezza di un sistema informatico» La funzione di un sistema informatico può essere
schematizzata comeun flusso di informazione da una sorgente (ad es., un file) a una destinazione (ad es., un file, un monitor, ecc.)
» Si possono così suddividere le minacce alla sicurezza informatica in quattro categorie definite in termini di modifica del flusso normale dell’informazione
Gior
gio
Giac
into
201
8
Informationsource
Informationdestination
(a) Normal flow
(b) Interruption (c) Interception
(d) Modification (e) Fabrication
Figure 15.2 Security Threats
16
1. Interruzione» Una delle risorse del sistema viene distrutta o
resa inutilizzabile
˃ Qualche esempio:Distruzione di parti hardwareInterruzione della linea di comunicazioneDisabilitazione del sistema di gestione del file system
» Questa tipologia di attacco minaccia la disponibilità del sistema ed è di solito chiamato “Denial of Service” (DoS)
Gior
gio
Giac
into
201
8
17
2. Intercettazione» Una terza parte non autorizzata ottiene accesso
a una risorsa del sistema˃ Alcuni esempi:
Intercettazione di dati che transitano in una reteCopia non autorizzata di dati o programmiFurto delle password
» Questa tipologia di attacco minaccia la riservatezza
Gior
gio
Giac
into
201
8
18
3. Modifica» Una parte terza non autorizzata non solo accede a
una risorsa ma è anche in grado di alterarla˃ Alcuni esempi:
Modifica di valori in un file di datiModifica di un programma in modo che funzioni in modo diversoModifica del contenuto dei messaggi trasmessi in una rete
» Questa tipologia di attacco minaccia la riservatezza e l’integritàGi
orgi
o Gi
acin
to 2
018 man-in-the-middle
19
4. Fabbricazione» Una parte terza non autorizzata inserisce nel
sistema oggetti contraffatti˃ Alcuni esempi:
Inserimento di messaggi spuri in una reteAggiunta di record in un file
» Questa tipologia di attacco minaccia l’integrità
Gior
gio
Giac
into
201
8
masquerading
20
Gior
gio
Giac
into
201
8
21
Da cosa difendersi» Intrusioni
˃ accessi non autorizzati al sistema
» Malware˃ software in grado di far eseguire al sistema attività
non autorizzate
Gior
gio
Giac
into
201
8
22
Intrusioni nel sistema
Mascheramento
Individui non autorizzati che
riescono a superare il sistema di controllo
degli accessi sfruttando l’accesso
di un utente autorizzato
Abuso d’autorità
Un utente legittimo del sistema che
- o accede a dati, programmi e risorse
per cui non è autorizzato
- o abusa delle risorse cui ha accesso
Utente clandestino
Individui che riescono ad avere il controllo
del sistema a livello di amministratore per evadere il sistema di controllo dell’accesso
o a cancellare le tracce dai file di log
Gior
gio
Giac
into
201
8
23
Autenticazioneidentificazione e verifica» Password» Challange-response
Gior
gio
Giac
into
201
8
Biometriche
Token
Generatori di One-Time Password
Smart card
24
Controllo logico degli accessi» Il sistema operativo è visto come una collezione
di oggetti hardware e software
» Ciascun oggetto è identificato da un nome univoco e ha associato un insieme ben definito di operazioni che ne consentono l’accesso
» Formulazione del problema di protezioneassicurare l’accesso corretto a ciascun oggetto e solo da parte dei processi che sono autorizzati
Gior
gio
Giac
into
201
8
25
Principio del minimo privilegio» I privilegi assegnati ai programmi e agli utenti
del sistema devono essere quelli strettamente necessari all’esecuzione dei rispettivi compiti
Gior
gio
Giac
into
201
8
26
Domini di protezione» Diritto d’accesso = <nome-oggetto, diritti>
dove diritti è un sottoinsieme di tutte le operazioni che possono essere eseguite su un oggetto.
» Domain = set of access-rights
Gior
gio
Giac
into
201
8
27
Matrice d’accesso» Rappresentazione della protezione attraverso
una matrice, detta matrice d’accesso
» Righerappresentano i domini
» Colonnerappresentano gli oggetti
» Accesso(i, j) è l’insieme di operazioni che un processo che esegue nel dominio Di può effettuare sull’oggetto Oj
Gior
gio
Giac
into
201
8
28
Matrice d’accessoGi
orgi
o Gi
acin
to 2
018
OwnRW
RW
OwnRW
OwnRW
AFile 1
�
R
R
W R
OwnRW
OwnRW
InquiryCredit
InquiryCredit
InquiryDebit
InquiryDebit
User A
User B
User C
File 2File 1
(a) Access matrix
Figure 15.3 Example of Access Control Structures
(b) Access control lists for files of part (a)
(c) Capability lists for files of part (a)
File 3 File 4 Account 1 Account 2
R
B
�
RW
C
File 1User C
�
R
File 2
�
RW
File 4
File 1User B
�
R W
File 2
� �
File 3 File 4Own
RW
BFile 2
�
R
C
OwnRW
OwnRW
OwnRW
OwnRW
File 1User A
�
File 3
OwnRW
AFile 3
�
W
B
OwnRW
B
R
File 4
�
C
R
29
Uso della Matrice d’Accesso» Se un processo in esecuzione nel dominio Di
vuole eseguire “op” sull’oggetto Oj, allora “op”deve trovarsi nella matrice d’accesso
» Estensioni per realizzare protezioni dinamiche˃ Operazioni per aggiungere, cancellare diritti
d’accesso˃ Diritti d’accesso speciali
+ proprietario di Oi+ copia op da Oi a Oj+ controllo – Di può modificare i diritti d’accesso di Dj+ trasferimento – scambio dal dominio Di a Dj
Gior
gio
Giac
into
201
8
30
Matrice d’AccessoMeccanismi e Politiche» La definizione della Matrice d’Accesso consente
di separare i meccanismi dalle politiche˃ Meccanismi
+ Il sistema operativo fornisce la realizzazione della matrice d’accesso e delle regole
+ Assicura che le modifiche alla matrice siano effettuate solo da agenti autorizzati e che le regole siano rigidamente rispettate
˃ Politiche+ Le politiche sono definite dagli utenti+ Chi può accedere a quali oggetti e in che modalità
Gior
gio
Giac
into
201
8
31
Realizzazioni della Matrice d’Accesso» Access control list
Visione della matrice per colonne˃ Per ciascun oggetto si definisce chi può avere
accesso e con quali operazioni
» Capability ListVisione della matrice per righe˃ Per ciascun dominio si definiscono
le operazioni ammesse e i relativi oggetti
Gior
gio
Giac
into
201
8
OwnRW
RW
OwnRW
OwnRW
AFile 1
�
R
R
W R
OwnRW
OwnRW
InquiryCredit
InquiryCredit
InquiryDebit
InquiryDebit
User A
User B
User C
File 2File 1
(a) Access matrix
Figure 15.3 Example of Access Control Structures
(b) Access control lists for files of part (a)
(c) Capability lists for files of part (a)
File 3 File 4 Account 1 Account 2
R
B
�
RW
C
File 1User C
�
R
File 2
�
RW
File 4
File 1User B
�
R W
File 2
� �
File 3 File 4Own
RW
BFile 2
�
R
C
OwnRW
OwnRW
OwnRW
OwnRW
File 1User A
�
File 3
OwnRW
AFile 3
�
W
B
OwnRW
B
R
File 4
�
C
ROwn
RW
RW
OwnRW
OwnRW
AFile 1
�
R
R
W R
OwnRW
OwnRW
InquiryCredit
InquiryCredit
InquiryDebit
InquiryDebit
User A
User B
User C
File 2File 1
(a) Access matrix
Figure 15.3 Example of Access Control Structures
(b) Access control lists for files of part (a)
(c) Capability lists for files of part (a)
File 3 File 4 Account 1 Account 2
R
B
�
RW
C
File 1User C
�
R
File 2
�
RW
File 4
File 1User B
�
R W
File 2
� �
File 3 File 4Own
RW
BFile 2
�
R
C
OwnRW
OwnRW
OwnRW
OwnRW
File 1User A
�
File 3
OwnRW
AFile 3
�
W
B
OwnRW
B
R
File 4
�
C
R
32
Malware(Malicious Software)» Due categorie principali
˃ Programmi che hanno bisogno di un altro programma che li ospiti
+ Non possono esistere indipendentemente, ma solo all’interno di applicazioni utente, programmi di utilità, programmi di sistema, ecc.
˃ Programmi indipendenti+ Programmi che possono essere eseguiti come
processi individuali dal SO
Gior
gio
Giac
into
201
8
33
Una tassonomia dei programmi malevoli
34
Gior
gio
Giac
into
201
8
Minacce per i programmi» Cavalli di Troia
˃ Programmi apparentemente utili agli utenti che nascondono parti di codice che abusano dell’ambiente in cui sono eseguiti
˃ Sfrutta i meccanismi che consentono a programmi scritti da un utente di essere eseguiti con i privilegi di altri utenti
+ Spyware, finestre pop-up dei browser, covert channels» Backdoors
˃ Identificatori utente o password speciali che possono aggirare le misure di protezione
» Bombe logiche˃ Programmi che minacciano la sicurezza al verificarsi di alcune
condizioni» Stack e Buffer Overflow
˃ Sfruttano errori di programmazione
Gior
gio
Giac
into
201
8
35
Buffer overflow» Un’area di memoria (buffer) viene riempita
oltre al sua capacità.» I dati traboccano e sovrascrivono un’altra area
di memoria» Obiettivo
iniettare codice malevolo
Gior
gio
Giac
into
201
8
36
Esempio di programma C che consentebuffer-overflow
Gior
gio
Giac
into
201
8
int main(int argc, char *argv[]) { int valid = FALSE; char str1[8]; char str2[8]; next_tag(str1); gets(str2); if (strncmp(str1, str2, 8) == 0) valid = TRUE; printf("buffer1: str1(%s), str2(%s), valid(%d)\n", str1, str2, valid); }
(a) Basic buffer overflow C code
$ cc -g -o buffer1 buffer1.c $ ./buffer1 START buffer1: str1(START), str2(START), valid(1) $ ./buffer1 EVILINPUTVALUE buffer1: str1(TVALUE), str2(EVILINPUTVALUE), valid(0) $ ./buffer1 BADINPUTBADINPUT buffer1: str1(BADINPUT), str2(BADINPUTBADINPUT), valid(1)
(b) Basic buffer overflow example runs
Figure 15.1 Basic Buffer Overflow Example
37
Configurazione tipica di un segmento di stack
Gior
gio
Giac
into
201
8
38
Possibile effetto del buffer-overflow sullo stack
Gior
gio
Giac
into
201
8
Memory Address
Before gets(str2)
After gets(str2)
Contains Value of
. . . .
. . . .
. . . .
bffffbf4 34fcffbf 4 . . .
34fcffbf 3 . . .
argv
bffffbf0 01000000 . . . .
01000000 . . . .
argc
bffffbec c6bd0340 . . . @
c6bd0340 . . . @
return addr
bffffbe8 08fcffbf . . . .
08fcffbf . . . .
old base ptr
bffffbe4 00000000 . . . .
01000000 . . . .
valid
bffffbe0 80640140 . d . @
00640140 . d . @
bffffbdc 54001540 T . . @
4e505554 N P U T
str1[4-7]
bffffbd8 53544152 S T A R
42414449 B A D I
str1[0-3]
bffffbd4 00850408 . . . .
4e505554 N P U T
str2[4-7]
bffffbd0 30561540 0 V . @
42414449 B A D I
str2[0-3]
. . . .
. . . .
. . . .
Figure 15.2 Basic Buffer Overflow Stack Values
39
Come sfruttare il buffer overflow?» Identificare possibili parti del programma
vulnerabili al buffer overflow» Studiare l’organizzazione dell’immagine del
processo˃ verificare se è possibile sovrascrivere aree di
memoria che consentono di modificare il flusso di esecuzione del programma
Gior
gio
Giac
into
201
8
40
Contromisure» In fase di compilazione
˃ uso di linguaggi che non consentono overflow˃ uso di buone pratiche di programmazione
+ eventualmente includendo codice aggiuntivo˃ uso di librerie sicure
» In fase di esecuzione˃ DEP – Data Execution Prevention
impedire l’esecuzione di codice in aree di memoria riservate ai dati
˃ ASLR – Address Space Layout Randomizationl’immagine del processo è organizzata in modo casuale
+ l’attaccante non può conoscerne a priori l’organizzazione
Gior
gio
Giac
into
201
8
41
Return OrientedProgramming» Attacco che supera la difesa di ASLR» Si sfruttano le chiamate a librerie contenute nel
programma attaccato˃ Il malware è costruito attraverso l’uso di funzioni già
presenti nell’immagine del processohttp://www.slideshare.net/saumilshah/dive-into-rop-a-quick-introduction-to-return-oriented-programming
Gior
gio
Giac
into
201
8
42
Gior
gio
Giac
into
201
8
43
Perché la sicurezza informatica è un problema?» Software sempre più complesso e difficile da
verificare» L’effetto della cooperazione di diverse
applicazioni è spesso difficilmente prevedibile» Velocità di rilascio di nuove versioni» Velocità di individuazione di vulnerabilità
» Spesso lo sviluppo dei programmi non tiene conto della sicurezza!
Gior
gio
Giac
into
201
8
44
Rafforzamento del sistema operativo» Installazione in ambiente isolato » Verifica dei driver addizionali da installare» Installazione tempestiva degli aggiornamenti di
sicurezza distribuiti dal produttore» Rimozione di servizi, applicazioni e protocolli che
non verranno utilizzati» Cura nella configurazione di utenti e relativi
permessi» Configurazione di sistemi di controllo delle
risorseGior
gio
Giac
into
201
8
45
Verifica sicurezza e manutenzione» Dopo aver configurato il sistema occorre
verificare l’effettiva efficacia˃ penetration testing
esistono strumenti software che consentono di effettuare alcune verifiche automatiche
» Programma di manutenzione del sistema˃ monitoraggio e log˃ backup periodici del sistema˃ ripristino da eventuali incidenti˃ verifiche periodiche
+ eventuali modifiche alla configurazioneGior
gio
Giac
into
201
8
46
Difesa dei dati» I dati sono il cuore di un sistema informatico
˃ Conservarli con cura in luoghi sicuri˃ Effettuare copie di riserva˃ Proteggere con password o crittografare i dati
+ In caso di furto delle memorie portabili si previene l’accesso non autorizzato ai dati
Gior
gio
Giac
into
201
8
47
Antivirus efficaci» Consentono di rilevare tutti i tipi di malware
conosciuti˃ Difesa da virus, worm, cavalli di troia ecc. che
possono essere ricevuti con la posta elettronica, visitando siti web, ecc.
» Diversi prodotti sul mercato per diverse tipologie di utenti
Gior
gio
Giac
into
201
8
48
Gior
gio
Giac
into
201
8
49
Utilizzo di software fidato» Usare solo programmi di cui sia certa la fonte» Aggiornare i programmi secondo le indicazioni
del produttore
» Certificazione del softwarehttp://www.commoncriteriaportal.org
Gior
gio
Giac
into
201
8
50
Orange Book» Il Dipartimento della Difesa (DoD)
degli USA ha pubblicato nel 1985 un documento noto come �Orange Book�.http://www.dynamoo.com/orange
» Il documento divide i Sistemi Operativi in sette categorie (D, C1, C2, B1, B2, B3, A1) relativamente ad un certo numero di caratteristiche relative alla sicurezza˃ Attualmente è una
classificazione datata, ma i principi-guida sono tuttora validi
Gio
rgio
Gia
cint
o 20
18
51
Orange Book» Livello D: Minimal Protection
˃ Questa categoria è assegnata a sistemi operativi non
classificabili dal punto di vista della sicurezza
+ MS-DOS, Windows 95/98/ME
» Livello C: Discretionary Protection˃ La protezione degli oggetti è opzionale.
˃ Il Sistema Operativo supporta le funzioni di logging di
base
+ C1: Discretionary Security ProtectionPrime versioni di UNIX
+ C2: Controlled Access ProtectionIBM OS/400, Win NT/2000/XP, Novell Netware
Gio
rgio
Gia
cin
to 2
01
8
52
Orange Book» Livello B: Mandatory Protection
˃ La protezione non è facoltativa ma obbligatoria
˃ A ciascun utente e a ciascun oggetto è assegnato un livello di
sicurezza
+ B1: Labeled Security ProtectionHP-UX, Cray Research Trusted Unicos 8.0, Digital SEVMS
+ B2: Structured ProtectionHoneywell Multics, Cryptek VSLAN, trusted XENIX
+ B3: Security DomainsGetronics/Wang Federal XTS-300
» Livello A: Verified Protection˃ Metodi formali per verificare la sicurezza
+ A1: Verified ProtectionBoeing MSL LAN, Honeywell SCOMP
Gio
rgio
Gia
cin
to 2
01
8
53
Common CriteriaLe organizzazioni per la sicurezza di USA, Canada e Europa hanno intrapreso uno sforzo per uniformare i criteri con cui valutare la sicurezza dei sistemi operativi
» Common Criteria˃ Prima versione nel 1996.
Versione attuale 3.1Pubblicata come ISO/IEC 15408
Gior
gio
Giac
into
201
8
54
Common Criteria» I sistemi sono valutati in una scala da 1 a 7
˃ 1, livello inferiore˃ 7, livello superiore
Si parla di Evaluation Assurance Level (EAL)» Alcuni esempi
EAL6+˃ Green Hills Software INTEGRITY-178B Separation Kernel, comprising:
INTEGRITY-178B Real Time Operating System (RTOS), version IN-ICR750-0101-GH01_Rel running on Compact PCI card, version CPN 944-2021-021 with PowerPC, version 750CXe
EAL4+˃ Microsoft Windows 7 - Microsoft Windows Server 2008 ˃ Microsoft Windows Mobile 6.5˃ Red Hat Enterprise Linux (RHEL) V. 5.6 ˃ IBM z/OS Version 1 Release 12
Gior
gio
Giac
into
201
8
55