Prometemos que este blog daria uma visão geral da Engenharia do Windows 7 e isto significa que iríamos incluir todos os assuntos possíveis - de desempenho até interface do usuário, assuntos técnicos ou não e, claro, assuntos fáceis e assuntos controversos. Este artigo é sobre Controle de Conta de Usuário. Nosso autor é Ben Fathi, vice-presidente do Core Operating System Division (COSD). UAC é um recurso presente em vários aspectos da arquitetura do Windows (segurança, contas, interface do usuário, design e outros); vários outros membros da equipe contribuíram neste artigo.

Continuamos a valorizar o debate que os artigos parecem proporcionar – apostamos que (claro que não literalmente) este artigo arrancará comentários até do mais reservado de nossos leitores. Lembrem-se de fazer comentários construtivos e pertinentes ao assunto deste artigo.

Informamos que o servidor do blogs.msdn.com utiliza mecanismos de restrição a comentários com o objetivo de reduzir o spam. Nós não temos controle sobre isso e mantemos todas as opções “não moderado” selecionadas. Não é possível publicar as regras de proteção contra spam, já que isto vai de encontro a seu propósito (e eu as desconheço). Entretanto, peço desculpas se o seu comentário não for publicado. --Steven

Controle de Conta de Usuário (UAC) é, discutivelmente, uma das características mais controversas do Windows Vista. Por que a Microsoft adicionou todos esses popups ao Windows? Isso realmente melhora a segurança? Será que todos simplesmente não clicam em “continue”? Será que alguém em Redmond recebeu os comentários de usuários e revisores? Será que alguém já viu um comercial de TV sobre esse recurso?

Durante nosso trabalho com o Windows 7 examinamos cuidadosamente o UAC – analisando os comentários de usuários, volumes de dados, o ecossistema do software e o próprio Windows. Para começar, vamos analisar por que o UAC foi criado e nossa abordagem no Vista.

Por que utilizar o UAC

Deixando os detalhes técnicos de lado, o objetivo real do UAC é informá-lo antes que qualquer alteração “no sistema” seja feita no seu computador, permitindo, portanto, que você permaneça no comando de seu sistema. Uma “alteração não desejada” pode ser mal-intencionada, tal como um vírus desabilitando um firewall ou um rootkit silenciosamente dominando a máquina. Entretanto, uma “alteração não desejada” também pode ser uma ação por pessoas que possuem privilégios limitados, tais como uma criança tentando burlar o Controle dos Pais no computador da família ou um funcionário instalando um software proibido num computador de trabalho. O Windows NT sempre ofereceu suporte a tipos de contas múltiplas de usuário, uma das quais é o “usuário padrão”, que não possui os privilégios de administrador necessários para realizar alterações como aquelas. As empresas podem fornecer à maioria de seus funcionários (e freqüentemente o fazem) uma conta de usuário padrão ao mesmo tempo em que dão a alguns profissionais de IT privilégios de administrador. Um usuário padrão não pode fazer alterações de sistema, mesmo que acidentalmente, através do acesso a um website mal-intencionado ou ao instalar o programa errado. O controle sobre as alterações que a maioria das pessoas pode fazer no computador reduz o número de ligações para a central de suporte e o Custo Total de Propriedade (TCO) geral para a empresa. Em casa, um dos pais pode criar uma conta de usuário padrão para os filhos e utilizar o Controle dos Pais para protegê-los.

Porém, quando não se trata dos casos das empresas ou do Controle dos Pais, a maioria das máquinas (75%) possui uma única conta com privilégios totais de administrador. Isto se deve em parte ao fato de que a primeira conta de usuário é revertida automaticamente para administrador, já que é necessário que haja um para a máquina, e em parte ao fato de que as pessoas querem e esperam ter o controle sobre seu computador. Já que a maioria dos usuários possui uma conta de Administrador, isto criou historicamente um ambiente no qual a maioria dos aplicativos, bem como alguns dos componentes do Windows, sempre consideravam que poderiam realizar alterações do tipo sistema no próprio sistema.  Softwares escritos dessa forma não seriam eficazes para usuários padrão, tais como os casos do usuário na empresa e do controle dos pais mencionados acima. Além disso, dar a todos os aplicativos acesso irrestrito ao computador deixaria uma porta aberta para alterações danosas ao sistema, fossem elas intencionais (por malware) ou não intencionais (por softwares mal escritos).

 

Figura 1. Porcentagem de máquinas (servidores excluídos) com uma ou mais contas de usuário de janeiro de 2008 a junho de 2008.

