Refuser l'accès des applications au disque dur ou au volume dans Windows 7+

12

Je souhaite refuser à certaines applications de mon ordinateur l'accès à certains lecteurs ou volumes logiques, mais je n'ai pas trouvé de solution jusqu'à présent.

Contexte: Mon PC a un SSD comme lecteur système et un Raid-6 de 15 To avec cinq disques durs. Le contrôleur est configuré pour faire tourner les disques au bout de 10 à 15 minutes environ. C'est très bien car parfois je n'ai pas besoin d'accéder à quoi que ce soit sur le Raid pendant quelques heures ou même plus. Certaines applications telles qu'Adobe Reader accèdent à tous les volumes logiques lors du démarrage pour une raison que je ne peux pas comprendre. Mon hypothèse est que tous les volumes auxquels une lettre de lecteur est affectée sont affectés. Supprimer les lettres et les réaffecter n'est pas du tout une option;)

Comment puis-je empêcher Adobe Reader ou d'autres applications d'accéder à ces volumes hébergés par mon Raid?

user654123
la source
Je ne sais pas comment désactiver l'accès pour certaines applications. Mais je soupçonne que s'il existe un outil pour refuser l'accès au SSD à certaines applications, vous perdrez la possibilité d'ouvrir des fichiers à partir de ces volumes. Donc, dans ce cas, il vaut mieux essayer de savoir quelle fonction permet à Adobe Reader de lire / écrire quelque chose de / vers SSD. Regardez la fonction "fichiers récents". Peut-être qu'il vérifie leur disponibilité à chaque fois.
VIK
Je veux restreindre l'accès au Raid, pas au SSD. En fait, il n'y a rien sur aucun volume du Raid, qui soit d'aucune utilité pour Adobe Reader sur mon ordinateur. Donc, oui, dans mon cas, je veux explicitement perdre la possibilité d'accéder à quoi que ce soit à partir d'Adobe Reader, ce qui n'est pas sur le SSD. Vous avez peut-être raison sur la fonction "fichiers récents" (bien que dans ce cas, il n'y ait pas de fichiers récents provenant de ces volumes).
user654123
1
Qu'en est-il d'une solution radicale telle que l'utilisation d'un autre visualiseur PDF? Cela ne résout pas les problèmes avec d'autres applications, mais si je comprends bien, Adobe Reader est la chose la plus ennuyeuse pour vous. en.wikipedia.org/wiki/List_of_PDF_software
VIK
Oui, c'est l'application la plus ennuyeuse :) J'espérais qu'il pourrait y avoir une solution intégrée à ce problème car refuser l'accès à Internet via le pare-feu Windows fonctionne très bien pour d'autres programmes.
user654123
1
Avez-vous envisagé d'exécuter Reader en tant qu'utilisateur distinct qui n'a pas accès à ces volumes?
TWiStErRob

Réponses:

6

Sous Windows, il n'existe aucun moyen natif pris en charge pour empêcher certains processus d'accéder à certains lecteurs, ce qui va "à l'encontre de la nature actuelle" de la façon dont le système d'exploitation gère l'accès aux lecteurs.

Le droit d'accès est déterminé par les droits de l'utilisateur connecté qui démarre l'application. Donc, si le développeur du logiciel décide que son logiciel doit rechercher tous les lecteurs accessibles et ne vous donne pas la possibilité de désactiver cela ... eh bien, c'est une mauvaise programmation qui ne tient pas compte de votre cas d'utilisation particulier. Mais il existe quelques solutions.

La seule solution "sûre" est 2, car la couche de virtualisation matérielle (à partir de la machine virtuelle) peut bloquer toutes les applications pour tenter d'accéder complètement au "vrai matériel". Bien que je n'aie pas eu le cas où la solution 1 ne fonctionne pas, mais théoriquement, je pense qu'elle pourrait être contournée.

Option "1" - Désactivation des lecteurs à "bas niveau" - Aucun logiciel supplémentaire nécessaire

Option 1a

Il est possible de désactiver les volumes sur une couche inférieure en désactivant complètement les lecteurs, mais cela désactivera tous les volumes sur le lecteur. Manuellement, vous pouvez le faire en démarrant diskmgmt.msc, puis en cliquant avec le bouton droit sur le lecteur et en le marquant "hors ligne".

entrez la description de l'image ici

Si nécessaire, vous devriez également pouvoir le faire en utilisant un script de ligne de commande. Elle serait appliquée de la même manière que l'option 3a / b. Vous pouvez le faire, par exemple, via cmd comme décrit ici ou via PowerShell, comme il est décrit ici .

Option 1b

