Sítio do Piropo

B. Piropo

< Coluna em Fórum PCs >
Volte
30/10/2006

< Segurança no Vista IV: O User Account Control - UAC do Vista >
< 1999 >


Na coluna anterior discutimos os conceitos de “contas de usuário”, seus diferentes privilégios e vimos como a coisa funciona na versão atualmente disponível de Windows, o XP, com suas vantagens e desvantagens. Hoje veremos como a equipe de desenvolvimento de Vista tentou resolver o problema da disparidade de privilégios entre administradores e usuários comuns no controle de suas contas.
O principal objetivo do novo Controle de Contas de Usuário (“User Account Control”, ou UAC) do Vista é reduzir a exposição da máquina a ataques de programas mal intencionados buscando fazer com que ela seja usada todo o tempo com privilégios de usuário comum. Isto minimiza a possibilidade de que sejam feitas alterações (voluntariamente ou à revelia) que desestabilizem o sistema ou que inadvertidamente exponham a rede ao ataque de vírus e “malwares” que eventualmente tenham infectado máquinas individuais.
Evidentemente, para que este objetivo possa ser alcançado, foram necessárias mudanças tanto na forma como atuam as contas de usuários comuns, para permitir que eles executem tarefas que no XP exigiriam privilégios de administrador, como as dos próprios administradores, para evitar que inadvertidamente esses privilégios sejam usados para ameaçar a segurança. Vejamos como isso foi feito.

O usuário comum e o credenciamento “sobre os ombros”
No que toca aos usuários comuns, eles ganharam privilégios que lhes permitem executar tarefas que, embora corriqueiras, antes exigiam o registro como administrador. São tarefas simples e que oferecem pouco perigo de contaminação por “malware” que incluem:

  • abrir o aplicativo “System clock and calendar” e mudar o fuso horário (mas não alterar a data do sistema; veja adiante);
  • instalar fontes, impressoras e outros periféricos, juntamente com seus drivers, desde que eles constem de uma lista previamente aprovada pelo administrador;
  • conectar-se a redes seguras sem-fio através do protocolo Wired Equivalency Privacy (WEP);
  • instalar controles ActiveX (de sítios previamente aprovados pelo administrador);
  • criar e configurar uma conexão a uma rede privada virtual (VPN);
  • instalar atualizações críticas de Windows;
  • realizar desfragmentação de discos (na verdade não é efetivamente preciso “realizar” coisa alguma: sob Vista a desfragmentação de discos rígidos é um processo automático realizado periodicamente; a diferença é que antes do Vista sua execução tinha que ser invocada e isto exigia privilégios de administrador);
  • abrir a maior parte dos controles do “Painel de Controle” (mouse, teclado, dispositivos de áudio, controle de voz, infravermelho, “bluetooth” e outros);
  • abrir o gerenciador de tarefas;
  • baixar arquivos via Internet Explorer;
  • administrar a janela “Novo hardware encontrado”;

Uma observação: se você achou que os itens que agora podem ser executados pelo usuário comum mas que exigem autorização prévia do administrador não correspondem a avanços, pense duas vezes. Nas corporações, isso não faz muita diferença porque praticamente TUDO exigia a permissão do administrador. Mas nas máquinas individuais ou ligadas à redes domésticas o administrador é o proprietário da máquina (ou seja, na maioria das vezes, você mesmo), que pode portanto autorizar e negar o que melhor lhe aprouver. A restrição serve apenas para garantir uma eventual proteção no caso de que algum pilantra decida, por exemplo “embutir” um programa espião no driver de um dispositivo qualquer para distribui-lo via Internet à guisa de atualização.
O que nos leva a um segundo ponto, uma novidade do Vista que a MS denominou de  credenciais “por cima do ombro” (“Over the Shoulders”). Um verdadeiro achado.
Como eu disse acima, grande parte dos objetos do Painel de Controle podem ser abertos pelo usuário comum. E, os que não podem, aparecem precedidos pelo pequeno ícone em forma de escudo que representa a Central de Segurança, como se pode perceber nos itens assinalados na Figura 1.

Clique para ampliar...

Figura 1: Painel de controle de Vista (note itens assinalados)

