Modelli di autorizzazione: RBAC, MAC e DAC
Confronti i modelli di controllo degli accessi basato sui ruoli, obbligatorio e discrezionale, imparando quando ciascuno sia appropriato in contesti aziendali e governativi.
Modelli di autorizzazione: RBAC, MAC e DAC è una lezione Cloud & IT Cert Prep gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cloud & IT Cert Prep, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.
Panoramica dei modelli di controllo degli accessi
I modelli di controllo degli accessi definiscono le regole e le policy che stabiliscono quali soggetti (utenti, processi) possono accedere a quali oggetti (file, sistemi, dati). Il modello scelto determina chi può concedere l'accesso, come vengono assegnate le autorizzazioni e come viene applicato il controllo. L'esame Security+ tratta quattro modelli principali: Discretionary Access Control (DAC), Mandatory Access Control (MAC), Role-Based Access Control (RBAC) e Rule-Based Access Control. Comprendere i punti di forza e i casi d'uso appropriati di ciascun modello è essenziale per progettare sistemi di autorizzazione efficaci.
Discretionary Access Control (DAC)
Nel Discretionary Access Control (DAC), il proprietario della risorsa decide chi può accedere alle proprie risorse e può concedere o revocare l'accesso ad altri utenti. L'aspetto «discretionary» consiste nel fatto che sono i proprietari a decidere: il sistema applica le loro decisioni, ma non le impone. È il modello utilizzato nella maggior parte degli ambienti di personal computing (autorizzazioni dei file NTFS di Windows, autorizzazioni dei file Linux/Unix). Il limite di sicurezza del DAC è che richiede a ogni proprietario di risorsa di prendere decisioni corrette sull'accesso: un utente che riceve l'accesso a un file può concederlo ad altri senza l'intervento di un amministratore, diffondendo potenzialmente dati sensibili oltre il pubblico previsto.
# DAC example: Linux file permissions (owner controls access)
# Create a file and check default permissions
touch confidential_data.txt
ls -la confidential_data.txt
# -rw-rw-r-- 1 alice users (owner=alice, can read/write; group can read/write; others read)
# Owner (Alice) discretionarily removes all access for others
chmod 600 confidential_data.txt
# -rw------- 1 alice users (only Alice can read/write)
# Alice grants read to a specific user via ACL
setfacl -m u:bob:r confidential_data.txtRischi del DAC: il problema del confused deputy
Il DAC presenta due rischi intrinseci per la sicurezza. Accesso transitivo: l'utente A concede l'accesso all'utente B, che lo concede all'utente C; il proprietario originale potrebbe persino non sapere che C ha accesso alla propria risorsa. Il problema del Confused Deputy: un programma con privilegi che agisce per conto di un utente con meno privilegi può utilizzare inavvertitamente i propri privilegi in un modo che l'utente non potrebbe adottare direttamente. Negli ambienti DAC, un singolo account compromesso può potenzialmente accedere a tutte le risorse a cui quell'utente ha ricevuto accesso e può concedere l'accesso ad altri prima che la compromissione venga rilevata. Il DAC è pratico, ma rende difficile il rigoroso contenimento delle informazioni.
Mandatory Access Control (MAC)
Nel Mandatory Access Control (MAC), il sistema operativo applica le policy di accesso sulla base delle etichette di sicurezza assegnate sia ai soggetti (utenti) sia agli oggetti (dati). Gli utenti non possono ignorare o modificare queste policy: solo l'amministratore di sistema o la policy di sicurezza può modificarle. Il MAC viene utilizzato negli ambienti governativi e militari con informazioni classificate, dove i dati devono essere rigorosamente compartimentati. Un utente con un'autorizzazione «Secret» non può accedere a dati contrassegnati come «Top Secret», anche se il proprietario dei dati vorrebbe concedergli l'accesso. Il modello Bell-LaPadula (no read up, no write down) e il modello Biba (no write up, no read down) sono implementazioni formali del MAC.
# SELinux is a MAC implementation for Linux
# Check SELinux mode and policy
getenforce # Enforcing / Permissive / Disabled
sestatus # Detailed SELinux status
# View SELinux security context labels on files
ls -Z /etc/passwd
# system_u:object_r:passwd_file_t:s0 /etc/passwd
# Security context: user:role:type:level
# A process can only access files where its type has explicit permission
sudo ausearch -m avc -ts recent # View MAC policy denialsModelli MAC Bell-LaPadula e Biba
Due modelli MAC formali esprimono gli obiettivi di sicurezza mediante regole matematiche. Bell-LaPadula si concentra sulla riservatezza: i soggetti non possono leggere dati al di sopra del proprio livello di classificazione (no read up) e non possono scrivere dati a un livello di classificazione inferiore (no write down). In questo modo si impedisce che informazioni sensibili raggiungano utenti non autorizzati. Biba si concentra sull'integrità: i soggetti non possono scrivere a un livello di integrità superiore (no write up) e non possono leggere da un livello di integrità inferiore (no read down). Biba impedisce che dati con un'elevata integrità vengano contaminati da input con una bassa integrità. I sistemi MAC reali (come SELinux) combinano aspetti di entrambi i modelli.
Role-Based Access Control (RBAC)
Il Role-Based Access Control (RBAC) assegna le autorizzazioni ai ruoli anziché direttamente ai singoli utenti, quindi assegna gli utenti ai ruoli. Questo risolve il problema gestionale dell'assegnazione su larga scala di autorizzazioni individuali. Esempi di ruoli comuni negli ambienti aziendali: admin, auditor, developer, HR_manager, finance_analyst. Quando entra in azienda un nuovo dipendente, viene aggiunto al ruolo appropriato ed eredita immediatamente tutte le autorizzazioni richieste da quel ruolo. Quando un dipendente cambia posizione, cambia il suo ruolo e le autorizzazioni si adeguano automaticamente. L'RBAC è il modello dominante nei sistemi IAM aziendali.
# RBAC example (database permissions)
# Create roles and assign permissions
CREATE ROLE readonly_analyst;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly_analyst;
CREATE ROLE data_engineer;
GRANT SELECT, INSERT, UPDATE ON customer_data TO data_engineer;
# Assign users to roles
GRANT readonly_analyst TO alice;
GRANT data_engineer TO bob;
# When Alice is promoted: revoke old role, grant new one
REVOKE readonly_analyst FROM alice;
GRANT data_engineer TO alice;Vantaggi dell'RBAC: scalabilità e separazione dei compiti
Il principale vantaggio dell'RBAC è la scalabilità amministrativa. Modificare le autorizzazioni di un ruolo produce immediatamente effetto su tutti gli utenti che ne fanno parte: non è necessario aggiornare i singoli record degli utenti in centinaia di sistemi. L'RBAC supporta naturalmente la separazione dei compiti, impedendo che un singolo ruolo disponga di autorizzazioni in conflitto (ad esempio, un ruolo che possa sia creare sia approvare transazioni finanziarie). L'RBAC semplifica anche la conformità: gli auditor possono esaminare i ruoli e le relative autorizzazioni invece di verificare migliaia di assegnazioni individuali agli utenti. Il limite è la proliferazione dei ruoli: le organizzazioni a volte creano troppi ruoli granulari, generando una complessità gestionale che vanifica il vantaggio della scalabilità.
Rule-Based Access Control
Il Rule-Based Access Control (da non confondere con l'RBAC) concede o nega l'accesso sulla base di un insieme di regole condizionali, anziché basarsi solo sull'identità o sul ruolo. Le regole del firewall sono l'esempio classico: «Consenti TCP da 192.168.1.0/24 verso qualsiasi destinazione sulla porta 443. Nega tutto il traffico restante». L'accesso viene valutato rispetto alle regole nell'ordine in cui sono definite, fino a trovare una corrispondenza. Il controllo basato su regole viene spesso combinato con altri modelli: il MAC utilizza le etichette di sicurezza come regole e l'Attribute-Based Access Control (ABAC) estende la logica basata su regole per valutare simultaneamente più attributi (reparto dell'utente, tipo di dispositivo, ora del giorno, classificazione della risorsa) e prendere decisioni granulari.
# Rule-based access control: iptables firewall rules
# Rules are evaluated in order; first match wins
# Allow established/related connections
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow specific source IP to SSH
iptables -A INPUT -s 10.0.0.100 -p tcp --dport 22 -j ACCEPT
# Allow HTTPS from anywhere
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# Default deny all other inbound
iptables -A INPUT -j DROPAttribute-Based Access Control (ABAC)
L'ABAC (Attribute-Based Access Control) è il modello di controllo degli accessi più flessibile e granulare. Le decisioni di accesso valutano simultaneamente più attributi: attributi del soggetto (reparto dell'utente, livello di autorizzazione, posizione), attributi dell'oggetto (classificazione dei dati, reparto del proprietario, etichetta di conservazione), attributi ambientali (ora del giorno, tipo di dispositivo, posizione della rete) e attributi dell'azione (lettura, scrittura, eliminazione). Una policy potrebbe stabilire: «Consenti l'accesso se user.department = Finance AND resource.classification = Internal AND device.type = corporate AND time.hour BETWEEN 8 AND 18». L'ABAC consente di prendere decisioni di policy secondo il modello zero trust ed è implementato da prodotti come XACML e dai motori di policy IAM cloud.
Scegliere il modello giusto
Il modello di controllo degli accessi appropriato dipende dai requisiti di sicurezza e dal contesto organizzativo. DAC: adatto al personal computing e ai piccoli team in cui la praticità è prioritaria rispetto al controllo rigoroso. MAC: necessario negli ambienti governativi e militari con informazioni classificate e una rigida compartimentazione delle informazioni. RBAC: ideale per le aziende in cui la scalabilità amministrativa è essenziale e i ruoli corrispondono chiaramente alle funzioni lavorative. ABAC: adatto agli ambienti cloud e alle architetture zero trust, in cui sono necessarie policy granulari basate sul contesto. Nella pratica, la maggior parte delle organizzazioni utilizza una combinazione: RBAC come base e ABAC per le decisioni di accesso sensibili al contesto.
Liste di controllo degli accessi (ACL)
Indipendentemente dal modello di controllo degli accessi, le liste di controllo degli accessi (ACL) sono il meccanismo di implementazione tecnica più comune. Un'ACL associata a una risorsa specifica quali soggetti possono eseguire determinate azioni. Le ACL dei file system (Windows NTFS, ACL POSIX di Linux) controllano l'accesso a file e directory. Le ACL di rete controllano il flusso del traffico a livello di router o di rete cloud. Le ACL dei database controllano l'accesso a livello di tabelle e righe. Le ACL possono implementare qualsiasi modello tra quelli descritti: l'ACL di un file implementa il DAC quando è il proprietario a controllarla; l'ACL di un sistema di sicurezza implementa il MAC quando le etichette determinano le voci; l'ACL di un'applicazione implementa l'RBAC quando le voci fanno riferimento ai ruoli.
# Windows NTFS ACL example using icacls
# View current ACL on a folder
icacls 'C:\Sensitive\HR_Data'
# BUILTIN\Administrators:(OI)(CI)(F) <- Full control
# CONTOSO\HR_Team:(OI)(CI)(RX) <- Read and Execute
# Grant specific permissions to HR Managers group
icacls 'C:\Sensitive\HR_Data' /grant 'CONTOSO\HR_Managers:(OI)(CI)(M)'
# (OI)=Object Inherit, (CI)=Container Inherit, (M)=Modify
# Remove access for a former contractor
icacls 'C:\Sensitive\HR_Data' /remove 'CONTOSO\contractors'Verifica rapida
Verifichi la Sua comprensione dei concetti di CompTIA Security+ (SY0-701) trattati in questa lezione.
Riepilogo della lezione
In questa lezione ha imparato che: il DAC consente ai proprietari delle risorse di controllare l'accesso (è flessibile, ma rischioso); il MAC utilizza etichette di sicurezza applicate dal sistema (è rigido e viene usato negli ambienti con informazioni classificate); l'RBAC assegna le autorizzazioni ai ruoli per garantire la scalabilità aziendale; e l'ABAC valuta più attributi per decisioni granulari basate sul modello zero trust. Prossimamente esamineremo la Federated Identity: SAML, OAuth, and OpenID Connect.
Domande Frequenti
La lezione «Modelli di autorizzazione: RBAC, MAC e DAC» è gratuita?
Sì — il testo completo di «Modelli di autorizzazione: RBAC, MAC e DAC» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cloud & IT Cert Prep, passa a CoddyKit PRO. Il corso Cloud & IT Cert Prep include 4 lezioni in totale.
Cosa imparerò in «Modelli di autorizzazione: RBAC, MAC e DAC»?
Confronti i modelli di controllo degli accessi basato sui ruoli, obbligatorio e discrezionale, imparando quando ciascuno sia appropriato in contesti aziendali e governativi. Eserciti Cloud & IT Cert Prep con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Cloud & IT Cert Prep?
Non è richiesta alcuna esperienza precedente. Cloud & IT Cert Prep su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.
Quanto tempo richiede la lezione «Modelli di autorizzazione: RBAC, MAC e DAC»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Cloud & IT Cert Prep?
Sì. Ogni lezione Cloud & IT Cert Prep include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Policy delle password e autenticazione a più fattori
- Biometria e autenticazione basata su token
- Modelli di autorizzazione: RBAC, MAC e DAC
- Identità federata: SAML, OAuth e OpenID Connect