Empêcher des applications spécifiques d'être exécutées en tant qu'administrateur

13

Contexte

La plupart des boîtes à outils d'installation ont la capacité de lancer, automatiquement ou autrement, des programmes externes après l'installation. Cela apparaît souvent dans le programme d'installation via des options telles que "Afficher le fichier Lisez-moi" ou "Démarrer le programme".

Problème

Le problème est que bon nombre de ces programmes d'installation sont mal codés et ne laissent pas tomber les autorisations de manière appropriée. Par exemple, le démarrage automatique de l'application ou l'ouverture de la page d'accueil de l'application dans le navigateur entraîne souvent le lancement de l'application ou du navigateur avec les privilèges administratifs de l'installateur, ou un niveau d'intégrité UAC «élevé»!

Cela a le potentiel d'ouvrir des failles de sécurité, en ouvrant l'application installée ou une page Web (et éventuellement des modules complémentaires de navigateur), qui s'exécutent maintenant avec des autorisations élevées.

(C'est la raison pour laquelle je recommande fortement de ne jamais choisir les options de lancement automatique lors de l'installation du logiciel.)

Question

Existe-t-il un moyen d' empêcher que certaines applications (comme un navigateur Web) ne soient jamais lancées avec des privilèges administratifs, c'est-à-dire un privilège de suppression automatique basé sur le nom du processus?


la source
2
J'aime vraiment cette question. Il existe des produits aux droits de raise pour les processus basés sur le chemin, hachage, etc. J'aimerais voir quelque chose qui laisse tomber les droits automatiquement, par exemple, iexplore.exe, firefox.exe, chrome.exe, etc.
Patrick Seymour
1
Si le programme d'apparition a des droits d'administrateur, ne pourrait-il pas simplement annuler tout ce que vous proposez et l'exécuter de toute façon? :)
Ƭᴇcʜιᴇ007
1
Je suppose que c'est possible, mais je serais surpris si un installateur disait: "Hé, tu vas parcourir notre page d'accueil en tant qu'administrateur, mon pote!" et continuellement appliqué ces autorisations. Je ne pense pas que j'achèterais un logiciel à une entreprise comme celle-ci, à condition que je puisse m'en informer.
Patrick Seymour

Réponses:

2

Je suis d'accord en principe avec la réponse "RUNAS".

Il me semble que ce que vous voulez, c'est que les instances de sous-processus soient automatiquement restreintes si elles s'exécutent en tant qu'administrateur.

Il existe quelques approches. Cependant, ils sont / peuvent être drastiques et ne sont pas pour l'administrateur timide car les frais généraux sont ennuyeux. Ils feront le travail, cependant.

N'afficher qu'une approche, sauf si d'autres sont demandés :

Pour chaque application que vous souhaitez restreindre:

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.

Désormais, les membres du groupe d'administrateurs ne peuvent pas exécuter ce fichier. Ils peuvent revenir en arrière et modifier les autorisations pour les décocher afin de pouvoir les exécuter, mais ils doivent le faire sciemment.

