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?
Respostas:
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:
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:
fonte
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.
fonte
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,
fonte
Explicação / Passo a Passo
Clique com o botão direito do mouse no prompt de comando e selecione Executar como Administrador.
Escolha um nível de confiança adequado para a execução do seu aplicativo, onde
X
está o nível de confiança que você deseja usar e digite:fonte
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.
fonte
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.
fonte