Chapter4-Access-Control Flashcards
Che differenza c’è fra Authentication, Authorization ed Audit?
- 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.
Cos’è una Access Control Policy?
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).
Che policy possono essere applicate per l’Access Control?
- DAC (Controllo discrezionale dell’accesso);
- MAC (Controllo dell’accesso obbligatorio);
- RBAC (Controllo degli accessi in base al ruolo).
Cosa significa Discretionary Access Control? In che tipo di sistemi viene usata?
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.
Cosa significa Mandatory Access Control? In che tipo di sistemi viene usata?
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).
Cosa significa Role Based Access Control? In che tipo di sistemi viene usata?
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
Quali sono le tre classi di soggetti possibili nell’Access Control?
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.
Cosa può essere un oggetto nell’Access Control?
Un file, una risorsa, un record, un blocco, una pagina, un segmento, una porzione di file, una directory, alberi di directory, mailbox, programmi.
Quali sono i possibili access right nell’access control?
Read, write, execute, delete, create, search.
Cos’è una matrice degli accessi? In che policy viene utilizzata? Cosa sta sulle righe? Cosa invece sulle colonne?
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.
Cos’è una ACL (Access Control List)? In che policy di Access Control viene utilizzata?
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.
Perché utilizzare tante ACL e non solo una semplice matrice per gestire gli accessi? Cosa invece è sconveniente utilizzando una ACL?
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).
Cos’è un capability ticket? In che policy di Access Control viene utilizzato?
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.
Perché utilizzare dei capability ticket e non solo una semplice matrice per gestire gli accessi ai file? Cosa è invece sconveniente utilizzando un Capability Ticket?
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.
Cos’è una authorization table? E’ una buona struttura dati per rimpiazzare ACL e Capability Ticket? Come funziona?
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.