Condividi tramite


Come funziona Controllo dell'account utente

Controllo dell'account utente è una parte fondamentale della sicurezza di Windows. Controllo dell'account utente riduce il rischio di malware limitando la possibilità di eseguire codice dannoso con privilegi di amministratore. Questo articolo descrive il funzionamento di Controllo dell'account utente e il modo in cui interagisce con gli utenti finali.

Processo e interazioni di Controllo dell'account utente

Con Controllo dell'account utente, ogni applicazione che richiede il token di accesso amministratore deve richiedere il consenso all'utente finale. L'unica eccezione è la relazione esistente tra i processi padre e figlio. I processi figlio ereditano il token di accesso dell'utente dal processo padre. Entrambi i processi padre e figlio, tuttavia, devono avere lo stesso livello di integrità.

Windows protegge i processi contrassegnandone i livelli di integrità. I livelli di integrità sono misure di attendibilità:

  • Un'applicazione con integrità elevata esegue attività che modificano i dati di sistema, ad esempio un'applicazione di partizionamento del disco
  • Un'applicazione a bassa integrità è un'applicazione che esegue attività che potrebbero compromettere potenzialmente il sistema operativo, ad esempio come Web browser

Le applicazioni con livelli di integrità inferiori non possono modificare i dati nelle applicazioni con livelli di integrità più elevati. Quando un utente standard tenta di eseguire un'app che richiede un token di accesso amministratore, controllo dell'account utente richiede che l'utente fornisca credenziali di amministratore valide.

Per comprendere meglio il funzionamento di questo processo, esaminiamo più da vicino il processo di accesso a Windows.

Processo di accesso

Il diagramma seguente mostra come il processo di accesso per un amministratore differisce dal processo di accesso per un utente standard.

Diagramma che descrive il processo di accesso di Windows controllo dell'account utente.

Per impostazione predefinita, sia gli utenti standard che gli utenti amministratori accedono alle risorse ed eseguono le app nel contesto di sicurezza di un utente standard.
Quando un utente accede, il sistema crea un token di accesso per tale utente. Il token di accesso contiene informazioni sul livello di accesso concesso all'utente, inclusi identificatori di sicurezza specifici (SID) e privilegi di Windows.

Quando un amministratore accede, vengono creati due token di accesso separati per l'utente: un token di accesso utente standard e un token di accesso amministratore. Token di accesso utente standard:

  • Contiene le stesse informazioni specifiche dell'utente del token di accesso amministratore, ma i privilegi e i SID di Windows amministrativi vengono rimossi
  • Viene usato per avviare applicazioni che non eseguono attività amministrative (app utente standard)
  • Viene usato per visualizzare il desktop eseguendo il processo explorer.exe. Explorer.exe è il processo padre da cui tutti gli altri processi avviati dall'utente ereditano il token di accesso. Di conseguenza, tutte le app vengono eseguite come utente standard, a meno che un utente non fornisca il consenso o le credenziali per approvare un'app per l'uso di un token di accesso amministrativo completo

Un utente membro del gruppo Administrators può accedere, esplorare il Web e leggere messaggi di posta elettronica usando un token di accesso utente standard. Quando l'amministratore deve eseguire un'attività che richiede il token di accesso dell'amministratore, Windows richiede automaticamente l'approvazione dell'utente. Questa richiesta viene chiamata richiesta di elevazione dei privilegi e il relativo comportamento può essere configurato tramite criteri o registro.

Esperienza utente di Controllo dell'account utente

Quando Controllo dell'account utente è abilitato, l'esperienza utente per gli utenti standard è diversa dagli utenti amministratori. Il metodo consigliato e più sicuro per l'esecuzione di Windows consiste nel garantire che l'account utente primario sia un utente standard. L'esecuzione come utente standard consente di ottimizzare la sicurezza per un ambiente gestito. Con il componente di elevazione dell'account utente predefinito, gli utenti standard possono eseguire facilmente un'attività amministrativa immettendo credenziali valide per un account amministratore locale.

Il componente predefinito per l'elevazione dell'account utente predefinito per gli utenti standard è il prompt delle credenziali.

L'alternativa all'esecuzione come utente standard consiste nell'eseguire come amministratore in modalità approvazione Amministrazione. Con il componente di elevazione dell'account utente predefinito, i membri del gruppo Administrators locale possono eseguire facilmente un'attività amministrativa fornendo l'approvazione.

