Administração do Windows

Jogando em um ambiente seguro

Matt Clapham

 

Visão geral:

  • Gravando em chaves do Registro e pastas protegidas
  • Falhas de proteção contra cópia
  • Problemas de Firewall
  • Problemas com clientes corporativos

De dia, trabalho como gerente do programa de segurança na Microsoft. Também escrevo freqüentemente sobre segurança para a TechNet Magazine. Não é necessário dizer que levo segurança muito a sério. Mas também tenho outros

interesses. Nas horas vagas, adoro jogar jogos baseados no Windows®. Gosto especialmente de jogos de atiradores em primeira pessoa, simuladores, RPG e estratégia em tempo real. Entretanto, há um problema. Como meus amigos Jesper Johansson e Aaron Margosis, eu me recuso a executar com privilégio administrativo, a exceto quando absolutamente necessário. Faço isso em parte para garantir que vou obter apenas 0wnd3d em um jogo de rede devido à minha falta de habilidade, e não como resultado de alguém me bombardear com um rootkit para retardar a minha mira (consulte Quake 3 Buffer Overflow Advisory, listado na barra lateral "Recursos").

Meu entusiasmo a esse respeito é tão grande que, com freqüência, não consigo jogar um título novo e interessante (consulte a Figura 1). Se não consigo executar o jogo com minha Conta de Usuário Limitada (LUA) em um cliente associado a um domínio do Small Business Server (SBS) após instalá-lo e atualizá-lo em uma conta de administrador, eu o removo no mesmo instante. Não há desculpa para esse tipo de engenharia deficiente e não me faltam opções de jogos. Admito que minha posição possa parecer radical, mas sou inflexível nesse ponto. Mesmo assim, não sou contra abrir mão de alguns pontos fracos de menor importância em prol de algum tempo de jogo de qualidade, e é sobre isso que tratarei aqui. Assim, permita-me compartilhar alguns dos problemas relacionados a jogos com que me deparei e as soluções que descobri serem eficazes. Para obter um resumo rápido das práticas recomendadas, dê uma olhada na barra lateral"Tips for Gaming as a Limited User".

Figura 1 Problemas de acesso ao arquivo na execução da atualização manual

Figura 1** Problemas de acesso ao arquivo na execução da atualização manual **(Clique na imagem para aumentar a exibição)

Problemas comuns

