18 votes

Comment identifier les extensions bloquées par Gatekeeper

Dans MacOS High Sierra, Préférences Système > Sécurité, il est indiqué "Le chargement de certains logiciels système a été bloqué". Je vois là une liste de trois développeurs, et je ne les reconnais pas tous. Je suppose que ce sont des fichiers kext dans /L/E ou /S/L/E, mais comment puis-je identifier exactement quel kext correspond à chaque nom de développeur ? J'ai essayé grep -rn "Intel Corporation Apps" /System/Library/Extensions mais ça ne le trouve pas. enter image description here

EDIT : J'ajoute à cette question car elle n'a jamais reçu de réponse complète et j'ai maintenant rencontré un autre kext obstiné que je ne peux pas supprimer dans Mojave. Il apparaît dans Logiciels désactivés mais pas dans le panneau de sécurité des Préférences Système. enter image description here

J'ai parcouru /L/E et /S/L/E et /Library/StagedExtensions et le seul résultat que je trouve est dans /System/Library/Extensions/AppleKextExcludeList.kext/Contents/Info.plist

kextutil ne le trouve pas, alors où puis-je regarder ?

# kextutil -b cn.com.bwstor.filesystems.enfs
Can't find extension with identifier cn.com.bwstor.filesystems.enfs

14voto

Elliott Points 2561

J'ai trouvé la solution. Dans Informations système > Logiciels > Logiciels désactivés, il y a une liste de ces extensions avec leur identifiant de bundle. Dans mon cas, c'était une information suffisante pour comprendre ce qu'est l'application, mais pour localiser le fichier kext réel, il faut creuser davantage. Exemple :

grep -r "com.aladdin.kext.aksfridge" /Library/Extensions ne trouve rien.

grep -r "com.aladdin.kext.aksfridge" /Library/Application Support l'a trouvé.

Je ne suis pas sûr qu'il y ait une liste documentée des emplacements qui sont autorisés à charger des kexts, mais vous pourriez rechercher l'ID du bundle sur tout le disque dur et cela le trouverait sûrement.

5voto

J'ai eu une expérience similaire aujourd'hui. J'ai pensé que cela pourrait vous être utile.

L'onglet "Préférences système > Sécurité et confidentialité > Général" m'a montré un logiciel système bloqué. Il mentionne le développeur "Jongwoo Choi" que je n'ai pas reconnu. De quel logiciel s'agit-il ? Où est-il installé ? Après avoir effectué des recherches sur Internet concernant ces extensions de logiciels bloqués, il semble qu'il s'agisse d'extensions de noyau ou de fichiers .kext.

En cherchant un peu plus, j'ai appris ceci :

  • "Informations système > Logiciels > Extensions" affiche toutes les extensions installées sur votre machine. Laissez-lui un peu de temps pour se charger, la liste peut être longue.
  • Maintenant, pour trouver l'extension bloquée par ce développeur, j'ai classé la liste par "Obtenu de". Si vous avez un nom d'extension, vous pouvez ordonner par la colonne "Nom de l'extension". La plupart des extensions sont obtenues d'Apple, donc je suppose qu'elles peuvent être ignorées. De même, celles dont la valeur "Loaded" est "yes" peuvent être ignorées puisque le logiciel est bloqué au chargement. J'ai ensuite coché chaque élément de "Identified Developer" ou "Not Signed".
  • Vous devriez maintenant être en mesure de trouver le nom du développeur ou de la société (qui était mentionné dans la liste des logiciels bloqués de l'onglet "Préférences système > Sécurité et confidentialité > Général") dans les détails que vous obtenez pour chaque élément dans la fenêtre située sous la liste des extensions. Vérifiez la valeur de "Signé par". Pour moi, il n'y avait qu'une seule entrée pour ce développeur spécifique.
  • Une fois que vous l'avez trouvé, la valeur de "Location" vous montrera où se trouve le fichier .kext. La valeur de "Bundle ID" peut également vous aider à expliquer de quoi il s'agit.

Comme les extensions du noyau n'étaient pas chargées, j'ai décidé de les supprimer.

sudo rm -rf path/to/the/kext/file

J'ai ensuite redémarré (je ne sais pas si c'est nécessaire). "Préférences système > Sécurité et confidentialité > Général" ne m'a pas montré le message de logiciel bloqué. Hourra !