Il componente predefinito per l'elevazione del controllo dell'account utente predefinito per un account amministratore in modalità di approvazione Amministrazione viene chiamato prompt del consenso.

Prompt delle credenziali

La richiesta di credenziali viene visualizzata quando un utente standard tenta di eseguire un'attività che richiede il token di accesso amministrativo di un utente. È anche possibile richiedere agli amministratori di specificare le credenziali impostando controllo account utente: comportamento della richiesta di elevazione dei privilegi per gli amministratori in modalità di approvazione Amministrazione valore di impostazione dei criteri Richiedi credenziali.

Screenshot che mostra il prompt delle credenziali di Controllo dell'account utente.

La richiesta di consenso viene visualizzata quando un utente tenta di eseguire un'attività che richiede il token di accesso amministrativo di un utente.

Screenshot che mostra la richiesta di consenso di Controllo dell'account utente.

Richieste di elevazione del controllo dell'account utente

Le richieste di elevazione del controllo dell'account utente sono codificate in base al colore per essere specifiche dell'app, consentendo un'identificazione più semplice del potenziale rischio per la sicurezza di un'applicazione. Quando un'app tenta di essere eseguita con il token di accesso completo di un amministratore, Windows analizza innanzitutto il file eseguibile per determinarne l'autore. Le app vengono innanzitutto separate in tre categorie in base all'autore del file:

  • Windows
  • Server di pubblicazione verificato (firmato)
  • Server di pubblicazione non verificato (senza segno)

Il codice a colori della richiesta di elevazione dei privilegi è il seguente:

  • Sfondo grigio: l'applicazione è un'app amministrativa di Windows, ad esempio un elemento Pannello di controllo o un'applicazione firmata da un editore verificato Screenshot che mostra il prompt delle credenziali di Controllo dell'account utente con un eseguibile firmato.
  • Sfondo giallo: l'applicazione non è firmata o firmata, ma non è attendibile Screenshot che mostra la richiesta di consenso dell'account utente con un eseguibile non firmato.

Icona Scudo di sicurezza

Alcuni Pannello di controllo elementi, ad esempio Data e ora, contengono una combinazione di operazioni di amministratore e utente standard. Gli utenti standard possono visualizzare l'orologio e modificare il fuso orario, ma è necessario un token di accesso amministratore completo per modificare l'ora di sistema locale. Di seguito è riportato uno screenshot dell'elemento data e ora Pannello di controllo.

Screenshot che mostra l'icona dello scudo del controllo dell'account utente nelle proprietà di data e ora.

L'icona dello scudo nel pulsante Modifica data e ora indica che il processo richiede un token di accesso amministratore completo.

Protezione della richiesta di elevazione dei privilegi

Il processo di elevazione viene ulteriormente protetto indirizzando la richiesta al desktop protetto. Le richieste di consenso e credenziali vengono visualizzate sul desktop sicuro per impostazione predefinita. Solo i processi di Windows possono accedere al desktop sicuro. Per livelli di sicurezza più elevati, è consigliabile mantenere abilitato il controllo dell'account utente: passare al desktop sicuro quando viene richiesta l'impostazione dei criteri di elevazione dei privilegi.

Quando un file eseguibile richiede l'elevazione, il desktop interattivo, detto anche desktop utente, viene passato al desktop protetto. Il desktop sicuro disabilita il desktop dell'utente e visualizza una richiesta di elevazione dei privilegi a cui è necessario rispondere prima di continuare. Quando l'utente seleziona o No, il desktop torna al desktop dell'utente.

Nota

A partire da Windows Server 2019, non è possibile incollare il contenuto degli Appunti nel desktop protetto. Si tratta dello stesso comportamento delle versioni del sistema operativo client Windows attualmente supportate.

Il malware può presentare un'imitazione del desktop sicuro, ma quando il controllo dell'account utente: comportamento della richiesta di elevazione dei privilegi per gli amministratori in modalità di approvazione Amministrazione impostazione dei criteri è impostato su Richiedi consenso, il malware non ottiene elevazione se l'utente seleziona sull'imitazione. Se l'impostazione dei criteri è impostata su Richiedi credenziali, il malware che imita la richiesta di credenziali potrebbe essere in grado di raccogliere le credenziali dall'utente. Tuttavia, il malware non ottiene privilegi elevati e il sistema ha altre protezioni che attenuano il malware dal prendere il controllo dell'interfaccia utente anche con una password raccolta.

