GateKeeper me permet d'installer quoi que ce soit, aucune vérification n'est effectuée

9

Je peux télécharger des applications à partir de sites Web personnalisés et les exécuter, même lorsque mes paramètres de contrôleur d'accès sont sur «AppStore uniquement». Ceci est ma candidature - elle n'est même pas signée.

Quelle peut être la raison de cela? Je peux reproduire ce comportement sur tous mes 3 macs.

JasonGenX
la source
2
Comment téléchargez-vous et développez-vous les applications?
Gordon Davisson
via un emplacement de fichier serveur smb: //. en les copiant sur mon bureau. Sur d'autres machines, cela déclenche correctement les mécanismes de sécurité. Sur mes machines, même si j'ai "AppStore uniquement", en prenant le même fichier, la même manière est autorisée, aucune restriction pour l'installation et l'exécution. Mystère.
JasonGenX
2
Que se passe-t-il si vous téléchargez le même fichier via http?
stuffe

Réponses:

7

Il s'agit d'une fonction d'état par conception où un utilisateur administrateur peut toujours remplacer Gatekeeper et ouvrir une application en cliquant avec le bouton droit sur l'application dans le Finder.

Un utilisateur administrateur peut également modifier les paramètres de Gatekeeper ou le désactiver complètement, donc il n'y a pas vraiment de mal (à mes yeux au moins) à présenter une boîte de dialogue de liste blanche unique pour s'assurer que l'utilisateur administrateur a l'intention d'autoriser une non-conformité (non signée) ou non-Mac App Store) à exécuter.

Boîte de dialogue de formation d'Apple pour Gatekeeper - sur support.apple.com/kb/HT5290

Maintenant, si vous avez trouvé un moyen pour un utilisateur non administrateur de contourner Gatekeeper, je m'attendrais à ce que le dépôt d'une vulnérabilité de sécurité auprès d'Apple obtienne le crédit d'avoir trouvé un trou une fois qu'il corrige l'erreur de mise en œuvre qui a été commise pour permettre l'exécution d'applications de politique.

Apple documente cette fonctionnalité en profondeur sur la façon de mettre explicitement en liste blanche une application.

Gatekeeper n'est pas une protection contre les logiciels malveillants et n'est pas une liste noire. Il s'agit d'un ensemble de politiques qui permettent le premier lancement d'applications correctement signées et / ou la validation des reçus du Mac App Store. Si un utilisateur administrateur lance explicitement puis approuve l'exécution de logiciels non conformes, vous rencontrez un problème de formation ou de stratégie au lieu de découvrir une faille dans Gatekeeper.

En détail, j'ai résumé (et principalement copié) les sections pertinentes de l'aide d'Apple sur la liste blanche de toute application afin que Gatekeeper lui permette de fonctionner sans entrave et sans invite:

Comment ouvrir une application d'un développeur non identifié et l'exempter de Gatekeeper

Si vous êtes certain que l'application téléchargée sur Internet est la dernière version et provient d'une source de confiance, vous pouvez ouvrir une application d'un développeur non identifié en suivant ces étapes.

Important: Certaines applications filtrées par Apple provenant de développeurs qui sont en train d'acquérir des signatures d'ID de développeur présenteront l'option "Ouvrir" lorsqu'elles seront cliquées deux fois.

Remarque: Dans la plupart des cas, vous n'aurez à effectuer ces étapes qu'une seule fois pour tous les comptes d'utilisateurs sur le Mac:

  • Dans le Finder, cliquez tout en maintenant la touche Contrôle enfoncée ou cliquez avec le bouton droit sur l'icône de l'application.
  • Sélectionnez Ouvrir dans le haut du menu contextuel qui apparaît.
  • Cliquez sur Ouvrir dans la boîte de dialogue. Si vous y êtes invité, entrez un nom d'administrateur et un mot de passe.

Remarque: S'il existe une application qui présente plusieurs boîtes de dialogue Gatekeeper, vous pouvez temporairement utiliser l'option «Toujours» du Gatekeeper. Assurez-vous de restaurer l'option Gatekeeper qui était là avant pour ramener la fonction Gatekeeper.

Vous pouvez facilement contrôler qui peut mettre des applications sur liste blanche en ne distribuant pas de noms d'utilisateur et de mots de passe d'administrateur aux utilisateurs qui ne connaissent pas cette fonctionnalité et vous pouvez également gérer le contrôleur d'accès à partir du terminal ou du gestionnaire de profils et d'autres logiciels de paramètres gérés comme Casper de JAMF. Vous pouvez également auditer vos machines pour les logiciels qui ont été en liste blanche pour réinitialiser périodiquement la liste des applications autorisées et déterminer qui exerce cette fonction au cas où vous souhaiteriez changer de politique et d'habitude.

bmike
la source
existe-t-il un paramètre qui réinitialise cette boîte de dialogue unique? est-ce par application? comment les applications sont-elles identifiées? Nom? chemin? si j'ai choisi d'ouvrir "MyApp.app" une fois, tous les téléchargements et installations suivants de "MyApp.app" réussiront-ils quels que soient les paramètres de GateKeeper?
JasonGenX
Chaque utilisateur a des règles différentes qui sont stockées dans / var / db / SystemPolicy - vous seriez donc un peu lourd pour effacer cela et recommencer, mais vous pouvez supprimer des règles spécifiques avec spctlainsi spctl --assess -v /Applications/Whatever.appvous montrerait s'il est autorisé ou rejeté et spctl --remove /Applications/Whatever.appserait réinitialisé la "boîte de dialogue" et l'état d'une application spécifique. J'utilise un outil pour collecter toutes les applications sur les systèmes afin de pouvoir auditer l'utilisation et corriger les choses en cas de besoin avec un script court.
bmike
Cependant, selon la réponse de Gordon, cela dépend également du bit de quarantaine défini, donc juste parce que GateKeeper n'a pas d'entrée de liste blanche (ou il est supprimé), le bit de quarantaine doit être réinitialisé ou l'application supprimée pour renouveler le " gatekeeper "et ouvrez les protections.
bmike
10

