MAC — Mandatory Access Control

Indice dei contenuti

    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:

    Soggetto.livelloOggetto.livelloANDSoggetto.compartimentiOggetto.compartimenti\text{Soggetto.livello} \geq \text{Oggetto.livello} \quad \text{AND} \quad \text{Soggetto.compartimenti} \supseteq \text{Oggetto.compartimenti}

    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.

    Ultimo aggiornamento: