Il MAC (Mandatory Access Control, controllo degli accessi obbligatorio) è un modello di controllo degli accessi in cui le politiche di accesso sono imposte centralmente da un’autorità di sicurezza e non possono essere modificate dai proprietari delle risorse. Il controllo è “obbligatorio” perché si applica a prescindere dalla volontà del proprietario: nessun utente, nemmeno il proprietario del file, può concedere accessi che la politica centrale non permette.
Etichette di classificazione
Il MAC associa a ogni soggetto (utente, processo) e a ogni oggetto (file, risorsa) un’etichetta di sicurezza composta da:
- Un livello di classificazione gerarchico (es. Unclassified < Confidential < Secret < Top Secret)
- Un insieme di compartimenti o categorie (es. “Progetto Alpha”, “HR”, “Finanza”)
Un soggetto può accedere a un oggetto solo se soddisfa entrambe le condizioni:
Modello Bell-LaPadula (confidenzialità)
Il modello formale di Bell-LaPadula (1973) definisce due regole fondamentali per garantire la confidenzialità:
No Read Up (NRU): un soggetto non può leggere oggetti a livello di classificazione superiore al proprio. Un utente con clearance Confidential non può leggere file Secret.
No Write Down (NWD): un soggetto non può scrivere su oggetti a livello di classificazione inferiore al proprio. Un utente con clearance Secret non può copiare informazioni in un file Unclassified — previene la fuga di informazioni verso livelli meno protetti.
Implementazioni pratiche
SELinux (Security-Enhanced Linux, sviluppato dalla NSA) implementa MAC nel kernel Linux tramite security labels su ogni processo e file. Ogni accesso al sistema operativo — apertura di file, connessioni di rete, fork di processi — viene controllato rispetto alla policy SELinux. È la base di sicurezza di Android (ogni app è un processo con label SELinux distinta) e di distribuzioni enterprise come RHEL.
AppArmor (Ubuntu, SUSE) è un’implementazione MAC alternativa basata su profili per path del filesystem invece di label: più semplice da configurare di SELinux ma meno espressivo.
Windows Mandatory Integrity Control (MIC): Windows Vista e successivi usano MAC tramite Integrity Levels (Low, Medium, High, System) assegnati a processi e oggetti. Internet Explorer in modalità protetta gira a Low Integrity e non può scrivere su oggetti a livelli superiori — limita l’impatto di exploit browser.
Confronto con DAC
Nel DAC il proprietario controlla i permessi; nel MAC l’autorità centrale li impone. Un ransomware che compromette un utente nel MAC non può scrivere su file a livello di classificazione che la policy non gli permette — anche se l’utente ne è il proprietario. Il MAC è il modello degli ambienti militari, governativi e delle infrastrutture critiche che richiedono separazione rigida delle informazioni classificate.