Os itens cujos atalhos (“links”) são precedidos pelo ícone da Central de Segurança só podem ser abertos por quem detenha privilégios de administradores ou – e aqui está a grande novidade – por um usuário comum desde que supervisionado por um administrador (calma que já explico, pois isso é a própria essência da “credencial por cima do ombro”).
Outros itens, como por exemplo os do grupo “Clock, Language and Region” (relógio, idioma e região), podem ser abertos por usuários comuns mas nem todos os seus componentes podem ser alterados por ele. Veja o exemplo da Figura 2, o objeto “Date and Time” (data e hora) que faz parte deste grupo. Repare nos seus botões. Um deles, “Change time zone” (alterar fuso horário), está disponível e, como foi dito acima, pode ser alterado pelo usuário comum. Já o outro (“Change Date and Time”, alterar data e hora do sistema) contém o pequeno escudo multicolorido (assinalado pela seta) da Central de Segurança, indicando que somente pode ser alterado por detentores de privilégios de administrador.
O que acontece quando um usuário comum clica sobre um destes atalhos?

 

Figura 2: objeto Date and Time


Bem, nos tempos do XP apareceria uma janela informando que para executar esta tarefa seriam necessários privilégios de administrador e temos conversado. Nada restava ao usuário comum senão desistir da tarefa, meter o rabo entre as pernas e sair de fininho porque não estava agradando.
Nos tempos do Vista será diferente.
Sempre que um usuário comum se meter a besta propondo-se a executar uma atividade que exige privilégios de administrador (qualquer uma, não apenas abrir objetos e efetuar ajustes no Painel de Controle; isto vale para toda e qualquer ação, inclusive instalar programas, abortar serviços, alterar ajustes do sistema, o diabo), o sistema entra no modo “Secure Desktop Prompting” no qual seu funcionamento normal é interrompido, a tela se obscurece e surge uma janela fornecendo detalhes sobre a tarefa desejada e orientando que “se foi você que iniciou esta ação, continue”. Abaixo aparece um “prompt” semelhante ao da tela de registro (“logon”), com o nome do administrador de sistema e um campo para a entrada de sua (dele) senha. Se antes de clicar no botão “prosseguir” a senha for introduzida e estiver correta, o sistema prossegue e a ação é executada. Do contrário é abortada e não se fala mais nisso (não pude capturar a figura da minha própria tela porque, como eu disse, para garantir máxima segurança, ao apresentar a janela que solicita permissão para prosseguir, o sistema entra no modo chamado “Secure Desktop Prompting”, o mesmo modo que é invocado quando se aciona a combinação “Ctrl+Alt+Del”; nesse modo todas as demais rotinas são bloqueadas e nenhum programa funciona, incluindo os de captura de tela; a solução seria rodar o Vista em uma máquina virtual, mas eu decidi não fazer isso para poder experimentar o sistema em toda sua plenitude; a Figura 3 foi obtida no sítio da Microsoft).

Figura 3: Prompt solicitando autorização do administrador