Le téléchargement d'un fichier sur SMB ne déclenchera pas la mise en quarantaine, et puisque l'application n'est pas mise en quarantaine, la stratégie du contrôleur d'accès n'est jamais vérifiée. Je ne sais pas pourquoi il est marqué comme mis en quarantaine sur vos autres ordinateurs ...

Pour vérifier la mise en quarantaine à tout moment, utilisez la ls -ld@commande pour rechercher l'attribut com.apple.quarantine:

$ ls -ld@ /Applications/TextWrangler.app
drwxrwxr-x@ 3 gordon  staff  102 Apr 30  2012 /Applications/TextWrangler.app
    com.apple.FinderInfo     32 
    com.apple.quarantine     57 

Si cet attribut de quarantaine est attaché à l'application, la stratégie du contrôleur d'accès sera vérifiée; sinon, ce ne sera pas le cas. La question intéressante est de savoir pourquoi il a été mis en quarantaine sur vos autres ordinateurs, et si vous utilisez cette commande pour vérifier l'application à différents moments au fur et à mesure que vous la distribuez, vous pouvez déterminer quand l'attribut est attaché (et donc pourquoi il est attaché).

EDIT: Il y a une note à ce sujet dans la section «Cliquez ici pour plus de détails» de l'article KB KB HT5290 d'Apple :

Important: la signature de l'ID développeur s'applique aux applications téléchargées depuis Internet. Les applications provenant d'autres sources, telles que les serveurs de fichiers, les lecteurs externes ou les disques optiques sont exemptées, sauf si les applications ont été téléchargées à l'origine sur Internet.

Gordon Davisson
la source
Gatekeeper est différent de la mise en quarantaine, bien qu'ensemble, ils aident à protéger contre l'exécution accidentelle de nouveaux logiciels qui ne sont pas signés et / ou non du Mac App Store. Voir ma réponse pour plus de détails.
bmike
1
@bmike: En fait, le contrôleur d'accès est une extension du système de quarantaine; si vous téléchargez une application, puis l'exécutez xattr -d com.apple.quarantine, vous pouvez l'ouvrir même si elle enfreint la politique du contrôleur d'accès.
Gordon Davisson
Vous pouvez déjà ouvrir toute application qui enfreint la politique du contrôleur d'accès. Vous obtenez simplement (potentiellement une boîte de dialogue d'administration et) puis la possibilité de supprimer la liste blanche des applications de stratégie. Êtes-vous en train de dire qu'un utilisateur non administrateur peut émettre une commande qui contournera la vérification si vous avez uniquement des applications Mac App Store ou signées uniquement?
bmike
1
@bmike: Oui, je viens de tester le téléchargement, la mise en quarantaine et l'exécution d'une application non signée à partir d'un compte non administrateur et cela a bien fonctionné malgré le fait que Gatekeeper soit défini sur le mode Mac App Store uniquement. Mais je ne considérerais pas cela comme une faille de sécurité importante, car si un mécréant peut convaincre un utilisateur d'exécuter une commande comme celle-ci, il peut le faire n'importe quoi, et l'utilisateur est condamné de toute façon (et puisqu'il n'est pas administrateur, ils ne peuvent qu’endommager leur propre compte).
Gordon Davisson
1
Cette. La quarantaine n'est pas la même chose que Gatekeeper, mais Gatekeeper s'appuie sur les métadonnées de la quarantaine, qui sont attachées aux fichiers téléchargés en tant que métadonnées d'attribut étendu. Si je pouvais attribuer la prime, je l'attribuerais ici.
Daniel
4

Si vous avez activé cette préférence masquée, cela désactive également Gatekeeper:

defaults write com.apple.LaunchServices LSQuarantine -bool false

Ou OS X permet d'ouvrir toutes les applications quel que soit le paramètre dans les Préférences Système.

Lri
la source
Oups, j'ai complètement raté cela et j'ai posté la même chose qu'une réponse séparée. Suppression en cours…
TJ Luoma
2

Gatekeeper empêche les applications d'être exécutées en double-cliquant, mais vous pouvez toujours le remplacer en sélectionnant Ouvrir dans le menu contextuel.

Si vous pouvez exécuter des applications non signées téléchargées en double-cliquant, c'est un problème avec Gatekeeper. Les fichiers stockent leur état de quarantaine dans un attribut étendu appelé com.apple.quarantine . Si cet attribut est effacé pour une raison quelconque de vos fichiers téléchargés, Gatekeeper traitera les fichiers téléchargés comme n'étant pas différents des autres fichiers de votre ordinateur. Je suggérerais donc que le téléchargement d'un programme, puis son utilisation xattr -l filenamedans Terminal serait un bon outil de diagnostic si vous avez installé Xcode.

Si vous les exécutez via la commande Ouvrir à partir d'un menu, c'est le comportement conçu. Notez qu'une fois que vous avez exécuté un programme à partir du menu, il est toujours activé pour être exécuté en double-cliquant, quels que soient vos paramètres Gatekeeper.

Daniel
la source