-->

quarta-feira, 14 de outubro de 2009

Como impedir um usuário administrador de mudar certas configurações.

Nesta dica eu mostro como se protege certas chaves do Registro contra modificação indesejável.

Eu me baseio no fato de que a esmagadora maioria dos "usuários administradores" no mundo Windows tem apenas o privilégio de administrador e não a capacidade. Não é realmente possível impedir um administrador de verdade (ou um power user) de fazer o que quiser com uma conta de administrador. Você pode atrasá-lo e até cansá-lo, mas uma hora ele vai descobrir como se resolve (ou se contorna) o problema.

Por isso esta dica pode ser ainda mais útil e eficaz se o que você está tentando barrar não é um usuário, mas um programa que está fazendo modificações que você não deseja que ele faça, quer seja em suas próprias configurações ou nas configurações de outro programa. Um recente "hack" publicado (não por mim) para se livrar do OGA depende do que vou explicar adiante para funcionar direito.

Vou usar como exemplo a seguinte chave:

HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings

O objetivo é impedir que um usuário com privilégio de administrador consiga mudar a configuração do proxy.

Com o Regedit, vá até a chave que você deseja proteger, clique com o botão direito nela e depois em Permissões. Você deve ver algo assim:




Clique em Avançado




Clique sobre a entrada relacionada com o grupo Administradores (como mostrado acima) e depois em Editar.



Você deve selecionar apenas as entradas mostradas acima, que vão impedir a chave de ser modificada ou excluída. Clique em OK.



Perceba como agora existem duas regras relacionadas com o grupo Administradores, sendo que a que você acabou de criar é do tipo "negar". Clique em OK. O Windows te dará um aviso como este:



E é justamente isso que queremos. Responda Sim.

Você pode testar agora. Logado com privilégio de administrador: Painel de Controle -> Opções de Internet -> Conexões -> Configurações da LAN (as configurações mostradas são da minha rede) .





Tente mudar alguma coisa. Vai parecer que funcionou porque o Windows não vai dar erro algum, mas se você voltar à configuração verá que tudo o que você fez foi revertido (na verdade, nem chegou a ser feito).

Esta configuração específica afeta o IE e o Google Chrome. Se a máquina tiver Firefox você precisa também proteger a chave usada por ele. Isso reforça meu aviso de que esse tipo de "proteção" não vai funcionar indefinidamente contra usuários. Um power user pode instalar outro programa e contornar o problema sem nem sentir que está contornando alguma coisa.

Para reverter, basta remover a entrada do tipo "negar".

Edit: Mesmo diante de todos os meus avisos de que isso não barra power users, tenha em mente que 99% dos usuários não conseguirão passar por essa proteção. Mesmo que um usuário comum saiba o que você fez (mesmo que você dê a ele uma cópia deste texto) ele ainda precisa saber qual chave você protegeu. E isso está longe de ser óbvio. Pode ser que seja possível escrever um programa que varra o Registro movendo todas as negações, mas esse programa ainda não existe (não que eu saiba).

Aplicações possíveis (não testei):
  • Impedir a modificação de chaves que provocam execução automática raramente modificadas legitimamente mas muito populares no círculo do malware;
  • Impedir a criação de chaves que são criadas por determinados softwares, impedindo então que esses softwares sejam (ao menos corretamente) instalados.


Notas:
  • Não é aconselhável que você tente proteger todo o Registro dessa forma. Pode ser feito, mas não dá para antecipar todos os possíveis efeitos colaterais. E se você vai proteger todo o Registro precisa avaliar se não seria melhor simplesmente dar uma conta limitada ao usuário;
  • Você pode provocar problemas enlouquecedores se usar isto de forma arbitrária e depois "esquecer" o que fez. Por exemplo, se você proteger alguma chave contra leitura pode provocar travamentos difíceis de diagnosticar;
  • Não é possível proteger apenas valores. Somente chaves tem atributos de permissão;
  • É possível reverter permissões por software, mas é complicado e a maioria dos softwares (incluindo os da própria Microsoft) nem "imagina" que irá ter que fazê-lo e muito menos "sabe" como;
  • No exemplo eu protegi uma chave sob HKCU (Current User) e isso provavelmente só vai ter efeito sobre o usuário corrente. Se você escolher cuidadosamente a chave sua modificação vai ter efeito sobre todos os usuários.

3 comentários:

  1. Essa dica pode se muito útil se estudarmos alguns spywares e malwares, como foi dito no post. Particularmente gostei da idéia de travar a página inicial do Firefox e do IE, já que muitos clientes vivem baixando e instalando porcarias e aceitando todas as caixas de diálogo possíveis. Com isso já evitamos aquele chamado do cliente dizendo:

    - Mudaram minha página principal e não consigo mudar de volta!! Vem aqui pelo amor de Deus!


    Algumas chaves do registro eu até mexo para deixar o sistema mais rápido tanto pra iniciar como pra desligar, mas agora vou dar uma verificada melhor com essa nova opção de "travar" para edição e exclusão.

    Boa dica!

    ResponderExcluir
  2. Seus textos são extremamente claros e elucidativos, você explica de forma bem sucinta todo o tipo de assunto.

    Obrigado por este texto tão esclarecedor. Parabéns.

    ResponderExcluir
  3. Tem como impedir as configurações feitas pelo login numa rede?

    ResponderExcluir

Siga as regras do blog ou seu comentário será ignorado.