Impedir que aplicativos específicos sejam executados como administrador

12

Antecedentes

A maioria dos kits de ferramentas de instalação tem a capacidade de iniciar, automaticamente ou de outra forma, programas externos após a instalação. Isso geralmente é exibido no instalador por meio de opções como "Mostrar readme" ou "Iniciar programa".

Problema

O problema é que muitos desses instaladores são mal codificados e não descartam as permissões adequadamente. Por exemplo, iniciar o aplicativo automaticamente ou abrir a página inicial do aplicativo no navegador geralmente resulta em iniciar o aplicativo ou navegador com os privilégios administrativos do instalador ou com um nível de integridade "Alto" do UAC!

Isso tem o potencial de abrir brechas de segurança, abrindo o aplicativo instalado ou uma página da Web (e possivelmente complementos do navegador), que agora estão sendo executados com permissões elevadas.

(Esta é a razão pela qual eu recomendo nunca escolher opções de inicialização automática ao instalar o software.)

Pergunta

Existe uma maneira de prevenir certos aplicativos (como um navegador da web) de ever serem iniciados com privilégios administrativos, ou seja, um privilégio automático de soltar? com base no nome do processo?

    
por Unsigned 09.09.2012 / 23:21

6 respostas

2

Concordo, em princípio, com a resposta "RUNAS".

Parece-me que o que você deseja é que as instâncias de subprocesso sejam restritas automaticamente se estiverem sendo executadas como administrador.

Existem algumas abordagens. No entanto, eles são / podem ser drásticos e não são para o administrador tímido porque a sobrecarga é irritante. Eles farão o trabalho, no entanto.

Exibindo apenas a Abordagem 1, a menos que sejam solicitadas mais :

Para cada aplicativo que você deseja restringir:

right click the executable and go to **PROPERTIES**
go to the **SECURITY** tab
click **ADVANCED** at the bottom
click **ADD** at the bottom
type **ADMINISTRATORS** for the name. if you have a domain then adjust appropriately
press **OK** to get the custom settings for the administrator's group
check the **DENY** checkbox next to "TRAVERSE FOLDER/ EXECUTE FILE" permission (2nd on the list)
hit OK and so-on until you've closed the properties entry for that file.

Agora, os membros do grupo de administradores não podem executar esse arquivo. Eles podem voltar e alterar as permissões para desmarcar para que possam executá-lo, mas eles precisam fazer isso conscientemente.

Além disso, como você está preocupado com isso durante um instalador, você deve fazer o mesmo procedimento para o SYSTEM "usuário", que também (efetivamente) é executado como administrador também, porque essa conta pode ser usada durante algumas instalações (uma credencial de conta "ADMIN" do Windows pode ser usada para obter um token de credenciais do SISTEMA ... mas isso está muito além do alvo dessa pergunta).

Aqui estão algumas fotos de como fazer isso no Windows 7:

    
por 24.07.2014 / 20:28
1

Você deve ser capaz de atingir o nível de direitos mais baixos com o dropmyrights ou o psexec.

A parte complicada parece estar em fazer isso acontecer automaticamente quando um instalador gera uma nova instância do aplicativo.

Por isso, eu suspeito que você precisará pelo menos ajustar as associações de arquivos para todos os tipos de arquivos relevantes e também para URLs, prefixando seu comando existente com o comando psexec, por exemplo.

Isso funcionará desde que o instalador tente abrir o arquivo / url com o aplicativo associado, em vez de especificar o executável a ser executado. Se o caminho do executável for especificado explicitamente, você precisará substituir o executável padrão por um executável shim que execute o comando desejado.

    
por 25.03.2014 / 00:13
1

Uma coisa que está sendo perdida aqui é que o Internet Explorer e o Windows Explorer NÃO PODEM ter suas permissões elevadas (a menos que você faça um hack do registro). Não sei sobre o Firefox, o Chrome, etc., mas se você tentar executar o Internet Explorer como administrador, ele aceitará suas credenciais, mas não elevará as permissões. Este é um recurso de segurança do Windows Vista e superior. E, além disso, a única maneira de o UAC não estar em vigor (a menos que você o desligue) é se você estiver logado na conta de administrador interna. Só porque algo foi instalado com permissões elevadas, isso não significa que o instalador pode dar a esse programa permissões elevadas. As permissões são determinadas pela conta em que o programa foi executado. A única maneira que um programa pode ser executado com permissões elevadas sem você saber é se, por exemplo, um programa inicia com o Windows a partir de uma configuração de registro, etc. Se isso acontecer, pode ser corrigido editando o registro.

    
por 22.08.2014 / 02:57
0

Eu olhei para diferentes soluções e já posso dizer-lhe que manifestos de aplicativos ou flags appcompat não vai funcionar (sim isso não é uma resposta real, mas eu ainda queria compartilhar isso;))

o que pode estar próximo do que você está procurando é o chamado nível de integridade , ele pode ser definido dentro do sistema de arquivos (ACL) e tem um efeito no token que o processo está mantendo

Este artigo explica como você faz com que um exe seja sempre executado em "nível de integridade baixo"

outra abordagem seria uma ferramenta de terceiros, como um monitor de processo em tempo real que um antivírus ou firewall de aplicativos usaria, mas não sei de nenhum que possa ser configurado dessa maneira.

    
por 05.04.2014 / 00:50
0

Você pode usar o AppLocker.

Acredito que isso esteja disponível no Windows 7 Enterprise, Ultimate e Server 2K8 e superior. Não tenho certeza sobre o Windows 8, mas assumiria que fosse o mesmo (Enterprise e Ultimate).

Você pode configurar o AppLocker entrando na política de grupo:

Configuração do computador - > Configurações do Windows - > Configurações de segurança - > Políticas de controle de aplicativos - > AppLocker - > Regras executáveis.

Clique com o botão direito e "Criar uma nova regra ..."

Aqui você pode bloquear que executáveis específicos sejam executados por usuários ou grupos selecionados. No seu exemplo, você pode optar por negar a execução do Internet Explorer pelo grupo Administradores.

    
por 04.11.2014 / 02:35
0
RUNAS /trustlevel:<TrustLevel> program

/trustlevel       <Level> should be one of levels enumerated
                  in /showtrustlevels.
/showtrustlevels  displays the trust levels that can be used
                  as arguments to /trustlevel.

This requires an elevated command prompt.

Explicação / passo a passo

  1. Abra o menu Iniciar e digite cmd na barra de pesquisa
  2. Clique com o botão direito do mouse no prompt de comando e selecione executar como administrador. Digite:

    RUNAS /showtrustlevels
    
  3. Escolha um nível de confiança adequado para o seu aplicativo ser executado, onde X é o nível de confiança que você deseja usar e digite:

    RUNAS /trustlevel:X "Application target"
    
por 09.09.2012 / 23:32

Tags