Vous pouvez désactiver complètement le pilote du lecteur. Pour le faire manuellement: démarrez diskmgmt.msc, puis faites un clic droit, choisissez "options". Allez ensuite dans l'onglet "Pilote" et sélectionnez "Désactiver". Le lecteur "disparaîtra" dans le gestionnaire de disques et ne sera plus accessible via le système d'exploitation. À moins que le logiciel n'exécute pas de commandes de code machine pour communiquer directement avec le matériel, l'application ne devrait pas avoir accès aux lecteurs. Au moins en ce qui concerne ma connaissance des tenants et aboutissants des systèmes d'exploitation.

entrez la description de l'image ici

Si nécessaire, vous devriez également pouvoir le faire en utilisant un script de ligne de commande. Elle serait appliquée d'une manière similaire à l'option 3a / b en utilisant, par exemple Devcon.exe,. Vous pouvez trouver une description détaillée ici .

Option 2 - Utilisation d'un environnement virtuel (principalement avec un logiciel tiers)

Si l'exécution de l'application dans un environnement virtuel est une option, il existe de nombreuses solutions:

  • en fonction de votre version de Windows (Win7 et supérieur requis) et de la licence ("Professionnel" requis, "Accueil" ne suffira pas), vous pouvez simplement utiliser Hyper-V pour configurer un environnement virtuel sans aucun logiciel tiers.

  • vous pouvez utiliser un logiciel tiers pour configurer un système virtuel comme VMplayer, Virtual Box, etc. Il existe de nombreuses alternatives gratuites et payantes. En utilisant cette solution, vous aurez besoin d'une deuxième licence pour Windows (ou vous la laissez sans licence, mais vous obtiendrez alors une superposition dans le coin inférieur droit de l'écran qui vous dira d'enregistrer Windows). Cela empêchera définitivement le logiciel d'accéder au lecteur.

  • vous pouvez utiliser une application "sandbox". Mais cela dépendra du niveau de virualisation qu'offre l'application sandbox. Dans certains cas, cela peut résoudre le problème; dans d'autres cas, ce n'est pas le cas. Sandboxie, par exemple (celui décrit par harrymc dans sa réponse ), ne résout pas le problème avec la configuration harrymc décrite dans sa réponse (originale). Bien que le logiciel puisse bloquer l'accès, le lecteur restera toujours en place. Une alternative serait d'utiliser une autre application sandbox comme Cameyo, etc.

Soit dit en passant, voici un bon article pour la principale différence entre les différents logiciels de virtualisation, en particulier la différence entre une machine virtuelle «entière» (comme Virtual Box) ou des applications «semi virtuelles» (comme Sandboxie).

Option 3 - Démonter uniquement les volumes (en laissant le lecteur «intact») - Aucun logiciel supplémentaire requis, MAIS cela pourrait ne pas fonctionner dans votre cas

Option 3a

Au lieu de démarrer l'application via son raccourci normal, vous pouvez écrire un fichier de commandes à l'aide de la commande mountvolqui démonte d'abord le volume inutilisé, puis démarre l'application, puis remonte le volume une fois que l'application n'accède plus au lecteur. Le processus de montage / démontage via la ligne de commande est décrit ici et ici . Vous pouvez également utiliser diskpartcomme décrit ici et ici .

Option 3b

Alternativement, vous pouvez simplement laisser le lecteur non monté en général et le monter via un fichier de commandes qui monte le lecteur que vous démarrez manuellement en cas de besoin. Une fois que vous avez fini de l'utiliser, vous pouvez le démonter manuellement à l'aide d'un deuxième fichier de commandes. Vous pouvez automatiser cela en surveillant les demandes d'accès au système de fichiers et monter / démonter le lecteur comme requis en suivant certaines règles, par exemple que certaines applications n'auront pas accès. Mais je ne suis pas sûr que l'automatisation vaut l'effort supplémentaire impliqué.

Option 4 - Restreindre l'accès à une lettre de lecteur (volume). Simple à faire, mais deux petits outils de Microsoft nécessaires - MAIS cela pourrait ne pas fonctionner dans votre cas

Si vous voulez le faire sans logiciel tiers mais que cela ne vous dérange pas d'utiliser deux petits outils de Microsoft (si vous ne l'utilisez pas déjà). Je préfère cette solution car elle pose le problème "par la racine" (différenciation entre les droits de l'utilisateur et de l'application) et elle est assez simple et aucun "gros" logiciel tiers n'est nécessaire.

