Chapter4-Access-Control Flashcards

1
Q

Che differenza c’è fra Authentication, Authorization ed Audit?

A
  • Authentication: consiste nel verificare che le credenziali fornite dall’utente per accedere ad un sistema siano valide;
  • Authorization: viene concessa ad una entità di sistema la possibilità di accedere ad una risorsa di esso. L’utente è affidabile per un dato scopo?
  • Audit: Una determinata operazione che mira a esaminare i record di un sistema per fare test sulla sicurezza di esso, per verificare che le policy scelte siano rispettate. Serve anche a identificare potenziali falle e vulnerabilità in modo da sistemarle.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Cos’è una Access Control Policy?

A

Una ACP è una politica di controllo degli accessi, che può essere incorporata in un database di autorizzazione, determina quali tipi di accesso sono consentiti, in quali circostanze e da chi. I criteri di controllo degli accessi sono generalmente raggruppati in più macro-categorie:

  • DAC (Controllo discrezionale dell’accesso);
  • MAC (Controllo dell’accesso obbligatorio);
  • RBAC (Controllo degli accessi in base al ruolo).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Che policy possono essere applicate per l’Access Control?

A
  • DAC (Controllo discrezionale dell’accesso);
  • MAC (Controllo dell’accesso obbligatorio);
  • RBAC (Controllo degli accessi in base al ruolo).
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Cosa significa Discretionary Access Control? In che tipo di sistemi viene usata?

A

Controllo degli accessi basato sull’identità di chi fa richieste e su regole di accesso (chiamate autorizzazioni) che specificano cosa può fare chi fa richieste. Si chiama discretionary perché una determinata entità può cambiare a suo piacimento i permessi per
se stesso e per altre entità. La discretionary Access Control Policy viene utilizzata per esempio nei sistemi UNIX. Questo lo rende flessibile ma comporta una forte vulnerabilità agli attacchi interni.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Cosa significa Mandatory Access Control? In che tipo di sistemi viene usata?

A

Il controllo degli accessi è gestito tramite un sistema di label (che indicano quando la risorsa è critica e segreta) e di security clearances (che indicano quali entità del sistema possono avere accesso a tali risorse). Si chiama mandatory perché un’entità non può dare permessi volanti a caso come nel discretionary. La Mandatory Access Control Policy viene utilizzata in android, apparmor, trustedBSD, windows (Windows integrity mechanism).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Cosa significa Role Based Access Control? In che tipo di sistemi viene usata?

A

Gli utenti all’interno di un sistema posseggono dei ruoli ai quali sono assegnati determinati permessi. Un utente può essere assegnato a più ruoli. La Role Based Access Control Policy è molto consigliata in sistemi e organizzazioni particolarmente grosse perchè la separazione in ruoli permette una gestione più semplice dei permessi e mitiga la possibilità di errori.

  • Soggetto: Un’entità capace di accedere ad oggetti. Si può suddividere in Owner, Group, Others (“il resto del mondo”).
  • Oggetto: Una risorsa il cui accesso è controllato. Generalmente un oggetto rappresenta
    un’entità in grado di contenere, ricevere e mostrare informazioni.
  • Access Right: Un access right descrive il modo in cui dei soggetti accedono agli oggetti.

Posso includere quanto segue:
● Read: Gli utenti possono visionare e leggere il contenuto delle risorse.
● Write: Gli utenti possono modificare cancellare e creare risorse. Read è incluso
● Execute: Gli utenti possono eseguire dei programmi.
● Delete: Gli utenti possono cancellare risorse. Overlappa con Write? Sì è vero, ma al libro
non frega un cazzo.
● Create: Gli utenti possono creare risorse. Overlappa con Write? Sì è vero, ma al libro non
frega un cazzo.
● Search: Gli utenti possono effettuare ricerche nel sistema

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Quali sono le tre classi di soggetti possibili nell’Access Control?

A

User, Group, Other.

  • User: Utente specifico;
  • Gruppo: Entità composta da potenzialmente > 1 utenti;
  • Other: il resto del mondo, tutti gli altri non specificati.