Cependant, "System Information > Software > Disabled Software" DID me montre toujours une entrée de logiciel désactivé. J'ai reconnu le titre de l'entrée à partir des informations détaillées dans la liste des extensions plus tôt. C'est celui que je viens de supprimer. Pour moi, c'était "F3YNT8UCP3 - net.sf.tuntaposx.tap".

Pourquoi est-il toujours là alors que j'ai supprimé le fichier .kext ? Comme Elliott l'a mentionné dans un commentaire ci-dessus, il semble qu'il y ait une base de données SQLite qui suit les informations sur l'approbation des logiciels installés. La suppression du fichier .kext ne supprime pas l'entrée de la base de données.

Comment supprimer l'entrée de la db pour la supprimer de la liste "Informations système > Logiciels > Logiciels désactivés" est décrite en ici sur Stack Overflow . La première partie de l'entrée du logiciel désactivé est l'ID de l'équipe (F3YNT8UCP3 dans mon cas). Vous aurez besoin de cet ID pour spécifier l'entrée à supprimer de la base de données SQLite.

Ainsi, la suppression du fichier .kext devrait supprimer l'avertissement dans "Préférences système > Sécurité et confidentialité > Général". La suppression de l'élément de la base de données SQLite devrait supprimer l'entrée de logiciel désactivé dans "Informations système > Logiciels > Logiciels désactivés".

3voto

phdoerfler Points 277

En complément de votre réponse, Elliott, vous pouvez ensuite transmettre cet identifiant de paquet à kextutil :

sudo kextutil -b "com.hp.kext.hp-fax-io"

qui vous dira alors tout ce que vous avez toujours voulu savoir à son sujet, y compris l'emplacement de la .kext fichier :

file:///Library/StagedExtensions/System/Library/Extensions/hp_fax_io.kext/ is in hash exception list, allowing to load
Kext rejected due to system policy: <OSKext 0x7fe302c19730 [0x7fffa5fc38f0]> { URL = "file:///Library/StagedExtensions/System/Library/Extensions/hp_fax_io.kext/", ID = "com.hp.kext.hp-fax-io" }
Code Signing Failure: not code signed
Warnings:
    Personality CFBundleIdentifier differs from containing kext's (not necessarily a mistake, but rarely done):
        HPF00072 FAX - 2
        HPF00006 FAX - 2
[…]

Il semble également que vous pouvez généralement trouver toutes ces extensions dans ce répertoire :

$ ls -la /Library/StagedExtensions/System/Library/Extensions
drwxr-xr-x@ - root 14 Feb  2013 hp_fax_io.kext
drwxr-xr-x@ - root 19 Aug  2013 hp_Inkjet1_io_enabler.kext
drwxr-xr-x@ - root 19 Aug  2013 hp_Inkjet9_io_enabler.kext
drwxr-xr-x@ - root 31 Okt  2014 intelhaxm.kext
drwxr-xr-x@ - root 22 Mai  2012 JMicronATA.kext
drwxr-xr-x@ - root 16 Aug  2012 Pen Tablet.kext
drwxr-xr-x@ - root 23 Jul  2016 SiLabsUSBDriver64.kext
drwxr-xr-x@ - root 23 Jul  2016 Wacom Tablet.kext

1voto

Oskar Points 1242

Je n'ai pas de réponse complète, mais il existe d'incroyables efforts de rétro-ingénierie et de partage d'informations qui pourraient vous permettre d'obtenir la pièce finale ou un point d'ancrage suffisant pour lancer votre propre projet.

Richard Purves a fait un travail remarquable pour couvrir la "kextpocalypse" et les scripts, et la plupart des grands fournisseurs de MDM ont des exemples spécifiques sur la façon de pousser les listes blanches et de gérer ces extensions de noyau approuvées par l'utilisateur.

De plus, soyez conscient que le comportement n'est pas entièrement défini car Apple affine et change la façon dont cela fonctionne à chaque version (dernièrement), donc YMMV plus que d'habitude.

Michael Lynn va également bien au-delà de ce que j'attends d'un consultant rémunéré qui produit de puissants scripts et les documente de manière experte.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X