14 March 2007
Il valore di UAC - parte 2a: delegare al sistema l'applicazione del principio del Least Privilege
L'interesse e i commenti sul tema UAC scatenati dal mio precedente post al riguardo, mi spingono a tornare sull'argomento con qualche dettaglio in più, perché mi preme farvi apprezzare il valore dello User Account Control alla luce del percorso che ha portato Microsoft fino a qui, e che la spinge a proseguire.
Il cuore del problema si può riassumere così: assodato che tutti probabilmente concordiamo sulla necessità di applicare il principio del Least Privilege (che di seguito indico con LP) come pratica per migliorare la sicurezza, come ci assicuriamo che venga effettivamente applicato ?
Scenario aziendale: tipicamente l'utente è una persona diversa dall'amministratore del suo PC (ho detto "tipicamente", ma vi assicuro che la nostra esperienza sui grandi clienti italiani non è molto confortante rispetto a questa basilare best practice di sicurezza... ) e in questo caso la separazione fisica dei ruoli facilita l'applicazione del principio del LP, l'utente usa un account non privilegiato, si ritrova un PC più o meno blindato, e i task di gestione vengono fatti solo dal suo amministratore.
Nello scenario non aziendale, "consumer", almeno un utilizzatore del computer è necessariamente anche amministratore, a pieno titolo, senza mezze misure: l'applicazione del principio del LP è demandato alla buona volontà e competenza dell'utente, e questo ha mostrato tutti i suoi limiti.
Se va bene ci troviamo di fronte ad un utente esperto (e consapevole dei rischi di sicurezza nel navigare e aprire allegati pericolosi con le credenziali amministrative) che crea due account e li usa in base al da farsi. Se va male ci troviamo di fronte all'utente medio, puro utilizzatore e poco tecnico, che è amministratore pieno (magari senza saperlo o senza ricordarlo più ...), che finirà per ritrovarsi un bel giorno infestato da una famiglia di malware comodamente seduta sul suo salotto di casa, senza nessuna voglia di andarsene...
Considerazione n°1: delegare alla competenza dell'utente l'applicazione del principio del LP non funziona. Anche se è sempre importante aumentare la sua consapevolezza ("Security awareness"), non si può fare affidamento sulla sua preparazione tecnica.
Considerazione n°2: anche demandare alla buona volontà dell'utente esperto si è rivelato non efficace: prima di arrivare allo UAC, in Microsoft si è cominciato diversi anni prima a sperimentare il Least-privileged User Account (LUA), ossia a verificare i diversi problemi di compatibilità che si avevano nell'usare sempre e comunque l'utente non privilegiato. Quello che emergeva era che anche l'utente esperto non riusciva nel suo intento di usare poco l'elevazione di privilegi, perché costretto da tutta una serie di applicazioni scritte senza l'attenzione al principio del LP (in tempi in cui la sicurezza non era la priorità principale), strutturate per usare i pieni poteri senza averne necessariamente bisogno, per sola comodità e pigrizia.
Quindi come far evolvere questa piattaforma Windows, con questi vincoli (applicazioni legacy che hanno bisogno di pieni poteri) e l'urgente necessità di limitare l'abuso delle credenziali privilegiate ?
Approccio: cominciamo a delegare al sistema l'applicazione del principio del LP, il controllo dell'utilizzo dei privilegi. Sia che si sia un utente semplice o un amministratore, il sistema ti fa operare con il numero più basso di privilegi e ti guida, ti segnala la necessità di innalzarli per i task che lo richiedono. Quindi se concordo con chi dice che sono concetti di sicurezza che altre piattaforme hanno già da tempo, mi sento di dire che è assolutamente nuovo questo tipo di "automatismo" che ha in carico il controllo dei privilegi necessari e guida l'utente nelle operazioni di elevation. UAC, così facendo, ottiene 2 risultati: aiuta l'utente 1) sia ad applicare realmente il principio del LP, 2) che a educarlo a comprendere quali situazioni richiedano più privilegi e quindi siano potenzialmente più pericolose, e a insospettirlo rispetto a situazioni anomale di richiesta di privilegi.
Per chiudere questo secondo approfondimento, volevo farvi notare che il nome della funzionalità non è stato scelto a caso, riflette esattamente questo approccio di progetto: già dopo la beta 1 di Windows Vista il nome è diventato User Account Control proprio per rimarcare questo aspetto di controllo da parte del sistema nell'utilizzo dei privilegi.
Comment Notification
If you would like to receive an email when updates are made to this post, please register here
Subscribe to this post's comments using
Comment Policy: No HTML allowed. URIs and line breaks are converted automatically. Your e–mail address will not show up on any public page.