• Non ci sono risultati.

U1. Solo gli utenti hanno accesso al proprio account

N/A
N/A
Protected

Academic year: 2021

Condividi " U1. Solo gli utenti hanno accesso al proprio account"

Copied!
33
0
0

Testo completo

(1)
(2)

Policy

Componenti di una politica di sicurezza:

U1. Solo gli utenti hanno accesso al proprio account

U2. Nessun altro utente può leggere o modificare un file senza il permesso del proprietario

U3. Gli utenti devono proteggere l’integrità, la confidenzialità e la disponibilità dei loro files

U4. Gli utenti devono essere consapevoli di tutti i comandi che digitano o che sono digitati per

loro conto

(3)

Accesso

U1 richiede che gli utenti proteggano l’accesso al proprio account.

Consideriamo i modi in cui un utente può accedere all’account:

1. Password 2. Login

3. Sistema “abbandonato”

U1. Solo gli utenti hanno accesso al proprio account

(4)

1. Password

Una password può essere scelta:

 in modo non casuale

 in modo casuale

richiedono di essere scritte

PERICOLO => qualcuno può leggere la nostra password Il grado di pericolo dipende dall’ambiente in cui si trova il

sistema e dal modo in cui viene scritta la password dovrebbe esserci un programma che

controlla se sono troppo facili da indovinare

(5)

Sistema isolato

 Stanza chiusa a chiave

 Accesso consentito solo a utenti autorizzati

 Non connesso alla rete

Scrivere la password non comporta alcun

pericolo

(6)

Sistema non-isolato

 Rete con più computer

 2 amministratori (Anne, Paul) con accesso a tutti i computer

 Scelta di password casuali

PROBLEMA: difficili da ricordare

SOLUZIONE: utilizzare un algoritmo di trasformazione

Anne: cambia il caso della terza lettera e aggiunge un carattere alla fine

Paul: aggiunge 4 al primo numero e aggiunge un lettera all’inizio

(7)

Password originale Versione di Anne Versione di Paul

C04cEJxX C04ceJxX5 RC48cEJxX

4VX9q3GA 4VX9Q3GA2 a8VX9q3GA

8798Qqdt 8798QqDt$ b12798Qqdt

3WXYwgnw 3WXywgnwS Z7WXYwgnw

feOioC4f feoioC4f9 YfeOioC8f

VRd0Hj9E VRD0Hj9Eq pVRd4Hj9E

e7Bukcba e7BUkcbaX Xe11Bukcba

ywyj5cVw ywYj5cVw* rywyj9cVw

5iUikLB4 5iUIkLB4m j9iUikLB4

af4hC2kg af4HC2kg+ daf8hC2kg

(8)

2. Procedura di login

C’è un prompt dove l’utente deve fornire username e password

ATTACCHI

1) Mancanza di autenticazione reciproca 2) Lettura della password digitata

3) Host non affidabili

(9)

2.1 Mancanza di autenticazione reciproca

Un attaccante può installare un programma che emula il prompt di login in modo da

catturare la password

Versione semplice: salva username e

password su un file e termina riproponendo il login

Versione sofisticata: salva username e

password su un file e li manda al processo di

login

(10)

2.2 Leggere la password digitata

“Shoulder surfing”: l’attaccante carpisce la password al momento della digitazione

Molti sistemi forniscono informazioni utili

sull’ultimo login (data, ora, luogo). L’utente può verificare che nessun’altro ha avuto

accesso al suo account.

(11)

2.3 Trusted hosts non affidabili

TRUSTED HOSTS: se 2 o più hosts sono sotto lo stesso controllo amministrativo, uno può appoggiarsi all’altro per autenticare un

utente

Permette di automatizzare certi meccanismi senza dover ridigitare passwords

Richiede un’identificazione accurata dell’host

che si sta connettendo

(12)

3. Abbandonare il sistema(1)

 Persone non autorizzate ad usare il sistema possono accedere nella stanza in cui esso si trova

 Una volta autenticato, un utente deve

controllare l’accesso alla sua postazione fino alla fine

Cosa succede se l’utente va in bagno?

 È necessario usare alcune procedure per

bloccare lo schermo

(13)

3. Abbandonare il sistema(2)

Xlock: programma che blocca l’accesso al monitor fino a quando non viene digitata la password

Solo l’amministratore del sistema può

terminare il programma senza la password, accedendo da terminale remoto

PROBLEMA: alcuni programmi hanno una

master password (UNIX => “Hasta la vista!”)

(14)

Files

 Gli utenti devono proteggere confidenzialità ed integrità dei file per soddisfare U2

Esempio: Peter vuole permettere solo a Debora di leggere un determinato file

U2. Nessun altro utente può leggere o modificare un file senza il permesso del proprietario

(15)

Nei sistemi UNIX ci sono 3 modi:

 Se sono gli unici membri del gruppo, Peter può rendere il gruppo proprietario del file e

consentire solo a questo la lettura.

 Se Debora è l’unico membro del gruppo e il sistema permette ad un utente esterno