Risposta completa:

  • Proprietario: può essere il creatore di una risorsa, come un file. Per le risorse di sistema, la proprietà può appartenere a un amministratore di sistema.
  • Gruppo: oltre ai privilegi assegnati a un proprietario, ad un gruppo denominato di utenti possono anche essere concessi diritti di accesso, in modo tale che l’appartenenza al gruppo sia sufficiente per esercitare tali diritti. Nella maggior parte degli schemi, un utente può
    appartenere a più gruppi.
  • world: viene concesso il minor numero di accessi agli utenti che sono in grado di accedere al sistema ma non sono inclusi nelle categorie proprietario e gruppo.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Cosa può essere un oggetto nell’Access Control?

A

Un file, una risorsa, un record, un blocco, una pagina, un segmento, una porzione di file, una directory, alberi di directory, mailbox, programmi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Quali sono i possibili access right nell’access control?

A

Read, write, execute, delete, create, search.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Cos’è una matrice degli accessi? In che policy viene utilizzata? Cosa sta sulle righe? Cosa invece sulle colonne?

A

Si tratta di una matrice utilizzata dalla DAC, con sulle righe i soggetti (utenti) e sulle colonne gli oggetti (file). Nella entry ij ci sono i permessi che l’i-esimo utente ha sul j-esimo file.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Cos’è una ACL (Access Control List)? In che policy di Access Control viene utilizzata?

A

La matrice può essere scomposta per colonne, ottenendo elenchi di controllo degli accessi (ACL). Per ogni oggetto, un ACL elenca gli utenti e loro diritti di accesso consentiti. L’ACL può contenere una voce predefinita o pubblica. Questo consente agli utenti che non sono esplicitamente elencati come aventi diritti speciali di avere un’impostazione predefinita (insieme di diritti). L’insieme di diritti predefinito dovrebbe sempre seguire la regola del privilegio minimo. Gli elementi dell’elenco possono includere singoli utenti e gruppi di utenti. Quando si vuole determinare quali soggetti hanno quali diritti di accesso ad un particolare risorsa, gli ACL sono convenienti, perché ogni ACL fornisce le informazioni per una data risorsa. Tuttavia, questa struttura di dati non è conveniente per determinare i diritti di accesso disponibili per un utente specifico. La scomposizione per righe produce capacity-ticket. Una capacity-ticket specifica oggetti e operazioni autorizzati per un particolare utente. Ogni utente dispone di un numero di biglietti e può essere autorizzato a prestarli o cederli ad altri. Poiché i ticket possono essere dispersi nel sistema, presentano un maggior problema di sicurezza rispetto agli elenchi di controllo degli accessi. L’integrità del ticket deve essere
protetta e garantita (di solito dal sistema operativo). In particolare, il ticket deve essere non falsificabile. Un modo per ottenere questo risultato è fare in modo che il sistema trattiene tutti i biglietti per conto degli utenti. Questi biglietti dovrebbero essere tenuti in una regione di memoria inaccessibile agli utenti. Gli aspetti convenienti e scomodi dei ticket di capacità sono l’opposto di quelli per ACL. È facile determinare l’insieme dei diritti di accesso che un determinato utente ha, ma è più difficile determinare l’elenco degli utenti con diritti di accesso specifici per una specifica risorsa.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Perché utilizzare tante ACL e non solo una semplice matrice per gestire gli accessi? Cosa invece è sconveniente utilizzando una ACL?

A

Una matrice di questo tipo è notoriamente molto sparsa, utilizzando le ACL tutte le caselle vuote non esistono e quindi non bisogna iterarci sopra. Usando ACL è sconveniente scoprire tutti i permessi che ha un utente (bisogna ovviamente iterare su tutti gli oggetti cercando tutti i permessi).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Cos’è un capability ticket? In che policy di Access Control viene utilizzato?

A