Mentre il malware potrebbe presentare un'imitazione del desktop sicuro, questo problema non può verificarsi a meno che un utente in precedenza installato il malware sul PC. Poiché i processi che richiedono un token di accesso amministratore non possono essere installati automaticamente quando controllo dell'account utente è abilitato, l'utente deve fornire esplicitamente il consenso selezionando o specificando le credenziali di amministratore. Il comportamento specifico della richiesta di elevazione dell'account utente dipende dai criteri di sicurezza.

Architettura di Controllo dell'account utente

Il diagramma seguente illustra in dettaglio l'architettura di Controllo dell'account utente.

Diagramma che descrive l'architettura di Controllo dell'account utente.

Per comprendere meglio ogni componente, esaminare le tabelle seguenti:

Utente

Componente Descrizione
L'utente esegue un'operazione che richiede privilegi Se l'operazione modifica il file system o il Registro di sistema, viene chiamata la virtualizzazione. Tutte le altre operazioni chiamano ShellExecute.
ShellExecute ShellExecute chiama CreateProcess. ShellExecute cerca l'errore ERROR_ELEVATION_REQUIRED da CreateProcess. Se riceve l'errore, ShellExecute chiama il servizio Application Information per tentare di eseguire l'attività richiesta con il prompt con privilegi elevati.
Createprocess Se l'applicazione richiede l'elevazione, CreateProcess rifiuta la chiamata con ERROR_ELEVATION_REQUIRED.

System

