web-dev-qa-db-fra.com

Comment empêcher Firefox et Chrome d'ouvrir des ports dans le pare-feu?

J'ai remarqué que Firefox et Chrome ont ouvert des ports pour le trafic entrant non sollicité dans le pare-feu Windows. Cela s'est produit avec Windows 7 x64 et Windows 10. (Ici, je parle du pare-feu standard intégré à versions récentes de Windows, pas un produit tiers).

Normalement, lorsqu'un programme essaie de modifier la configuration du pare-feu, je reçois une notification (boîte de dialogue) sur le bureau me demandant si je souhaite autoriser cette action. Mais avec Firefox et Chrome, les choses sont différentes:

Je supprime régulièrement toutes les règles pour Firefox et Chrome de la configuration du pare-feu. Cependant, chaque fois que ces navigateurs se mettent à jour (ce qui est assez souvent), ils recréent ces règles sans la boîte de dialogue de confirmation habituelle apparaissant.

Je ne comprends pas comment cela est possible. Je soupçonne actuellement que les règles sont recréées non pas par Firefox ou Chrome eux-mêmes, mais par leurs services de maintenance (mise à jour) qui fonctionnent en arrière-plan, probablement avec des droits administratifs.

Je ne veux pas que Firefox ajoute des règles à mon pare-feu pour laisser passer le trafic entrant non sollicité vers n'importe quel port depuis n'importe quelle adresse pour TCP et UDP . De même, je ne veux pas Chrome pour ajouter des règles à mon pare-feu qui permettent au trafic UDP entrant non sollicité de passer à lui-même vers un certain port, mais aussi à partir de n'importe quelle adresse . Je considère qu'une grande faille de sécurité compte tenu des nombreuses failles de sécurité des navigateurs.

D'où la question: comment empêcher Firefox et Chrome et leurs services de maintenance/mise à jour d'ajouter silencieusement des règles au pare-feu Windows?

J'ai vu que je pouvais contrôler le pare-feu par des stratégies de groupe, mais cela me semble un peu extrême lorsque la seule raison serait le problème décrit ci-dessus. Mes clients ne font pas partie d'un domaine, donc je devrais le faire sur chacun d'eux. De plus, je ne sais pas si les navigateurs et leurs services de maintenance/mise à jour sont capables de contourner également les stratégies de groupe.

étapes pour reproduire:

  • Installez Firefox

  • Installer Chrome

  • Ouvrez l'interface graphique pour la gestion du pare-feu Windows ("Pare-feu Windows avec sécurité avancée")

  • Sur la gauche, sélectionnez "Règles entrantes"

  • Une liste de règles apparaît à droite; remarquez deux règles dont le nom commence par "Firefox" et une règle dont le nom commence par "Chrome"

  • Lorsque vous double-cliquez sur l'une des règles, une boîte de dialogue s'affiche dans laquelle les propriétés de la règle, les ports ouverts, le programme autorisé à recevoir ce trafic, etc., sont détaillés

  • Notez que les deux règles pour Firefox sont presque identiques; la seule différence est que l'un est pour TCP, l'autre pour UDP. Les deux autorisent le trafic entrant non sollicité depuis n'importe quelle adresse vers n'importe quel port vers Firefox.

  • Notez que la règle pour Chrome permet de transmettre le trafic UPD depuis n'importe quelle adresse vers le port 5353 vers Chrome.

  • Supprimer les trois règles mentionnées ci-dessus

  • Attendez qu'une mise à jour de Firefox soit disponible et installez-la

  • Notez que les deux règles pour Firefox sont recréées lors de l'installation de la mise à jour sans qu'aucune boîte de dialogue de confirmation n'apparaisse

  • Attendez qu'une mise à jour Chrome soit disponible et installez-la

  • Notez que la règle pour Chrome est recréée lors de l'installation de la mise à jour sans qu'aucune boîte de dialogue de confirmation n'apparaisse

Astuce: Lors du test, veuillez noter que vous devrez peut-être cliquer avec le bouton droit sur "Règles entrantes" à gauche et sélectionner "Actualiser" dans le menu contextuel pour voir les dernières mises à jour des règles qui pourrait avoir été fait en arrière-plan par des services ou des applications.

Astuce 2: En fait, si vous voulez tester cela, vous n'avez pas besoin d'attendre la prochaine mise à jour de Firefox ou Chrome. Installez simplement une ancienne version de les navigateurs et assurez-vous que les règles de pare-feu mentionnées ci-dessus ont été créées, puis supprimez ces règles. Comme vous avez installé d'anciennes versions, les mises à jour seront disponibles immédiatement. Installez les mises à jour et notez que les règles de pare-feu ont été silencieusement recréé.

9
Binarus

Une option consisterait à utiliser les contrôles d'accès Windows pour empêcher les modifications des règles de pare-feu. Si vous définissez d'abord la règle sur Désactivé (ou que vous la supprimez simplement), puis modifiez les ACL sur le stockage des règles de pare-feu, il devrait être possible d'éviter que les règles réapparaissent. Bien qu'un compte administrateur pourrait écraser ou contourner votre ACL modifiée, il est très peu probable qu'un programme d'installation automatisé s'efforce de le faire, et par conséquent, les tentatives de modification du pare-feu obtiendraient simplement "Accès refusé".

La bonne nouvelle est que les règles de pare-feu sont stockées dans un emplacement prévisible, HKLM\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules. Ils sont même entièrement lisibles par l'homme, à part leurs noms, qui sont des GUID; les règles réelles sont du texte anglais délimité par des tuyaux (je suis maintenant curieux de savoir ce qui se passe si je crée une règle de pare-feu avec un caractère de tuyau dans sa description).

