Controllo degli Accessi

Indice dei contenuti

    Il controllo degli accessi (access control) è l’insieme dei meccanismi di sicurezza che determinano quali entità — utenti, processi, servizi o dispositivi — possono accedere a quali risorse, e con quali permessi (lettura, scrittura, esecuzione, cancellazione). È la realizzazione tecnica del principio del minimo privilegio (Principle of Least Privilege, PoLP): ogni entità deve avere esattamente i permessi necessari per le proprie funzioni, e non uno di più. Si inserisce nel framework AAA come componente di Authorization: l’autenticazione verifica l’identità, il controllo degli accessi decide cosa quell’identità può fare. Le violazioni di accesso (Broken Access Control) sono al primo posto della classifica OWASP Top 10 dal 2021.

    Modelli fondamentali

    Il DAC (Discretionary Access Control) affida al proprietario della risorsa la decisione su chi può accedervi. È il modello dei filesystem Unix/Linux con i bit rwx. Flessibile ma vulnerabile: il malware che gira con i permessi dell’utente eredita tutti i suoi diritti di accesso.

    Il MAC (Mandatory Access Control) impone politiche centralmente tramite etichette di classificazione gerarchiche (Unclassified, Confidential, Secret, Top Secret) che né gli utenti né i proprietari delle risorse possono modificare. Usato in ambienti ad alta sicurezza; implementato in SELinux e AppArmor.

    Il RBAC (Role-Based Access Control) è il modello dominante in ambito aziendale: i permessi sono assegnati a ruoli, e gli utenti vengono assegnati ai ruoli appropriati. Semplifica la gestione su larga scala e consente la separazione dei compiti (SoD).

    L’ABAC (Attribute-Based Access Control) estende RBAC valutando attributi contestuali del soggetto, dell’oggetto e dell’ambiente: dipartimento, livello di clearance, orario, posizione geografica. Permette politiche contestuali impossibili in RBAC puro.

    Il modello Zero Trust nega il concetto di perimetro sicuro: nessun utente, dispositivo o rete è considerato affidabile per default, nemmeno quelli interni all’organizzazione. Richiede verifica esplicita continua, minimo privilegio e assunzione della violazione.

    Vulnerabilità applicative

    L’IDOR (Insecure Direct Object Reference) espone riferimenti diretti agli oggetti del database senza verificare che l’utente autenticato abbia diritto a quello specifico oggetto: modificando un ID numerico nell’URL si accede ai dati di un altro utente. La privilege escalation verticale permette a un utente a basso privilegio di accedere a funzionalità amministrative; quella orizzontale permette l’accesso ai dati di un altro utente allo stesso livello.

    Principi progettuali

    Oltre al minimo privilegio: default deny (nega tutto, permetti solo ciò che è esplicitamente necessario), separazione dei compiti (SoD — nessun utente può compiere da solo operazioni critiche come richiedere e approvare un pagamento), need to know (accesso alle informazioni solo a chi ne ha effettiva necessità operativa), revisione periodica dei permessi (access recertification — i diritti accumulati nel tempo vanno periodicamente verificati e revocati se non più necessari).

    Ultimo aggiornamento: