Torna alla pagina di Sicurezza & Privatezza
:: Appello d'esame di Sicurezza e Privatezza - 05/02/2008 ::
Domande
Rispondere brevemente ma in modo completo alle seguenti domande.
- Data una politica ChineseWall dove i company dataset sono BankA, BankB, OilA, OilB e le classi di conflitto di interesse sono CoI1 = {BankA, BankB} e CoI2 = {OilA, OilB}, si supponga che un soggetto S1 esegua una operazione di lettura su un oggetto del dataset BankA ed un oggetto del dataset OilB. Si richiede di indicare i dataset che contengono oggetti che S1 può scrivere e di motivare la risposta.
- Nell’ambito dei sistemi operativi Unix-based, descrivere il significato dei privilegi setuid e setgid.
- Descrivere il metodo basato sulla matrice delle risorse condivise per l’identificazione di covert channel. Illustrare inoltre un esempio di possibile canale che può essere scoperto tramite tale tecnica.
- Illustrare in modo dettagliato e preciso come la stringa di formato %n può essere utilizzata per sovrascrivere l’indirizzo RET nello stack.
- Nell’ambito del modello a matrice di accesso, dare la definizione di transizione di stato ed enunciare in modo preciso e formale il problema della safety.
- Dare la definizione di virus crittografico e descrivere le tre parti principali di cui tale tipo di virus solitamente si compone.
- Nell’ambito del sistema Kerberos, dire quali sono i tre compiti principali dell’Authentication Server (AS) ed i tre compiti principali del Ticket Granting Server (TGS).
- Nell’ambito dei sistemi per la determinazione di intrusioni, dire cosa si intende per falsi negativi e falsi positivi.
SOLUZIONE
1.
All'inizio un utente può leggere qualsiasi cosa. Se legge da BankA significa che escludiamo BankB, perché fa parte della stessa classe di conflitto di interessi, mentre rimangono accessibili OilA e OilB. Successivamente se legge da OilB significa che dobbiamo escludere OilA, ancora perché fa parte della stessa classe di conflitto di interessi.
L'utente S1 non può scrivere da nessun parte se non all'interno di BankA e OilB, perché i company dataset rimanenti(BankB e OilA) sono stati esclusi per conflitto di interessi.
2.
Setuid e Setgid sono privilegi addizionali. Setuid significa che l'UID del processo che esegue il file coincide con l'UID del file.
Setgid significa che il GID del processo che esegue il file coincide con il GID del file.
Entrambi si rappresentano tramite una s se l'utente(es: rws --- ---) o il gruppo(es: rwx rws ---) hanno privilegio di esecuzione sul file, tramite una S se l'utente(es: r-S --- ---) o il gruppo(es: rwx r-S ---) non hanno privilegio di esecuzione sul file.
3.
La matrice delle risorse condivise sfrutta il fatto che la base di ogni covert channel sono le risorse condivise. Si costruisce una matrice M dove le righe sono le risorse e le colonne sono 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ò creare o modificare o cancellare la risorsa i
Esempio:
E' un pattern sospetto perché la risorsa 2 è condivisa dal processo 2 e dal processo 4(modificata da uno e letta dall'altro). Il processo 2 legge il contenuto della risorsa 4 e la trasmette alla risorsa 2, il processo 4 quindi può leggere indirettamente l'informazione della risorsa 4, cosa che direttamente non potrebbe fare.
Bisogna completare la matrice con il flusso potenziale di informazione e cercare eventuali flussi indesiderati, in questo caso:
4.
L'attaccante inserisce il codice maligno, il programma sovrascrive sulla printf.
Avviene una sovrascrittura dell'indirizzo di ritorno con un indirizzo significativo che non porta più all'applicazione originale, ma all'applicazione dell'attaccante, al codice maligno.
Ad esempio:
char buf[16]="Overflow!%n";
printf(buf);
Il valore 9 verrà scritto all’interno della memoria puntata dal puntatore della printf, perché non c’è nessun secondo argomento nella printf.
5.
Una transizione di stato è un passaggio da uno stato iniziale Q=(S,O,A) a uno stato finale diverso Q', tramite un comando primitivo c(x1,...,xk), dove le x sono sostituite dai parametri attuali con i quali la chiamata è effettuata.
Il problema della Safety afferma che:
dato uno stato iniziale Q0 esiste una sequenza di richieste che portano da Q0 a Q1 e l'azione a è in A[s,o] nello stato Q1 ma non in Q0?
Non possiamo rispondere a questa domanda in tempo polinomiale, è un problema non decidibile. Diventa decidibile solo per comandi mono-operazionali e quando i soggetti e gli oggetti sono finiti.
6.
Un virus crittografico è un virus polimorfo che sfrutta tecniche crittografiche per cambiare forma.
Le tre parti di cui è composto sono:
- chiave di decrittazione: varia da infezione a infezione
- codice crittato
- routine per la decrittazione del codice: questa è la parte costante del virus e per questo può essere considerata la sua signature.
Esercizi
Esercizio 1
Si consideri lo chema di rete del comune di Smallville protetta da due Firewall (FW1 e FW2) in cascata avente ognuno due interfacce di rete.
La rete InternalNet prende indirizzi tra 13.10.22.0/24. Nella rete interna risiedono le postazione di lavoro degli utenti Users e un Web Server all'indirizzo 13.10.22.7 che fornisce servizi HTTP e HTTPS. La sottorete DMZ posta tra i due firewall prende indirizzi tra 13.10.121.111. Il Syslog Server fornisce meccanismi per la gestione centralizzata dei log, mentre il Domain Name Server fornisce servizi di naming. All'interno della rete esterna Internet, è presente una admin (111.111.12.24).
Si specifichino le politiche di sicurezza necessarie e sufficienti di FW1 e FW2 per autorizzare le seguenti connessioni:
- Gli utenti della rete interna devono poter accedere a Web Server esterni via HTTP (80/tcp) per visualizzare siti Web esterni;
- Utenti Internet devono poter accedere al Web Server interno tramite connessioni HTTPS (443/tcp);
- Qualsiasi utente della rete interna deve poter accedere al Domain Name Server tramite il protocollo DNS (53/udp);
- Admin deve poter accedere al Syslog Server tramite il protocollo SSH (22/tcp);
- Il DNS deve collegarsi a DNS esterni (Internet) per effettuare query attraverso il servizio di naming (53/tcp);
- Ogni altra connessione, in ingresso o in uscita, sia per FW1 e FW2, non esplicitamente prevista dai punti precedenti deve essere impedita (scrivere regole).
SOLUZIONE
FW1
Direzione
|
IP Sorgente
|
IP Destinazione
|
Protocollo
|
Porta Sorgente
|
Porta Destinazione
|
Flag ACK
|
Azione
|
OUT
|
13.10.22.0/24
|
ANY
|
TCP
|
>=1024
|
80
|
ANY
|
PERMIT
|
IN
|
ANY
|
13.10.22.0/24
|
TCP
|
80
|
>=1024
|
1
|
PERMIT
|
IN
|
ANY
|
13.10.22.7
|
TCP
|
>=1024
|
443
|
ANY
|
PERMIT
|
OUT
|
13.10.22.7
|
ANY
|
TCP
|
443
|
>=1024
|
1
|
PERMIT
|
OUT
|
13.10.121.111
|
ANY
|
TCP
|
>=1024
|
53
|
ANY
|
PERMIT
|
IN
|
ANY
|
13.10.121.111
|
TCP
|
53
|
>=1024
|
1
|
PERMIT
|
IN/OUT
|
ANY
|
ANY
|
ANY
|
ANY
|
ANY
|
ANY
|
DENY
|
FW2
Direzione
|
IP Sorgente
|
IP Destinazione
|
Protocollo
|
Porta Sorgente
|
Porta Destinazione
|
Flag ACK
|
Azione
|
OUT
|
13.10.22.0/24
|
ANY
|
TCP
|
>=1024
|
80
|
ANY
|
PERMIT
|
IN
|
ANY
|
13.10.22.0/24
|
TCP
|
80
|
>=1024
|
1
|
PERMIT
|
IN
|
ANY
|
13.10.22.7
|
TCP
|
>=1024
|
443
|
ANY
|
PERMIT
|
OUT
|
13.10.22.7
|
ANY
|
TCP
|
443
|
>=1024
|
1
|
PERMIT
|
IN
|
13.10.22.0/24
|
13.10.121.111
|
UDP
|
>=1024
|
53
|
ANY
|
PERMIT
|
OUT
|
13.10.121.111
|
13.10.22.0/24
|
UDP
|
53
|
>=1024
|
1
|
PERMIT
|
IN/OUT
|
ANY
|
ANY
|
ANY
|
ANY
|
ANY
|
ANY
|
DENY
|
Esercizio 3
Si consideri la seguente gerarchia utenti gruppi ed il seguente insieme di autorizzazioni: (G1,+,read,file1); (G2,-,read,file1); (G3,-,read,file1); (G4,+,read,file1).
Si richiede di compilare la tabella allegata indicando il segno/segni (-,+) della autorizzazione che si applicano a ciascun utente, considerando come politiche di risoluzione dei conflitti quelle specificate nella tabella stessa.
POLITICHE
|
Alice
|
Barbara
|
Carol
|
Dave
|
Nothing take precedence
|
+/-
|
+/-
|
-
|
+/-
|
Denial take precedence
|
-
|
-
|
-
|
-
|
Permission Take precedence
|
+
|
+
|
-
|
+
|
Most specific take precedence
|
-
|
+/-
|
-
|
+
|
Most specific along a path take precedence
|
-
|
+/-
|
-
|
+/-
|
Torna alla pagina di Sicurezza & Privatezza