De plus, étant donné que vous vous inquiétez de ce qui se produit pendant un programme d'installation, vous voudriez faire la même procédure pour l ' "utilisateur" SYSTEM , qui s'exécute également (effectivement) en tant qu'administrateur, car ce compte peut être utilisé lors de certaines installations ( les informations d'identification d'un compte Windows "ADMIN" peuvent être utilisées pour obtenir un jeton d'informations d'identification SYSTEM ... mais c'est bien au-delà de ce que cette question vise).

Voici quelques images de cela sur Windows 7:

entrez la description de l'image ici entrez la description de l'image ici entrez la description de l'image ici entrez la description de l'image ici entrez la description de l'image ici

pseudo
la source
1

Vous devriez pouvoir atteindre le niveau de droits inférieur avec dropmyrights ou psexec.

La partie la plus délicate semble être de la faire se produire automatiquement lorsqu'un programme d'installation génère une nouvelle instance de l'application.

Pour cela, je pense que vous devrez au moins modifier les associations de fichiers pour tous les types de fichiers pertinents et également pour les URL, en ajoutant votre commande existante avec la commande psexec par exemple.

Cela fonctionnera tant que le programme d'installation tentera d'ouvrir le fichier / l'url avec l'application associée plutôt que de spécifier l'exécutable à exécuter. Si le chemin de l'exécutable est spécifié explicitement, je suppose que vous devrez remplacer l'exécutable standard par un exécutable shim qui exécute la commande souhaitée.

sahmeepee
la source
1

Une chose qui est manquée ici est qu'Internet Explorer et Windows Explorer NE PEUVENT PAS avoir leurs autorisations élevées (sauf si vous faites un piratage du registre). Je ne connais pas Firefox, Chrome, etc. mais si vous essayez d'exécuter Internet Explorer en tant qu'administrateur, il acceptera volontiers vos informations d'identification mais n'élèvera pas réellement les autorisations. Il s'agit d'une fonction de sécurité de Windows Vista et versions ultérieures. Et en plus de cela, le seul moyen UAC n'est pas en vigueur (sauf si vous l'avez désactivé) est si vous êtes connecté au compte administrateur intégré. Ce n'est pas parce que quelque chose a été installé avec des autorisations élevées que le programme d'installation peut accorder à ce programme des autorisations élevées. Les autorisations sont déterminées par le compte sous lequel le programme a été exécuté. La seule façon dont un programme peut être exécuté avec des autorisations élevées sans que vous le sachiez est si,

MegaloDon
la source
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.

Explication / étape par étape

  1. Ouvrez le menu Démarrer et tapez cmd dans la barre de recherche
  2. Faites un clic droit sur l'invite de commande et sélectionnez exécuter en tant qu'administrateur Tapez:

    RUNAS /showtrustlevels
    
  3. Choisissez un niveau de confiance adapté à votre application, où Xest le niveau de confiance que vous souhaitez utiliser et tapez:

    RUNAS /trustlevel:X "Application target"
    
David McGowan
la source
Je ne pense pas que cela fonctionnera. Afin d'utiliser RunAs pour que la fenêtre de navigateur résultante s'exécute avec des droits faibles, vous devez exécuter le programme d'installation (via RunAs) avec des droits faibles. Sinon, l'installateur ne fonctionnerait probablement pas.
Patrick Seymour
Eh bien, si vous vouliez le faire de cette façon, vous changeriez la variable d'environnement de votre navigateur pour inclure la commande RUNAS / trustlevel, le navigateur se lancera toujours au niveau de confiance sélectionné, il est peu probable que vous ayez besoin d'exécuter le navigateur dans un situation élevée ... mérite réflexion
David McGowan
Changer la variable d'environnement est un peu une mission, cela va nécessiter la création d'un exe simple pour remplacer l'original qui contient un simple appel à l'exécutable réel avec la commande RUNAS incluse. comme je l'ai dit, une mission, vous pouvez simplement copier l'adresse avec laquelle la fenêtre du navigateur démarre, puis fermer et relancer le navigateur et taper l'adresse
David McGowan
0

j'ai examiné différentes solutions et je peux déjà vous dire que les manifestes d'application ou les drapeaux compatibles avec l'application ne fonctionneront pas (oui, ce n'est pas une vraie réponse mais je voulais quand même partager cela;))

ce qui pourrait être proche de ce que vous recherchez est le soi-disant niveau d'intégrité , il peut être défini dans le système de fichiers (ACL) et a un effet sur le jeton que le processus contient

cet article explique comment faire en sorte qu'un exe s'exécute toujours au "bas niveau d'intégrité"

une autre approche serait un outil tiers, comme un moniteur de processus en temps réel qu'un antivirus ou un pare-feu d'application utiliserait, mais je n'en connais aucun qui puisse être configuré de cette façon.

weberik
la source
2
vous pouvez ignorer ma réponse, je viens d'essayer cette méthode et cela n'a pas fonctionné :(
weberik
0

Vous pouvez utiliser AppLocker.

Je crois que cela est disponible dans Windows 7 Enterprise, Ultimate et Server 2K8 et plus. Je ne suis pas sûr de Windows 8, mais je suppose qu'il s'agit du même (Enterprise et Ultimate).

Vous pouvez configurer AppLocker en entrant dans la stratégie de groupe:

Configuration de l'ordinateur -> Paramètres Windows -> Paramètres de sécurité -> Stratégies de contrôle des applications -> AppLocker -> Règles exécutables.

Clic droit et "Créer une nouvelle règle ..."

Ici, vous pouvez empêcher l'exécution d'exécutables spécifiques par des utilisateurs ou des groupes sélectionnés. Dans votre exemple, vous pouvez choisir de refuser l'exécution d'Internet Explorer par le groupe Administrateurs.

zako42
la source