Torna alla pagina di Sicurezza & Privatezza
:: Appello d'esame di Sicurezza e Privatezza - 07/09/2007 ::
Domande
Rispondere brevemente ma in modo completo alle seguenti domande.
- Illustrare un esempio di Trojan Horse che rende informazioni accessibili ad un utente che non è autorizzato ad accedervi indicando come esso può operare. Discutere come tale Trojan Horse sarebbe bloccato da una politica (di segretezza) mandatoria.
- Definire la politica aperta e la politica chiusa. Indicare per quale ragione si considerano le autorizzazioni negative ed i problemi che queste portano.
- Cosa si intende per stack overflow?
- Nell’ambito del controllo dell’accesso, a cosa servono le politiche amministrative? Si richiede inoltre di descrivere almeno tre diverse politiche amministrative.
- Dopo aver introdotto il concetto di stato nel modello di Bell e La Padula, fornire la definizione delle proprietà di questo modello. Cosa garantisce il soddisfacimento di queste proprietà?
- Nell’ambito delle politiche per il controllo dell’accesso, caratterizzare il principio del minimo privilegio (least privilege) e spiegare la differenza fra gruppi e ruoli.
- Cosa si intende con Denial of Service Distribuito (DDoS)?
- Spiegare in sintesi quali conseguenze per la sicurezza può implicare una erronea validazione dei dati di input di una applicazione Web.
SOLUZIONE
1.
Un Trojan Horse è un programma di utilità che contiene del codice nascosto che esegue funzioni non legittime. Il problema è che le politiche discrezionarie controllano solo gli accessi diretti, non effettuano nessun controllo su cosa accade all'informazione una volta rilasciata. Quindi tutto ciò che l'applicazione esegue(quindi anche il codice nascosto) dipende dall'identità dell'utente che ha invocato l'applicazione e dai suoi permessi.
Esempio:
Nell'esempio le istruzioni readMarket e writeStolen sono legittime perché ci si basa sull'identità di chi ha lanciato l'applicazione, cioè Jane. Quindi John rispettando la politica discrezionaria riesce ad ottenere informazioni non legittime.
Le politiche mandatorie sono resistenti ai trojan horse perché, a differenza delle politiche discrezionarie, controllano il flusso di informazioni e operano una distinzione tra persone (fidate) e processi (non fidati). Quindi le informazioni non possono essere bypassate da Trojan Horse.
2.
- politica aperta: autorizzazioni specificano negazioni all'accesso, quindi il soggetto può fare tutto ciò che eredita dalla sua gerarchia a meno di eccezioni.
- politica chiusa: autorizzazioni specificano permessi di accesso, quindi ogni permesso viene negato a meno di eccezioni.
Si usano principalmente le politiche chiuse perché negano l'accesso per default e quindi assicurano una maggiore protezione.
Il problema si viene a creare quando ad esempio un'organizzazione vuole permettere l'accesso ai propri 100 membri, tranne 10; significa che sarà necessario specificare 90 autorizzazioni positive, cioè permessi concessi. In questo caso sarebbe ovviamente più comoda una politica aperta.
3.
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. Con questo tipo di attacco un malintenzionato tenta di copiare una quantità superiore alla capacità della variabile locale per fare in modo che venga eseguito del codice arbitrario che si va a sostituire a quello del programma in esecuzione.
4.
Le politiche amministrative definiscono a chi spetta il compito di concedere e/o revocare le autorizzazioni. Le autorizzazioni sono determinate dalle classificazioni assegnate a soggetti e oggetti del sistema:
- classificazioni dei soggetti sono determinate dall'amministratore di sicurezza
- classi degli oggetti sono determinate dal sistema in base alle classi dei soggetti che li hanno creati.
L'amministratore di sicurezze è l'unico che può cambiare le classi degli oggetti e dei soggetti.
I diversi tipi di politiche amministrative sono:
- amministrazione centralizzata: un singolo amministratore ha il controllo su tutto il sistema
- amministrazione gerarchica: un singolo amministratore è responsabile per assegnare responsabilità amministrative ad altri
- amministrazione cooperativa: diversi amministratori cooperano nella definizione delle autorizzazioni
- ownership: ogni oggetto ha un proprietario che lo amministra
- amministrazione decentralizzata: amministrazione suddivisa fra più utenti. Spesso associata all'ownership. Flessibile, ma con diverse complicazioni.
5.
Il sistema di Bell e LaPadula è modellato come stati e transizioni di stato. Uno stato v ∈ V è definito come una tripla ordinata (b, M, λ) dove:
- b ∈ ƍ(S x O x A) è l’insieme degli accessi correnti (s,o,a) di uno stato v;
- M è la matrice di accesso che esprime i permessi discrezionali, con S righe ed O colonne (celle di M assumono valori in A);
- λ:S U O → L, che rappresenta l’associazione di classi di accesso con soggetti e oggetti e ne restituisce la classificazione in un determinato stato.
Secondo il modello, uno stato (b, M, λ) è sicuro se e solo se soddisfa i seguenti criteri(ovvero proprietà che che esprimono i limiti imposti dalla politica mandatoria):
- Simple property: uno stato v soddisfa la “simple property” se per ogni s ∈ S, o ∈ O: (s,o,read) ∈ b → λ(s)≥ λ(o). Corrisponde al principio no-read-up;
- *-property(Star property): uno stato v soddisfa la “*-property” se per ogni s ∈ S, o ∈ O: (s,o,write) ∈ b → λ(o)≥ λ(s). Corrisponde al principio no-write-down.
6.
Il principio del minimo privilegio(Least Privilege) consiste nel fatto che non bisogna concedere troppi privilegi ad un singolo utente, ma partizionare i privilegi tra più utenti. Questo viene fatto per limitare la possibilità di abusi e danni per violazioni.
Gruppi e ruoli rappresentano lo stesso concetto, ma sono differenti:
- Gruppi: insieme di utenti(statici). Statici significa che se un utente fa parte del gruppo, allora può sempre eseguire le operazioni concesse, senza dover attivare nessun ruolo. Quindi la definizione di gruppo non rimane invariata, si possono aggiungere altri utenti.
- Ruoli: insieme di privilegi(dinamici). Dinamici significa che i privilegi dipendono dal ruolo che l'utente ha attivato.
7.
L'attacco DDoS è un particolare tipo di DoS in cui il malintenzionato infetta altri computer sulla rete per fare in modo di non essere egli stesso colui che effettua direttamente l'attacco, ma altri computer di ignari utenti.
Nel DDoS gli attori sono:
- vittime primarie:
- macchine zombie elevato numero di macchine ignare di essere usate per l'attacco.
- macchine master minor numero di macchine infettate o macchine dell'attaccante che sincronizzano le zombie.
- vittime finali che subiscono richieste dalle macchine zombie.
Le fasi che caratterizzano questo attacco sono due:
- Vengono infettate molte macchine che ricoprono il ruolo di zombie e master, questa fase può durare anche mesi.
- Le vittime finali vengono inondate di richieste e pacchetti dalle zombie.
8.
L'erronea validazione dei dati di input può comportare il Cross-site scripting(XSS) e l'SQL injection. L'erronea validazione si verifica quando i siti web si fidano dei dati che arrivano dall'esterno e non li controllano, anzi spesso li visualizzano.
Ciò provoca come dicevamo prima:
- XSS: attacco che permette ad un malintenzionato di inserire codice arbitrario come input in un'applicazione web, consentendogli di raccogliere dati, leggere cookie, visualizzare falsa pubblicità.
- SQL injection: attacco che consiste nella manipolazione di interrogazioni SQL costruite sulla base di input passato da un utente(URL, form HTML, cookie ad hoc). Comporta la manipolazione indesiderata dei dati, accesso ad aree riservate, visualizzazione dati riservati.
Torna alla pagina di Sicurezza & Privatezza