SISTEMI OPERATIVI Introduzione - Dipartimento di ingegneria
Transcript
SISTEMI OPERATIVI Introduzione - Dipartimento di ingegneria
Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria Elettronica SISTEMI OPERATIVI http://www.diee.unica.it/~giacinto/SisOp A.A. 2006/2007 Docente: Giorgio Giacinto SICUREZZA Introduzione Sicurezza informatica Controllo fisico delle apparecchiature Politiche di amministrazione delle apparecchiature Strumenti software ad hoc In questo corso ci occuperemo principalmente di Problematiche di sicurezza specifiche dei SO Strumenti SW per garantire la sicurezza Giorgio Giacinto 2006 2 Definizione di Sicurezza per un sistema informatico Disponibilità Le risorse devono essere sempre disponibili agli utenti autorizzati Confidenzialità L’accesso alle informazioni memorizzate negli elaboratori è consentito solo da parte di utenti autorizzati Integrità La modifica dei dati sensibili può essere fatta solo da utenti autorizzati Autenticità L’identità degli utenti deve poter essere sempre accertata dal calcolatore Giorgio Giacinto 2006 3 Definizione di minaccia alla sicurezza La funzione principale di un elaboratore è quella di fornire (elaborare) informazioni In generale c’è un flusso di informazione fra una sorgente (file, ecc.) e un destinatario (utente, ecc.) Si può definire “minaccia alla sicurezza” ogni attività che modifica il percorso normale del flusso NOTA Esistono molte tassonomie diverse! Giorgio Giacinto 2006 4 1. Interruzione del flusso Una risorsa del sistema è distrutta o diventa indisponibile o non utilizzabile Distruzione hardware Interruzione linee di comunicazione Disabilitazione di servizi software (file system management, ecc.) Viene negata la disponibilità di una risorsa. Si parla di attacchi di tipo “Denial of Service” (DoS) Giorgio Giacinto 2006 5 2. Intercettazione del flusso Un utente non autorizzato ottiene l’accesso ad una risorsa Wiretapping per catturare dati in rete Copie illecite di file e programmi Password spoofing Ecc. È violata la confidenzialità delle informazioni Giorgio Giacinto 2006 6 3. Modifica del flusso Un utente non autorizzato non solo ottiene l’accesso ad una risorsa ma la manomette Modifica dei valori in un file di dati Alterazione del comportamento di un programma Modifica di messaggi trasmessi in una rete Ecc. È violata l’integrità delle informazioni Giorgio Giacinto 2006 7 4. Fabbricazione di un flusso Un utente non autorizzato inserisce oggetti contraffatti nel sistema Inserimento in rete di messaggi spuri Aggiunta di record ad un file Ecc. È violata l’autenticità dell’informazione Giorgio Giacinto 2006 8 Risorse di un sistema informatico Hardware Le minacce sono legate prevalentemente alla disponibilità o Danni accidentali o Danni deliberati o Furto Misure di prevenzione a livello fisico controllo degli accessi alle sale macchine Giorgio Giacinto 2006 9 Risorse di un sistema informatico Software Le minacce sono legate a o Cancellazione di programmi (Denial of Service) o Copie non autorizzate di software (Confidenzialità) o Modifica di programmi (virus e similari) (Integrità/Autenticità) Misure di prevenzione copie di riserva (backup) Per le copie non autorizzate pochi meccanismi… Giorgio Giacinto 2006 10 Risorse di un sistema informatico Dati Le minacce sono legate a o Cancellazione di file (Denial of Service) o Lettura non autorizzata dei dati (Confidenzialità) • File di dati o basi di dati • Interrogazioni di basi di dati per estrarre informazioni aggregate Modifica di file esistenti (Integrità/Autenticità) o creazione di nuovi file Misure di prevenzione Controllo accessi ai file (ACL, password, ecc.) Giorgio Giacinto 2006 11 Risorse di un sistema informatico Linee di comunicazione Minacce passive Diffusione del Contenuto dei Messaggi Analisi del Traffico Minacce Attive Mascheramento Giorgio Giacinto 2006 Ritrasmissione Denial of Modifica del Service Contenuto del Messaggio 12 Attacchi passivi contro linee di comunicazione Diffusione del (eavesdropping) contenuto dei messaggi Intercettazione telefonica, intercettazione di messaggi e-mail, ecc. Analisi del traffico Può consentire l’identificazione della natura del messaggio anche nel caso di cifratura (ad es., una transazione di una carta di credito) Giorgio Giacinto 2006 13 Rilevazione di attacchi passivi Difficili da individuare I dati non sono alterati L’enfasi in questo caso è sulla prevenzione piuttosto che sulla rilevazione Tecniche di crittografia Giorgio Giacinto 2006 14 Attacchi attivi contro linee di comunicazione Mascheramento Una entità si “traveste” da un altra entità e effettua attività non autorizzate (violazione della confidenzialità) Ritrasmissione Intercettazione passiva di dati e la sua ritrasmissione in modo da provocare un effetto non desiderato (violazione dell’integrità e dell’autenticità) Giorgio Giacinto 2006 15 Attacchi attivi contro linee di comunicazione Denial of service Disabilita l’uso normale o la gestione dei dispositivi per la comunicazione (ad es., intasamento della linea con un numero elevato di messaggi) Modifica del contenuto dei messaggi Una parte di un messaggio lecito viene modificata in modo che il messaggio viene ritardato o il contenuto riordinato per produrre un effetto non desiderato (violazione dell’integrità/autenticità) Giorgio Giacinto 2006 16 Rilevazione di attacchi attivi È molto difficile prevenire gli attacchi attivi Richiederebbe la protezione fisica continua degli apparati di comunicazione e di tutti i percorsi Si preferisce realizzare strumenti di rilevazione degli attacchi attivi e di reazione conseguente Gli strumenti di rilevazione possono fungere anche da deterrente …d’altra parte gli strumenti di rilevazione sono software (e hardware) che possono essere attaccati a loro volta… Giorgio Giacinto 2006 17 Problemi di sicurezza nei Sistemi Operativi L’introduzione della multiprogrammazione consente la condivisione delle risorse Processore Memoria Dispositivi I/O Programmi Dati È necessario proteggere queste risorse da un uso improprio o illecito dei meccanismi di condivisione! Giorgio Giacinto 2006 18 Strumenti di Protezione offerti dai Sistemi Operativi Nessuna protezione Possibile nei casi in cui le procedure delicate sono eseguite in tempi separati Isolamento Questo approccio implica che ogni processo deve essere eseguito separatamente, senza condivisione o comunicazione Condivisione “tutto o niente” Il proprietario di una risorsa deve dichiararla “pubblica” o “privata” Giorgio Giacinto 2006 19 Strumenti di Protezione offerti dai Sistemi Operativi Condivisione con limitazione dell’accesso Il SO controlla la possibilità che un dato utente acceda ad un dato oggetto (il SO funge da “guardiano”) Condivisione mediante strumenti dinamici I diritti di accesso vengono creati dinamicamente Limitazione dell’uso di un oggetto La limitazione non riguarda solo l’accesso ai dati ma anche il suo utilizzo Giorgio Giacinto 2006 20 Protezione della Memoria Aspetto Principale Assicurare il corretto funzionamento dei vari processi attivi Impedire accesso ad aree di memoria non condivise e controllo degli accessi alle aree di memoria condivise Soluzione Progettazione accurata del sistema di memoria virtuale (hardware e software) Giorgio Giacinto 2006 21 Controllo dell’Accesso degli Utenti Log on Richiede un ID utente e una parola chiave o L’ID deve appartenere al gruppo di utenti autorizzati a collegarsi alla macchina e la password deve essere corretta Problemi Cessione intenzionale o accidentale della password a terzi o Spesso le password possono essere facilmente indovinate o Il file con le coppie ID/password può essere copiato illegalmente Giorgio Giacinto 2006 22 Protezione attraverso le password La sicurezza della coppia ID-password è data dalla possibilità di Determinare se l’utente è autorizzato ad accedere al sistema Determinare i privilegi concessi all’utente o Pochi utente hanno privilegi di amministratore o Gli account “guest” o “anonimo” hanno un numero di privilegi più ristretto rispetto ad altri utenti ID è usato per discriminare gli accessi Un utente può stabilire gli accessi ai propri file sulla base degli ID Password memorizzata in formato cifrato Giorgio Giacinto 2006 23 Vulnerabilità delle tecniche di cifratura Una ricerca esaustiva (o quasi esaustiva) potrebbe provare tutte le possibili password… …per rendere questa operazione onerosa da un punto di vista computazionale sono stati sviluppati numerosi algoritmi sofisticati La complessità degli algoritmi deve tenere il passo con la crescente capacità computazionale dei sistemi di elaborazione, sia centralizzati sia, soprattutto, distribuiti Giorgio Giacinto 2006 24 Strategie per la selezione di password “sicure” Password generate dal calcolatore Pregi estremamente difficile l’individuazione per tentativi Difetti Scarsa accettabilità degli utenti o Difficoltà di memorizzazione o Necessità di scrivere la password da qualche parte… Giorgio Giacinto 2006 25 Strategie per la selezione di password “sicure” Strategie di controllo reattivo delle password Un programma “password cracker” viene eseguito periodicamente per individuare password “facili” da individuare per tentativi Queste password sono cancellate e l’utente viene avvisato Problema Impegna risorse e spesso il “cracker” usato è meno sofisticato di quello usato dagli hacker (che hanno a disposizione risorse dedicate) Giorgio Giacinto 2006 26 Strategie per la selezione di password “sicure” Controllo proattivo delle password La password è accettata o rifiutata al momento in cui l’utente la seleziona Il sistema può guidare l’utente nella scelta di una password o Facilmente memorizzabile da parte dell’utente o Difficile da individuare per tentativi Giorgio Giacinto 2006 27 Altri meccanismi di autenticazione Challange-response One-time password Smart card Biometriche Giorgio Giacinto 2006 28 Accesso controllato ai dati A ciascun utente può essere associato un profilo che specifica quali accessi ai file sono permessi L’applicazione di queste regole spetta al Sistema Operativo Nel caso delle basi di dati, il DBMS effettua il controllo a livello di record o di campi di record Giorgio Giacinto 2006 29 Matrice di Accesso Soggetto Una entità che può richiedere l’accesso ad un oggetto Oggetto Qualunque cosa il cui accesso sia controllato Diritti d’accesso Le modalità con le quali è possibile che un dato soggetto effettui un accesso ad un dato oggetto Giorgio Giacinto 2006 30 Matrice degli Accessi Giorgio Giacinto 2006 31 Matrice degli Accessi Di solito la matrice degli accessi è sparsa Viene suddivisa Per colonne: Access Control List elenca per ciascun oggetto gli utenti che possono accedervi e i relativi diritti d’accesso Per righe: Capability tickets elenca per ciascun utente gli oggetti per i quali è permesso l’accesso e I relativi diritti Giorgio Giacinto 2006 32 Access Control List (ACL) Giorgio Giacinto 2006 33 Capability Tickets Giorgio Giacinto 2006 34 Intrusi Mascheramento Un utente non autorizzato accede ad un elaboratore “mascherato” da utente autorizzato Approfittatore Un utente autorizzato che accede a risorse per le quali non ha privilegi, oppure fa un uso non autorizzato dei propri privilegi Utente clandestino Un utente che prende il controllo da supervisore del sistema per sfuggire o bloccare le attività di auditing Giorgio Giacinto 2006 35 Intruders and protection measures Anderson, Computer Security Threat Monitoring and Surveillance, Tech Rep, 1980 Giorgio Giacinto 2006 36 Motivi della crescita delle intrusioni Globalizzazione Pressioni della competizione internazionale Diffusione delle architetture client/server Molte aziende sono passate dai mainframe (alti livelli di sicurezza) ad architetture distribuite, per le quali è più difficile garantire la sicurezza Crescita della curva di apprendimento degli hacker Esistono “reti” di hacker molto efficienti e aggiornate per lo scambio di informazioni su vulnerabilità di sistemi, software, ecc. Giorgio Giacinto 2006 37 Tecniche di intrusione Obiettivo Ottenere l’accesso al sistema o aumentare la gamma di privilegi di accesso al sistema Il raggiungimento dell’obbiettivo spesso implica che l’intrusore riesca ad acquisire informazioni riservate Ad es., acquisizione del file delle password, di solito memorizzate in forma cifrata Giorgio Giacinto 2006 38 Tecniche per acquisire le password Prova le password di default (quelle inserite “in fabbrica” dai produttori di software) Prova in modo esaustivo tutte le password brevi Prova le parole presenti in un apposito dizionario di password “comuni” Disponibili nella comunità degli hacker Cerca ulteriori informazioni legate agli utenti e prova a usarle come password Il nome, il nome della moglie, dei figli, ecc. Giorgio Giacinto 2006 39 Altre tecniche per acquisire le password Prova i numeri di telefono, il SSN, il numero dell’ufficio Prova i numeri di targa relativi ad una provincia Usa un “Cavallo di Troia” per superare le barriere d’accesso Intercetta la linea fra un utente remoto e il sistema Spesso le password viaggiano sulle linee di comunicazione in formato non cifrato (oggi meno frequente) Giorgio Giacinto 2006 40 Rilevazione delle Intrusioni La prevenzione da sola non basta! Intrusion detection Maggiore è la rapidità nella rilevazione, minori sono i danni arrecati dall’intruso e minore è il tempo di ripristino del sistema Sistemi di rilevazione efficaci possono servire da deterrente La raccolta di informazioni da parte dei sistemi di rilevazione può servire a migliorare i sistemi di prevenzione Giorgio Giacinto 2006 41 Intrusion Detection Due approcci principali Anomaly detection o Basato sulla stima statistica del comportamento di ciascun utente in certo intervallo di tempo o Intrusione: attività di un utente non corrispondente al profilo statistico Rule-based detection o Scrittura di regole che determinano se una certa sequenza di azioni è un attacco (richiede la conoscenza degli attacchi passati). Le regole sono chiamate firme o Sistemi esperti confrontano ciascuna attività del sistema con l’insieme delle firme degli attacchi Giorgio Giacinto 2006 42 Esempio di Anomaly Detection Giorgio Giacinto 2006 43 Intrusion Detection Fonti di informazione Audit record Nativi o Tutti I SO prevedono la raccolta e la memorizzazione di informazioni relative all’uso dell’elaboratore Specifici o Raccolta di informazioni aggiuntive necessarie al software di rilevazione delle intrusioni La rete Classe di IDS che analizzano il traffico di rete per trovare tracce di intrusioni Giorgio Giacinto 2006 44 Categorie di programmi “cattivi” Programmi che hanno bisogno di un 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 Giorgio Giacinto 2006 45 Una tassonomia dei programmi “cattivi” Giorgio Giacinto 2006 46 Trapdoor Un ingresso segreto che consente l’ingresso al programma evitando alcune o tutte le protezioni Usate in genere dai programmatori per test e debugging Utile per attivare il programma se per qualche motivo la routine di autenticazione non funziona Il SO difficilmente può implementare dei controlli sulle trapdoor Giorgio Giacinto 2006 47 Logic Bomb Codice all’interno di un programma impostato per “esplodere” al verificarsi di una (o più) condizioni Presenza o mancanza di certi file Un certo giorno della settimana (o dell’anno) ID utente che sta eseguendo il programma Giorgio Giacinto 2006 48 Cavallo di Troia Un programma apparentemente utile che contiene codice nascosto che esegue operazioni indesiderate e/o pericolose L’utente autorizzato (eseguendo il programma apparentemente utile) esegue funzioni scritte da un utente non autorizzato Ad esempio, può cambiare I permessi dei file, ecc. Cavalli di troia nascosti nei compilatori, editor di testo, giochi, ecc. Giorgio Giacinto 2006 49 Virus Programmi che possono “infettare” altri programmi, modificandoli La modifica contiene una copia del programma-virus Il programma infettato può infettare altri programmi Giorgio Giacinto 2006 50 Worm Utilizza connessioni di rete per propagarsi da un sistema ad un altro Programmi di posta elettronica Un worm spedisce una copia di se ad altri sistemi Capacità di esecuzione remota Un worm esegue una copia di se stesso in un altro sistema Capacità di log-in remoto Un worm si collega ad un sistema remoto come utente e usa i comandi di terminale per copiare se stesso da un sistema ad un altro Giorgio Giacinto 2006 51 Zombie Un programma che in modo nascosto prende il possesso di un computer connesso a Internet Questo computer è usato per effettuare attacchi che difficilmente possono essere ricondotti all’autore dello zombie Usato negli attacchi di DoS contro server Web o Gli zombie sono inseriti in centinaia di computer appartenenti ad utenti ignari Questi inviano una quantità elevata di richieste che saturano le capacità del server Giorgio Giacinto 2006 52 Tipologie di Virus Parassiti Si attacca a file eseguibili e si replica Durante l’esecuzione del programma infettato il virus cerca altri programmi da infettare Residenti in memoria Risiede nella memoria principale come parte di un programma residente Infetta tutti I programmi che vengono eseguiti nel sistema Giorgio Giacinto 2006 53 Tipologie di Virus Settore di boot Infettano il settore di boot del disco di sistema Si propaga durante l’avviamento del sistema dal disco infettato Stealth Progettato per “nascondersi” ai programmi antivirius Può usare tecniche di compressione dati Polimorfo Muta ad ogni infezione per sfuggire agli antivirus La mutazione avviene creando una chiave di cifratura usata per cifrare il resto del virus (la chiave è memorizzata insieme al virus) Giorgio Giacinto 2006 54 “Macro” Una “macro” è un programma eseguibile “immerso” in un file dati (ad esempio, un documento) Esecuzione di macro in MS Word Autoexecution Esecuzione automatica all’avvio del programma Automacro Eseguita quando avviene un certo evento Command macro Eseguita quando l’utente usa un comando Giorgio Giacinto 2006 55 Virus relativi a Macro Indipendenti dalla piattaforma Sono comandi di programmi che sono compilato per diverse piattaforme, come Microsoft Word Infettano documenti e non file eseguibili Si diffondono molto rapidamente Giorgio Giacinto 2006 56 Virus relativi a E-mail Attivati quando il destinatario apre l’allegato Spesso usano il linguaggio di script Visual Basic Si propaga a tutti gli indirizzi di posta elettronica memorizzati nel computer infettato Giorgio Giacinto 2006 57 Approcci Antivirus Rilevazione Da strumenti basati su firme, a regole euristiche, ecc. Identificazione Rimozione Giorgio Giacinto 2006 58 Sistemi Fidati Nel settore della difesa la protezione di dati e risorse è realizzata secondo diversi livelli di sicurezza U unclassified C confidential S secret TS top secret Giorgio Giacinto 2006 59 Sistemi Fidati Sicurezza Multilivello (Modello Bell-La Padula, 1973) A ciascuna risorsa (processi e oggetti) è associato un livello di sicurezza Il flusso di informazione deve obbedire alle seguenti regole No read up (simple security property) o Ciascuna risorsa può effettuare letture di oggetti con livello di sicurezza uguale o inferiore No write down (*-property) o Ciascuna risorsa può effettuare scritture su oggetti con livello di sicurezza uguale o superiore Giorgio Giacinto 2006 60 Il modello Bell-La Padula Giorgio Giacinto 2006 61 Reference Monitor Mediazione completa Le regole di sicurezza sono applicate ad ogni accesso Isolamento Il reference monitor e la base di dati sono protetti da modifiche non autorizzate Verificabilità La correttezza del reference monitor deve poter essere verificata matematicamente. Quest’ultima è una definizione di Sistema Fidato Giorgio Giacinto 2006 62 Il concetto di reference monitor Giorgio Giacinto 2006 63 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 tutt’ora validi Giorgio Giacinto 2006 64 Orange Book Livello D: Minimal Protection Questa categoria è assegnata a sistemi operativi non classificabili dal punto di vista della sicurezza o 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 o C1: Discretionary Security Protection Prime versioni di UNIX o C2: Controlled Access Protection IBM OS/400, Win NT/2000/XP, Novell Netware Giorgio Giacinto 2006 65 Orange Book Livello B: Mandatory Protection La protezione non è facoltativa ma obbligatoria A ciascun utente e a ciascun oggetto è assegnato un livello di sicurezza o B1: Labeled Security Protection HP-UX, Cray Research Trusted Unicos 8.0, Digital SEVMS o B2: Structured Protection Honeywell Multics, Cryptek VSLAN, trusted XENIX o B3: Security Domains Getronics/Wang Federal XTS-300 Livello A: Verified Protection Metodi formali per verificare la sicurezza o A1: Verified Protection Boeing MSL LAN, Honeywell SCOMP Giorgio Giacinto 2006 66 Common Criteria Le 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 2.3, pubblicata come ISO/IEC 15408:2005 e ISO/IEC 18405:2005 http://www.commoncriteriaportal.org Giorgio Giacinto 2006 67 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 Windows 2000 SP3, Windows Server 2003 e Windows XP Red Hat Enterprise Linux (RHEL) V. 4 Update 1 IBM AIX 5L for POWER V 5.2, Maintenance Level 5200-05 with Innovative Security Systems PitBull Foundation 5.0 Apple Mac OS X 10.3.6 Giorgio Giacinto 2006 EAL4+ EAL4+ EAL5+ EAL3 68