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
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
1. Password
Una password può essere scelta:
in modo non casuale
in modo casuale
richiedono di essere scrittePERICOLO => 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
Sistema isolato
Stanza chiusa a chiave
Accesso consentito solo a utenti autorizzati
Non connesso alla rete
Scrivere la password non comporta alcun
pericolo
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
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
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
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
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.
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
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
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!”)
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
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.
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
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
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.
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
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.
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.
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
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>
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.
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
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.
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
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
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
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.
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.
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.