(proprietario del file) di dare il file ad un altro gruppo (quello di Debora), Peter può settare i privilegi come sopra.

 Oppure Peter può settare i permessi di lettura ed esecuzione della cartella che contiene il file in

modo da consentire l’accesso a se stesso e al

gruppo di Debora.

(16)

Permessi di creazione

Molti sistemi permettono all’utente di

specificare un modello di permessi da dare a un file quando questo viene creato

Il proprietario del file può modificare questi

permessi

(17)

Accesso di gruppo

Fornisce un insieme selezionato di utenti con gli stessi diritti d’accesso

Il problema è che l’appartenenza al gruppo non è sotto il controllo del proprietario del file

VANTAGGIO: se il gruppo viene utilizzato come ruolo.

Se gli utenti assumono un determinato ruolo, hanno specifici permessi sul file. Poiché il proprietario del file si preoccupa solo di controllare l’accesso per gli utenti con quel ruolo, la

riconfigurazione dell’accesso al ruolo riconfigura l’accesso degli utenti al file

SVANTAGGIO: se il gruppo è usato come una scorciatoia per individuare un insieme di utenti

Se l’appartenenza al gruppo cambia, utenti non autorizzati

possono ottenere accesso al file o utenti autorizzati si vedranno il permesso negato

(18)

Esempi

 GRUPPO COME RUOLO

Viene creato un gruppo al quale appartengono tutte le persone che lavorano ad un determinato progetto.

Se i membri del gruppo cambiano, la sua funzione rimane la stessa.

Non sono richiesti cambiamenti ai permessi dei file.

 GRUPPO COME INSIEME DI UTENTI

Maria ha creato il gruppo maj per condividere il file movies con Anne e John.

Successivamente gli viene richiesto di creare un gruppo contenente Maria, Anne, John e Frank.

Invece di creare un nuovo gruppo, Maria aggiunge Frank al gruppo maj, concedendogli automaticamente dei permessi su movies anche se non aveva intenzione di darglieli.

(19)

Dispositivi

Gli utenti comunicano con il sistema

attraverso dispositivi virtuali (porte di rete) o fisici (terminali). U1 e U4 richiedono che

questi dispositivi siano protetti.

U1. Solo gli utenti hanno accesso al proprio account

U4. Gli utenti devono essere consapevoli di tutti i

comandi che digitano o che sono digitati per loro conto

(20)

Writable devices

Dispositivi che consentono agli utenti di inserire testo. Tali dispositivi possono portare a seri

problemi di sicurezza. Se non è necessario per il corretto funzionamento del sistema, si dovrebbe ridurre la possibilità di scrittura per quanto è

possibile.

Es. Se un utente può scrivere sul terminale di un altro utente, un attaccante può cancellare la

finestra del terminale scrivendo un’appropriata

sequenza di comandi su di esso.

(21)

Smart terminals

 Forniscono meccanismi interni per eseguire funzioni speciali.

La funzione più importante è il block send.

In questo modo, un processo può dare ordini a un terminale senza che nessun carattere appaia sullo schermo. Questo può essere usato per impiantare un Trojan horse.

 

(22)

Esempio – Smart terminals(1)

Robert vuole ingannare Craig facendogli eseguire il comando

chmod 666 .profile

(concede permessi di lettura e scrittura sul file d’avvio

al proprietario, al gruppo e agli altri utenti)

Robert manda un messaggio a Craig

(23)

Messaggio Trojan horse

Dear Craig,

Please be careful. Someone may ask you to execute

chmod 666 .profile You shouldn’t do it!

Your friend, Robert

<BLOCK SEND (-2,18), (-2,18)>

<BLOCK SEND (-3,0),(3,18)><CLEAR>

(24)

Esempio – Smart terminals(2)

Quando Craig legge il messaggio, il comando

!chmod 666 .profile

viene inviato all’interprete.

Il suo file d’avvio diventa scrivibile a tutti ed inoltre l’interprete dopo aver eseguito il

comando lo cancella, senza lasciare traccia.

(25)

Differenze tra writable device e smart terminal

 Nei dispositivi writable sia l’attaccante che l’utente devono digitare i comandi. Entrambi devono avere diritto di scrittura sul terminale

 Negli smart terminals solo l’utente ha il

permesso di scrittura, l’attaccante ha bisogno di digitare il comando sul suo terminale.

Basta che l’utente legge una cosa sbagliata e

parte l’attacco

(26)

Monitors e Window Systems (1)

I Window System forniscono un’interfaccia grafica al sistema.

Window manager: controlla cosa è visualizzato sullo schermo

I client registrati possono ricevere input e mandare output attraverso il window manager.

Il window manager mostra l’output sullo schermo quando è

necessario ed è responsabile di indirizzare l’input al client corretto.

ATTACCO: Se un attaccante registra un client con il window manager, può intercettare l’input.

Es. in alcune versioni di X Window è possibile per un attaccante sovrapporre un finestra invisibile sullo schermo. L’attaccante può registrare tutti i movimenti del mouse e i tasti digitati, passwords comprese.

