Introdução

O Controle de Conta de Usuário (UAC) é um conjunto de tecnologias de infraestrutura implantado no  Windows Vista e aperfeiçoado no Windows 7 que é frequentemente mal-entendido pela maioria dos usuários.

A percepção comum é que o UAC é um recurso irritante e inútil cujo objetivo é perguntar se o usuário deseja realmente executar uma aplicação. Consequentemente, não é difícil encontrar em fóruns ou em sites de fornecedores a recomendação de desativar o UAC como solução para as aplicações que apresentam incompatibilidade com o Windows 7. Desativar o UAC é uma prática não recomendada pela Microsoft por expor a segurança do sistema operacional.

 

Objetivos do UAC

O UAC é destinado a permitir que os usuários executem aplicações sem o privilégio de administrador independentemente se o usuário possui esse privilégio. O objetivo é prevenir a instalação silenciosa de programas mal-intencionados e a infecção do computador.

O perfil de administrador permite alterar o estado do sistema, desativar o firewall, configurar a diretiva de segurança, acessar informações de outros usuários, instalar serviço ou driver que afete todos os usuários do computador e instalar softwares no computador inteiro. Os usuários comuns não podem executar essas tarefas.

O UAC executa a maioria dos aplicativos com direitos de usuário padrão, elimina a necessidade de direitos de administrador o tempo todo e encoraja os desenvolvedores de software a criarem aplicativos que executem com direitos de usuário padrão.

  

Mensagem de Notificação do UAC

A mensagem de controle de conta de usuário (Figura 1) não tem como objetivo perguntar se uma aplicação pode ser executada ou se pode realizar alguma ação. Essa mensagem é exibida para solicitar permissão para executar uma aplicação com direitos administrativos.

As solicitações de elevação são acionadas pelas atividades de usuário como instalação de aplicativos, alterações nas configurações do sistema ou ações que exigem privilégios administrativos.

Para os usuários com perfil de administrador, a mensagem oferece as opções de permitir ou negar que o aplicativo seja iniciado. Caso contrário, é solicitado o usuário e a senha de uma conta que possui perfil de administrador.

 

Figura 1 - Modo de aprovação de elevação exibido para os usuários com o perfil administrativo e comum respectivamente.

 

Com o UAC habilitado, todas as contas de usuário, incluindo contas administrativas, executam com direitos de usuário padrão.

Quando um usuário faz logon no Windows, o sistema cria um token de acesso para ele. Esse token contém informações sobre o nível de acesso que é concedido ao usuário, incluindo os identificadores de segurança (SIDs) e privilégios do Windows. Quando um administrador faz logon, o Windows cria dois tokens de acesso separados para o usuário: um token de acesso sem privilégios administrativos (token filtrado) e um token de acesso de administrador (token full).

 

Figura 2 - Visão Conceitual do UAC

O token de acesso do usuário padrão contém as mesmas informações específicas de usuário do token de acesso de administrador, mas sem os privilégios administrativos do Windows e os SIDs. Por padrão, esse token filtrado é usado para executar programas do usuário. O token não filtrado é associado apenas com programas elevados.

 

Virtualização

A maioria dos problemas de compatibilidade das aplicações legadas é decorrente da falta de privilégios para manipular informações em locais protegidos do sistema operacional. No Windows 7 é necessário ter o perfil de administrador para armazenar informações em locais globais do sistema, uma vez que essa ação afeta todas as contas de usuário.

Alguns aplicativos armazenam suas configurações em áreas globais do registro (HKLM\Software) ao invés de armazenar perfil do usuário (HKCU\Software), assim como, gravam configurações e logs nas suas próprias pastas, ou nas pastas de sistema (Windows, System32, Arquivos de Programas).

Uma boa prática recomendada pela Microsoft é salvar os dados específicos dos usuários no diretório %AppData% e salvar configurações dos usuários no perfil de registro do usuário (HKEY_CURRENT_USER\Software).

Com o UAC habilitado, quando um aplicativo legado tenta gravar em áreas protegidas do sistema de arquivos ou de registro, o Windows silenciosamente e transparentemente redireciona o acesso a uma parte do sistema de arquivos ou do registro que o usuário tem permissão para modificar. Isso permite que vários aplicativos necessários direitos administrativos em versões anteriores do Windows para executar com êxito usando direitos de usuário apenas padrão no Windows Vista e no Windows 7.

Figura 3 - Virtualização de Arquivos e do Registro

 

A virtualização de arquivos e registro pode ser configurada através da política de segurança “User Account Control: Virtualize file and registry write failures to per-user locations” ou através da chave do registro:

Key: SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Value: "EnableVirtualization" Data: 0 (disabled); 1 (enabled)               

Quando o usuário navega em um diretório que contém arquivos virtualizados, o Explorer exibe um botão arquivos de compatibilidade na sua barra de ferramentas (Figura 4). Ao clicar nesse botão o usuário é redirecionado para o subdiretório correspondente ao VirtualStore da conta do usuário que contém os arquivos virtualizados.

 

Figura 4- Resultado da virtualização de arquivos

 

A virtualização não é uma opção nos seguintes cenários:

  • A virtualização não é válida para aplicativos que possuem privilégios elevados e são executados com um token de acesso administrativo completo.
  • A virtualização apenas oferece suporte para aplicativos 32-bits. Os aplicativos 64-bits sem privilégios elevados simplesmente recebem uma mensagem de acesso negado quando tentam adquirir um identificador exclusivo para um objeto do Windows. 
  • A virtualização ficará desabilitada para um aplicativo se este incluir um manifesto de aplicativos com um atributo de nível de execução solicitado.

A variável de ambiente %LOCALAPPDATA% fornece o caminho do diretório VirtualStore correspondente a conta do usuário.a

 

Onde Armazenar as Informações

Requisitos

Informações Compartilhadas

Informações do Usuário

Visível no Explorer

%PUBLIC% (%SystemDrive%\Users\Public)

%USERPROFILE%\Documents

Oculto no Explorer e armazenado apenas localmente

%ALLUSERSPROFILE% (%ProgramData%,
  %SystemDrive%\ProgramData)

%LOCALAPPDATA%
  (%USERPROFILE%\AppData\Local)

Oculto no Explorer e que faz parte do perfil do usuário

n/a

%APPDATA%
  (%USERPROFILE%\AppData\Roaming)

 

 Onde Configurar o UAC

 Para configurar o UAC abra o Painel de Controle, clique em Contas de Usuários e clique em Alterar as configurações da Conta do Usuário (também é possível alterar as configurações através do link que é exibido no prompt de notificação do UAC).
 

 

   Figura 5 - Configuração do Controle de Conta do Usuário (UAC)

 

É importante registrar que a Microsoft recomenda manter as configurações no UAC no nível padrão (Figura 5) e que é necessário reiniciar o Windows após ativar ou desativar o UAC para que as configurações tenham efeito.

Conclusão

Contas de usuário padrão proporcionam maior segurança e menor custo total de propriedade em ambientes domésticos e corporativos. Quando os usuários executam com direitos de usuário padrão em vez de direitos administrativos, a configuração de segurança do sistema, incluindo antivírus e firewall, é protegida. Isso fornece aos usuários uma área segura que pode proteger sua conta e o restante do sistema. Para implantações empresariais, as diretivas definidas por gerentes de TI da área de trabalho não podem ser substituídas e, em um computador compartilhado da família, diferentes contas de usuário são protegidas contra as alterações feitas por outras contas.

Referências
Security
Inside Windows Vista User Account Control
Mark Russinovich
http://technet.microsoft.com/pt-BR/query/4ce22051-1ff9-49c1-ab06-d97658e993e0