Percebeu como funciona o credencimento “Over the Shoulders”? É como se o usuário comum trabalhasse sempre com um administrador permanentemente olhando por cima de seu ombro. Precisa da autorização dele? Pois peça, que ele entra com a senha e você pode seguir adiante.
Em sistemas corporativos isso não faz muita diferença (eu não acredito que muitos administradores de rede forneçam sua senha para usuários comuns exceto talvez para o presidente da empresa e uma ou outra funcionária particularmente bem dotada de atributos, portanto na maioria das vezes ele deverá estar mesmo presente para autorizar a ação; e se ele desejar manter um controle absoluto sobre o sistema, poderá simplesmente desabilitar a “credencial por cima do ombro” e tudo volta a ser como nos tempos do Windows XP, apenas com usuários um pouco mais poderosos).
Mas em sistemas domésticos a vantagem é imensa. Para começar, permite que você administre-se a si mesmo, ou seja, crie uma conta para você com privilégios de administrador que será usada apenas para efetuar alterações globais e importantes e crie uma segunda conta como usuário comum para uso quotidiano. Presumindo que você não assuma definitivamente a dupla personalidade (ou seja, imaginando que você, administrador,  deixe com que você mesmo, usuário comum, saiba ambas as senhas) este alvitre permite desfrutar do sistema com toda a segurança oferecida aos usuários comuns, podendo ao mesmo tempo executar todas as ações que exigem os privilégios de administrador.
Não viu ainda a vantagem disso e não achou diferença entre usar as “credenciais por cima do ombro” e rodar todo o tempo com privilégios de administrador?
Bem, talvez porque não tenha prestado atenção no aviso na janela que solicita a “autorização sobre seu ombro” que dizia claramente: “se foi você que iniciou esta ação, continue”. Porque, se não foi, muito provavelmente se trata de um “malware” usando um disfarce inocente para executar uma ação proibida, como instalar um vírus ou programa espião. E neste caso, basta anotar qual é a ação que foi proposta para execução, abortar o processo e procurar identificar qual programa “inocente” está tentando executá-la e extirpá-lo sem piedade do disco rígido.  
Percebeu agora? Sim, sob Vista, desde que conheça a senha do administrador, o usuário comum pode tudo ou quase tudo. Mas apesar disso continua protegido de “malwares”.
E se um usuário comum a quem foi confiada a senha do administrador estiver executando uma tarefa aparentemente inocente, como visualizar imagens de uma pasta recém recebida via Internet, e repentinamente, devido à ação de algum “malware”, aparecer a tal tela informando que um programa qualquer será instalado, solicitando a senha do administrador e, ainda assim, o pascácio fornecê-la? Nesse caso a máquina não será contaminada?
Sim, será.
Então, como controlar isso?
Não sei. Mas me ocorreu agora uma pequena historinha que vou contar para vocês e que talvez ilustre a situação (e antes de prosseguir e ser acusado de machista ou coisa parecida informo que vendo o peixe como o comprei, ou seja, conto a história exatamente como me foi contada sem tirar nem pôr).
Consta que certa feita o suporte do fabricante de dada marca de computadores recebeu o telefonema de uma senhora reclamando que o computador recém instalado não funcionava. “Mas não funciona como?” perguntou. “Simplesmente não funciona; a tela fica preta” respondeu ela. “E as ‘luzinhas’ da frente do micro? Alguma está acesa?” perguntou novamente o suporte. “Não, estão todas apagadas” respondeu a dama. “A senhora tem certeza que o micro está ligado?”, perguntou novamente o suporte. “Bem, já apertei e soltei diversas vezes o interruptor de ligar e nada acontece”, retrucou madame. “A senhora pode fazer o favor de verificar se um cabo preto, redondo, que sai da parte detrás de seu computador, está ligado na tomada de energia da parede?”, insistiu o suporte. Milady então respondeu: “Não dá para ver, está muito escuro”. O suporte, surpreso, indagou: “Mas muito escuro por que? A senhora não pode acender a luz?”. E foi aí que madame matou a pau: “Acender a luz como? Aqui em casa está faltando energia”. O suporte respirou fundo e recomendou educadamente: “Minha senhora, faça o seguinte: pegue os componentes de seu computador, ponha na embalagem original, leve tudo ao revendedor e peça seu dinheiro de volta”. “É grave assim?” indagou a senhora. “Sim, é grave e não tem solução”, respondeu o suporte. “Mas o que eu devo dizer ao revendedor quando devolver a máquina?” indagou madame pela última vez. “A senhora diga que, infelizmente, não tem inteligência suficiente para usar um computador”.
Consta que a história é verdadeira, que diante da solução proposta pelo suporte a senhora esbravejou, fez questão de falar com o supervisor, deu queixa exigindo a demissão do jovem mas que, apesar disso, até hoje ele continua no emprego e ela sem micro. Então, sempre que você souber que um usuário comum de Vista forneceu a senha do administrador em uma situação como a relatada no parágrafo anterior e a máquina foi contaminada, lembre-se desta historinha e siga em frente com o consolo de que, para a estupidez humana, ainda não se inventou solução.