O Controle de Conta de Usuário foi implementado no Vista a fim de abordar duas questões importantes: uma de incompatibilidade de software entre diferentes tipos de usuário e a outra de falta de conhecimento do usuário com relação a alterações no sistema. Expandimos os tipos de conta ao adicionar o Admin Protegido (PA), o qual se tornou o tipo padrão para a primeira conta no sistema. Quando um usuário PA entra no sistema, recebe dois tokens de segurança: um idêntico ao token do Usuário Padrão, que é suficiente para os privilégios mais básicos, e um segundo com privilégios totais de Administrador. Usuários padrão recebem somente o token básico, mas podem utilizar um token de Administrador de outra conta caso necessário.

Quando o sistema detecta que o usuário quer realizar uma operação que requer privilégios administrativos, a tela muda para o modo de “área de trabalho segura” e o usuário recebe um aviso pedindo sua aprovação. O motivo pelo qual a tela segue para “área de trabalho segura” é para evitar ataques por softwares mal-intencionados que tentam fazer com que você clique sim quando surge um aviso UAC utilizando uma cópia da interface do UAC (imitando a UI). Eles não conseguem fazer isso quando a área de trabalho está em seu estado de “segurança”. Usuários Admin Protegido são portanto informados sobre quaisquer alterações no sistema e só precisam clicar em sim para aprovar a ação. Um usuário padrão vê uma caixa de diálogo semelhante, mas que permite que ele digite as credenciais de Administrador (via senha, cartão com PIN, impressão digital, etc.) de outra conta a fim de acionar os privilégios de Administrador necessários para completar a ação. No caso de um sistema doméstico utilizando o Controle dos Pais, o responsável digitaria seu nome de usuário e senha para instalar o software, permitindo, portanto, que o responsável tenha o controle sobre softwares adicionados ao sistema ou alterações feitas neste. No caso das empresas, o administrador de IT pode controlar os avisos de acordo com as políticas da empresa de forma que o usuário padrão receba somente uma mensagem informando que ele não pode alterar o estado do sistema.

O que aprendemos até agora

Estamos sempre tentando melhorar o Windows, especialmente nas áreas que mais afetam nossos clientes. Esta seção irá tratar dos dados sobre o ecossistema, Windows e usuários finais – reconhecendo que os dados isoladamente não refletem as histórias de irritação e frustração que muitos leitores deste artigo podem estar sentindo.

O UAC teve impacto significativo sobre o ecossistema do software, os usuários do Vista e o próprio Windows. Conforme mencionado em artigos anteriores, há maneiras pelas quais nossos clientes podem nos enviar dados de forma voluntária e anônima sobre como utilizam nossos recursos (Programa de Aperfeiçoamento da Experiência do Usuário, Painel de Feedback do Windows, pesquisas com usuários, testes de campo com usuários, artigos em blogs e testes de utilização internos). Os dados e comentários que coletamos nos ajudam a tomar decisões informadas e a estabelecer prioridades com relação ao desenvolvimento de nossos recursos. A partir desses dados, aprendemos muito sobre o impacto do UAC.

Impacto sobre o ecossistema do software

O UAC causou uma redução radical no número de aplicativos que requerem privilégios de administrador desnecessariamente, o que acreditamos que melhora a qualidade geral do software e reduz os riscos inerentes a ele numa máquina que exige acesso total de administrador ao sistema.

Nos primeiros meses após o Vista ter sido colocado à disposição para uso, as pessoas recebiam avisos de UAC em 50% de suas “sessões” - uma sessão é tudo o que acontece entre o logon e o logoff ou dentro de 24 horas. Além disso, havia 775.312 aplicativos únicos (nota: isto mostra o volume de aplicativos únicos que o Windows suporta!) produzindo avisos (notem que instaladores e o próprio aplicativo não são considerados como o mesmo programa). Isso parece ser muito e realmente é, já que grande parte do ecossistema do software exigiu privilégios de administrador para sua execução. Como o ecossistema atualizou seu software, bem menos aplicativos estão exigindo privilégios de administrador. Dados do Programa de Aperfeiçoamento da Experiência do Usuário de agosto de 2008 indicam que o número de aplicativos e tarefas que geram um aviso caiu de 775.312 para 168.149.

 

Figura 2. Número de aplicativos e tarefas únicos gerando avisos UAC.

Essa redução significa que mais programas funcionam melhor para os Usuários Padrão sem gerar avisos toda vez que são executados nem alterar acidentalmente uma configuração administrativa ou do sistema. Além disso, também esperamos que conforme as pessoas utilizem suas máquinas por mais tempo, elas instalem novos programas ou alterem as configurações do Windows com menos freqüência, o que irá resultar num número menor de avisos; por outro lado, é justamente quando uma máquina é nova que há atividade extraordinariamente alta com relação a necessidades administrativas. Dados do Programa de Aperfeiçoamento da Experiência do Usuário indicam que o número de sessões com um ou mais avisos UAC caiu de 50% para 33% das sessões com o Vista SP1.

 

