UAC è un'architettura multicomponente implementata da più binari
User Account Control (UAC) si riferisce a diversi componenti che insieme formano l' architettura UAC . Esaminerò brevemente alcuni di essi insieme ai file binari responsabili della loro implementazione, ma prima ecco una panoramica dell'architettura UAC dall'articolo di Microsoft Docs Come funziona il controllo dell'account utente :
Autorità di sicurezza locale (LSA) / token filtrato
Concettualmente il "primo" componente di Controllo dell'account utente è implementato dal sottosistema Autorità di sicurezza locale che gestisce la creazione del token di accesso di un utente durante il processo di accesso. A partire da Windows Vista, il processo di accesso è stato modificato in modo tale che quando un amministratore accede con UAC abilitato, il sottosistema LSA genera due token di accesso separati per l'utente:
- Uno con accesso completo da amministratore e
- Un secondo "token filtrato" con accesso utente standard
Come mostrato qui, questo processo è diverso da quello di un accesso utente standard:
Il servizio del sottosistema LSA vive nel lsass.exe
processo.
virtualizzazione
Aggiunta in Windows 7, la virtualizzazione di file e registro è un componente di Controllo dell'account utente che elimina le applicazioni meno recenti non conformi al Controllo dell'account utente ma richiedono solo diritti amministrativi per accedere ad alcune aree protette del filesystem o del registro:
Quando un'applicazione amministrativa non conforme a Controllo account utente tenta di scrivere in una directory protetta, ad esempio Programmi, Controllo account utente offre all'applicazione una propria visualizzazione virtualizzata della risorsa che sta tentando di modificare. La copia virtualizzata viene mantenuta nel profilo dell'utente.
fonte
Reindirizzando questi tentativi di accesso ad aree che non richiedono autorizzazioni di amministratore, queste applicazioni continuano a funzionare nonostante l'UAC sia abilitato sul sistema.
Questa virtualizzazione è implementata nel kernel .
Servizio di informazioni sull'applicazione
Application Information Service (AIS) legge il manifest di un'applicazione e collabora con il prompt di consenso UAC per determinare se è possibile eseguire un'applicazione con diritti elevati (ovvero avviare nel contesto del token di accesso a livello amministrativo non filtrato creato all'accesso) . Questo post sul blog offre una buona panoramica del suo ruolo nel processo di controllo dell'account utente:
AIS Facilita l'esecuzione di applicazioni interattive con privilegi amministrativi aggiuntivi. Se questo servizio viene interrotto, gli utenti non saranno in grado di avviare le applicazioni con i privilegi amministrativi aggiuntivi che potrebbero richiedere .... La shell verifica con questo servizio quando avvia un'applicazione. AIS è quello che legge il manifest e la sezione xml "trustInfo" che ha i requisiti per il "requestExecutionLevel" ...
Ecco un grafico che segue la citazione sopra che illustra in dettaglio il ruolo di AIS nel processo del prompt di consenso UAC:
L'AIS è implementato nella DLLappinfo.dll
che viene eseguita da svchost.exe
.
Consenso rapido
La risposta di @ BenN spiega il ruolo chiave del (in) famoso prompt di consenso UAC. Questo è implementato consent.exe
ed è responsabile per ottenere il consenso dell'utente o le credenziali di un utente amministrativo al fine di consentire l'avvio di un'applicazione che richiede i diritti di amministratore.
Desktop sicuro
Secure Desktop è il punto in cui viene visualizzato il prompt di consenso UAC per impostazione predefinita. UACBlog di Microsoft ci dice cosa c'è di unico in questo desktop rispetto al desktop dell'utente:
Di solito interagisci con [il desktop sicuro] quando accedi a Windows poiché l'interfaccia utente di accesso viene eseguita sul desktop sicuro. La differenza principale tra Secure Desktop e User Desktop è che solo i processi affidabili in esecuzione come SYSTEM possono essere eseguiti qui (ovvero nulla in esecuzione come livello di privilegio dell'utente) e che il percorso per accedere a Secure Desktop da User Desktop deve essere considerato attendibile anche tramite l'intera catena.
L'idea alla base del suo utilizzo quando si richiede il consenso dell'utente per eseguire un'applicazione con autorizzazioni elevate è che il malware non può imitare il Secure Desktop a meno che non abbia già diritti amministrativi, nel qual caso ingannare un utente nel concederlo è controverso.
Conclusione: UAC non è solo un binario. È un tessuto di sottosistemi intrecciati.
Ci sono ancora altri aspetti dell'architettura di controllo dell'account utente non trattati qui, ma ciò dovrebbe fornire prove sufficienti per i fatti che:
- Controllo dell'account utente non è implementato in un singolo binario.
- Se abilitato, è parte integrante dell'esecuzione di attività amministrative.
Dalla sua introduzione in Windows Vista è stato profondamente integrato nelle parti chiave del sistema operativo, rendendo impossibile cancellare tutto il codice responsabile di Controllo dell'account utente senza interrompere altre cose (come la possibilità di accedere!)
Penso che sia sicuro di dire che se si "eliminasse forzatamente" l'UAC si romperebbe Windows.