Componente Descrizione
Servizio Application Information Servizio di sistema che consente di avviare app che richiedono uno o più privilegi elevati o diritti utente per l'esecuzione, ad esempio attività amministrative locali e app che richiedono livelli di integrità più elevati. Il servizio Application Information consente di avviare tali app creando un nuovo processo per l'applicazione con il token di accesso completo di un utente amministratore quando è richiesta l'elevazione. A seconda dei criteri configurati, l'utente potrebbe fornire il consenso.
Elevazione di un'installazione di ActiveX Se ActiveX non è installato, il sistema controlla il livello del dispositivo di scorrimento di Controllo dell'account utente. Se ActiveX è installato, viene selezionata l'impostazione Controllo account utente: passare al desktop protetto quando viene richiesta l'elevazione Criteri di gruppo impostazione.
Controllare il livello del dispositivo di scorrimento di Controllo dell'account utente Controllo dell'account utente ha un dispositivo di scorrimento da selezionare tra quattro livelli di notifica.
  • Invia sempre una notifica :
    • Notifica quando i programmi provano a installare il software o apportano modifiche al computer.
    • Notifica quando si apportano modifiche alle impostazioni di Windows.
    • Bloccare altre attività fino a quando non si risponde.
    Consigliato se si installano spesso nuovi software o si visitano siti Web sconosciuti.
  • Invia una notifica solo quando i programmi tentano di apportare modifiche al computer :
    • Notifica quando i programmi provano a installare il software o apportano modifiche al computer.
    • Non inviare notifiche quando si apportano modifiche alle impostazioni di Windows.
    • Bloccare altre attività fino a quando non si risponde.
    Consigliato se non si installano spesso app o si visitano siti Web sconosciuti.
  • Invia una notifica solo quando i programmi tentano di apportare modifiche al computer (non dim my desktop):
    • Notifica quando i programmi provano a installare il software o apportano modifiche al computer.
    • Non inviare notifiche quando si apportano modifiche alle impostazioni di Windows.
    • Non bloccare altre attività fino a quando non si risponde.
    Non consigliato. Scegliere questa opzione solo se il desktop sul computer richiede molto tempo.
  • Non inviare mai una notifica (disabilita richieste di Controllo dell'account utente):
    • Non inviare notifiche quando i programmi tentano di installare software o apportare modifiche al computer.
    • Non inviare notifiche quando si apportano modifiche alle impostazioni di Windows.
    • Non bloccare altre attività fino a quando non si risponde.
    Non consigliato a causa di problemi di sicurezza.
Desktop protetto abilitato Controllo dell'account utente: passare al desktop protetto quando viene richiesta l'impostazione dei criteri di elevazione dei privilegi :
  • Se il desktop protetto è abilitato, tutte le richieste di elevazione dei privilegi vengono inviate al desktop sicuro indipendentemente dalle impostazioni dei criteri di comportamento delle richieste per gli amministratori e gli utenti standard.
  • Se il desktop sicuro non è abilitato, tutte le richieste di elevazione dei privilegi vengono inviate al desktop dell'utente interattivo e vengono usate le impostazioni per utente per amministratori e utenti standard.
Createprocess CreateProcess chiama il rilevamento di AppCompat, Fusion e Installer per valutare se l'app richiede l'elevazione. Il file viene quindi controllato per determinare il livello di esecuzione richiesto, che viene archiviato nel manifesto dell'applicazione per il file. CreateProcess ha esito negativo se il livello di esecuzione richiesto specificato nel manifesto non corrisponde al token di accesso e restituisce un errore (ERROR_ELEVATION_REQUIRED) a ShellExecute.
AppCompat Il database AppCompat archivia le informazioni nelle voci di correzione della compatibilità dell'applicazione per un'applicazione.
Fusione Il database Fusion archivia le informazioni dai manifesti dell'applicazione che descrivono le applicazioni. Lo schema del manifesto viene aggiornato per aggiungere un nuovo campo a livello di esecuzione richiesto.
Rilevamento del programma di installazione Il rilevamento del programma di installazione rileva i file di installazione, che consentono di impedire l'esecuzione delle installazioni senza la conoscenza e il consenso dell'utente.

Kernel

Componente Descrizione
Virtualizzazione La tecnologia di virtualizzazione garantisce che le app non conformi non vengano eseguite o non riescano in modo invisibile all'utente in modo che la causa non possa essere determinata. Controllo dell'account utente fornisce anche la virtualizzazione dei file e del Registro di sistema e la registrazione per le applicazioni che scrivono in aree protette.
File system e registro La virtualizzazione dei file e del Registro di sistema per utente reindirizza le richieste di scrittura dei file e del Registro di sistema per ogni computer a posizioni equivalenti per utente. Le richieste di lettura vengono reindirizzate prima al percorso virtualizzato per utente e al secondo percorso per computer.

Il dispositivo di scorrimento non disattiva mai completamente Controllo dell'account utente. Se lo si imposta su Non inviare mai una notifica, verrà:

  • Mantenere in esecuzione il servizio Controllo dell'account utente
  • Fare in modo che tutte le richieste di elevazione dei privilegi avviate dagli amministratori vengano approvate automaticamente senza visualizzare un prompt di Controllo dell'account utente
  • Nega automaticamente tutte le richieste di elevazione dei privilegi per gli utenti standard

Importante

Per disabilitare completamente controllo dell'account utente, è necessario disabilitare il criterio Controllo account utente: eseguire tutti gli amministratori in modalità di approvazione Amministrazione.

Warning

Alcune app piattaforma UWP (Universal Windows Platform) potrebbero non funzionare quando Controllo dell'account utente è disabilitato.

Virtualizzazione

Poiché gli amministratori di sistema negli ambienti aziendali tentano di proteggere i sistemi, molte applicazioni line-of-business (LOB) sono progettate per usare solo un token di accesso utente standard. Di conseguenza, non è necessario sostituire la maggior parte delle app quando controllo dell'account utente è attivato.

Windows include la tecnologia di virtualizzazione dei file e del Registro di sistema per le app che non sono conformi al controllo dell'account utente e che richiedono un token di accesso di un amministratore per l'esecuzione corretta. Quando un'app amministrativa non conforme al controllo dell'account utente tenta di scrivere in una cartella protetta, ad esempio Programmi, Controllo dell'account utente offre all'app la propria visualizzazione virtualizzata della risorsa che sta tentando di modificare. La copia virtualizzata viene mantenuta nel profilo dell'utente. Questa strategia crea una copia separata del file virtualizzato per ogni utente che esegue l'app non conforme.

La maggior parte delle attività delle app funziona correttamente usando le funzionalità di virtualizzazione. Anche se la virtualizzazione consente l'esecuzione della maggior parte delle applicazioni, si tratta di una correzione a breve termine e non di una soluzione a lungo termine. Gli sviluppatori di app devono modificare le app in modo che siano conformi il prima possibile, anziché basarsi sulla virtualizzazione di file, cartelle e Registro di sistema.

La virtualizzazione non è un'opzione negli scenari seguenti:

  • La virtualizzazione non si applica alle app con privilegi elevati ed eseguite con un token di accesso amministrativo completo
  • La virtualizzazione supporta solo app a 32 bit. Le app a 64 bit nonlevate ricevono un messaggio di accesso negato quando tentano di acquisire un handle (un identificatore univoco) per un oggetto Windows. Le app native di Windows a 64 bit devono essere compatibili con Controllo dell'account utente e scrivere dati nelle posizioni corrette
  • La virtualizzazione è disabilitata se l'app include un manifesto dell'app con un attributo del livello di esecuzione richiesto

Livelli di esecuzione della richiesta

Un manifesto dell'app è un file XML che descrive e identifica gli assembly side-by-side condivisi e privati a cui un'app deve essere associata in fase di esecuzione. Il manifesto dell'app include voci per motivi di compatibilità delle app di Controllo dell'account utente. Le app amministrative che includono una voce nel manifesto dell'app richiedono all'utente l'autorizzazione per accedere al token di accesso dell'utente. Sebbene non contengano una voce nel manifesto dell'app, la maggior parte delle app amministrative può essere eseguita senza modifiche usando correzioni di compatibilità delle app. Le correzioni per la compatibilità delle app sono voci di database che consentono alle applicazioni non conformi al controllo dell'account utente di funzionare correttamente.

Tutte le app conformi a Controllo dell'account utente devono avere un livello di esecuzione richiesto aggiunto al manifesto dell'applicazione. Se l'applicazione richiede l'accesso amministrativo al sistema, contrassegnare l'app con un livello di esecuzione richiesto di require administrator garantisce che il sistema identifichi il programma come app amministrativa ed esegue i passaggi di elevazione necessari. I livelli di esecuzione richiesti specificano i privilegi necessari per un'app.

Tecnologia di rilevamento del programma di installazione

I programmi di installazione sono app progettate per distribuire software. La maggior parte dei programmi di installazione scrive nelle directory di sistema e nelle chiavi del Registro di sistema. Queste posizioni di sistema protette sono in genere scrivibili solo da un amministratore nella tecnologia di rilevamento del programma di installazione, il che significa che gli utenti standard non hanno accesso sufficiente per installare i programmi. Windows rileva in modo euristico i programmi di installazione e richiede le credenziali di amministratore o l'approvazione dell'utente amministratore per l'esecuzione con privilegi di accesso. Windows rileva anche in modo euristico gli aggiornamenti e i programmi che disinstalla le applicazioni. Uno degli obiettivi di progettazione di Controllo dell'account utente è impedire l'esecuzione delle installazioni senza la conoscenza e il consenso dell'utente, perché i programmi di installazione scrivono in aree protette del file system e del Registro di sistema.

Il rilevamento del programma di installazione si applica solo a:

  • File eseguibili a 32 bit
  • Applicazioni senza un attributo del livello di esecuzione richiesto
  • Processi interattivi in esecuzione come utente standard con controllo dell'account utente abilitato

Prima di creare un processo a 32 bit, vengono controllati gli attributi seguenti per determinare se si tratta di un programma di installazione:

  • Il nome del file include parole chiave come "install", "setup" o "update".
  • I campi Risorsa controllo versioni contengono le parole chiave seguenti: Fornitore, Nome società, Nome prodotto, Descrizione file, Nome file originale, Nome interno ed Esporta nome.
  • Le parole chiave nel manifesto side-by-side vengono incorporate nel file eseguibile.
  • Le parole chiave in voci StringTable specifiche sono collegate nel file eseguibile.
  • Gli attributi chiave nei dati dello script di risorsa sono collegati nel file eseguibile.
  • Nel file eseguibile sono presenti sequenze di byte di destinazione.

Nota

Le parole chiave e le sequenze di byte sono derivate da caratteristiche comuni osservate da varie tecnologie di installazione.

Nota

Il controllo dell'account utente: rilevare le installazioni delle applicazioni e richiedere i criteri di elevazione dei privilegi deve essere abilitato per il rilevamento del programma di installazione per rilevare i programmi di installazione. Per altre informazioni, vedere Elenco delle impostazioni di Controllo account utente.

Passaggi successivi

Altre informazioni sulle impostazioni e sulla configurazione di Controllo account utente.