La scomposizione per righe produce capacity-ticket. Una capacityticket specifica oggetti e operazioni autorizzati per un particolare utente. Ogni utente dispone di un numero di biglietti e può essere autorizzato a prestarli o cederli ad altri. Poiché i ticket possono essere dispersi nel sistema, presentano un maggior problema di sicurezza rispetto agli elenchi di controllo degli accessi. L’integrità del ticket deve essere protetta e garantita (di solito dal sistema operativo). In particolare, il ticket deve essere non falsificabile. Un modo per ottenere questo risultato è fare in modo che il sistema trattiene tutti i biglietti per conto degli utenti. Questi biglietti dovrebbero essere tenuti in una regione di memoria inaccessibile agli utenti. Gli aspetti convenienti e scomodi dei ticket di capacità sono l’opposto di quelli per ACL. È facile determinare l’insieme dei diritti di accesso che un determinato utente ha, ma è più difficile determinare l’elenco degli utenti con diritti di accesso specifici per una specifica risorsa. Viene utilizzata in sistemi che utilizzano Discretionary access control, per esempio UNIX.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Perché utilizzare dei capability ticket e non solo una semplice matrice per gestire gli accessi ai file? Cosa è invece sconveniente utilizzando un Capability Ticket?

A

punto 1 uguale a domanda sopra delle ACL. Utilizzando solo i capability ticket è sconveniente scoprire i permessi di tutti gli utenti per un determinato file, in quanto bisogna iterare su tutti i capability ticket per trovare le entry corrispondenti all’oggetto.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Cos’è una authorization table? E’ una buona struttura dati per rimpiazzare ACL e Capability Ticket? Come funziona?

A

Una authorization table contiene una riga per ogni user access right a una determinata risorsa del sistema. Ordinare o accedere per soggetto ha lo stesso peso delle capability list. Accedere per oggetti ha lo stesso peso delle ACL. Quindi sì, è un buon compromesso, veramente figa e pure semplice.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Cos’è un inode su Unix? A cosa serve una inode table

A

Un inode (index node) è una struttura di controllo che contiene delle informazioni che servono al sistema operativo per un particolare file. File diversi possono essere associati a un singolo inode ma inode attivi possono essere associati solo e solamente con un file, e ogni file è controllato esattamente da un inode. Gli attributi di un file così come i permessi e altre informazioni di controllo sono contenute in esso. Sul disco è presente
una inode table o una inode list che contiene tutti gli inode di tutti i file del sistema. Quando un file viene acceduto, l’inode corrispondente viene caricato in memoria temporanea in una struttura apposita per poter essere utilizzato.

17
Q

Quando viene creato un file su Unix com’è fatto il suo inode?

A

Un inode per i permessi è composto da 9 bit che rappresentano a coppie di 3 (read write execute):

  • i primi 3 sono i permessi riguardanti l’utente che ha creato il file. Di base viene garantita almeno lettura e scrittura.
  • I successivi 3 sono i permessi che hanno gli utenti appartenenti allo stesso gruppo dello user. di base sono leggermente più stringenti, sono Angelo e nel mio sistema è abilitato solo il permesso di read.
  • Gli ultimi 3 sono i permessi di tutti gli altri utenti non specificati, ovvero other.

Di base sono più stringenti, sono Angelo e nel mio sistema è abilitato solo il permesso di read, ma D’angelo consiglia di toglierlo. Quindi quando un file viene creato il suo inode è fatto così: -rw-r–r–

18
Q

Cos’è un utente superuser nell’ambiente Unix?

A

Il superuser (root) nell’ambiente linux è l’amministratore di sistema, il quale non ha vincoli sulle autorizzazioni. L’amministratore:

  • non è soggetto a restrizioni;
  • ha l’accesso all’intero sistema.

Diverse parti del sistema linux vengono eseguite con i root priviledges (kernel), così come i software installer. Never run untrusted software with superuser priviledges!

19
Q

Qual è il problema del tradizionale approccio Unix dell’Access Control?

A

I sistemi Unix attuali hanno un numero elevato di gruppi, sono difficili da maneggiare ed alcuni vincoli e limitazioni sono difficili da rappresentare/imporre. L’approccio tradizionale è dunque inadeguato per ambienti di lavoro complessi.

20
Q

Unix supporta le ACL? Se sì, come funzionano?

A

