SISTEMI OPERATIVI - University of Cagliari · » I “programmi”, sistemi operativi o...

28
PROTEZIONE E SICUREZZA SISTEMI OPERATIVI Giorgio Giacinto 2018 2

Transcript of SISTEMI OPERATIVI - University of Cagliari · » I “programmi”, sistemi operativi o...

PROTEZIONE E SICUREZZA

SISTEMI OPERATIVIGi

orgi

o Gi

acin

to 2

018

2

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