Figura 3. Porcentagem de sessões com avisos ao longo do tempo.

Impacto sobre o Windows

Um resultado imediato do UAC foi o aumento da qualidade da engenharia do Windows. Agora há bem menos componentes do Windows com acesso total ao sistema. Além disso, todos os componentes que ainda necessitam de acesso total ao sistema precisam pedir a permissão do usuário para obtê-lo. Sabemos através de nossos dados que o próprio Windows é responsável por aproximadamente 40% de todos os avisos UAC. Isto chama ainda mais atenção quando se observam os avisos mais freqüentes: os componentes do Windows foram responsáveis por 17 dos 50 avisos mais freqüentes de UAC no Vista e 29 dos 50 avisos mais freqüentes no Vista SP1. Algumas melhorias realizadas no Vista SP1 reduziram os avisos do Windows por parte de componentes utilizados freqüentemente, como o mecanismo de cópia, mas fica claro que há mais coisas que podemos (e vamos) fazer. O ecossistema também trabalhou bastante para reduzir seus avisos. Portanto, o número de componentes do Windows na lista dos 50 mais aumentou. O Windows tem uma chance maior de fazer alterações mais profundas em sua arquitetura no Windows 7, portanto podem esperar menos avisos dos componentes do Windows. A redução dos avisos no ecossistema do software e no Windows é uma proposição na qual não há perdedores. Ela permitirá que as pessoas se sintam confiantes na sua escolha de um software melhor que não realiza alterações potencialmente desestabilizadoras ao sistema e permite que elas identifiquem de forma mais imediata avisos importantes, oferecendo, portanto, uma sensação mais segura de controle.

Uma área importante de comentários que recebemos se refere ao número de avisos recebidos durante um download do Internet Explorer. Este é um exemplo específico de uma situação mais comum, onde uma caixa de diálogo de segurança de um aplicativo se sobrepõe ao Controle de Conta de Usuário. O IE vem utilizando desde o Service Pack 2 do XP uma caixa de diálogo de segurança para avisar aos usuários antes de executar programas da internet. No Vista, isto muitas vezes resulta num aviso duplo – a caixa de diálogo de segurança do IE seguida imediatamente por uma caixa de diálogo do UAC. Essa é uma área que deve ser abordada adequadamente.

 

Figura 4. Número dos 50 maiores geradores de avisos da Microsoft ao longo do tempo.

Impacto sobre os Clientes

Um clique adicional para fazer coisas corriqueiras como abrir o gerenciador de dispositivos, instalar programas ou desabilitar o firewall é por vezes confuso e frustrante para nossos usuários. Listamos abaixo uma amostra dos comentários que recebemos do Painel de Feedback do Windows:

  • “Não gosto de ser perguntado incessantemente se quero fazer o que acabei de mandar o computador fazer”.
  • “Sinto como se o Vista me pedisse para aprovar cada pequena coisa que faço no meu PC e acho isso muito desagradável”.
  • “O pedido constante de entrada para realizar qualquer alteração é irritante. Mas é bom o fato de que faz com que meus filhos me peçam a senha para coisas que estão tentando alterar”.
  • “Por favor simplifiquem o Controle de Conta de Usuário.....altamente confuso e incômodo às vezes”.

Compreendemos que adicionar um clique extra pode ser irritante, especialmente para usuários que possuem um bom conhecimento do que está ocorrendo com seu sistema (ou para pessoas que só estão tentando trabalhar). Entretanto, o benefício em potencial para a maioria dos usuários é que o UAC força malwares ou softwares mal escritos a se expor e a pedir sua autorização antes que possam potencialmente danificar o sistema.

Isso torna o sistema mais seguro? Se cada usuário do Windows fosse um especialista que compreendesse a causa e efeito de todas as operações, o aviso UAC faria total sentido e nada mal-intencionado passaria despercebido. A realidade é que algumas pessoas não lêem os avisos e portanto não se beneficiam deles (e ficam somente irritadas). No Vista, alguns usuários avançados preferiram desabilitar o UAC – uma configuração que é reconhecidamente difícil de encontrar. Não recomendamos que você faça isso, mas entendemos a utilidade de poder desabilitar o UAC. Para o restante que tenta entender o que está acontecendo ao ler o aviso UAC, há um benefício de segurança definido em potencial se você gastar algum tempo para analisar cada aviso e decidir se é algo que você deseja que aconteça. Entretanto, não tornamos as coisas fáceis para você – as caixas de diálogo no Vista não são fáceis de decifrar e por vezes não são memoráveis. Num estudo em laboratório conduzido por nós, somente 13% dos participantes puderam fornecer detalhes específicos sobre por que estavam vendo uma caixa de diálogo no Vista. Alguns sequer se lembravam de ter visto uma caixa de diálogo quando perguntados a respeito. Além disso, vemos que os clientes administradores aprovam 89% dos avisos no Vista e 91% no SP1. Estamos obviamente preocupados com o fato de que os usuários estejam reagindo por uma questão de hábito devido ao grande número de avisos ao invés de se concentrar nos avisos importantes e tomar decisões seguras. Muitos diriam que isto é totalmente previsível.

 