(27)

Monitors e Window Systems (2)

I window system possono usare vari meccanismi per controllare l’accesso al window manager.

Es. X Window

 Controlla l’accesso sulla base del nome dell’host o del possesso di un token. Se l’accesso al window manager è consentito, il client può controllare il display.

 Ci sono 2 modi di controllo

METODO XHOST

METODO XHAUT

(28)

Monitors e Window Systems (3)

METODO XHOST

Determina il nome dell’host dal quale il client cerca di connettersi.

Il window manager verifica se tale nome è presente nella lista degli host dai quali i processi sono autorizzati a connettersi. In caso

affermativo l’accesso è garantito, altrimenti è negato.

METODO XHAUT

Richiede che un processo sia in grado di fornire un numero casuale fissato (magic cookie). Quando il window manager si avvia, crea un magic cookie che viene memorizzato nel file .Xauthority nell’home directory dell’utente.

Ogni client che vuole connettersi al window manager deve fornire il magic cookie.

Se il processo è locale ed è stato avviato dall’utente, può ottenere il magic cookie direttamente dal file .Xauthority.

Se il processo è stato avviato da un host remoto, l’utente deve assicurare che quel processo abbia il magic cookie prima di connettersi al window manager

(29)

Processi

I processi manipolano oggetti, incluso file.

U3 richiede che l’utente sia consapevole di come i processi manipolano i files.

U3. Gli utenti devono

proteggere l’integrità, la confidenzialità e la

disponibilità dei loro files

(30)

Copiare un file

Copiare un file duplica il suo contenuto. La semantica del comando di copia determina se vengono copiati anche i permessi del file.

Se non sono copiati, l’utente deve prendere degli

accorgimenti per preservare integrità e confidenzialità del file.

Es. UNIX

Anne vuole copiare il file xyz cp xyz plugh

 

se plugh non esiste, il comando lo crea e copia il contenuto di prova in esso. I permessi sono gli stessi di xyz.

se plugh esiste, il comando copia il contenuto di xyz al suo interno. I permessi di plugh non vengono modificati. Questo è un problema di sicurezza.

(31)

Sovrascrittura accidentale di un file

Parte di U3 è proteggere gli utenti da loro stessi.

A volte possono sbagliare a digitare un comando, determinando conseguenze spiacevoli.

Es. Mark vuole cancellare tutti i file dalla sua directory il cui nome termina in “.o”.

rm * .o

Si sbaglia e mette uno spazio tra * e “.o”.

Ha cancellato tutti i file della directory.

Molti programmi chiedono conferma prima della cancellazione o della sovrascrittura.

È buona norma non disabilitarlo.

(32)

Impostazioni di start-up

Molti programmi, come l’editor di testi, usano informazioni

d’avvio. Queste variabili o file contengono comandi che vengono eseguiti quando parte il programma ma prima che l’utente possa digitare input. Le impostazioni dei file d’avvio e l’ordine in cui vengono eseguite influiscono sull’esecuzione del programma.

 

Es. UNIX

La shell di login si inizializza accedendo ad alcune informazioni d’avvio.

Il contenuto del file /etc/profile

Il contenuto del file .profile nella home directory dell’utente

Il contenuto del file fissato nelle variabili d’ambiente ENV Se uno di questi file non c’è il passo viene saltato.

Se uno di questi file viene modificato dall’attaccante possono essere eseguiti comandi indesiderati all’avvio.

 

(33)

Conclusioni

Sono stati affrontati solo alcuni aspetti che consentono agli utenti di proteggere dati e programmi con cui lavorano.

In ogni caso è possibile minimizzare i rischi

solo attraverso un’attenta security policy.

Riferimenti

Documenti correlati

Il secondo momento della lotta cattolica arrivò all’inizio degli anni Novanta, quando alcuni pensatori cattolici, Michael Novak e padre Richard John Neuhaus, proposero il

- Drive: cartelle in cui visualizzare files condivisi o salvare i propri files, caricati dal proprio computer o generati mediante le applicazioni della GSuite (per la

It was a happy day for those who treasure the Salesian past when John Baptist Lemoyne persuaded Peter Enria to recall his first encounter with Don Bosco as a child and

Più nel dettaglio, il veicolo aziendale strumentale in uso al dipendente o al collaboratore non è imponibile, in quanto l’utilizzo è esclusivamente lavorativo.. Il veicolo aziendale

per responsabilità diretta, sia perché si è obbligata contrattualmente, sicché la detenzione del terreno è ancora in capo alla Milano Santa Giulia.. contesto si inserisce la vicenda

• Le operazioni di lettura e scrittura su file ad accesso random fanno uso di un indice che si può spostare con le funzioni lseek (basso livello) e fseek (stream). • Ovviamente non

La funzione read.table legge un file memorizzato su disco, inserendo i dati direttamente in un data frame.. Il file esterno deve essere memorizzato nel

o implementare una funzione virtuale nella classe base implementata nelle classi derivate (con output). o implementare una funzione virtuale nella classe base non implementata