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 U1. Solo gli utenti hanno accesso al proprio account 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” 1. Password Una password può essere scelta: in modo non casuale in modo casuale dovrebbe esserci un programma che controlla se sono troppo facili da indovinare 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 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$ b12798Qqdt 3WXYwgnw 3WXywgnwS Z7WXYwgnw feOioC4f feoioC4f9 YfeOioC8f VRd0Hj9E VRD0Hj9Eq pVRd4Hj9E e7BUkcbaX Xe11Bukcba 8798Qqdt e7Bukcba 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. 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.