O administrador – Modo de Aprovação
Mas o aumento dos privilégios do usuário comum é apenas uma face da moeda, pois resolve apenas metade do problema: aumenta a segurança enquanto a máquina está sendo usada por ele mas não impede que, enquanto ela estiver sendo usada por um administrador, o excesso de privilégios acabe por fazer com que seja contaminada.
A outra face da moeda chama-se “Admin Approval Mode” (modo de aprovação de administrador), o modo de operação usado quando a máquina está sendo operada por um administrador “de verdade”, ou seja, por um membro do grupo de administradores, com todos os seus privilégios.
E a solução consiste justamente em manter o próprio administrador sob constante supervisão. Ou seja: ele ainda continua senhor e dono da máquina e detentor de todos os seus privilégios, mas toda vez que for solicitada a execução de alguma tarefa que os exija ele é avisado através de uma janela que identifica claramente o programa que está solicitando o uso de privilégios de administrador, pede permissão para prosseguir e indica o grau de risco representado pela ação. Por exemplo: quando se trata de uma ação que corresponde a um ajuste ou manutenção do próprio sistema operacional, aparece uma simples janela de aviso. Caso se trate da instalação de uma aplicação cadastrada, com autor identificado (“signed application”) aparece uma mensagem informando que “um programa solicita sua ação para continuar”, identificando o autor e oferecendo-se para prosseguir por padrão. Finalmente, quando se trata de um aplicativo desconhecido e não identificado (“unsigned application”), potencialmente mais perigoso, a janela de aviso é destacada com uma barra título alaranjada e o botão oferecido por padrão não é “Prosseguir”, mas “Cancelar” (ou seja: se o administrador mandar prosseguir, será por sua conta e risco). Desta forma é impossível que seja feita qualquer instalação de programas ou alteração nos parâmetros do sistema sem o conhecimento do administrador,
Com isso o administrador continua em pleno exercício de seus direitos e privilégios, mas toda vez que tiver que recorrer a eles ou é avisado ou sua aprovação expressa é solicitada (dependendo dos ajustes da política de uso). A equipe de desenvolvimento de Vista chama isto de “privilégio certo no tempo certo”.
O “modo de aprovação de administrador” foi instituído para aquelas ocasiões em que um administrador usa a máquina para suas tarefas do dia-a-dia, como verificar correspondência eletrônica e navegar pela Internet, ou seja, quando ele está registrado como administrador mas executa tarefas de usuário comum. Embora possa ser desabilitado (o que é enfaticamente desaconselhado), o “modo de aprovação de administrador” é invocado por padrão toda vez que um administrador se registra.
A grande “sacada” do modo de aprovação é que a redução dos privilégios do administrador automaticamente se propaga para os programas que ele está rodando. Repare: sob Windows XP, quando um membro do grupo de administradores está usando a máquina, seus privilégios se estendem a todo e qualquer programa que tenha sido invocado por ele. Já sob Vista rodando no modo de aprovação, os programas invocados pelo administrador em suas tarefas diárias (como o gerenciador de correio eletrônico, navegador, editor de textos e outros tantos), ostentarão apenas os privilégios (agora ampliados) concedidos ao usuário comum e não mais poderão instalar programas à socapa (de novo, dicionário, por favor). Se algum deles, com o conhecimento do administrador ou à sua revelia (e, nesse último caso, provavelmente se trata de um “malware”) solicitar a execução de uma tarefa que demande efetivamente privilégios de administrador, o sistema será paralisada e o administrador informado sobre quem (que programa ou rotina) efetuou a solicitação, que somente será atendida após seu consentimento (dependendo da configuração, confirmado por senha). Como se vê não se trata propriamente de uma redução de privilégios, mas de nível de operação. Ou seja: o administrador preserva integralmente seus privilégios mas é avisado e sua permissão expressa é solicitada toda vez que for necessário apelar para eles.
Sei de gente – e gente muito boa, respeitabilíssimos usuários – que acha isso um exagero e reclama do excesso de interrupções durante o uso do micro pedindo autorização para isso e aquilo. E há também quem alegue que ao fim e ao cabo, a diferença prática entre o usuário comum e o administrador se limita à solicitação de uma senha e olhe lá (em ambos os casos o funcionamento da máquina é interrompido e a solicitação para continuar é solicitada; a diferença é que ao administrador, no modo de aprovação, solicita-se apenas que ele clique no botão “continuar” enquanto ao usuário comum é solicitada o credenciamento “sobre os ombros”, que requer a senha do administrador).
No meu entender, ambos têm razão no que afirmam. Mas não a têm ao reclamar. Explicando melhor: sim, é desagradável ter que confirmar toda a vez que se solicita a execução de uma tarefa que requer privilégios de administrador. Mas, se este é o preço que temos que pagar pelo aumento significativo do nível de segurança no uso do computador, paciência. Não obstante, em resposta às reclamações de muitos usuários das sucessivas versões beta, a equipe de controle reduziu ao mínimo indispensável as solicitações de aprovação. Desta forma, tanto o usuário comum quanto o administrador poderão executar muitas das tarefas que antes exigiam privilégios de administrador sem serem incomodados com interrupções.