Fondamentalement, vous ajoutez un utilisateur sans accès au lecteur, puis vous démarrez le programme avec ces droits limités (vous vous connecterez toujours en tant qu'utilisateur normal, vous n'utiliserez pas le compte restreint pour vous connecter).

  • Ajoutez un compte utilisateur.

  • Limitez l'accès du nouveau compte d'utilisateur au lecteur à l'aide du contrôle d'accès Windows pour le système de fichiers. Voici un bon guide pratique comprenant des captures d'écran.

  • Ensuite, démarrez le logiciel avec ces droits. Vous pouvez, par exemple, utiliser PsExec.exe pour cela ou Process Explorer, voici comment procéder . Si vous ne les avez pas déjà, vous devrez les télécharger sur le site Web de Microsoft.

Albin
la source
4

Je propose une solution qui utilise Sandboxie . Je n'ai pas votre environnement, j'ai donc testé le fonctionnement Acrobat.exedans un bac à sable où son accès D:était bloqué. En ouvrant dans Acrobat le menu Fichier> Ouvrir , j'obtiens ceci:

image

Notez qu'Acrobat ne peut même pas trouver l'étiquette de disque D:, il est donc obligé de l'afficher de manière boiteuse, et comment il est bloqué lorsque je clique sur "Disque local (D :)".

Les étapes que j'ai utilisées étaient les suivantes:

  • Sandboxie installé
  • Dans Sandboxie Control, cliquez avec le bouton droit sur le bac à sable par défaut et choisissez Paramètres du bac à sable
  • Ouvrez la branche Accès aux ressources> Accès aux fichiers et cliquez sur Accès bloqué
  • Cliquez sur Ajouter un programme et ajoutez Acrobat (le mien l'était C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat\Acrobat.exe)
  • Cliquez sur Ajouter et ajouter un disqueD:
  • Cliquez OK
  • Dans Sandboxie Control, ouvrez la branche Démarrer du programme> Dossiers forcés
  • Cliquez sur Ajouter un dossier
  • Ajoutez le dossier où réside Acrobat (le mien était C:\Program Files (x86)\Adobe\Acrobat DC\Acrobat)
  • Cliquez sur OK

Désormais, tous les programmes lancés à partir du dossier Acrobat sont obligés de s'exécuter en mode bac à sable, et leur Acrobat.exeaccès au disque est spécifiquement bloqué D:. Vous devrez peut-être ouvrir d'autres restrictions de sandbox si Acrobat aura des difficultés à s'exécuter à l'intérieur du sandbox.

Je ne sais pas si cela bloquera également l'appel spécifique de l'API Windows qu'Acrobat utilise pour provoquer le réveil du disque, mais cela pourrait valoir la peine d'essayer.

Sandboxie est un produit génial et polyvalent que je recommande, gratuit pour un bac à sable par défaut. Pour plusieurs bacs à sable, c'est de la paye, mais le prix de la licence à vie est très raisonnable (j'ai payé). Par exemple, j'installe des produits que je teste dans un bac à sable et je peux ensuite les effacer en un seul clic, sans avoir besoin d'un désinstallateur.


Une autre solution d'isolement consiste à utiliser Adobe Reader dans un conteneur Docker . Les conteneurs Docker sont petits et fonctionnent comme des machines virtuelles, mais sans avoir besoin de créer la machine, car les conteneurs prêts à l'emploi sont téléchargés à partir de la galerie Docker.

Vous pouvez utiliser Chocolatey comme gestionnaire de paquets.

Chocolatey propose de nombreux packages prédéfinis disponibles avec Adobe Reader sur Adobe Acrobat Reader DC 2018.011.20063 .

Avec Docker, l'isolement absolu est possible en ce qui concerne les ressources, et d'autre part, on peut partager des ressources telles que des dossiers de manière entièrement native.

harrymc
la source
2
@WackGet: Un commentaire?
harrymc
Il dit que cela ne fonctionne pas, le disque tourne toujours, du moins dans son cas d'utilisation. Je me demande, Sandboxie vous donne-t-il la possibilité de masquer les ressources au niveau de la couche matérielle? Je ne l'ai pas encore installé.
Albin
@WackGet: Sandboxie a plus de paramètres disponibles dans ses fichiers de configuration. Mais d'abord: les disques se réveillent-ils au moment du lancement d'Adobe, ou uniquement lorsque vous utilisez le menu Fichier> Ouvrir ?
harrymc
Outre la question ci-dessus, j'ai ajouté une autre option d'isolation légère, en utilisant Docker. Les conteneurs Docker sont petits et fonctionnent comme des machines virtuelles, mais sans avoir besoin de les créer, car les conteneurs sont prêts à l'emploi et téléchargés depuis la galerie Docker.
harrymc
Choix intéressant. De quelle application Docker parlez-vous, car il s'agit plutôt d'une solution développeur / entreprise. Malheureusement, les produits de docker que j'ai examinés ne sont pas gratuits à utiliser (juste un logiciel d'essai possible) ... mais peut-être que j'ai négligé le tout.
Albin