Esecuzione come membro del gruppo Users
In questo argomento viene illustrato come aumentare il livello di sicurezza e ridurre le possibilità di essere infettati da codice dannoso mediante la configurazione di account utente Windows come membri del gruppo Users, in contrapposizione al gruppo Administrators.
Rischi per la sicurezza
L'esecuzione come amministratore rende il sistema vulnerabile a diversi tipi di attacco alla sicurezza, ad esempio "Cavallo di Trojan" e "sovraccarico del buffer". Semplicemente visitando un sito Internet come amministratore può danneggiare il sistema, in quanto codice dannoso scaricato da un sito Internet può attaccare il computer. Se l'attacco riesce, il codice infatti eredita le autorizzazioni di amministratore ed è in grado di eseguire operazioni quali l'eliminazione di tutti i file, la formattazione del disco rigido e la creazione di nuovi account utente con accesso di amministratore.
Gruppi di utenti diversi dagli amministratori
Gli account utente di Windows utilizzati normalmente dagli sviluppatori devono essere aggiunti ai gruppi Users o Power Users. Gli sviluppatori devono essere aggiunti anche al gruppo di debug. L'appartenenza al gruppo Users consente di effettuare attività comuni come eseguire programmi e visitare siti Web senza esporre il computer a rischi inutili. In qualità di membro del gruppo Power Users, è possibile inoltre eseguire attività come installare applicazioni, stampanti e la maggior parte delle operazioni disponibili dal Pannello di controllo. In caso sia necessario eseguire attività amministrative come l'aggiornamento del sistema operativo o la configurazione di parametri di sistema, è possibile accedere con un account di amministratore per il tempo necessario all'attività. In alternativa, il comando Runas di Windows può essere usato per avviare applicazioni specifiche con accesso amministrativo.
Esposizione degli utenti a rischi di sicurezza
La non appartenenza al gruppo Administrators è di particolare importanza per gli sviluppatori perché, oltre a proteggere i computer di sviluppo, impedisce loro di scrivere inavvertitamente codice che richieda agli utenti di far parte del gruppo Administrators per l'esecuzione delle applicazioni sviluppate. Se nel corso dello sviluppo viene introdotto codice che richiede l'accesso come amministratore, non verrà eseguito in fase di esecuzione e lo sviluppatore verrà avvisato del fatto che l'applicazione richiederà agli utenti di accedere come amministratori.
Codice che richiede privilegi di amministratore
Per l'esecuzione di alcuni tipi di codice è necessario l'accesso come amministratore. Se possibile, è consigliabile servirsi di codice alternativo. Di seguito sono riportati esempi di operazioni di codice che richiedono l'accesso come amministratore:
Scrittura in aree protette del file system, quali le directory Windows o Programmi
Scrittura in aree protette del Registro di sistema, ad esempio HKEY_LOCAL_MACHINE
Installazione di assembly nella Global Assembly Cache (GAC)
Generalmente, queste azioni devono essere limitate ai programmi di installazione delle applicazioni. In questo modo, gli utenti possono utilizzare i privilegi di amministratore solo temporaneamente.
Debug
Entrando a far parte del gruppo di debug, è possibile eseguire il debug di qualsiasi applicazione avviata in Visual Studio (nativa e non gestita) come utente non amministratore. In questo modo è possibile eseguire la connessione a un'applicazione in esecuzione tramite il comando Connetti a processo. È necessaria tuttavia l'appartenenza al gruppo Administrators per eseguire il debug di applicazioni native o gestite avviate da un altro utente.