La mauvaise nouvelle est que les règles sont stockées sous forme de valeurs sur une seule clé (celle donnée ci-dessus), et les listes de contrôle d'accès de registre ne sont disponibles qu'à la granularité des clés. Cela signifie que si vous refusez à un compte l'accès en écriture à cette clé, vous refusez à ce compte la possibilité de modifier la règle de pare-feu any. Cela pourrait altérer la fonctionnalité de plusieurs façons; à l'extrême, vous devrez modifier manuellement l'ACL sur cette clé avant d'apporter vous-même les modifications de règle de pare-feu.

La manière idéale de le faire serait d'utiliser une entrée de contrôle d'accès Refuser pour le compte que vous souhaitez bloquer. Les entrées refusées ont priorité sur Autoriser les entrées pour un niveau de spécificité donné (si un compte est à la fois autorisé et refusé une action, refuser les gains), et spécifique (compte) l'emporte de manière similaire sur générique (Groupe). Ainsi, vous pouvez ajouter une entrée Refuser pour un compte spécifique pour bloquer ce compte, sans faire quelque chose de gênant comme bloquer tout le groupe Administrateurs. Malheureusement, les quatre services liés à Mozilla ou à Google installés sur ma machine (MozillaMaintenance, GoogleChromeElevationService, gupdate et gupdatem) sont configurés pour fonctionner comme LocalSystem (alias SYSTEM). Bloquer l'accès en écriture de SYSTEM à cette clé peut ne pas être désastreux - en fait, bloquer SYSTEM d'écrire pour sélectionner des clés de registre est un moyen courant d'empêcher un administrateur d'apporter des modifications spécifiques à une machine via la stratégie de groupe - mais cela casserait probablement certaines choses. Si vous finissez par devoir bloquer des actions élevées via l'UAC normal, vous devez vous bloquer ou bloquer le groupe Administrateurs, et c'est encore plus gênant que de bloquer SYSTEM.

Une solution serait de créer un nouveau compte de service de niveau administrateur sur la machine, puis de modifier les services Google et Mozilla pour utiliser ce compte et bloquer ce compte spécifique à la clé de registre. Ce n'est pas anodin - surtout si les services reposent sur l'une des autorisations spéciales d'être SYSTEM, qui par défaut même le compte Administrateur ne reçoit pas tout (bien que cela puisse, bien sûr, être modifié) - mais cela pourrait être fait.

Vous pouvez également essayer de supprimer les navigateurs (et tous les services associés, manuellement si nécessaire) et de les réinstaller à l'aide d'installateurs non privilégiés. Cela limiterait le rayon de tir de l'installateur à votre compte local et ne leur donnerait aucun moyen d'augmenter sans invite. Firefox prend en charge les installations portables et Chrome en fait utilisé par défaut pour l'installation sur votre profil utilisateur (pas votre répertoire Program Files) en utilisant une installation par utilisateur, donc en théorie, il devrait être possible d'installer soit un sans donner les droits d'administrateur au programme d'installation. Rien sans droits d'administrateur ne peut créer un moyen d'obtenir des droits d'administrateur (sans invite UAC ou vulnérabilité EoP), de sorte qu'ils n'auraient pas la possibilité de jouer en silence avec votre pare-feu, et ils ne le feraient probablement pas même essayer (après tout, un programme installé sans Admin peut être mis à jour sans Admin, et un non-Admin ne peut pas changer le pare-feu).

8
CBHacking

Vous avez atteint une limite sur sécurité informatique. Les meilleures pratiques demandent de n'autoriser des privilèges élevés que pour les soi-disant programmes de confiance. Mais nous savons tous que pour une utilisation courante, nous devons faire confiance au système d'exploitation et au navigateur(*). Le problème auquel vous êtes confronté est que l'un de ces produits fait quelque chose que vous n'aimez pas, peu de choses peuvent être faites: une fois que vous avez accordé des privilèges élevés, le système n'offre aucune protection supplémentaire.

Je peux difficilement imaginer une stratégie véritablement préventive ici car il est difficile de deviner ce qu'une procédure d'installation pourrait faire, et je ne connais personne qui puisse dire qu'il peut détecter et comprendre tout changement sur un système Windows. Mais lorsqu'un problème a été identifié, des solutions de contournement sont souvent possibles. Ici, je peux imaginer:

  • les politiques de groupe comme vous l'avez dit. BTW, si vous avez plusieurs machines clientes, vous devriez vraiment envisager d'utiliser AD. Vous n'avez même pas besoin d'une licence de serveur AD pour cela car les versions récentes de SAMBA la fournissent. Et AD peut vraiment apporter beaucoup en matière de sécurité de la machine cliente
  • automatiser le processus de détection/réinitialisation des règles de pare-feu. Une fois automatisé, il apparaîtra comme une étape supplémentaire de la mise à niveau du navigateur
  • utiliser un pare-feu dédié (une machine dédiée) et y implémenter les règles de pare-feu.
  • peut-être d'autres que je ne pouvais pas imaginer ...

Lequel sera le plus pertinent dépendra fortement du cas d'utilisation réel ...

La meilleure façon serait de demander aux éditeurs de cesser d'ouvrir silencieusement les règles de pare-feu, mais je crains que cette demande ne soit pas susceptible de réussir: il y a certainement de bonnes raisons à ces règles. C'est la raison pour laquelle je n'ai recherché que contournements.


Je ne veux pas dire ici que le navigateur fonctionnera avec des privilèges avancés, mais chaque mise à jour le nécessite. Et pour des raisons de sécurité, nous ne pouvons pas utiliser de logiciels obsolètes ...

4
Serge Ballesta