5 Dynamic Access Control in una realtà consortile tramite XACML e smart contract
Capitolo 1 - Access control models
Il controllo degli accessi è una tecnica di sicurezza che regola chi o cosa
può visualizzare o utilizzare le risorse in un ambiente informatico,
garantendo che gli utenti siano chi dichiarano di essere e che abbiano
l'accesso appropriato ai dati aziendali.
Per accesso appropriato si intende la nozione del minimo privilegio in
riferimento al concetto di teoria della sicurezza delle informazioni, in
base al quale si concedono solamente i livelli (o permessi) minimi di
accesso alle risorse dei quali l’utente ha bisogno per svolgere le proprie
mansioni (CyberArk, 2021).
Mantenere il privilegio minimo è importante in quanto riduce la
superficie
3
esposta agli attacchi informatici.
Nell’ambito del controllo degli accessi l’identità di un utente remoto
viene verificata tramite due funzionalità di sicurezza: l'identificazione e
l'autenticazione.
La prima fase è quella di identificazione, nella quale l'utente dichiara la
propria identità al sistema, mentre la seconda fase riguarda la tecnica
con cui tale identità viene verificata.
3
La superficie di attacco (Attack Surface) di un ambiente software è la somma
dei diversi punti o vettori di attacco (Attack Vector) in cui un utente non
autorizzato tenta di inserire o estrarre dati da un ambiente. Quindi la
superficie è quella parte del sistema stesso che può essere esposta ad accesso
o a modifiche di utenti non autorizzati. Tanto maggiore è la superficie, tanto
più il sistema è vulnerabile, mantenere la superficie di attacco il più piccola
possibile è una misura di sicurezza di base in quanto, una piccola superficie
d’attacco non è molto efficace nel limitare i danni che un attaccante può fare
nel momento in cui trova una vulnerabilità, ma riduce comunque la
possibilità di trovarne una.
6 Capitolo 1 - Access control models
La sicurezza della risorsa a cui l'utente desidera accedere dipende
fortemente dalla tecnica utilizzata per autenticarlo.
L'utilizzo di sistemi non avanzati ma deboli o non sufficienti sicuri da
garantire l'identità dell'utente remoto possono esporre la risorsa a
numerosi rischi.
Il sistema di autenticazione più diffuso è la combinazione tra
identificativo (username) e password che, se verificata, permette
l’accesso dell'utente al sistema.
Anche se diffusa e storicamente utilizzata, questa tecnica a fronte di una
relativa praticità fornisce una sicurezza limitata, e caratterizzata da
diverse problematiche. La password, può essere trascritta, sottratta,
smarrita, ricavabile, condivisa o dimenticata; di conseguenza non è
adatta in quei contesti in cui è necessario avere una sicurezza
sull'effettiva identità del soggetto.
Per superare tale limitazione ed innalzare i livelli di sicurezza sono nate
le tecniche di Strong Authentication o autenticazione a più fattori
4
(Multi
Factor Authentication) che combinano l’utilizzo di fattori di categorie
diverse per permettere l’accesso (Microsoft, 2021).
Il controllo degli accessi copre tutta la pila ISO/OSI – TCP/IP e a ogni livello
corrisponde un metodo di controllo differente, tuttavia è possibile
scindere due tipologie di controlli: quelli legati all’ambito network che
verificano se la forma delle richieste sia corretta; i controlli applicativi di
4
I fattori di autenticazione sono un modo per dimostrare di essere chi si dice di
essere quando si prova ad accedere e sono divisi in tre categorie:
1. Qualcosa che conosci: ad esempio una password o un PIN memorizzato.
2. Qualcosa di cui si dispone, ad esempio uno smartphone o una chiave
OTP.
3. Qualcosa che sei: come un'impronta digitale o il riconoscimento facciale.
7 Dynamic Access Control in una realtà consortile tramite XACML e smart contract
directory, tra cui LDAP (Lightweight Directory Access Protocol), XACML
(Extensible Access Control Markup Language) e SAML (Security
Assertion Markup Language ), che analizzano la richiesta d’accesso, e in
base ad un database di regole decidendo se autorizzare o meno utenti
ed entità l’accesso alle risorse, come applicazioni distribuite e server web.
Un ulteriore divisione può essere effettuata in Access Management (AM),
Identity and Access Management (IAM) e Privileged Access
Management (PAM) (Martin, 2019) (Lutkevich, 2020).
Sebbene queste categorie hanno delle sigle simili e agiscano per
rafforzare la posizione di sicurezza di un'organizzazione, hanno significati
separati e distinti che verranno esposti in seguito.
1.1 - Access Management – AM
Access Management (AM) garantisce che l'accesso sia concesso a utenti
validi e vietato a utenti non validi identificando, tracciando e regolando
l'accesso degli utenti a un sistema o applicazione
Esistono diversi modelli di controllo degli accessi a seconda dei requisiti
di conformità e dei livelli di sicurezza della tecnologia dell'informazione
(IT) che stanno cercando di proteggere.
I principali sono i seguenti:
● Discretionary Access Control (DAC);
● Mandatory Access Control (MAC);
● Role-Based Access Control (RBAC);
● Attribute Based Access Control (ABAC).
8 Capitolo 1 - Access control models
Figura 1: Politiche di Access Control
Tipologie di controllo dell’accesso
Controllo discrezionale degli accessi (DAC)
Consiste in un metodo di controllo degli accessi in cui i proprietari dei
dati o della risorsa impostano le politiche che definiscono chi o cosa è
autorizzato ad accedere alla risorsa.
Molti di questi sistemi consentono agli amministratori di limitare la
propagazione dei diritti di accesso. Una critica comune ai sistemi DAC è
la mancanza di controllo centralizzato.
Un tipico esempio di DAC è la modalità file Unix, che definisce i permessi
di lettura, scrittura ed esecuzione in ciascuno dei tre bit per ogni utente,
gruppo e altri.
Controllo d'accesso vincolato (MAC)
Si tratta di un modello di sicurezza in cui i diritti di accesso sono regolati
da un'autorità centrale basata su più livelli di sicurezza.
Spesso utilizzate in ambienti governativi e militari, Il controllo effettivo
avviene attraverso l’utilizzo di un sistema operativo o di un security
kernel: quando un utente tenta di ottenere accesso a determinati dati, il
sistema confronta gli attributi della risorsa con il livello di autorizzazione
(Personnel Security Clearance) dell'utente o del dispositivo e determina
se concedere o negare il permesso.
9 Dynamic Access Control in una realtà consortile tramite XACML e smart contract
Degli esempi: il Security Enhanced Linux (SELinux) è
un'implementazione di MAC sul sistema operativo Linux.
Controllo degli accessi in base al ruolo (RBAC)
Consiste in un meccanismo di controllo degli accessi ampiamente
utilizzato che limita l'uso delle risorse in base al ruolo che l’individuo in
quel momento sta svolgendo, ad esempio manager, tecnico, ecc.,
anziché sulle identità dei singoli utenti.
Il modello di sicurezza basato sui ruoli si avvale di una struttura
complessa di assegnazioni e autorizzazioni dei ruoli.
I sistemi RBAC possono essere utilizzati per applicare i framework MAC
e DAC.
Controllo degli accessi basato sugli attributi (ABAC)
Consiste in una metodologia di controllo dell'accesso che valuta le
richieste di utilizzo delle risorse valutando gli attributi associati al
soggetto, all'oggetto, alle operazioni richieste e, in alcuni casi, alle
condizioni ambientali rispetto a criteri, regole o relazioni che descrivono
le operazioni consentite per un dato insieme di attributi.
Uno dei linguaggi utilizzati per specificare le policy in un sistema basato
su ABAC è XACML.
eXtensible Access Control Markup Language (XACML)
Linguaggio open source basato su XML progettato per esprimere criteri
di sicurezza e diritti di accesso alle informazioni per servizi Web, gestione
dei diritti digitali (Digital Right Management - DRM) e applicazioni di
sicurezza aziendale.
Ratificato dall' Organization for the Advancement of Structured
Information Standards (OASIS) per la prima volta nel 2003 e
costantemente aggiornato, (OASIS, 2021).
10 Capitolo 1 - Access control models
XACML è stato sviluppato per standardizzare il controllo degli accessi in
modo da garantire interoperabilità tra le implementazioni dei diversi
vendor e progettato per funzionare insieme a Security Assertion Markup
Language (SAML).
SAML definisce un mezzo per condividere le informazioni di
autorizzazione, come password utente e autorizzazioni di sicurezza, tra
sistemi di sicurezza tra cui autenticazioni SSO (Single Sign On).
La X in XACML indica il termine eXtensible perché tramite esso è
possibile estendere le funzionalità e il campo d’azione dell'autorizzazione
basata su XACML tramite l’utilizzo di alcuni plugin denominati “profili”.
Un profilo può estendere la funzionalità di un server delle politiche in
diversi modi ad esempio aggiungere una classificazione o terminologia
da un dominio standardizzato esistente, può anche includere
funzionalità più avanzate, come nuovi tipi di dati o funzioni definite
dall'utente.
Aver scritto XACML con un linguaggio open, lo rende adattabile a diverse
applicazioni e la divisione interna, con componenti separate, ne
permette la personalizzazione e la creazione di architetture ad hoc per
ogni esigenza.
Architettura
XACML è composto dalle sottostanti componenti:
● PAP -Policy Administration Point;
● PRP - Policy Retrieval Point;
● PEP - Policy Enforcement Point;
● PIP - Policy Information Point;
● PDP - Policy Decision Point.
I cui compiti sono:
● PAP: punto di amministrazione dove vengono gestite e create le
politiche di autorizzazione all'accesso;
11 Dynamic Access Control in una realtà consortile tramite XACML e smart contract
● PRP: punto in cui sono archiviati i criteri di autorizzazione
all'accesso XACML, in genere un database o il filesystem;
● PEP: punto di applicazione delle politiche, questa componente
intercetta la richiesta di accesso dell'utente nei confronti di una
risorsa traducendola in una richiesta di autorizzazione XACML,
cioè sotto un formato standard e comprensibile al PDP al quale
richiede una valutazione in merito e agendo in base alla decisione
ricevuta;
● PIP: componente che fornisce le informazioni riguardanti gli
attributi delle risorse al PDP per permettergli di effettuare una
valutazione corretta. Ad esempio il PIP fornisce il valore
dell'attributo “role” di un utente in base all'ID dell'utente presente
nella richiesta;
● PDP: parte dell’architettura nella quale vengono valutate le
richieste di accesso rispetto alle politiche di autorizzazione
avvalendosi delle informazioni presenti nel PRP e PIP.
Flusso delle operazioni
Come definito precedentemente, XACML è composto da diverse parti,
queste, interagiscono fra loro secondo il sottostante flusso:
1. Viene definita una policy sul PAP e vengono salvate sul PRP;
2. Un utente invia una richiesta che viene intercettata dal PEP;
3. Il PEP converte la richiesta in una richiesta di autorizzazione
XACML inoltrandola al PDP;
4. Il PDP acquisisce dal PRP le regole e se necessario i valori degli
attributi dal PIP, valuta la richiesta di autorizzazione rispondendo
al PEP;
5. Il PEP agisce in base alla risposta ottenuta che può essere accesso
Permesso/Negato/Non Applicabile/Indeterminato agisce in base
alla sua programmazione.
12 Capitolo 1 - Access control models
Figura 2: Struttura XACML
Policy
La struttura del database delle regole è gerarchica, ed è composta da tre
elementi: Policy Set, Policy, Rule.
Un Policy Set può contenere un numero qualsiasi di elementi di Policy o
di policy set; una Policy può contenere un numero qualsiasi di elementi
Rule.
Figura 3: Gerarchia Policy XACML
<Rule> - Elemento base che contiene un'espressione booleana che può
essere valutata singolarmente, ma che non può essere il singolo criterio
di valutazione de parte del PDP e devono essere incapsulate all’interno