Politiche di sicurezza Flashcards
Descrivere gli approcci DAC, MAC e RBAC, portando se possibile degli esempi
DAC sta per Discretionary Access Control. Il proprietario della risorsa ha il controllo completo su chi può avere accesso a una risorsa specifica. La risorsa può essere un file, una directory o qualsiasi altro a cui è possibile accedere tramite la rete. Può concedere l’autorizzazione ad altri utenti per accedere alla risorsa. Può anche consentire loro di eseguire operazioni come leggere, scrivere, eseguire o condividere la risorsa. Inoltre, può trasferire la proprietà e determinare il tipo di accesso di altri utenti.
In generale, DAC è un metodo di controllo degli accessi facile e flessibile. Tuttavia, non è molto sicuro. Poiché il proprietario della risorsa ha il pieno controllo, un suo errore può dare il pieno controllo agli altri.
MAC è l’acronimo di Mandatory Access Control. In questo metodo, l’accesso è determinato dal sistema (solitamente dall’amministratore di sistema), non dal proprietario. I sistemi che contengono dati altamente sensibili come i sistemi governativi o militari utilizzano questo tipo di controllo degli accessi.
In questo controllo, a tutti gli utenti (soggetti) e alle risorse dovrebbe essere assegnata un’etichetta. È un’etichetta di sicurezza e specifica il livello di fiducia. Per accedere alla risorsa, l’utente deve avere un livello di sensibilità uguale o superiore al livello della risorsa richiesta. Ad esempio, se l’utente richiede l’accesso a un file segreto, dovrebbe avere un’autorizzazione segreta o un’autorizzazione superiore per accedere alla risorsa.
Il controllo degli accessi RBAC concede i privilegi di accesso in base alle attività che ogni singolo utente deve portare avanti, ossia in base al ruolo ricoperto dal singolo individuo all’interno dell’organizzazione. L’implementazione di RBAC richiede la definizione di tali ruoli e la determinazione se e in che misura essi dovrebbero avere accesso a ciascuna risorsa. Gli amministratori e i loro supervisori, per esempio, possono accedere al sistema di pagamento dell’azienda. Il ruolo dell’amministratore, però, possiede le autorizzazioni per creare un pagamento ma non di effettuarlo senza l’approvazione dell’autorità. I supervisori, d’altra parte, possono approvare i pagamenti ma non possono crearli.
Gli approcci DAC, NAC e RBAC fanno parte delle politiche di controllo degli accessi e forniscono punti di vista diversi per cercare di ottenere un certo risultato.
DAC, o Discretionary Access Control, controlla l’accesso alle risorse in maniera discrezionale, nel senso che un’entità che ha privilegi su una risorsa, può conferirne di pari a un’altra. Un esempio può essere il controllo degli accessi a un filesystem Microsoft, in cui un utente che ha privilegi completi su una risorsa, può darne a un altro utente.
MAC, o Mandatory Access Control, invece, gestisce l’accesso alle risorse tramite etichette di sicurezza ed è di tipo mandatorio, perché gli utenti non possono modificare i loro privilegi, né fornirne ad altri utenti. Questo meccanismo viene utilizzato da SELinux, un modulo di sicurezza di Linux.
RBAC, o Role-Based Access Control, introduce i concetti di ruolo, vale a dire una funzione che può essere associata a uno o più utenti (e gli utenti possono avere più ruoli) e una sessione, cioè una mappatura tra utente e una parte dei ruoli assegnati. In base ai ruoli di un certo utente, posso fornire o meno accesso a determinate risorse.
Descrivere gli approcci DAC, MAC e RBAC, portando se possibile degli esempi
Si descrivano le caratteristiche del modello Bell La-Padula e si definiscano in dettaglio le regole di accesso
Il modello Bell-La Padula è un metodo orientato alla tutela della confidenzialità dei dati, che utilizza entrambi gli approcci MAC e DAC.
Secondo questo modello formale, le entità di un Sistema Informativo vengono divise in soggetti e oggetti, a cui vengono assegnati delle classi di accesso (access classes), vale a dire i clearance level e i sensitivity level.
Ai soggetti vengono assegnati dei clearance level, mentre agli oggetti vengono assegnati dei sensitivity level.
Secondo quest’ottica, una access class consiste di due componenti:
security level (TopSecret > Secret > Confidential > Unclassified)
category set (un insieme di categorie che dipendono dall’applicazione in cui i dati sono usati e non è gerarchico; ad es. delle categorie possono essere la posta elettronica, i prodotti commerciali, le centrali atomiche, etc.)
L’uso delle categorie è un’estensione del livello di sicurezza e si basa sul principio need to know, ovvero che nessun soggetto può leggere un oggetto a meno che non lo faccia poiché è essenziale per le sue mansioni, e sul power set, ossia una persona ha accesso ad un certo oggetto se possiede l’insieme delle categorie dell’oggetto.
Il concetto di uno Stato Sicuro è definito ed è provato dal fatto che ogni transizione preserva la sua sicurezza spostandosi da stato sicuro ad un altro stato sicuro.
Il passaggio da uno stato a un altro stato è definito da funzioni di transizione. Uno stato di sistema è definito sicuro se tutti i modi di accesso dei subjects and objects sono conformi alla politica di sicurezza.
Per determinare se un modo di accesso specifico è permesso, la clearance è paragonato alla classificazione dell’object (più precisamente: la combinazione di classificazione e l’insieme di compartimenti compongono il livello di sicurezza) per determinare se il soggetto è autorizzato a quello specifico modo di accesso.
Ogni operazione richiesta è controllata da un reference monitor, e la sua esecuzione è concessa se, e solo se, lo stato risultante in cui si verrebbe a trovare il sistema sia sicuro, ovvero soddisfi tutte le proprietà del modello.
Il modello definisce due regole obbligatorie del controllo accessi (MAC) e una regola discrezionale di controllo accessi (DAC) con tre proprietà sulla sicurezza:
Simple Security Property (SS-property): dichiara che è possibile che un soggetto possa accedere ad un oggetto solo se il suo livello di sicurezza è maggiore od uguale a quello dell’oggetto e se ha il permesso di leggere l’oggetto; (quindi: no read up);
Star-Property (*-property o S-property o Confinment Property): dichiara che un soggetto può accedere all’oggetto per operazioni di write se ha un livello uguale o minore a quello dell’oggetto e se ha il permesso di scrivere; (quindi no write-down);
Discretionary Security Property (DS-property): utilizza una matrice di accesso per specificare il controllo accessi discrezionale; cioè ogni soggetto può esercitare solo gli accessi per cui ha la necessaria autorizzazione.
Si immagini un sistema che esegue due diversi tipi di processi. Sul più basso livello di sicurezza, esegue tutti i processi che operano sulla rete, mentre sul livello superiore, ci sono i processi dell’utente che ha accesso a dati critici come le informazioni sulla carta di credito.
Supponiamo ora che un utente abbia accidentalmente installato e avviato uno spyware che desidera inviare i dati dell’utente all’autore del malware. Analizzare la riuscita o meno dell’attacco nel contesto delle proprietà del modello Bell-LaPadula.
Secondo le regole principali del modello Bell-LaPadula, uno spyware non può leggere oggetti a un livello di confidenzialità superiore al suo, perciò i dati sono al sicuro.
Potrebbe però riuscire a scrivere in oggetti, ma l’attacco descritto nella domanda è di altro tipo.
Infine se fossero implementate anche le categorie nel modello, bisognerebbe poter vedere quali sono presenti, perché in caso fossero diverse o non incluse, non sarebbe possibile neanche la scrittura.
Spiegare brevemente il modello di politica Biba.
L’obiettivo primario è quello di bloccare i flussi di informazione verso classi di integrità alte o incomparabili. Il modello di Biba, o più in generale, i modelli basati su politiche mandatorie per l’integrità applicano dei principi che sono duali a quelli delle politiche mandatorie per la segretezza. Di conseguenza i principi applicati nel modello Biba sono duali rispetto ai principi applicati nel modello di Bell e La Padula.
Anche qui le due proprietà che sono modellate all’interno del modello Biba sono:
1. simple property, modellizzazione del principio di NO READ DOWN. Un soggetto s
può eseguire un’operazione di lettura su o solo nel caso in cui la classe di integrità
dell’oggetto o domina, o al più uguale, la classe di integrità del soggetto s;
2. star property, modellizzazione del principio di NO WRITE UP. Un soggetto s può
eseguire un’operazione di scrittura su o solo nel caso in cui la classe di integrità del
soggetto s domina, o al più uguale, la classe di integrità dell’oggetto o.
Tali proprietà modellano i principi di NO READ DOWN e NO WRITE UP la cui applicazione
mi garantisce il blocco di flussi di informazione verso livelli di integrità più alti o incomparabili.
Descrivere le differenze fra i modelli Bell-LaPadula e Biba
Il modello di Bell-Lapadula si concentra sulla confidenzialità dei dati e va ad associare livelli sia agli oggetti che ai soggetti per indicare cosa un determinato utente può o non può fare su un file. Le proprietà principali del modello Bell-Lapadula sono la simple security property (o no read-up) e la star property (o no write-down) che indicano rispettivamente che un soggetto può accedere a un oggetto che ha un grado di confidenzialità uguale o più basso del suo e che un soggetto può modificare un oggetto che ha un grado di confidenzialità è uguale o più alto del suo.
Esiste un’estensione del modello Bell-LaPadula che utilizza dei reticoli e che introduce delle categorie: un soggetto può quindi accedere a determinati oggetti solo se ha un livello di confidenza adeguato secondo le regole di lettura\scrittura e in più deve anche possedere tutte le categorie associate all’oggetto.
Il modello Biba si concentra invece sull’integrità e, similarmente al modello Bell-Lapadula associa livelli sia ai soggetti che agli oggetti per prevenire la modifica di questi ultimi da parte di soggetti non autorizzati. Le proprietà principali del modello Biba sono la simple integrity property (o no read-down) e la integrity star property (o no write-up) che indicano rispettivamente che un soggetto può leggere solo oggetti allo stesso livello di integrità o superiore e che un soggetto può modificare solo oggetti allo stesso livello di integrità o più basso.
b. Si consideri un sistema che usi Bell-LaPadula per imporre confidenzialità e Biba per integrità.
i. Se le classi di sicurezza sono le stesse di quelle per l’integrità (es. classe A e classe B sia per Bell LaPadula che per Biba) a quali oggetti un processo potrebbe accedere?
ii. Perché uno schema così non viene utilizzato in pratica?
i. Se le classi di sicurezza sono le stesse di quelle per l’integrità (es. classe A e classe B sia per Bell LaPadula che per Biba) a quali oggetti un processo potrebbe accedere?
Se le classi di sicurezza fossero le stesse sia per Bell-Lapadula che per Biba, allora ci troveremmo in uno stato in cui un utente potrebbe leggere e scrivere oggetti di qualsiasi livello, o in nessun livello, in quanto le rispettive proprietà garantiscono un livello di lettura e scrittura opposto.
ii. Perché uno schema così non viene utilizzato in pratica?
È uno schema che comporta un completo isolamento dei vari livelli, il che difficilmente è desiderabile in un’organizzazione in cui la collaborazione è essenziale.
Dare una definizione di una politica di sicurezza
Una politica di sicurezza è un documento che definisce gli obiettivi di sicurezza di un sistema, in particolare sancisce quali operazioni sono permesse e quali no attraverso delle regole. L’insieme di regole possono essere scritte in linguaggio naturale o attraverso formalismi matematici e includono i seguenti elementi: soggetti, oggetti, azioni, permessi, protezioni.
La presenza di conflitti tra diverse politiche può dare vita a possibili vulnerabilità nel sistema.
Descrivere le caratteristiche del modello di politica di accesso Chinese Wall, indicandone scopo e principi di applicazione
Il Chinese Wall model si occupa di impedire il flusso di informazioni tra compagnie che possono avere interessi contrastanti, impedendo quindi eventuali conflitti di interesse quando si tratta con clienti diversi.
La politica è composta da:
* Oggetti (O): rappresentano dati o informazioni di una qualche società
* Company Dataset (CD): contiene oggetti inerenti a una singola entità, come per esempio una banca o un supermercato
* Conflict of Interest class (COI): contiene i CD delle varie entità che fanno parte di quella particolare classe di conflitto di interesse (es. una conterrà tutte le banche, una tutti i supermercati)
In lettura un soggetto può leggere un oggetto se quest’ultimo è in una CD di cui il soggetto ha già letto qualcosa, oppure se appartiene a una COI di cui il soggetto non ha ancora letto nulla, oppure se appartiene alla stessa COI di un altro CD che è però di tipo pubblico.
In scrittura un soggetto può scrivere un oggetto se quest’ultimo è in una CD di cui il soggetto ha già letto qualcosa, oppure se il soggetto non ha mai letto altri oggetti di altri CD nella stessa COI.
a. Ogni processo Unix process è associato con un real user ID (RUID) e un effective user ID (EUID). Spiegare la logica ed importanza del setuid.
Il Real User ID (RUID) , determina l’utente che ha avviato il processo, mentre l’Effective User ID (EUID), determina le autorizzazioni per il processo.
Il set user ID (setuid) ha due funzioni principali: permette a un utente di eseguire un file o un processo con i privilegi dell’utente proprietario, oltre che ai suoi. Inoltre consente a programmi privilegiati di accedere a risorse generalmente non accessibili.
Questo può comportare problematiche su sistemi, se impostato in maniera non corretta, oltre che essere una vulnerabilità che può essere sfruttata per attacchi.
Charlie ha trovato nel computer un file con i seguenti permessi:
-rwsrwxrwx 1 root root 186 Oct 31 23:42 mioexe
Spiegare la pericolosità del file mioexe.
Il file mioexe ha tutti i permessi settati, quindi sia l’owner, che il gruppo a cui appartiene, che tutti gli altri utenti, possono leggere, scrivere ed eseguire il file.
Inoltre è impostato il SUID, un permesso speciale che indica al kernel di lanciare i comandi con i privilegi dell’owner del file: in questo caso l’owner è root, perciò si potrebbe modificare il file mioexe per lanciare dei comandi dannosi come root.
Ogni processo Unix è associato a un ID utente reale (RUID) ea un ID utente effettivo (EUID), spiegare brevemente il loro funzionamento e il loro utilizzo.
* Quale di essi viene utilizzato dal sistema operativo per determinare se un processo ha il diritto di accedere a una risorsa o meno?
* Nella maggior parte delle versioni di Unix, la famiglia di funzioni setuid consente di impostare l’EUID di un processo sul suo RUID. Riesci a pensare a un motivo per farlo in un processo in esecuzione come root (EUID=0)?
Ogni processo, che viene eseguito da un utente, esegue istruzioni basandosi sui privilegi dell’utente che l’ha lanciato. Tuttavia, un processo può fare una fork dal processo padre e lanciare altri comandi, ereditando alcune informazioni e modificandone altre. Tra queste informazioni sono presenti il RUID, cioè l’utente che ha avviato il processo e il EUID, che determina le autorizzazioni per questo processo.
* Quale di essi viene utilizzato dal sistema operativo per determinare se un processo ha il diritto di accedere a una risorsa o meno?
Il sistema operativo verifica il EUID per determinare se un processo ha diritto ad accedere a una risorsa o meno.
* Nella maggior parte delle versioni di Unix, la famiglia di funzioni setuid consente di impostare l’EUID di un processo sul suo RUID. Riesci a pensare a un motivo per farlo in un processo in esecuzione come root (EUID=0)?
Quando si deve andare a modificare la password di un utente, si deve andare a modificare un file chiamato shadow: questo file è modificabile solo dall’utente root, perciò lanciando il comando passwd, il processo setta come ID quello di root, per permettere la modifica di questo file.
Ogni processo Unix è associato con un real user ID (RUID) e un effective user ID (EUID). Spiegare la differenza fra RUID e EUID e l’utilizzo del bit setuid
Il Real User ID (RUID) determina l’utente che ha avviato il processo, mentre l’Effective User ID (EUID), determina le autorizzazioni per il processo.
Il set user ID (setuid) ha due funzioni principali: permette a un utente di eseguire un file o un processo con i privilegi dell’utente proprietario, oltre che ai suoi. Inoltre consente a programmi privilegiati di accedere a risorse generalmente non accessibili.
Questo può comportare problematiche su sistemi, se impostato in maniera non corretta, oltre che essere una vulnerabilità che può essere sfruttata per attacchi.
Si spieghi in cosa consiste un attacco basato sulla vulnerabilità shellshock
Il shellshock attack è un attacco che sfrutta una vulnerabilità della bash, ossia una mancata sanitizzazione dell’input. Esso consiste, infatti, nel passaggio di funzioni tramite variabili d’ambiente alla bash: se all’interno della funzione, dopo la variabile, viene aggiunto un punto e virgola seguito da un comando, quest’ultimo viene interpretato dalla shell ed eseguito. Permette perciò l’inserimento di codice malevolo. SPIEGA MEGLIO
Shellshock è una vulnerabilità presente in realtà da lungo tempo e che permette, se opportunamente sfruttata da un attaccante, di eseguire codice arbitrario non appena una shell Linux viene invocata, lasciando così aperta la possibilità di portare un’ampia varietà di attacchi, iniettando comandi che vengono lanciati con privilegi maggiori rispetto a quelli dell’utente che ha lanciato la shell.
- Descrivere la necessità e la pericolosità del bit SETUID
Il bit-setuid è importante perché a qualsiasi utente o processo di accedere alla risorsa di proprietà dell’utente root con i permessi di quest’ultimo temporaneamente. Risolve il password dilemma.
Tuttavia anche se un programma setUID è scritto bene, essendo programmi privilegiati è possibile per un attaccante usare diversi punti per portare un attacco al sistema (es. capability leaking)