ESP: Domande
Questa pagina è stata realizzata con gli appunti inviati nel periodo oscuro in cui la sezione Unicrema era chiusa! Non sedetevi sugli allori, collaborate ancora!:)
replicabili.Svantaggi:Costose, intrusive, non tutelano la privacy.
Un programma che svolge la funzione di utilità ma che in realtà compie sul sistema all'insaputa dell'utente operazioni dannose. Un trojan horse in un contesto di politica discrezionale può scalare i privilegi in base alle politiche di restrizione imposte sull'utente violato. Un trojan horse infettando programmi di un utente riceve (secondo la politica discrezionale) tutti i privilegi associati all'utente stesso. In presenza di politica multilivello, fallirebbe perché utenti di livello alto possono eseguire tutte le operazioni su utenti di livello inferiore ma il contrario non é possibile.
Utenti=persone. Soggetti = Processi (programmi in esecuzione). Operano per conto degli utenti, come in Tron.
Lo smurf attack sfrutta le debolezze del protocollo ICMP e punta al Denial of Service (DoS) di un host. L'attacco consiste di due fasi : fare lo spoofing dell'indirizzo IP che si vuole attaccare e poi mandare un ping in broadcast. A questo punto tutti gli host delle rete broadcast invieranno una risposta all'indirizzo spoofed provocando il DoS.Per difendersi da questo tipo di attacco bisogna rifiutare il broadcast IP interface serial.
In breve, si tratta di passare a una funzione che stampa una stringa a schermo, tipicamente una printf del linguaggio C, una stringa che in realtà contiene una serie di parametri di specifica dell'input (tipicamente si usano gli specificatori di formato x per esaminare il contenuto della memoria e %n per sovrascrivere parti della memoria, in particolare dello stack, questo permette attacchi di tipo stack overflow e return to libc). In pratica, quando si vuole stampare una stringa s usando la printf() o un'altra funzione C che accetta un numero illimitato di specificatori di formato, bisogna scrivere la funzione printf("%s",StringPointer) e non printf StringPointer).
È un software di crittografia per la posta elettroniCa e la protezione di file di uso personale.Permette di firmare una email lasciando il testo in chiaro, permette di cifrare una email senza firmarla, permette di fare entrambe le cose.L'autentificazione avviene tramite una funzione hash. Lato Mittente: Il messaggio in chiaro viene crittato tramite una funzione hash ed a quest'ultimo viene associata la chiave privata del mittente. Come terzo passaggio il risultato di questa unione viene assimilato con il messaggio in chiaro originale. Il risultato viene compresso e spedito al destinatario. Lato Destinatario: il messaggio crittato viene decompresso e suddiviso in due parti, una contenente il messaggio in chiaro e l'altra contenente la firma. Al messaggio in chiaro viene applicata la funzione di hash, mentre alla firma viene associata la chiave pubblica del mittente. L'operazione finale è il confronto tra le due parti.
Il principio del minimo privilegio limita la possibilità di abusi e danni per violazioni perché assegna il privilegio minimo a tutti gli utenti; così facendo non si può intaccare il sistema.(spiegare i danni di questa politica). I gruppi raggruppano utenti(statici); i ruoli invece raggruppano privilegi(dinamici).
SetUid imposta il valore intero unico per ogni UTENTE(login name, etc/shadow). SetGid imposta il GRUPPO all'utente. Ogni utente è membro di un gruppo primario identificato da un numero (etc/group).
Metodo: Si costruisce una matrice M dove le righe sono le risorse, le colonne e i processi -M[i,j] = R se il processo j può leggere o osservare la risorsa i. -M[i,j]=M se il processo j può modificare, creare, cancellare la risorsa i. Si cerca la presenza di due colonne e di due righe che mostrano il pattern con la M incrociata tra due R e successivamente si completa la matrice con il flusso potenziale di informazione. Si analizza infine la matrice per verificare se ci sono flussi di informazione indesiderati. Si possono scoprire flussi di informazione non ovvi tra le istruzioni di un programma. Per esempio: -B := A realizza un flusso di informazione da A a B (flusso esplicito) -If D=1 then B:=A realizza due flussi, da A a B ma anche da D a B (flusso implicito).
L'attaccante inserisce %n dove il numero di carateri in stinga deve essere uguale all'indirizzodello stack dove inizia il codice maligno. Sovrascrive lo stack con l'indirizzo RET printf(buffer) scrive il numero di caratteri in stinga in RET.
Un virus crittografico è un virus polimorfo che sfrutta tecniche crittografiche per cambiare forma. Contiene 3 parti:
Per quanto riguarda AS i compiti principali sono:
Per TGS:
Falso positivo: attività non intrusiva ma anomala. Falso negativo: attività anomala ma non intrusiva.
Nel principio del minimo privilegio è opportuno che le utenze abbiano i soli diritti necessari al normale svolgimento delle attività di competenza. Si, l'utente root quindi viola questo privilegio.
Due utenti con la stessa password hanno entrate identiche nel file delle password. Questo permette agli utenti di conoscere l'uno la password dell'altro. Nei sistemi unix si evitano queste situazioni usando una tecnica chiamata SALE. È composta da 12 bit unicI per ciascun utente e memorizzatI in chiaro. La crittazione avviene applicando una funzione di hash all'unione dei 56 bit della password in chiaro e dai 12 bit del sale. Restituisce in output 11 caratteri. Ovvio che un attacco viene reso molto più difficoltoso con l'ausilio del sale.
Un utente prova la propria identità alla CA(autorità di certificazione) dove le procedure non sono crittografiche. CA verifica l'integrità della chiave(coppia chiavi pubblica/privata generata dalla CA) e (coppia chiavi pubblica/privata generata dall'utente). CA crea un certificato digitale che contiene la chiave pubblica ed i dati identificativi dell'utente. CA firma il certificato digitale con la propria chiave privata.
Uno stack overflow è la scrittura al di fuori dei limiti della memoria assegnata allo stack che si va a sostituire alle istruzioni del programma in esecuzione. Si immagini l'utilizzo di una allocazione di memoria dedicata all'esecuzione di un programma come una pila. Mentre le istruzioni vengono allocate in quell'area partendo dall'alto verso il basso della pila, lo stack, utilizzando la sua organizzazione LIFO, crescerà dal basso verso l'alto di questa seguendo quanto indicato dallo stack pointer, un registro dedicato delle CPU. Opportunamente sfruttato questo tipo di overflow può far si che un utente malintenzionato sfrutti questa vulnerabilità per l'esecuzione di codice arbitrario che si va a sostituire a quello del programma in esecuzione.
Nell'attacco DoS il sistema nega (per errore) l'accesso ai servizi/informazioni anche ad utenti regolarmente autorizzati. Il principio su cui si basa l'attacco è semplice:
Si differenzia dal DDOS perchée in quest'ultimo ci sono agenti(zombi) in numero elevato, distribuiti su differenti computer e sincronizzati da pochi centri(master). Gli utenti delle macchine zombie sono ignari di essere strumenti usati per l'attacco DDOS. I master sono macchine infettate oppure di proprietà dell'attaccante. Quest'ultimo invia messaggi ai master che a loro volta inviano agli zombi per cominciare l'attacco. Il DDOS è diviso in due fasi
Il DOS non si compone della prima parte.
Al fine di verificare l'identità di un individuo tramite un sistema biometrico, è necessario procedere a una fase iniziale di registrazione (enrollment), durante la quale vengono acquisite una o più istanze della caratteristica biometrica. Da quest'ultima ne vengono estratte le caratteristiche discriminanti e viene costruito il modello dell'utente con più misurazioni della caratteristica di interesse.
Le politiche discrezionarie controllano l'accesso sulla base dell'identita degli utenti che lo richiedono e su regole che stabiliscono chi può (o non può) eseguire azioni sulle risorse. Sono chiamate discrezionarie perche agli utenti puo essere data l'autorita di passare i propri privilegi ad altri utenti (la concessione e la revoca di privilegi è controllata da una politica amministrativa).
No write down: un soggetto s puo scrivere solo oggetti la cui classificazione domina quella di s (λ(o) >= λ(s)). Utenti ad alto livello si possono collegare a livelli piu bassi per scrivere informazioni non sensibili.
No read up: un soggetto s puo leggere solo oggetti o la cui classificazione è dominata da quella di s (λ(s) >= λ(o)). Gli oggetti creati prendono la classificazione del soggetto che li ha creati.
Sono canali coperti che sfruttano la presenza o l'assenza di oggetti in memoria. Un esempio è il canale detto file lock: in un sistema multi utente si usa un meccanismo di lock che impedisce più modifiche contemporanee allo stesso file. Un canale nascosto può segnalare un bit di informazione sfruttando il fatto che un file può essere bloccato (locked) oppure no.
Costituisce la base del funzionamento di IPsec. Una SA (security association) è un "contratto" fra le due entità coinvolte nella comunicazione; in essa vengono stabiliti i meccanismi di protezione e le chiavi da utilizzare durante il successivo trasferimento dei dati.E' identificata da:
Contiene:
Il sistema è modellato come stati e transizioni di stato.Il livello di sicurezza degli oggetti non può cambiare se non con regole precise.
Il buffer overflow è una vulnerabilità di sicurezza che può affliggere un programma software. Consiste nel fatto che tale programma non controlla in anticipo la lunghezza dei dati in arrivo, ma si limita a scrivere il loro valore in un buffer di lunghezza prestabilita, confidando che l'utente (o il mittente) non immetta più dati di quanti esso ne possa contenere: questo può accadere se il programma è stato scritto usando funzioni di libreria di input/output che non fanno controlli sulle dimensioni dei dati trasferiti.
Esempio:
strcpy(record,user); strcat(record,":"); //Copia username("user"nel buffer("record"),appende ":" e l'hash della password ("cpw") strcat(record,cpw);
Soluzione
strncpy(record,user,MAX_STRING_LEN-1); strcat(record,":"); strncat(record,cpw,MAX_STRING_LEN-1);
Interessa qualsiasi linguaggio di programmazione e qualsiasi dbms. Interrogazioni SQL costruite sulla base di input passati da un utente possono essere manipolate a piacimento. Input trasmesso in vari modi:
Contromisure:
Esempi:
$sql="SELECT * from Utenti where login='$login' AND password='$password'"
La query può essere modificata manipolando $login che potrebbe essere
"pippo" OR "1=1 --"
Basato sul protocollo ICMP, i pacchetti ICMP hanno un payload la cui dimensione è superiore a un ceto valore, il sistema che riceve questi pacchetti va in crash.
Bisogna lavorare sul file .htaccess inserendo le seguenti regole:
Order Deny,Allow Deny from all Allow from 134.123.786.9 E sul file .htpassword inserendo le seguenti regole: AuthType Basic AuthName "Rescricted Area" AuthUserFile /usr/pippo/www require user esame05
Le tre principali minacce sono:
modificato dal mail server;
Viene criptato l'intero pacchetto IP, non rivelando, al di fuori del tunnel, indirizzi IP e porte usate da sorgente e destinazione. In questa modalità si usano collegare fra loro due diverse reti, con i rispettivi client inconsapevoli della presenza di un tunnel.
È un virus in grado di modificarsi, assume un grande numero di forme. Deve cambiare casualmente i dati che lo compongono. Deve riposizionare in modo casuale le parti che lo compongono.Inoltre difficile da riconoscere perche cambia ad ogni infezione la propria signature.
Una successione di numeri monotonicamente crescente, che identifica il pacchetto all'interno delle Security Association e previene da replay-attack.
Gli ids non si sostituiscono ai normali controlli, ma cercano di scoprire i loro fallimenti. Chi entra in un sistema abusivamente compie operazioni che un utente normale non fa. Attacchi sono di solito associati ad una violazione del controllo dell'accesso che di norma viene rilevato dall'ids. Le caratteristiche degli ids sono:
Gli IDS sono (vedi sopra).
Anomaly detection assume che tutte le attività intrusive siano anomale, basate sulla definizione di profili che descrivano il normale funzionamento.Segnala deviazioni dai profili. Capace di riconoscere nuovi attacchi. I profili rappresentano:
Problemi:
L'SSL è una suite protocollare che fornisce servizi di sicurezza ad applicazioni che usano canali di comunicazione in stream. Utilizza sia crittografia simmetrica che asimmetrica.L'authentication header fornisce supporto per l'integrità dei dati e di autenticazione dei pacchetti IP.ATTACCHI:man in the middle,male randomizzazzione della chiave crittografica. (??)
Kerberos ha tre obbiettivi:
Con il termine capability si intende in informatica un meccanismo di protezione delle risorse orientato agli oggetti complementare alle ACL. I sistemi che utilizzano le capability associano a ciascun processo una lista di capability (o C-list), che descrive per l'appunto a quali oggetti (per esempio file) il processo può accedere. Una C-list può essere formata da dei nodi, ciascuno dei quali rappresenta i permessi su un determinato oggetto puntato.
Esempio: