Impedir que aplicativos específicos sejam executados como administrador

13

fundo

A maioria dos kits de ferramentas de instalação tem a capacidade de iniciar, automaticamente ou de outro modo, programas externos após a instalação. Isso geralmente aparece no instalador por meio de opções como "Mostrar leia-me" ou "Iniciar programa".

Questão

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

Isso tem o potencial de abrir violações 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.

(Esse é o motivo pelo qual recomendo que nunca escolha as opções de inicialização automática ao instalar o software.)

Questão

Existe uma maneira de impedir que certos aplicativos (como um navegador web) de sempre a ser lançado com privilégios administrativos, ou seja, uma queda de privilégios automática com base em nome do processo?


fonte
2
Eu realmente gosto desta pergunta. Existem produtos para aumentar os direitos de processos com base em caminho, hash etc. Eu adoraria ver algo que reduz automaticamente os direitos de, por exemplo, iexplore.exe, firefox.exe, chrome.exe, etc.
Patrick Seymour
1
Se o programa de reprodução tiver direitos de administrador, ele não poderá desfazer o que você criar e executá-lo? :)
Sepcʜιᴇ007 09/09/12
1
Acho que sim, mas ficaria surpreso se um instalador dissesse: "Ei, você vai navegar em nossa página inicial como administrador, amigo!" e aplicou continuamente essas permissões. Acho que não compraria software de uma empresa como essa, desde que eu descobrisse.
Patrick Seymour

Respostas:

2

Eu concordo, em princípio, com a resposta "RUNAS".

Parece-me que o que você deseja é que as instâncias do subprocesso sejam restringidas 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.

Apenas mostrando a Abordagem 1, a menos que mais sejam solicitadas :

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 a opção de poder executá-lo, mas precisam fazer isso conscientemente.

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

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

insira a descrição da imagem aqui insira a descrição da imagem aqui insira a descrição da imagem aqui insira a descrição da imagem aqui insira a descrição da imagem aqui

usuario
fonte
1

Você deve conseguir atingir o nível mais baixo de direitos com dropmyrights ou psexec.

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

Por isso, suspeito que você precisará pelo menos ajustar as associações de arquivos para todos os tipos de arquivos relevantes e também para URLs, precedendo 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, acho que você precisaria substituir o executável padrão por um executável shim que execute o comando desejado.

sahmeepee
fonte
1

Uma coisa que está faltando 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 no registro). Não sei sobre o Firefox, Chrome etc., mas se você tentar executar o Internet Explorer como administrador, ele aceitará suas credenciais com prazer, mas não elevará as permissões. Este é um recurso de segurança do Windows Vista e superior. Além disso, a única maneira de o UAC não entrar em vigor (a menos que você o tenha desativado) é se você estiver conectado à conta de administrador interna. Só porque algo foi instalado com permissões elevadas, não significa que o instalador possa conceder permissões elevadas a esse programa. As permissões são determinadas pela conta em que o programa foi executado. A única maneira de executar um programa com permissões elevadas sem você saber se,

MegaloDon
fonte
1
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.

    RUNAS /showtrustlevels
    
  3. Escolha um nível de confiança adequado para a execução do seu aplicativo, onde Xestá o nível de confiança que você deseja usar e digite:

    RUNAS /trustlevel:X "Application target"
    
David McGowan
fonte
Eu não acho que isso vai funcionar. Para usar o RunAs para que a janela resultante do navegador seja executada com direitos baixos, você precisará executar o instalador (via RunAs) com direitos baixos. Isso provavelmente faria com que o instalador não funcionasse.
Patrick Seymour
bem, se você quisesse fazer dessa maneira, alteraria a variável de ambiente do seu navegador para incluir o comando RUNAS / trustlevel; o navegador sempre será iniciado no nível de confiança selecionado, é improvável que você precise executar o navegador em um elevada situação ... vale um pensamento
David McGowan
Alterar a variável de ambiente é uma missão, exigirá a criação de um exe simples para substituir o original que contém uma chamada simples para o executável real com o comando RUNAS incluído. Como eu disse, pouco de uma missão você poderia apenas copiar o endereço que os lançamentos janela do navegador com e em seguida, feche e reinicie o navegador e digite o endereço na
David McGowan
0

Procurei soluções diferentes e já posso lhe dizer que os manifestos do aplicativo ou os sinalizadores do appcompat não funcionarão (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 no sistema de arquivos (ACL) e afeta o token que o processo está mantendo

este artigo explica como você executa um exe sempre com "baixo nível de integridade"

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

weberik
fonte
2
você pode ignorar minha resposta, eu apenas tentei esse método e não funcionou :(
weberik
0

Você pode usar o AppLocker.

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

Você pode configurar o AppLocker acessando a política de grupo:

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

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

Aqui você pode impedir 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.

zako42
fonte