Virtualização do Registro e do Sistema de Arquivos
Os ajustes nos níveis de privilégios tanto dos usuários comuns quanto dos administradores resolvem a maioria dos problemas de segurança causados por execução subreptícia de código à revelia do operador do computador. Mas não resolve – ao contrário, agrava, devido à freqüência com que autorizações teriam que ser solicitadas – um outro tipo de problema: o daqueles programas antigos que exigem escrita em áreas protegidas (alterações no Registro de Windows e leitura ou gravação de arquivos em regiões inacessíveis do sistema de arquivo) e que, por isso, exigiam em Windows XP rodar sempre em modo de administrador, que “tudo pode”.
Para fazer face a este problema a equipe de segurança de Vista implementou uma característica denominada “file/registry virtualization” (virtualização de arquivo e Registro). Toda vez que uma aplicação deste tipo é identificada, Vista oferece por padrão um modo de operação especial sob o qual elas rodam de fato com privilégios de usuário comum mas com acesso a uma cópia privada dos arquivos e do Registro que pode ser alterada à vontade. Desta forma cada um destes aplicativos funciona com seu Registro e Sistema de Arquivos virtuais, com cópias dos recursos que ela deseja alterar, de modo que estas alterações “apareçam” apenas para estes aplicativos e não comprometam a segurança do sistema, cujo Registro e Sistema de Arquivos real (não virtual) se mantém inalterado.
Segundo a MS, os testes com estes aplicativos rodando no modo de usuário comum com Registro e Sistema de Arquivos virtualizados mostraram um grau de compatibilidade razoável. No entanto ela considera que esta é uma solução temporária, já que reduz significativamente o desempenho do aplicativo. A solução definitiva consiste na adequação de todos os aplicativos desenvolvidos para Windows Vista às novas diretrizes de segurança.
Justamente por isso ela oferece aos desenvolvedores duas importantes ferramentas de análise e ajuda ao desenvolvimento, o “Standard User Analyzer” para diagnosticar problemas que poderiam dificultar que um programa rode no modo de usuário comum, e o “Application Compatibility Toolkit V5.0”, uma ferramenta que ajuda a tornar os novos aplicativos compatíveis com as exigências de Vista, inclusive as que dizem respeito ao UAC.

Controle de Pais (Parental Control)
No Vista o UAC se integra ao sistema de controle exercido pelos pais sobre menores que usam o computador (“parental control”). Por exemplo: o pai ou responsável pode criar uma conta com privilégios de usuário comum para ser usada pelo menor e que, no caso da instalação de qualquer programa, exija o consentimento de um adulto através de identificação e fornecimento de senha.
Na verdade, o controle de pais vai muito além disto e no Vista foi bastante ampliado. Os responsáveis podem recolher um relato detalhado sobre o uso do computador pelo menor, podem criar limites estritos para navegação na Internet (seja de forma genérica, especificando o conteúdo, seja escolhendo um “nível de restrição”, seja criando listas específicas) e podem impedir a transferência de arquivos. Podem estabelecer horários em que a conta pode ou não ser usada nos diferentes dias da semana, bloqueando o uso nos períodos que desejarem, podem permitir ou não o uso de jogos ou limitar seu uso tanto pelo tipo ou conteúdo quanto por uma lista nominal. E, finalmente, podem permitir ou bloquear programas específicos, criando listas expressas, “negras” (“blacklists”) para programas proibidos e “brancas” (“whitelists”) para programas permitidos.

Concluindo...
O controle de contas de usuário do Vista representa, sem dúvida, um avanço no que toca à segurança do sistema tornando praticamente impossível a execução de qualquer código à revelia do usuário, seja ele um administrador ou não. Esta ação, por si mesma, não garante a inviolabilidade do sistema já que sempre haverá aquele usuário que por ignorância ou distração permitirá a execução de uma ou outra rotina mal intencionada e os mequetrefes que as desenvolvem continuarão a buscar meios e modos de parecerem confiáveis para enganar os usuários. Mas, sem dúvida, representa um grande avanço.
Este avanço, no entanto, foi conseguido em troca de alguma facilidade de uso. Há quem se sinta incomodado com os (inicialmente) freqüentes avisos e “prompts” solicitando aprovação para que tal ou qual trecho de código seja executado. Eu, pessoalmente, prefiro assim, mesmo porque os pedidos de confirmação e autorização tendem a diminuir com o passar do tempo. Mas entendo as razões daqueles que preferem “o modo antigo”.
É impossível saber como este estranho e imprevisível ser chamado “mercado” reagirá a esta nova característica. A única coisa que se pode afirmar é que a MS admite que tem se esforçado para reduzir o número de “prompts” e avisos a pedido dos usuários beta, sem no entanto comprometer a segurança. Se ela chegou ao ponto de equilíbrio desejado para agradar ao mercado, só o tempo dirá.
É esperar um pouco para ver...
Quem quiser maiores detalhes sobre o UAC do Vista pode consultar o artigo da MS < http://www.microsoft.com/technet/windowsvista/security/uacppr.mspx > “User Account Control Overview” ou assistir o vídeo < http://www.microsoft.com/winme/0605/27914/Mike_Nash_Vista_Demo_MBR.asx > “Windows Vista Security Enhancements”.

B. Piropo