Esse problema de privilégio não é novidade. Existem inúmeros jogos e outros tipos de programas que requerem privilégio administrativo para serem executados corretamente. Dê uma olhada no artigo da Base de Dados de Conhecimento "Certain Programs Do Not Work Correctly if You Log On Using a Limited User Account" ("Determinados programas não funcionam corretamente se você fizer logon usando uma conta de usuário limitada" (consulte support.microsoft.com/kb/307091). O artigo lista aproximadamente 200 jogos e aplicativos que experimentam dificuldades quando executados por um usuário limitado, incluindo alguns programas da Microsoft.

Quero deixar claro que não considero um problema a necessidade de privilégio administrativo para instalar ou atualizar (manualmente) um jogo. Isso geralmente é requerido até termos a habilidade de realizar a rotina de instalações por usuário no Windows. Esse dia vai chegar em breve, mas ainda não estamos lá. Entretanto, depois que um jogo é instalado e atualizado, ele tem que estar pronto para ser jogado por qualquer usuário do sistema, até por alguém que tenha apenas privilégio limitado.

Tentando gravar em chaves do Registro e pastas protegidas O único problema mais comum que observei é quando ocorre falha na inicialização ou durante o jogo, porque ele tenta gravar em chaves do Registro ou em pastas protegidas (comum em muitos aplicativos baseados no Windows). Por padrão, apenas administradores (e os Usuários avançados preteridos) podem gravar em certas pastas (como %PROGRAMFILES%) e em hives do Registro (como HKEY_LOCAL_MACHINE). Os erros decorrentes podem ser relativamente óbvios: "Erro 42: Não foi possível gravar arquivos de log em C:\Program Files\CoolGamesInc\NewestFPS\Logs\" ou "Jogo não instalado corretamente, reinstale e reinicie." Também já vi exemplos em jogo médio, como mensagens de erro exibidas quando salvo meu progresso. Às vezes os criadores de jogos ao menos alertam o usuário de que o jogo necessita de privilégio administrativo, no momento, para funcionar, que foi o que experimentei com o Age of Mythology®. Os MMOGs (jogos online com grande quantidade de participantes) muitas vezes esbarram em problemas de privilégio, pois freqüentemente atualizam a si próprios e o ângulo de auto-atualização é um pouco mais complicado de se resolver tecnologicamente. Quando executei a versão de avaliação do EVE Online, percebi que ela saiu prejudicada não apenas com a colocação arquivos de log em locais inadequados, mas também com a tentativa de auto-atualização dos dados de conteúdo do jogo na pasta de instalação.

Falhas na proteção contra cópia O segundo motivo mais comum que observei em jogos com falha na inicialização é quando a proteção interna contra cópia do jogo (ou outro recurso antipirataria) não funciona com um usuário limitado. Pode ser que o driver não tenha sido iniciado corretamente ou que algum serviço de segundo plano não esteja sendo executado. A representação mais comum que já vi para esse problema é o jogo solicitar que o usuário insira um disco, mesmo quando a mídia solicitada já está na unidade. Também já vi jogos afirmarem que os privilégios de administrador são necessários, na crença ilegítima de que apenas administradores podem executar adequadamente a verificação de proteção contra cópia. Os piores casos apresentam uma mensagem de erro absurda e malformada sem nenhuma referência no site de suporte do jogo.

Falha na solicitação de exceção do firewall Jogos com vários participantes que podem ser jogados em uma rede local ou na Internet são muito comuns, e o Windows XP Service Pack 2 (SP2) adicionou uma mensagem de aviso que informa ao usuário quando os aplicativos estão tentando escutar a rede. Isso me traz ao próximo problema comum que observei: jogos que precisam de uma exceção de firewall, mas não solicitam a adição dessa exceção na hora da configuração. Como usuários limitados não podem alterar a configuração do firewall, esse aviso (veja a Figura 2) não pode ser solucionado sem o trabalho de configuração de um administrador. Pior ainda, algumas vezes o problema não é óbvio, uma vez que o aviso aparece no shell do Windows e não na interface do jogo. Na verdade, normalmente eu nem vejo a mensagem de erro até sair do jogo.

Figura 2 Quando as configurações do firewall acabam com a diversão

Figura 2** Quando as configurações do firewall acabam com a diversão **(Clique na imagem para aumentar a exibição)

Problemas com clientes corporativos Encontrei outro problema não relacionado diretamente à execução como usuário limitado, mas que, apesar disso, vale ser discutido. Executo meu ambiente de computação doméstico como uma pequena empresa (não entrarei em detalhes, mas você poderá ler sobre isso neste artigo"Master Your Domain (Controle seu Domínio): Build a Corporate Network at Home (Construa uma rede corporativa em casa)", que eu e Jesper Johansson escrevemos em outubro de 2006 para uma matéria da TechNet Magazine. Usando o SBS 2003 (R2), configurei um domínio completo do Windows com uma pasta Meus Documentos que é redirecionada para um compartilhamento de servidor. Foi desta forma que descobri os problemas mais comuns de que iremos tratar: jogos que não conseguem lidar com clientes corporativos.

Observei um empecilho duplo no Age of Empires® III (AoE3). Para crédito da equipe de desenvolvimento, o jogo inicia e funciona adequadamente como usuário limitado. Contudo, percebi que os cenários eram carregados lentamente, devido à grande quantidade de dados de log que eram gravados na rede. Além disso, o AoE3 perdeu minhas configurações, meus jogos salvos e o progresso, sempre que eu saia do jogo. Os arquivos estavam nitidamente na pasta Meus Documentos, mas o jogo simplesmente não os carregava. Isso foi uma verdadeira decepção, especialmente considerando-se o quanto mais o AoE3 se tornou amigável ao LUA, comparado aos títulos anteriores da série.

Vi um jogo que pelo menos reconhece esses problemas de clientes corporativos. Quando tentei o Fable®: The Lost Chapters™, o jogo foi suficiente para eu saber que as pastas remotas Meus Documentos não tinham suporte e, depois, saí do jogo normalmente. Elogio a equipe de desenvolvimento por reconhecer um cenário sem suporte e rejeitá-lo. Entretanto, pareceu-me um tanto estranho que o jogo saísse dessa forma para interromper o usuário, considerando-se que ele colocaria apenas alguns megabytes de dados na pasta Meus Documentos.

Soluções simples

Passei por esses problemas várias vezes, em mais jogos do que consigo lembrar. Felizmente, a maioria desses problemas possui soluções alternativas convenientes. Minha solução favorita é descartar o jogo de uma vez e mudar para um título do mesmo gênero compatível com o LUA, mas de um outro editor. Mais uma vez, isso parece um pouco radical. E não se trata de uma solução ideal, já que gastei 60 dólares em um novo título e não posso devolvê-lo, porque a caixa já está aberta. Vejamos então algumas maneiras de corrigir os jogos que eu já possuo.Dicas para jogar como usuário limitado

  • Atualize para o Windows Vista.
  • Tente a demonstração antes de comprar. Ela provavelmente apresentará todos os problemas de LUA que a versão completa tem.
  • Confira a lista de programas conhecidos por apresentarem problemas, executados em uma LUA ().
  • Procure os jogos que levam o logotipo Designed for Windows.
  • Atualize o jogo após a instalação e antes de executá-lo como usuário limitado.
  • Quando encontrar um jogo que não funcione como usuário limitado, informe sua preocupação ao editor e ao suporte técnico da empresa.
  • Se for necessário, use uma conta de usuário avançado local do sistema.

Solucionando problemas de proteção contra cópia Primeiro, vamos atacar o problema do driver de proteção contra cópia. Os sistemas de proteção contra cópia chegaram para ficar, mas isso não quer dizer que eles devam impedir os não-administradores de executar jogos! A maioria dos jogos usa o mecanismo SafeDisc de proteção contra cópia, da Macrovision; esse mecanismo instala um driver que verifica a existência de um disco de jogo original. Por padrão, o driver está configurado para iniciar por demanda (uma função limitada não permitida a usuários limitados). A Microsoft e a Macrovision distribuíram correções, mas eu encontrei outra solução alternativa:

  1. Abra o Gerenciador de Dispositivos usando uma conta de administrador.
  2. Vá até o menu Exibir e selecione Mostrar dispositivos ocultos.
  3. Expanda o nó dos drivers que não são plug and play.
  4. Abra as propriedades do driver Segurança ou SecDrv (consulte a Figura 3).
  5. Altere o tipo de inicialização para Automática.

Figura 3** Permitindo que a proteção contra cópia seja executada adequadamente **(Clique na imagem para aumentar a exibição)

Como o driver agora tem início juntamente com o computador, ele já estará pronto quando o usuário inserir o disco para executar o jogo.

Solucionando problemas de acesso ao sistema de arquivos e ao Registro A suposição de que o acesso irrestrito a qualquer parte do sistema de arquivos ou do Registro é um problema comum em muitos programas herdados e atuais, não apenas em jogos. O artigo de Aaron Margosis"Problems of Privilege: Find and Fix LUA Bugs ("Problemas de privilégio: localize e corrija bugs de LUA" aprofunda-se nos detalhes de soluções dos diversos problemas que levam à necessidade de privilégios de administrador.

Problemas de acesso são um pouco difíceis de se rastrear, mas assim que o conjunto de requisitos de arquivos, pastas e chaves do Registro são assimilados, torna-se bastante óbvia a flexibilização das ACLs (listas de controle de acesso) para permitir que os usuários limitados participem do jogo. Tive sucesso total com o seguinte método:

  1. Obtenha as versões mais recentes de Filemon e Regmon em microsoft.com/technet/sysinternals.
  2. Execute as ferramentas como administrador e faça com que comecem a coleta dos logs.
  3. Jogue por alguns minutos como administrador, executando a maioria das tarefas comuns (start a new campaign, save a game, host a network game e assim por diante).
  4. Filtre os resultados de Filemon e Regmon para focar nos acessos do jogo que está sendo testado.
  5. Flexibilize as ACLs conforme necessário nas pastas e chaves do Registro em questão.
  6. Execute o jogo como não-administrador, para verificar se ele funciona agora.

Uma advertência sobre flexibilizar as ACLs: não as abra amplamente (por exemplo: Everyone—Full Control) nem em um nível muito alto (como HKEY_CLASSES_ROOT). Também é melhor evitar alterar qualquer permissão em pastas de sistema, como %SYSTEMROOT% e %PROGRAMFILES%, para evitar expor o Windows completamente ou deixar o sistema sem segurança.

Outra solução alternativa em potencial é executar o jogo como Usuário Avançado local do sistema. Esta não é a minha primeira opção, mas, ao usar uma conta que seja local para esse sistema, o escopo do impacto pelo menos se limita a uma única estação de trabalho, caso algo saia errado. Descobri que essa solução funciona para a maioria dos jogos que parecem só funcionar adequadamente como administrador.

Eu mesmo considero que executar um jogo rapidamente como administrador é um modo prático de tê-lo auto-atualizado. Normalmente executo o jogo como administrador, invoco a opção de atualização respectiva e saio do jogo; então, retorno à minha conta de usuário limitado para jogar de verdade. (Vale a pena mencionar que o Windows Vista™ permite que usuários limitados atualizem os aplicativos, supondo que o patch seja assinado pelo editor original.)

O Windows Vista também ajuda jogos e outros aplicativos a lidar com problemas de arquivo e acesso do Registro. Por padrão, programas executados por usuários limitados têm correções de virtualização ativadas que redirecionam os acessos equivocados de arquivo e do Registro para um cachê de usuário específico. Vi jogos projetados para a era Windows 9x, (The Neverhood, por exemplo) que não são executados corretamente noWindows XP (devido a problemas de permissão) funcionarem no Windows Vista com as correções padrão. Estou ansioso para testar outros jogos problemáticos no Windows Vista, mas desconfio que terei dificuldades em encontrar um jogo que o Windows Vista não possa corrigir adequadamente.

Solucionando problemas de firewall Os problemas de firewall são melhor solucionados na primeira instalação do jogo. No entanto, quando a configuração do jogo não é inteligente o suficiente para solicitar e configurar os ajustes de firewall necessários, eis um método que eu encontrei e que funciona bem:

  1. Faça logon como administrador.
  2. Abra o Painel de Controle do Firewall do Windows.
  3. Escolha adicionar um programa à lista de exceções do firewall.
  4. Selecione o jogo na lista ou procure pelo executável do jogo quando for solicitado.

Adicione o executável do jogo à exceção do firewall. Asseguro que o jogo terá permissão de acesso a toda e qualquer porta necessária para que ele funcione corretamente. Resultado: massacre!

Solucionando problemas com clientes corporativos Os problemas que os jogos encontram em clientes corporativos desaparecerão na hora. O número de computadores domésticos com banda larga está aumentando e existe uma comunidade crescente de usuários que executam o SBS em casa. Por enquanto, contudo, uma solução é ainda necessária.

No meu caso especificamente, descobri que um LUA local de sistema contornou o problema de redirecionamento da pasta Meus Documentos. O Age of Empires III e o Fable: The Lost Chapters funcionam muito bem como usuário limitado, desde que a pasta Meus Documentos não seja redirecionada para uma pasta de rede. Recursos

Conclusão

Recomendo enfaticamente a execução como usuário limitado, assim você poderá aproveitar os benefícios associados à não execução como administrador. Nem sempre é fácil jogar em um mundo corporativo e de privilégios mínimos, mas isso está longe de ser impossível. Ao longo dos anos eu encontrei muitos jogos de todos os gêneros que funcionavam corretamente como usuário limitado. Encontrei também algumas soluções que fazem muitos outros títulos funcionarem. Enquanto isso, com a virtualização do Windows Vista, os jogos impossíveis de serem jogados como usuário limitado no Windows XP, voltaram a funcionar.

Matt Clapham, gerente do programa de segurança da Microsoft, é participante ativo da comunidade Segurança de TI de Seattle e membro da equipe de gerenciamento de risco em um projeto de TI em incubação.

© 2008 Microsoft Corporation e CMP Media, LLC. Todos os direitos reservados. A reprodução parcial ou completa sem autorização é proibida..