Figura 5. Porcentagem de avisos ao longo do tempo por tipo de aviso.

 

Figura 6. Porcentagem de avisos UAC autorizados ao longo do tempo.

Olhando para o futuro...

Agora que temos os dados e os comentários, podemos olhar para o futuro e ver como o UAC vai evoluir – continuamos a acreditar que o propósito que temos para o UAC é algo bom. Portanto, faz parte de nosso trabalho encontrar uma solução que não abandone este propósito. O UAC foi criado com a intenção de fazer com que você controle seu sistema, reduzindo o custo de propriedade ao longo do tempo e melhorando o ecossistema do software. Percebemos que percorremos somente parte do caminho no Vista e algumas pessoas acham que conseguimos o contrário.

Com base no que aprendemos a partir de nossos dados e comentários, precisamos abordar várias questões importantes no Windows 7:

  • Reduzir avisos desnecessários ou duplicados no Windows e no ecossistema de tal forma que avisos importantes possam ser mais facilmente identificados.
  • Possibilitar que nossos clientes se sintam mais seguros de que estão controlando seus sistemas.
  • Fazer com que os avisos informem as pessoas para que façam escolhas mais seguras.
  • Oferecer um controle melhor e mais evidente sobre o mecanismo.

Os benefícios que o UAC proporcionou ao ecossistema e ao Windows são claros; precisamos continuar com este trabalho. Ao habilitar os usuários padrão de forma bem sucedida, o UAC atingiu seu objetivo de oferecer a administradores IT e aos pais maior controle para bloquear seus sistemas para certos usuários. Conforme demonstrado por nossos dados acima, vimos o número de aplicativos externos e componentes do Windows que exigem privilégios de Administrador desnecessariamente cair de forma significativa. Isso também gera o benefício direto da redução da quantidade total de avisos que os usuários vêem, uma reclamação comum que recebemos freqüentemente. Seguindo adiante analisaremos os cenários que consideramos mais importantes para nossos usuários para que possamos nos assegurar de que nenhum deles incluirá avisos que possam ser evitados. Além disso, analisaremos os “maiores geradores de aviso” e continuaremos a colaborar com terceiros fornecedores de software e equipes internas da Microsoft para reduzir ainda mais avisos desnecessários.

Mais importante do que isso: conforme desenvolvemos o UAC para o Windows 7 vamos abordar as questões levantadas pelos comentários dos usuários e de satisfação com relação aos próprios avisos. Ficou claro para nós que vocês estão frustrados. Vocês acham que os avisos são freqüentes demais, irritantes e confusos. Ainda queremos dar a vocês controle sobre quais alterações podem ser feitas em seu sistema, mas queremos oferecer a vocês uma experiência geral melhor. Acreditamos que isso pode ser feito buscando dois princípios fundamentais. 1) Ampliar o controle que vocês têm sobre as notificações do UAC. Vamos continuar a dar a vocês controle sobre as alterações feitas em seu sistema, mas no Windows 7 também iremos oferecer opções de forma que quando vocês utilizarem o sistema como administrador poderão determinar a variedade de notificações que vão receber. 2) Oferecer informações adicionais e mais relevantes na interface com o usuário. Vamos melhorar a caixa de diálogo da UI para que vocês possam entender melhor e fazer escolhas mais informadas. Já realizamos testes com novos conceitos de design baseados nesse princípio através de nosso teste de utilização interno e obtivemos resultados muito positivos. 83% dos participantes puderam fornecer detalhes específicos sobre por que estavam vendo uma caixa de diálogo. Os participantes preferiram os novos conceitos porque eles são “simples”, “destacam editores verificados”, “fornecem a origem do arquivo” e “fazem uma pergunta relevante".

Resumindo, sim, ouvimos as reações ao recurso do UAC – tanto positivas quanto negativas. Planejamos continuar a desenvolver os benefícios oferecidos pelo UAC como um agente para o usuário padrão, tornando os sistemas mais seguros. Ao fazê-lo, também abordaremos os inúmeros comentários de que a experiência do usuário deve melhorar.

Ben Fathi