Il Discretionary Access Control (DAC) è un modello di controllo degli accessi in cui gli utenti posseggono le proprie risorse e ne determinano le autorizzazioni.
Caratteristiche principali:
- Il proprietario di una risorsa può modificarne i permessi e decidere chi può accedervi.
- È possibile trasferire la proprietà di una risorsa ad altri utenti.
- Il sistema offre flessibilità, ma è vulnerabile a errori, negligenza o abusi.
- Affinché sia efficace, tutti gli utenti devono rispettare la politica di sicurezza e comprendere i meccanismi di controllo degli accessi.
Vulnerabilità e rischi:
Uno dei principali rischi del DAC è rappresentato dagli attacchi tramite cavalli di Troia, ossia programmi malevoli che inducono gli utenti a concedere involontariamente privilegi a terzi, compromettendo la sicurezza del sistema.
Limitazioni del modello discrezionale
Un’altra criticità del modello DAC è l'assenza di controlli sul flusso delle informazioni:
- Una volta che un processo ha ottenuto accesso a una risorsa, non ci sono meccanismi che impediscano la condivisione non autorizzata dei dati con altri utenti o programmi.
- Questo può accadere senza che l’amministratore di sistema ne sia consapevole, poiché ogni richiesta di accesso viene valutata individualmente senza considerare l’effettivo utilizzo dei dati.
In sintesi, le politiche discrezionali sono vulnerabili a Trojan Horse e altre forme di abuso, poiché si basano esclusivamente sulle autorizzazioni degli utenti senza un controllo adeguato su come i dati vengono usati e trasmessi dai processi.
Un esempio semplice di DAC: Unix
Il Discretionary Access Control (DAC) in Unix si basa sul concetto che ogni file e risorsa ha un proprietario che può definirne i permessi di accesso. Tuttavia, non tutte le politiche di accesso possono essere facilmente mappate su questo modello.
Esempio di limitazioni del DAC in Unix
Un problema tipico è la gestione di dati sensibili come le cartelle cliniche in un ospedale:
- Se un paziente deve poter accedere ai propri documenti medici, come si esprime questa regola nel sistema di permessi di Unix?
- Chi è il vero proprietario delle cartelle cliniche? Il paziente, il medico o l’ospedale?