Sicurezza dei sistemi informatici Master di I° livello in Sistemi e Tecnologie per la sicurezza...
-
Upload
sofia-bruno -
Category
Documents
-
view
213 -
download
0
Transcript of Sicurezza dei sistemi informatici Master di I° livello in Sistemi e Tecnologie per la sicurezza...
Sicurezza dei sistemi Sicurezza dei sistemi informaticiinformatici
Master di I° livello inMaster di I° livello in
Sistemi e Tecnologie per la sicurezza Sistemi e Tecnologie per la sicurezza dell'Informazione e della Comunicazionedell'Informazione e della Comunicazione
Quarta lezioneQuarta lezione6/6/20076/6/2007
ContenutoContenuto
Classificazione dei livelli di sicurezza di un Classificazione dei livelli di sicurezza di un S.O.S.O.
Sicurezza su WindowsSicurezza su Windows Sicurezza su UnixSicurezza su Unix Sistemi per la Intrusion DetectionSistemi per la Intrusion Detection Sicurezza nei databaseSicurezza nei database
Classificazione della sicurezza dei sistemi di calcolo
Orange Book. Documento pubblicato dal Dipartimento della Difesa americano (D.O.D)
Sono specificate quattro categorie di sicurezza:A, B, C, D (in ordine decrescente).
Categoria D. Non ha livelli di sicurezza. Esempi MS-DOS, Windows 3.1.
ClassificazioneClassificazione Categoria C. Suddivisa in C1 e C2: C1. La Trusted Computing Base consente:
Autenticazione degli utenti (password). I dati di autenticazione sono protetti rendendoli inaccessibili agli utenti non autorizzati.
Protezione dei dati e programmi propri di ogni utente. Controllo degli accessi a oggetti comuni per gruppi di
utenti definiti Esempio: Unix C2. La TCB consente
oltre a quanto definito per la C1, il controllo degli accessi su una base individuale.
Esempio UNIX, Windows NT e 2000.
ClassificazioneClassificazione
Categoria B. Suddivisa in B1, B2 e B3 B1. La TCB consente, oltre a quanto definito in C2,
l’introduzione dei livelli di sicurezza (modello Bell-La Padula). Almeno due livelli.
B2. La TCB estende l’uso di etichette di riservatezza ad ogni risorsa del sistema, compresi i canali di comunicazione.
B3. La TCB consente la creazione di liste di controllo degli accessi in cui sono identificati utenti o gruppi cui non è consentito l’accesso ad un oggetto specificato.
ClassificazioneClassificazione
Categoria A. Suddivisa in A1 e classi superiori A1. E’ equivalente a B3, ma con il vincolo di
essere progettato e realizzato utilizzando metodi formali di definizione e verifica.
Un sistema appartiene ad una classe superiore ad A1 se è stato progettato e realizzato in un impianto di produzione affidabile da persona affidabile
Cronologia di Windows: MS DOSCronologia di Windows: MS DOS
1981 MS-DOS 1.0 per IBM PC 1983 versione 2.0 1986 versione 3.0 sempre per 16 bits, line-oriented e single-user Windows 2.x/3.x è semplicemente una GUI
per MS-DOS
Cronologia di Windows: Cronologia di Windows: Windows 9xWindows 9x
Windows 95 e 98 continuano ad avere molto in comune con MS-DOS molte parti sono a 16 bit hanno lo stesso file system
diversità: integrazione del networking nel SO (problemi legali)
nessuna sicurezza: condivisione degli spazi di memoria di tutti gli
utenti
Cronologia di Windows: Cronologia di Windows: Windows NTWindows NT
Negli ultimi anni 80 parte windows NT Indipendente da MS-DOS, nasce nel ‘93
fiasco sul mercato, piccolo successo come server NT 4.0 (1996) --> 16 M di codice C e C++ NT 5.0 (Windows 2000) --> 29 M di codice Possiede molte più features di Unix (window
e GUI sono nel SO, ha codice per architetture diverse e per versioni diverse....)
Libreria Win32 APILibreria Win32 API è una libreria molto vasta di procedure che
possono effettuare chiamate di sistema o anche possono operare semplicemente in user mode
moltissime API grafiche garantisce la compatibilità con i SO
precedenti Per contrasto, Unix definisce un numero
esiguo di chiamate che restano fisse nelle diverse versioni
Come funzionano le API di Win32Come funzionano le API di Win32
Le invocazioni di procedure Win32 creano oggetti (file, processi, thread ecc)
La chiamata restituisce un handle all’oggetto che può essere utilizzato in altre chiamate
E’ un po’ object-oriented: c’è l’incapsulamento, l’oggetto è manipolato (solo) con le funzioni previste
Il registryIl registry E’ un database che contiene tutte le informazioni di
configurazione hardware/software/sicurezza che sono necessarie al boot
è una specie di file system con directory e file generalmente molto piccoli
il registry è diviso in sezioni (ROOT KEYS), che contengono directories (keys) che a loro volta possono contenere subkeys o valori (file di testo)
Root keysRoot keys
HKEY_LOCAL_MACHINE HKEY_USERS HKEY_PERFORMANCE DATA HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_CURRENT_CONFIG
Manipolare il registryManipolare il registry
il registry è in formato proprietario, si manipola quindi (solo) con un registry editor, cioè regedit.exe
L’integrità del registry è importante hives e keys hanno liste di permessi per i
gruppi predefiniti Per default non l’audit non si fa, ma è previsto
Procedure per manipolare il registryProcedure per manipolare il registry
Esistono procedure win32 API per manipolare il registry: RegCreateKeyEx (crea un nuovo key) RegOpenKeyEx (ottiene un handle) RegEnumKeyEx (enumera le key) RegQueryValueEx (ricerca)
Il registry è protetto accuratamente, la sua corruzione implica il reinstallo dell’intero sistema
Caratteristiche di sicurezza in NTCaratteristiche di sicurezza in NT login sicuro con misure anti-spoofing (al CTRL-
ALT-DEL è chiamato il driver della tastiera che a sua volta chiama un programma di sistema “genuino”)
controllo degli accessi discrezionale accesso privilegiato protezione dello spazio degli indirizzi di ciascun
processo prima dell’uso le pagine di memoria vengono
azzerate audit
Gruppi e permessiGruppi e permessi
Windows NT Windows NT prevede molti utenti e gruppi predefiniti (i loro permessi di default sono nel Registry)
Cio è molto utile per distribuire le responsabilità della gestione del sistema su vari utenti
Anche l’insieme dei permessi è più ampio: oltre a read write ed execute, si può concedere take
ownership, change permissions, delete,….
Permessi in WindowsPermessi in Windows DELETE The right to delete the object. READ_CONTROL The right to read the information in the object's security
descriptor, not including the information in the SACL. SYNCHRONIZE The right to use the object for synchronization. This
enables a thread to wait until the object is in the signaled state. Some object types do not support this access right.
WRITE_DAC The right to modify the DACL in the object's security descriptor.
WRITE_OWNER The right to change the owner in the object's security descriptor.
FILE_ADD_FILE For a directory, the right to create a file in the directory. FILE_ADD_SUBDIRECTORY For a directory, the right to create a
subdirectory. FILE_ALL_ACCESS All possible access rights for a file. FILE_APPEND_DATA For a file object, the right to append data to the file.
For a directory object, the right to create a subdirectory. FILE_CREATE_PIPE_INSTANCE For a named pipe, the right to create a
pipe.
Permessi in WindowsPermessi in Windows FILE_DELETE_CHILD For a directory, the right to delete a directory and all the files
it contains. FILE_EXECUTE For a native code file, the right to execute the file. This access right
given to scripts may cause the script to be executable, depending on the script interpreter.
FILE_LIST_DIRECTORY For a directory, the right to list the contents of the directory.
FILE_READ_ATTRIBUTES The right to read file attributes. FILE_READ_DATA For a file object, the right to read the corresponding file data. For
a directory object, the right to read the corresponding directory data. FILE_READ_EA The right to read extended file attributes. FILE_TRAVERSE For a directory, the right to traverse the directory. By default, users
are assigned the BYPASS_TRAVERSE_CHECKING privilege, which ignores the FILE_TRAVERSE access right. FILE_WRITE_ATTRIBUTES The right to write file attributes. FILE_WRITE_DATA For a file object, the right to write data to the file. For a
directory object, the right to create a file in the directory. FILE_WRITE_EA The right to write extended file attributes. [...]
VantaggiVantaggi
Questa maggiore ricchezza di permessi di utenti e di gruppi, assieme al meccanismo di incapsulamento delle funzioni di sistema di Win32, rende possibile eseguire molti dei compiti usuali di amministrazione con permessi non di root
ArchitetturaArchitettura
Ogni utente (gruppo, host e server) ha un SID : è un numero che consiste di una breve intestazione e di un intero lungo (univoco)
quando un utente inizia un processo, riceve un SAT (Security Access Token))
SATSAT Security ID: identifica un utente in maniera univoca. Group SID: Una lista dei gruppi ai quali l’utente appartiene
ai fini del controllo degli accessi. Un gruppo è un insieme di ID di utente. Ogni gruppo ha un unico SID.
Privilegi: Una lista di servizi di sistema “security sensitive” che l’utente può chiamare. Esempio creare token.
Default owner: se l’utente genera un nuovo oggetto può specificare se il proprietario dell’oggetto è l’utente stesso o un gruppo cui l’utente appartiene.
Default ACL: lista iniziale di protezione associata agli oggetti che l’utente crea. La lista può essere successivamente modificata
ControlloControllo
ogni volta che il processo chiede di usare una risorsa, il S.O. usa Il SAT del processo e Il Security Descriptor della risorsa stessa
Security DescriptorSecurity Descriptor Flags: definiscono il tipo ed i contenuti di un descrittore.
Esempio: se sono contenute o no SACL e DACL. Owner:il proprietario dell’oggetto può essere un individuo
o un gruppo. Il proprietario può cambiare i contenuti della DACL.
Discretionary Access Control List (DACL): determina quali utenti e con quali operazioni possono accedere all’oggetto. E’ costituita da una lista di access control entries
(ACEs). System Access Control List(SACL):specifica quali tipi di
operazioni sull’oggetto generano audit messages.
ACEACE
Access Control Entry: contiene un SID individuale o di gruppo e una maschera di accesso che definisce i diritti che sono garantiti al SID.
La maschera contiene quattro bit per indicare i diritti di accesso di lettura, scrittura, esecuzione e tutti i diritti.
Altri bit indicano ulteriori diritti
EsempioEsempio
file SID GSID ACL SACL
deny pippo 111111 allow franz 11000 allow everyone 10000
audit franz
111111
Scansione delle ACLScansione delle ACL La scansione si ferma alla prima ACE in cui
corrisponde l’user o il group SID del processo che chiede di usare la risorsa se è DENY allora NO altrimenti ci deve essere ALLOW dell’operazione richiesta
I DENY sono sempre all’inizio per successive operazioni rivolte alla stessa risorsa si
usa la stessa ACE Per default
ACL assente => accesso sempre permesso ACL vuota => accesso sempre negato
File cifratiFile cifrati in Windows NT il file system permette di crittare i
file mediante una chiave di 128 bit (diversa per ogni file)
la chiave è usata per crittare il file (blocco a blocco) la chiave cifrata con la chiave pubblica dell’utente è
inserita nel Registry per decrifare il file c’è bisogno della chiave segreta
dell’utente Se il file deve essere condiviso, la chiave di cifratura
è cifrata con le chiavi pubbliche di tutti gli utenti che vi possono accedere
Cronologia di UnixCronologia di Unix
1960-70 MIT, Bell Labs e GE lavorano al S.O. MULTICS
Bell lascia il progetto e Ken Thompson inizia lo sviluppo di Unix
Sviluppato in C su PDP-11 ‘74 Portabilità attraverso quella del compilatore C Networking con TCP/IP
Cronologia di UnixCronologia di Unix
release 2.0 di Linux in ‘96 0.5M molto software viene portato su Linux esiste una GUI (KDE) Linux simile a Unix, condivide con
quest’ultimo circa l’80% delle chiamate di sistema
Login e passwordLogin e password
ogni utente autorizzato ha login e password ed identificato con userID e groupID
le password sono criptate con una funzione one-way sono contenute in un file (spesso /etc/passwd)
accessibile (rw) solo da root questo file è separato da quello di profilo (spesso
/etc/profile) che contiene le azioni specifiche da eseguire al login che è accessibile dall’utente
UID e GIDUID e GID
UID sono interi a 16 bit (0-65535) UID speciali
0 = root, 1 = daemon (lp) 9 = audit
i GID sono simili: 0 = system 1 = daemon per device...
Utente RootUtente Root
root può fare quasi tutto, tranne recuperare le password (nessuno lo può fare) può essere qualsiasi utente può montare e smontare file systems decidendo gli
accessi consentiti quindi root è anche un punto debole: conviene separare i diversi compiti del system
manager usando altri utenti come daemon per il networking
Punti importanti sulla sicurezza Punti importanti sulla sicurezza in Unixin Unix
la politica degli accessi è espressa tramite ACL semplificate
Il metodo per consentire ad un processo di accedere a risorse per cui non avrebbe i permessi è l’invocazione controllata
File system in UnixFile system in Unix
Unix organizza i file in una struttura ad albero, i nodi interni sono folder (comunque file) e le foglie sono i file semplici
ogni file nella directory è un puntatore ad un i-node che contiene varie informazioni mode, link counter,uid, gid dell’owner,
time, block count, posizione fisica
ACL in UnixACL in Unix
12 bit ℓ
link counter
rwx r-- r--
permessi del gruppo dell’owner
permessi di tutti gli altri
permessi dell’owner
Controllo delle ACLControllo delle ACL
quando un processo (UID e GID) chiede di accedere un file: i permessi vengono esaminati da sinistra a destra,
se UID è l’owner del file allora valgono i primi 3 bit
se il GID è quello dell’owner del file allora vale la seconda terna
altrimenti vale la terza terna
DirectoryDirectory
ogni utente ha una home ed altre directory si creano con mkdir
Le directory hanno permessi come i file ma con i seguenti significati: x= è richiesto per entrare (cd) nella directory e per
aprire file in essa (non si può fare ls) w= creare e distruggere file r= si può fare ls
Invocazione controllataInvocazione controllata
in Unix è possibile specificare che un eseguibile E quando viene invocato da un processo P non prende lo UID e GID di P bensì quelli del creatore di E
se questo è root o un utente con privilegi particolari allora questi vengono “prestati” all’utente di P
un tale programma si chiama SETUID o SETGID
Invocazione controllataInvocazione controllata
l’invocazione controllata è il modo in cui UNIX media TUTTE le richieste di accesso alle risorse
Per ogni richiesta avviene l’invocazione di un processo di sistema eseguito come root (o utente speciale) che controlla che la richiesta sia autorizzata e, se lo è, esegue l’azione richiesta e poi ritorna all’utente
EsempioEsempio
gestione di una stampante lp /dev/lp
owner un daemon (lp) ACL rw- --- --- nessuno a parte lp può usare la stampante
ma se definiamo un programma stampa(lp) che accede alla stampante e tale che: il suo owner sia il daemon lp e sia SETUID,
allora ogni utente può usare la stampante e SOLO con stampa(lp)
Invocazione ed incapsulamentoInvocazione ed incapsulamento
ogni utente può usare l’invocazione controllata per ottenere incapsulamento
se l’utente U ha un file X che vuole proteggere, cioè vuole che venga consultato solo con un dato programma PX, allora può fare così: crea utente UX owner di PX e di X (con permessi rw) e
rende PX SETUID poi rende PX eseguibile da Y
Y eseguendo PX diventa UX e quindi può accedere a X
SETUIDSETUID
Un comando con SETUID root è passwd cambia la password deve accedere al file delle password crittate
Un altro è login chmod 4/// nome --> SUID all’esecuzione chmod 2/// nome --> SGID all’esecuzione
Processo di loginProcesso di login
riceve login e passwd codifica la passwd e controlla che sia corretta nel profile trova l’ambiente (sh, csh, ksh…) apre input e output standard esegue setuid e setgid dell’utente esegue la shell e termina la shell continua con UID e GID giuste
1. ogni comando nella shell inizia un processo che eredita la UID e GID della shell
2. ogni file che viene creato riceve quella UID e GID
3. quando un processo tenta di accedere per la prima volta ad un file la UID e GID sono usate per controllare se l’accesso è consentito
4. il processo riceve un file descriptor e nelle successive operazioni, non ci sono più controlli
5. se il modo di un file cambia, il cambiamento entra in effetto dopo la chiusura
Protezione delle deviceProtezione delle device
sono come files e quindi hanno i loro permessi:
/dev/mem mappa della memoria fisica /dev/kmem mappa della memoria virtuale
il system manager non deve lasciare permessi pericolosi
Possono condurre ad attacchi al livello sottostante
mountmount
mount serve per montare file systems: offre opzioni di sicurezza
-r = read only nosuid = mettere a 0 tutti i SUID e SGID bit noexec = nessun binario può essere eseguito
AuditingAuditing
ricorda i fatti rilevanti per la sicurezza in un file protetto: per scoprire l’intrusione per rispondere all’intrusione (pericoloso)
oltre a restringere l’accesso al file di log, conviene mandarlo su altre macchine o stamparlo
Auditing e SETUIDAuditing e SETUID
i programmi SETUID mettono in crisi l’auditing perchè viene ricordato l’UID del processo che è diverso da quello dell’utente che richiede l’operazione
abbiamo visto che ci sono comandi del sistema per risalire alla UID e GID reale uid=getuid(), gid=getgid() // reale uid=geteuid(), gid=getegid() // effettivo
Problemi con l’invocazione Problemi con l’invocazione controllatacontrollata
Il meccanismo dell’invocazione controllata si presta ad un attacco molto pericoloso ed usato di frequente: Stack overflow
L’intruder acquisisce i diritti di root e può causare molti danni...
Access Control List in UnixAccess Control List in Unix
Al pari delle ultime versioni di Windows, Al pari delle ultime versioni di Windows, anche in Unix è possibile usare le ACL, anche in Unix è possibile usare le ACL, descritte secondo lo standard POSIXdescritte secondo lo standard POSIX
Non tutte le versioni di Unix e di Linux Non tutte le versioni di Unix e di Linux supportano tale standardsupportano tale standard
Comunque non tutte le applicazioni Comunque non tutte le applicazioni controllano le ACLcontrollano le ACL
Posix ACLPosix ACL
Tipi di ACL entry Owner user::rwx Named user user:name:rwx Owning group group::rwx Named group group:name:rwx Mask mask::rwx Others other::rwx
Posix ACLPosix ACL
ACL minime Contengono solo tre entry Sono equivalenti ai bit di permesso di UNIX
tradizionale ACL estese
Hanno più di tre ACL entry Contengono una mask entry Possono contenere qualunque numero di named
user e di named group entries
Funzionamento delle ACLFunzionamento delle ACL
Le ACL minime funzionano come al solito Le ACL estese hanno il seguente funzionamento
Tutti i named user e i named group entrano a far parte della classe group
Bisogna distinguire fra: permessi della classe group ACL entry della classe group
I permessi della classe group sono contenuti nella maschera e rappresentano un "upper bound" ai permessi che possono essere ottenuti dalle entry della classe gruppo
EsempioEsempio
Con i seguenti permessi user::rw group::r others::r user:jane:rwx mask:rw
l’utente jane ha diritti rw
ACL di defaultACL di default
Come vengono ereditate le default ACL? la default ACL viene copiata nella access ACL dei nuovi
file la default ACL viene copiata nella default ACL delle nuove
directory Ulteriori dettagli
quando un file viene creato possono essere specificati dei diritti di accesso viene effettuata l'intersezione tra questi e la default ACL
se una directory non ha default ACL, si utilizza il meccanismo tradizionale UNIX (umask, etc.)
Intrusion detectionIntrusion detection
Un meccanismo estremamente importante da Un meccanismo estremamente importante da utilizzare per controllare la sicurezza di un utilizzare per controllare la sicurezza di un sistema è quello degli IDS (Intrusion Detection sistema è quello degli IDS (Intrusion Detection System)System)
Si può fare a livello di host (HIDS) e a livello Si può fare a livello di host (HIDS) e a livello di network (NIDS)di network (NIDS)
Principi di basePrincipi di base
Distinguere situazioni normali da quelle Distinguere situazioni normali da quelle anomaleanomale
L’utente in condizioni normaliL’utente in condizioni normali si comporta in modo più o meno prevedibilesi comporta in modo più o meno prevedibile non compie azioni atte a violare la sicurezzanon compie azioni atte a violare la sicurezza i propri processi compiono solo azioni permessei propri processi compiono solo azioni permesse
Scopi di un IDSScopi di un IDS
Scoprire un ampia gamma di intrusioni, sia già Scoprire un ampia gamma di intrusioni, sia già note che non notenote che non note
Scoprirle velocemente, non necessariamente in Scoprirle velocemente, non necessariamente in tempo realetempo reale
Presentare i report delle analisi in formato Presentare i report delle analisi in formato semplice e facilmente comprensibilesemplice e facilmente comprensibile
Essere accurato, evitando possibilmente falsi Essere accurato, evitando possibilmente falsi positivi e falsi negativipositivi e falsi negativi
Modelli per l’IDSModelli per l’IDS Detection di anomalieDetection di anomalie
Sequenze di azioni non usuali possono essere Sequenze di azioni non usuali possono essere intrusioniintrusioni
Detection di uso malevoloDetection di uso malevolo Si conosce cosa quali sequenze di azioni possono Si conosce cosa quali sequenze di azioni possono
essere intrusioniessere intrusioni Detection in base a specificheDetection in base a specifiche
Si conoscono le situazioni derivanti da intrusioniSi conoscono le situazioni derivanti da intrusioni I modelli possono essere statici o adattiviI modelli possono essere statici o adattivi
Modelli per la scoperta di anomalieModelli per la scoperta di anomalie
Si analizzano insiemi di caratteristiche del Si analizzano insiemi di caratteristiche del sistema confrontando i valori con quelli attesi sistema confrontando i valori con quelli attesi e segnalando quando le statistiche non sono e segnalando quando le statistiche non sono paragonabili a quelle atteseparagonabili a quelle attese Metriche a sogliaMetriche a soglia Momenti statisticiMomenti statistici Modelli di MarkovModelli di Markov
Metriche a soglieMetriche a soglie
Contare il numero di volte che un evento si Contare il numero di volte che un evento si presentapresenta Ci si aspetta tra Ci si aspetta tra mm e e nn occorrenze occorrenze Se il numero cade al di fuori, c’è un’anomaliaSe il numero cade al di fuori, c’è un’anomalia
EsempioEsempio Windows: blocco dopo k tentativi di login falliti. Il Windows: blocco dopo k tentativi di login falliti. Il
range è (0, range è (0, kk–1).–1). k k o più tentativi destano sospettoo più tentativi destano sospetto
ProblematicheProblematiche
E’ difficile trovare l’intervallo correttoE’ difficile trovare l’intervallo corretto Talvolta si possono creare situazioni in cui Talvolta si possono creare situazioni in cui
l’intervallo diventa molto più grandel’intervallo diventa molto più grande Esempio utenti francesi che usano una tastiera Esempio utenti francesi che usano una tastiera
americanaamericana
Momenti statisticiMomenti statistici
L’analizzatore calcola la deviazione standard L’analizzatore calcola la deviazione standard (i primi due momenti) o altre misure di (i primi due momenti) o altre misure di correlazione (momenti di ordine superiore)correlazione (momenti di ordine superiore) Se i valori misurati di un certo momento cadono al Se i valori misurati di un certo momento cadono al
di fuori di un certo intervallo vi è un’anomaliadi fuori di un certo intervallo vi è un’anomalia ProblematicheProblematiche
I profili possono evolvere nel tempo, si possono I profili possono evolvere nel tempo, si possono “pesare” opportunamente i dati o alterare le regole “pesare” opportunamente i dati o alterare le regole di detectiondi detection
Esempio: IDESEsempio: IDES
Developed at SRI International to test Denning’s Developed at SRI International to test Denning’s modelmodel Represent users, login session, other entities as ordered Represent users, login session, other entities as ordered
sequence of statistics <sequence of statistics <qq0,0,jj, …, , …, qqnn,,jj> >
qqii,,jj (statistic (statistic ii for day for day jj) is count or time interval) is count or time interval Weighting favors recent behavior over past behaviorWeighting favors recent behavior over past behavior
AAkk,,jj sum of counts making up metric of sum of counts making up metric of kkth statistic on th statistic on jjth dayth day
qqkk,,ll+1+1 = = AAkk,,ll+1 +1 – – AAkk,,ll + 2+ 2––rtrtqqkk,,ll where where tt is number of log entries/total time is number of log entries/total time
since start, since start, rr factor determined through experience factor determined through experience
Example: HaystackExample: Haystack
Let Let AAnn be be nnth count or time interval statisticth count or time interval statistic
Defines bounds Defines bounds TTLL and and TTUU such that 90% of values for such that 90% of values for
AAiis lie between s lie between TTLL and and TTUU
Haystack computes Haystack computes AAnn+1+1
Then checks that Then checks that TTL L ≤ ≤ AAnn+1+1 ≤ ≤ TTUU
If false, anomalousIf false, anomalous Thresholds updatedThresholds updated
AAii can change rapidly; as long as thresholds met, all is well can change rapidly; as long as thresholds met, all is well
Modelli di MarkovModelli di Markov
L’ipotesi è che la storia passata influenzi la prossima L’ipotesi è che la storia passata influenzi la prossima transizione di statotransizione di stato
Le anomalie sono riconosciute da Le anomalie sono riconosciute da sequenzesequenze di eventi, di eventi, e non sulle occorrenze di singoli eventie non sulle occorrenze di singoli eventi
Il sistema deve essere addestrato per riconoscere Il sistema deve essere addestrato per riconoscere sequenze validesequenze valide l’addestramento è svolto con utenti non anomalil’addestramento è svolto con utenti non anomali l’addestramento produce migliori risultati con una quantità l’addestramento produce migliori risultati con una quantità
maggiore di datimaggiore di dati i dati dovrebbero coprire tutti le sequenze normali del i dati dovrebbero coprire tutti le sequenze normali del
sistemasistema
Esempio: TIMEsempio: TIM
Time-based Inductive LearningTime-based Inductive Learning Sequence of events is Sequence of events is abcdedeabcabcabcdedeabcabc TIM derives the following rules:TIM derives the following rules:
RR11: : ababcc (1.0) (1.0) RR22: : ccdd (0.5) (0.5) RR33: : ccee (0.5) (0.5)
RR44: : ddee (1.0) (1.0) RR55: : eeaa (0.5) (0.5) RR66: : eedd (0.5) (0.5) Seen: Seen: abdabd; triggers alert; triggers alert
cc always follows always follows abab in rule set in rule set Seen: Seen: acfacf; no alert as multiple events can follow ; no alert as multiple events can follow cc
May add rule May add rule RR77: : ccff (0.33); adjust (0.33); adjust RR22, , RR33
Sequenze di chiamate di sistemaSequenze di chiamate di sistema
Forrest: definisce il normale andamento in Forrest: definisce il normale andamento in termini di sequenze di chiamate di sistema termini di sequenze di chiamate di sistema ((traccetracce))
Negli esperimenti è in grado di distinguere Negli esperimenti è in grado di distinguere sendmailsendmail e e lpdlpd da altri programmi da altri programmi
Si addestra il sistema con un insieme di tracce Si addestra il sistema con un insieme di tracce e si cerca se la traccia corrente è anomalae si cerca se la traccia corrente è anomala
Problematiche ulterioriProblematiche ulteriori
Modelli statisticiModelli statistici spesso si usa la distribuzione gaussianaspesso si usa la distribuzione gaussiana alternative sono clusterizzazione e tecniche non alternative sono clusterizzazione e tecniche non
parametricheparametriche Selezione di featureSelezione di feature
CPU versus I/OCPU versus I/O selezione automaticaselezione automatica
Modelli per il misusoModelli per il misuso
Si controlla se una sequenza di istruzioni da Si controlla se una sequenza di istruzioni da eseguire è già nota essere potenzialmente eseguire è già nota essere potenzialmente dannosa per la sicurezza del sistemadannosa per la sicurezza del sistema
La conoscenza è rappresentata mediante regole La conoscenza è rappresentata mediante regole e il sistema controlla se la sequenza soddisfa e il sistema controlla se la sequenza soddisfa una di queste regoleuna di queste regole
Non si possono scoprire intrusioni non note Non si possono scoprire intrusioni non note precedentementeprecedentemente
Esempi di IDS a regoleEsempi di IDS a regole
IDIOT monitorizza i log cercando sequenze di IDIOT monitorizza i log cercando sequenze di eventi che corrispondono ad attacchieventi che corrispondono ad attacchi
STAT analizza le transizioni di stato, STAT analizza le transizioni di stato, concentrandosi sul modo come alcuni privilegi concentrandosi sul modo come alcuni privilegi sono ottenutisono ottenuti
NFR controlla il traffico di rete, analizzando e NFR controlla il traffico di rete, analizzando e filtrando i pacchettifiltrando i pacchetti
Modelli mediante specificheModelli mediante specifiche
Si determina se una sequenza di azioni viola Si determina se una sequenza di azioni viola una specifica di come un programma o un una specifica di come un programma o un sistema dovrebbe funzionaresistema dovrebbe funzionare
Architettura di un IDSArchitettura di un IDS
E’ essenzialmente un sistema di auditing sofisticatoE’ essenzialmente un sistema di auditing sofisticato AgenteAgente è una sorta di logger; it gathers data for analysis è una sorta di logger; it gathers data for analysis DirettoreDirettore è un analizzatore; analizza i dati ottenuti dagli è un analizzatore; analizza i dati ottenuti dagli
agenti secondo regole interneagenti secondo regole interne NotificatoreNotificatore ottiene i risultati dal direttore e compie alcune ottiene i risultati dal direttore e compie alcune
azioniazioni Può semplicemente notificare messaggi agli amministratoriPuò semplicemente notificare messaggi agli amministratori Può riconfigurare gli agentiPuò riconfigurare gli agenti Può attivare meccanismi di rispostaPuò attivare meccanismi di risposta
AgenteAgente
Ottiene le informazioni e le invia al direttoreOttiene le informazioni e le invia al direttore Può mettere le informazioni in altre formePuò mettere le informazioni in altre forme
Preprocessing dei record per estrarre parti rilevantiPreprocessing dei record per estrarre parti rilevanti Può cancellare informazioni non necessariePuò cancellare informazioni non necessarie Il direttore può richiedere all’agente ulteriori Il direttore può richiedere all’agente ulteriori
informazioniinformazioni Si distinguono in agenti host e agenti networkSi distinguono in agenti host e agenti network
DirettoreDirettore
Colleziona le informazioni inviate dagli agentiColleziona le informazioni inviate dagli agenti Elimina i record ridondanti o non necessariElimina i record ridondanti o non necessari
Analizza le informazioni rimanenti per Analizza le informazioni rimanenti per determinare se si è sotto attaccodeterminare se si è sotto attacco Usa le tecniche viste primaUsa le tecniche viste prima
Gira su un sistema separatoGira su un sistema separato Non influenza le performance dei sistemi Non influenza le performance dei sistemi
monitoratimonitorati
NotificatoreNotificatore
Accetta le informazioni dal direttoreAccetta le informazioni dal direttore Prende le decisioni appropriatePrende le decisioni appropriate
Notificare messaggi agli amministratoriNotificare messaggi agli amministratori Rispondere all’attaccoRispondere all’attacco
Spesso usano delle GUISpesso usano delle GUI
Combining Sources: DIDSCombining Sources: DIDS
I monitoraggi di host e di network non sono I monitoraggi di host e di network non sono generalmente sufficienti da soli a scoprire generalmente sufficienti da soli a scoprire alcuni tipi di attacchialcuni tipi di attacchi Un’attaccante prova a fare telnet con vari login: i Un’attaccante prova a fare telnet con vari login: i
IDS network lo scoprono, ma non gli IDS hostIDS network lo scoprono, ma non gli IDS host L’attaccante prova entrare senza la password: gli L’attaccante prova entrare senza la password: gli
IDS host lo rilevano, ma non quelli di reteIDS host lo rilevano, ma non quelli di rete DIDS usa gli agenti sugli host da monitorare DIDS usa gli agenti sugli host da monitorare
ed un monitor di reteed un monitor di rete
Risposte alle intrusioniRisposte alle intrusioni
Prevenzione: l’attacco deve essere scoperto Prevenzione: l’attacco deve essere scoperto prima del completamentoprima del completamento
Una tecnica è il Jailing: far credere Una tecnica è il Jailing: far credere all’attaccante che l’intrusione è andata a buon all’attaccante che l’intrusione è andata a buon fine ma confinare le sue azioni in un dominio fine ma confinare le sue azioni in un dominio in cui non può fare danni (o causarne pochi)in cui non può fare danni (o causarne pochi) far scaricare file corrotti o falsifar scaricare file corrotti o falsi imitare il sistema veroimitare il sistema vero
Risposta alle intrusioniRisposta alle intrusioni
Trattamento delle intrusioniTrattamento delle intrusioni preparazionepreparazione identificazioneidentificazione contenimento (passivo/attivo)contenimento (passivo/attivo) eradicazioneeradicazione recuperorecupero seguito (apprendimento) seguito (apprendimento)
Sicurezza nei databaseSicurezza nei database
La protezione dei dati di un database necessita La protezione dei dati di un database necessita di strumenti particolari, alcuni dei quali di strumenti particolari, alcuni dei quali mutuati da quelli usati in altri settorimutuati da quelli usati in altri settori
Gli obiettivi sono comunque gli stessiGli obiettivi sono comunque gli stessi IntegritàIntegrità ConfidenzialitàConfidenzialità DisponibilitàDisponibilità
Requisiti di sicurezzaRequisiti di sicurezza Integrità fisica del DB: immunità ai guasti di Integrità fisica del DB: immunità ai guasti di
sistema e di dispositivosistema e di dispositivo Integrità logica del DB: preservazione della Integrità logica del DB: preservazione della
struttura del databasestruttura del database Integrità degli elementi: accuratezza dei datiIntegrità degli elementi: accuratezza dei dati AuditabilityAuditability: tenere traccia delle operazioni: tenere traccia delle operazioni Controllo degli accessiControllo degli accessi Autenticazione degli utentiAutenticazione degli utenti DisponibilitàDisponibilità
Integrità del databaseIntegrità del database
E’ garantita in gran parte dal DBMS, oltre che E’ garantita in gran parte dal DBMS, oltre che dal S.O.dal S.O.
Strumenti fondamentali sonoStrumenti fondamentali sono log delle transazioni su memoria stabilelog delle transazioni su memoria stabile copie di backup effettuate regolarmentecopie di backup effettuate regolarmente Update a due fasiUpdate a due fasi
Meccanismi standardMeccanismi standard ripresa a caldoripresa a caldo ripresa a freddoripresa a freddo
Integrità degli elementiIntegrità degli elementi
Controllo della corrispondenza tra i tipi dei Controllo della corrispondenza tra i tipi dei campi e i valoricampi e i valori
Controllo degli accessiControllo degli accessi Log dei cambiamentiLog dei cambiamenti
AuditabilityAuditability
Tenere traccia delle operazioni svolte sul DB Tenere traccia delle operazioni svolte sul DB ha un duplice scopoha un duplice scopo garantire l’integrità fisica del DBgarantire l’integrità fisica del DB accesso incrementale ai datiaccesso incrementale ai dati
Problemi nella granularità delle operazioni da Problemi nella granularità delle operazioni da tracciaretracciare
Controllo degli accessiControllo degli accessi Normalmente i database relazionali usano Normalmente i database relazionali usano
sistemi DAC per il controllo degli accessisistemi DAC per il controllo degli accessi La primitiva GRANT permette di concedere La primitiva GRANT permette di concedere
diritti su tabelle agli utentidiritti su tabelle agli utenti I diritti standard sonoI diritti standard sono
SELECTSELECT INSERTINSERT UPDATEUPDATE DELETEDELETE REFERENCESREFERENCES
Controllo degli accessiControllo degli accessi
E’ possibile specificare la clausola WITH E’ possibile specificare la clausola WITH GRANT OPTIONGRANT OPTION il diritto può essere propagatoil diritto può essere propagato
Il diritto può essere revocato con la primitiva Il diritto può essere revocato con la primitiva REVOKEREVOKE
I diritti solitamente sono memorizzati (insieme I diritti solitamente sono memorizzati (insieme agli altri metadati) nelle tabelle di sistemaagli altri metadati) nelle tabelle di sistema
Controllo degli accessiControllo degli accessi
Come nei SO, anche nei DB esiste il concetto Come nei SO, anche nei DB esiste il concetto di amministratore: l’utente DBAdi amministratore: l’utente DBA
Ha il diritto di creare e cancellare utenti Ha il diritto di creare e cancellare utenti Ha il diritto di accesso a tutto il databaseHa il diritto di accesso a tutto il database Può concedere e revocare diritti al pari del Può concedere e revocare diritti al pari del
possessorepossessore
Controllo degli accessiControllo degli accessi
Alcuni DBMS, tra cui PostgreSQL, Alcuni DBMS, tra cui PostgreSQL, consentono l’uso di RBACconsentono l’uso di RBAC
E’ possibile creare dei ruoliE’ possibile creare dei ruoli ruolo utenteruolo utente ruolo grupporuolo gruppo
I diritti si assegnano al ruoloI diritti si assegnano al ruolo Si può assegnare il diritto ad assumere un Si può assegnare il diritto ad assumere un
ruoloruolo
Uso delle visteUso delle viste
E’ possibile creare delle viste per restringere E’ possibile creare delle viste per restringere l’accesso solo ad alcuni dati di una tabellal’accesso solo ad alcuni dati di una tabella
E’ possibile quindi rendere accessibile a E’ possibile quindi rendere accessibile a determinati utenti solo la vista e non la tabella determinati utenti solo la vista e non la tabella da cui provieneda cui proviene
Autenticazione degli utentiAutenticazione degli utenti
Gli utenti sono autenticati con meccanismi Gli utenti sono autenticati con meccanismi simili a quelli visti per i S.O.simili a quelli visti per i S.O.
I DBMS di solito non si fidano I DBMS di solito non si fidano dell’autenticazione del S.O., la effettuano dell’autenticazione del S.O., la effettuano autonomamenteautonomamente
Le informazioni degli utenti sono memorizzate Le informazioni degli utenti sono memorizzate nelle tabelle di sistemanelle tabelle di sistema
DisponibilitàDisponibilità
La disponibilità deve essere garantita La disponibilità deve essere garantita disciplinando opportunamente gli accessi disciplinando opportunamente gli accessi concorrenti ed evitando che un processo concorrenti ed evitando che un processo “maligno” monopolizzi il DB“maligno” monopolizzi il DB
Dati sensibiliDati sensibili
I database possono contenere dati sensibili, che I database possono contenere dati sensibili, che non dovrebbe essere accessibili al pubbliconon dovrebbe essere accessibili al pubblico
Un problema sorge quando i dati sensibili sono Un problema sorge quando i dati sensibili sono una parte dei dati, ad esempio una parte dei dati, ad esempio alcuni record di una tabellaalcuni record di una tabella alcuni campi di una tabellaalcuni campi di una tabella
Possono esistere vari gradi di sensibilità a Possono esistere vari gradi di sensibilità a seconda del motivo per cui il dato è dichiarato seconda del motivo per cui il dato è dichiarato sensibilesensibile
Accesso ai dati sensibiliAccesso ai dati sensibili
Livelli in base alla sicurezza e alla precisioneLivelli in base alla sicurezza e alla precisione Non disclosedNon disclosed Non può essere trovato attraverso altre queryNon può essere trovato attraverso altre query Potrebbe essere recuperato da altre queryPotrebbe essere recuperato da altre query Restituito come risultatoRestituito come risultato
Problema dell’inferenzaProblema dell’inferenza
Tipi di disclosureTipi di disclosure
Dato esatto: x vale 12Dato esatto: x vale 12 Limiti inferiori o superiori: x è compreso tra Limiti inferiori o superiori: x è compreso tra
10 e 1510 e 15 Risposte negative: x non vale 11Risposte negative: x non vale 11 Esistenza: Caio possiede un cellulare Esistenza: Caio possiede un cellulare Valore probabile: x vale 10 con probabilità Valore probabile: x vale 10 con probabilità
0.250.25
Problema dell’inferenzaProblema dell’inferenza
E’ possibile ottenere dati sensibili attraverso E’ possibile ottenere dati sensibili attraverso l’uso di query opportune che non producono l’uso di query opportune che non producono dati sensibilidati sensibili
Tale problema è sentito nei database statisticiTale problema è sentito nei database statistici fornire pubblicamente dati aggregati a scopi fornire pubblicamente dati aggregati a scopi
statisticistatistici evitare l’accesso ai singoli recordevitare l’accesso ai singoli record
EsempioEsempio
Name Position Salary Age
Matt Teacher 50K 33
Leonard Teacher 50K 50
Holly Principal 60K 37
Heidi Aide 20K 20
Celia Teacher 40K 45
EsempioEsempio
SELECT SUM(SALARY) WHERE SELECT SUM(SALARY) WHERE POSITION=‘TEACHER’ si può eseguire POSITION=‘TEACHER’ si può eseguire senza problemisenza problemi
poi SELECT SUM(SALARY) WHERE poi SELECT SUM(SALARY) WHERE POSITION=‘TEACHER’ AND POSITION=‘TEACHER’ AND AGE > 40 non si può eseguire perchè (per differenza con la prima) troviamo lo stipendio di Matt
SoluzioneSoluzione
La soluzione è quella di tenere traccia di tutte La soluzione è quella di tenere traccia di tutte le interrogazioni effettuate e di proibire le le interrogazioni effettuate e di proibire le interrogazioni che conducono, tramite i interrogazioni che conducono, tramite i risultati di quelle precedenti, ad accedere ai risultati di quelle precedenti, ad accedere ai dati di uno (o pochi) recorddati di uno (o pochi) record
Esistono metodi per inferire dati da somme, Esistono metodi per inferire dati da somme, medie, conteggi, mediane, ecc.medie, conteggi, mediane, ecc.
Altre soluzioniAltre soluzioni
Un altro approccio è quello di usare dati Un altro approccio è quello di usare dati opportunamente modificati prima di calcolare opportunamente modificati prima di calcolare le queryle query esclusione di alcuni datiesclusione di alcuni dati campionamento casuale campionamento casuale perturbazione casuale dei datiperturbazione casuale dei dati
Database multilivelloDatabase multilivello
Si supera la distinzione binaria tra dati Si supera la distinzione binaria tra dati sensibili e non sensibilisensibili e non sensibili
Ogni singolo dato del DB può avere un grado Ogni singolo dato del DB può avere un grado di sicurezzadi sicurezza
Una tupla può essere vista comeUna tupla può essere vista come<v<v11, c, c11, v, v22, c, c22, ..., v, ..., vnn, c, cnn, ct>, ct>
I cI cii rappresentano il livello di sicurezza del rappresentano il livello di sicurezza del dato vdato vii e ct il livello di sicurezza dell’intera e ct il livello di sicurezza dell’intera tuplatupla
EsempioEsempio
NomeNome EtàEtà Stip.Stip. Cred.Cred.
RossiRossi UU 2727 CC 10K10K SS AA CC
VerdiVerdi UU 3030 CC 20K20K SS CC TSTS
NeriNeri UU 4242 CC 100K100K TSTS AA CC
BondBond TSTS 3535 TSTS 85K85K TSTS AA TSTS
GialliGialli UU 5050 CC 120K120K TSTS AA CC
Si usa il modello di Bell-La Padula (U<C<S<TS)Si usa il modello di Bell-La Padula (U<C<S<TS)
EsempioEsempio
La tabella in lettura per un utente C èLa tabella in lettura per un utente C è
NomeNome EtàEtà Stip.Stip. Cred.Cred.
RossiRossi UU 2727 CC 10K10K SS AA CC
VerdiVerdi UU 3030 CC 20K20K SS TSTS
NeriNeri UU 4242 CC TSTS AA CC
GialliGialli UU 5050 CC TSTS AA CC
EsempioEsempio
La stessa tabella può essere vista in modi La stessa tabella può essere vista in modi diversi a seconda del grado di sicurezza diversi a seconda del grado di sicurezza dell’utentedell’utente
Allo stesso modo si dovranno controllare gli Allo stesso modo si dovranno controllare gli accessi in scrittura (proprietà * del modello di accessi in scrittura (proprietà * del modello di Bell-La Padula): ad esempio un utente TS non Bell-La Padula): ad esempio un utente TS non può scrivere un dato con sicurezza S, C o Upuò scrivere un dato con sicurezza S, C o U
Realizzazione Realizzazione
Esistono vari modi per realizzare un database Esistono vari modi per realizzare un database multilivellomultilivello Partizionamento: le tabelle sono memorizzate (e Partizionamento: le tabelle sono memorizzate (e
utilizzate) separatamenteutilizzate) separatamente Cifratura di campi sensibiliCifratura di campi sensibili Marcatura con lock di integritàMarcatura con lock di integrità