Alcune versioni di UNIX supportano le ACL, come per esempio OpenBSD e FreeBSD. Non è tuttavia un meccanismo esistente in tutte le versioni di UNIX. È comunque implementabile ovunque. In FreeBSD per esempio, viene usato il programma setfacl per assegnare una lista di user ID e gruppi ad un file, senza limiti di numero. Setfacl indica rwx per ogni file e i protection bits. Non è obbligatorio che ogni file abbia un ACL. In Unix la group class (la seconda terna di lettere) indica il massimo permesso assegnato ai gruppi. Quando un processo richiede accesso ad un file, il sistema operativo seleziona la ACL più appropriata e controlla che l’entry sia corretta.

21
Q

Cos’è un ruolo nella Role Based Access Control?

A

Un ruolo è definito come una funzione di lavoro all’interno di una organizzazione. In questa Policy i permessi vengono assegnati ai ruoli invece che agli utenti. Agli utenti vengono invece assegnati dei ruoli e assumono autorizzazioni in base al ruolo.

Risposta completa (in italiano, bruh):

I sistemi DAC tradizionali definiscono i diritti di accesso di singoli utenti e gruppi di utenti. Al contrario, RBAC si basa sui ruoli che gli utenti assumono in un sistema piuttosto che l’identità dell’utente. Tipicamente, i modelli RBAC definiscono un ruolo come una funzione lavorativa all’interno di un’organizzazione. I sistemi RBAC assegnano i diritti di accesso ai ruoli anziché ai singoli utenti. A loro volta, gli utenti sono assegnati a ruoli diversi, staticamente o dinamicamente, secondo le proprie responsabilità. La relazione degli utenti con i ruoli è molti a molti, così come la relazione tra ruoli a risorse o oggetti di sistema. L’insieme degli utenti cambia, in alcuni ambienti frequentemente e l’assegnazione di un utente a uno o più ruoli può essere anche dinamica. L’insieme dei ruoli nel sistema nella maggior parte degli ambienti è relativamente statico, con solo occasionali aggiunte o cancellazioni. Ogni ruolo avrà un accesso specifico e diritti su una o più risorse. Possiamo usare la rappresentazione della matrice di accesso per rappresentare gli elementi chiave di un Sistema RBAC. In genere ci sono molti più utenti che ruoli.

22
Q

Quante matrici ci sono nella Role Based Access Control? Quali sono? Come sono fatte?

A

Sono 2, la matrice dei ruoli assegnati agli utenti e la matrice delle autorizzazioni assegnate
ai ruoli. La prima ha gli utenti sulle righe e i ruoli sulle colonne. Nelle entry ij compare 1
se l’utente li possiede il ruolo j. Nella seconda matrice sulle righe ci sono i ruoli, sulle colonne le risorse. Nella entry ij c’è l’access right del ruolo i sulla risorsa j.

23
Q

Quali caratteristiche deve avere un ruolo (Role Based Access Control)?

A

TODO

24
Q

Com’è fatto il modello base nella Role Based Access Control?

A

Spiegazione già data spiegando cos’è la Role Based AC

25
Q

Cosa significa Role Hierarchy? Perché è utile? A cosa serve?

A

Si tratta del modello di base del Role Based Access Control a cui vengono aggiunti meccanismi particolari per quanto riguarda la gerarchia dei ruoli. In un’organizzazione tipicamente ci sono posizioni più in alto nella scala gerarchica che hanno più permessi di chi sta più in basso. Tramite la role hierarchy è possibile creare un nuovo ruole che ne estende un altro. Questo nuovo ruolo avrà già di base i permessi che ha quell’altro, ma si possono overridare e crearne di nuovi

26
Q

A cosa servono i Constraint nella Role Based Access Control?

A

Come la role hierarchy si tratta di un meccanismo aggiuntivo del model based access control. In particolare si aggiungono dei controlli (constraint) ai ruoli. Alcuni dei più comuni sono ad esempio:

  • Un utente può solo essere assegnato a un solo ruolo del set di ruoli (che sia per
    una sola sessione o sempre)
  • Un permesso specifico può essere assegnato a un solo ruolo.
27
Q

Cos’è il Consolidate Model nella Role Based Access Control?

A

È il modello in cui il modello base della Role Based Access Control viene arricchito con il
modello che supporta i Constraint e il modello che supporta la Role Hierarchy