hit counter
Il valore di UAC - parte 2a: delegare al sistema l'applicazione del principio del Least Privilege - NonSoloSecurity Blog di Feliciano Intini - Site Home - TechNet Blogs

NonSoloSecurity Blog di Feliciano Intini

Notizie, best practice, strategie ed innovazioni di Sicurezza (e non solo) su tecnologia Microsoft

Il valore di UAC - parte 2a: delegare al sistema l'applicazione del principio del Least Privilege

Il valore di UAC - parte 2a: delegare al sistema l'applicazione del principio del Least Privilege

  • Comments 11
  • Likes
 

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.

Comments
  • <p>Io continuo a pensare che questo automatismo non sia propriamente una novita', Feliciano. Linux gia' da anni utilizza questo sistema, le distribuzioni basate su Debian implementano questa caratteristica con i cosiddetti &quot;sudoers&quot;, mantenuti all'interno di un file di configurazione che definisce con esattezza chi puo' fare e cosa puo' fare, obbligando, nella sua configurazione minimale, l'utente ad inserire la propria password prima di poter eseguire azioni protette.</p> <p>La differenza forse consiste nel fatto che, nel caso di Linux, il sistema e' parecchio piu' versatile e configurabile. Ti faccio delle domande: e' sufficiente come procedura di sicurezza chiedere una conferma prima di lasciar eseguire ad un utente operazioni da amministratore? E' possibile con Vista distinguere le operazioni da poter eseguire attraverso UAC e quelle invece affidabili o fare distinzioni per tipo di utente o stabilire addirittura delle password?</p>

  • <p>Per quel che so io (purtroppo -ancora- poco), i &quot;sudoers&quot; abilitano appunto la possibilit&#224; di delegare l'uso dei privilegi di root ad altri utenti, ok in modo granulare, ma 1) non mi sentirei di parlare di automatismo quando si tratta di modificare a manina un file di configurazione, e in pi&#249; rispetto ad un set statico di utenti e programmi, che deve comunque decidere a priori l'amministratore 2) l'UAC, come detto, fa anche una restrizione in senso opposto, confinando all'uso di un security token non privilegiato anche quando sei loggato come amministratore. E non ho ancora postato sugli aspetti di virtualizzazione ...</p> <p>Sulla prima domanda: credo che la sicurezza sia legata al livello di &quot;trust&quot; nei confronti del codice/comando che si va a lanciare (ma questo &#232; un tema diverso e fa leva su controlli diversi), noi invece stiamo confrontando strumenti che aiutano ad evitare l'abuso di privilegi amministrativi. Nella seconda domanda mostri di gradire la granularit&#224;/flessibilit&#224; nel controllare e delegare l'esecuzione dei programmi, ma questa gestione &#232; comunque subordinata all'attivit&#224; dell'amministratore, non integrata nel sistema e ad esso delegata. Sono modi diversi, e a mio personale parere, adatti a scenari diversi: ribadisco che lo UAC nasce per condurre le brutte abitudini che si sono sviluppate nel tempo sulla piattaforma Windows da parte di utilizzatori, amministratori e sviluppatori, verso un nuovo modo di utilizzare, amministrare e programmare che usi con parsimonia i privilegi per ridurre il rischio.</p>

  • <p>Capisco il punto. Ma se mi parli di cattive abitudini secondo me l'UAC di Vista non contribuisce a limitarle. L'utente tipico si ritrova a premere &quot;si'&quot; all'UAC piu' volte a sessione, quanto ci mette secondo te a farla diventare un'abitudine facendo perdere del tutto il senso all'operazione?</p> <p>Se ci riferiamo ad un utente esperto, conscio ed attento dei danni che puo' fare allora e' sicuramene piu' utile un sistema piu' versatile e configurabile come quello di Linux. Se invece il target e' l'utente medio che ha la sola necessita' di usare il suo PC allora secondo il mio parere l'UAC di Vista si riduce ad una mascherina sulla quale bisogna premere &quot;si'&quot; ogni volta per poter continuare a lavorare.</p> <p>Sicuramente sto parlando di un sistema ancora poco noto e testato, arrivato in ritardo e per ultimo. Spero solo che l'UAC prenda perche' funzioni e non solo perche' e' Microsoft a spingerlo.</p>

  • <p>A scoppio ritardatissimo (impegni vari) mi aggiungo anch'io)</p> <p>Continuo a dire: il problema non &#232; 'sto benedetto UAC, bensi la cosiddetta modalita protetta.</p> <p>Sulla mia linux box ho la mia utenza normale che non ha &nbsp;possibilit&#224; di scrittura da nessuna altra parte che non sia la propria home; non ha permessi di esecuzione per la gran parte dei comandi di sistema (compreso shutdown).</p> <p>Questa modalit&#224; protetta in Vista &#232; abbastanza protetta da impedire di seminare l'intero filesystem di ospiti sgraditi, di attivare servizi all'insaputa dell'utente, di caricare all'avvio ospiti indesiderati ecc. ecc, di cancellare intere directory da c:\programmi per disinstallare un applicativo? Se si, tanto meglio, l'UAC ha una sua funzione; ma se alla fine la modalit&#224; protetta non impedisce queste cose,l'UAC &#232; semplicemente uno specchietto per le allodole, buono solo a nascondere le magagne di un sistema bacato (nel senso comune termine) in partenza.</p> <p>Vederemo</p> <p>Ciao</p>

  • <p>Della serie &quot;meglio tardi che mai&quot;:</p> <p>per Giuliastro: la mia personale esperienza di frequenza con la richiesta di innalzamento di privilegi &#232; diversa dalla tua; a me adesso, nel caso peggiore, mi capita un paio di volte nelle 10 ore di lavoro medie al giorno. La conferma con il &quot;S&#236;&quot; e non con la richiesta di credenziali avviene poi se sei ancora amministratore, e abbiamo detto che non si dovrebbe pi&#249; avere la necessit&#224; di lavorare in tale modalit&#224; (superato il periodo iniziale di setup del PC). Non credi di mostrare nelle tue parole un leggero preconcetto nei confronti di Vista ?... :-)</p> <p>Per Alberto: la modalit&#224; protetta funziona fornendo all'utente un token privato dei privilegi amministrativi, quindi di fatto &#232; come se tu fossi loggato come un utente normale anche se sei entrato come amministratore. </p> <p>Per entrambi: sono d'accordo che il tempo ci aiuter&#224; a capire la bont&#224; dell'UAC, ma nel tempo si pu&#242; avere anche tempo di migliorarlo, no ?</p>

  • <p>... il modo &#232;: lascio la porta aperta! Starete sicuramente pensando: il caldo record di questi giorni</p>

  • <p>Inoltro al volo la segnalazione dell'amico Renato (che ricordo essere, assieme a Giorgio, parte del mitico</p>

  • <p>Concordo assolutamente con quanto scrivi. Vorrei aggiungere che i paragoni con sudo e pi&#249; in generale con i sistemi Linux vanno ponderati a seconda della situazione. In particolare va considerato che la gestione privilegi di Linux &#232; rimasta praticamente immutata, cosa che ha portato gli sviluppatori a creare software seguendo determinate regole.</p> <p>Su Windows la situazione &#232; molto differente. Gli sviluppatori si sono erroneamente avvantaggiati di una situazione di per se infelice (la gestione privilegi non era un granch&#232;) e questo trend ha portato ai problemi attualemente riscontrabili. Da qui la creazione di UAC.</p> <p>Personalmente, per il tipo di utilizzo che faccio del pc ho preferito disattivarlo e avvantaggiarmi degli integrity level di Vista diversamente con PsExec di Russinovich e ICACLS. In particolare le applicazioni a rischio vengono eseguite con uno user differente e con integrit&#224; bassa, avendo cura di settare le directory in cui &#232; necessario il permesso di scrittura (profilo firefox, file ricevuti msn, etc.) ad integrit&#224; bassa.</p>

  • <p>Non so quanti di voi l'abbiano gi&#224; letto, ma questo post che vi segnalo del blog &quot; Engineering Windows</p>

  • <p>Nei giorni scorsi non si parlava d'altro rispetto al tema Windows 7 Security : le frasi sulla bocca di</p>

  • <p>Per il normale utilizzo di un pc casalingo, è inutile l&#39;UAC così come il firewall. Discorso diverso in ambito aziendale, professionale, et similia.</p> <p>Se una persona sa usare un PC decentemente, e lo fa solo in ambito casalingo, non sarà MAI attaccata da nessun hacker ( a meno di non scaricare cose &quot;strane&quot;, o visitare siti pericolosi ).</p> <p>Non avrà quindi mai bisogno nè di UAC, nè di firewall.</p> <p>E&#39; &nbsp;da &quot;Windows 3.11 for Workgroup&quot; che uso windows approfonditamente, sia per lavoro (sono programmatore Java) sia per divertimento. Non ho mai usato alcun firewall. Solo un buon antivirus (al momento avg free). E non ho mai avuto mezzo problema di attacco, sicurezza, o software nocivo.</p> <p>Quindi credo che il distinguo &quot;ambito di utilizzo del PC&quot; sia importante. Dire a dei &quot;normali&quot; utilizzatori che UAC &quot;serve sicuramente&quot;, secondo me è errato.</p> <p>Con rispetto, Saluti,</p> <p>Davide.</p>

Your comment has been posted.   Close
Thank you, your comment requires moderation so it may take a while to appear.   Close
Leave a Comment