A Ovest Di Paperino

Welcome to the dark side.

Vista e gli Integrity Level

Come già spiegato in passato su questo canale, Vista è la prima versione di Windows ad implementare una corretta separazione degli account via UAC.

Purtroppo con alcune forme di malware recenti, la separazione degli account non basta. Se lanciassi una applicazione come utente normale, l'applicazione avrebbe comunque pieno accesso ai miei dati personali (parlo delle cartelle Documenti, Desktop, ecc.) e questo è vero anche su altri OS. Una delle forme più insidiose di malware che non ha bisogno di permessi di amministratore per combinare danni è il cosidetto ransomware, software che si 'accontenta' di criptare tutti i file dati a cui ha accesso e chiedere una all'utente una quantità di denaro in cambio dei codici chiave per riavere indietro i propri dati, dal punto di vista legale una vera e propria estorsione. Così come è concepito, il ransomware non avrebbe problemi a mietere vittime su tutte le piattaforme: in parole povere è possibile scrivere ransomware per tutti gli OS.

A questo punto è chiaro che il solo impiego di UAC (utenti con bassi livelli di accesso) non basta. Con Vista è stato introdotto il concetto di Integrity Level (IL). Gli IL disponibili in vista sono Low (4096), Medium (8192, valore di default), High (12288) e System (16384): ad ogni IL è assegnato un valore numerico indicato tra parentesi ed è possibile - ma fortemente sconsigliato - creare IL personalizzati usando valori intermedi. Inoltre ogni "risorsa" - processo, file, directory, chiavi di registry, ecc. - è marcata con un IL e il concetto è semplice: una risorsa con un determinato IL può 'leggere' e 'scrivere' risorse con IL uguale o più basso, ma può solo leggere (niente permessi di scrittura) risorse con IL più alto. Questo tipo di controllo di accesso è totalmente ortogonale a quello delle ACL basate su utenti che regola il funzionamento di UAC.

Molto importante: mi preme precisare che lo scopo degli IL è di proteggere il sistema operativo (e i dati degli utenti) da possibili manomissioni; gli IL non proteggono i dati degli utenti da possibili "letture indesiderate". In parole povere il malware potrebbe comunque essere in grado di leggere i vostri documenti e farne un upload su internet.

Sotto questo aspetto Vista è il primo e probabilmente unico[1] sistema operativo ad implementare gli Integrity Level. Una delle applicazioni pratiche degli IL è il protected mode di Internet Explorer (IE) basato appunto su questa nuova feature e come tale non implementabile su Windows XP e precedenti: IE viene fatto girare come processo con IL basso e come tale non ha accesso ad esempio alla cartella Documenti (ad eccezione della sottodirectory "Favoriti" marcata anch'essa con IL "Low"): ogni tentativo di exploit di bachi "remoti" veicolato via IE si scontrerebbe con il muro costituito dagli IL come appunto accaduto per i cursori mannari. Anche in Firefox è stato aperto un work item per prendere in considerazione questa feature (fonte pseudotecnico, link al BTS: https://bugzilla.mozilla.org/show_bug.cgi?id=266533). È auspicabile che in un immediato futuro buona parte del software che si interfaccia con il web tenga conto di questa nuova dimensione (penso soprattutto ai vari aggregatori di feed).

-quack

Technorati tags: ,

[1] Qualcuno tende a comparare tale feature con il set di patch per il kernel di Linux che va sotto il nome di SELinux. Si tratta peró di implementazioni completamente diverse che hanno parzialmente anche scopi diversi.