PATHSCOPE 0.1.9 · Dernière mise à jour : 2026-10-17

Manuel d’utilisation de PathScope

Ce manuel suit les écrans dans l’ordre, du repérage des points faibles de cet appareil avec PathScope jusqu’au choix de l’endroit par où commencer les corrections. Les explications des écrans évitent autant que possible le jargon technique ; les commandes sont regroupées dans le chapitre « Utilisation en ligne de commande ».

1. Qu’est-ce que PathScope

PathScope repère les « voies » par lesquelles un utilisateur ordinaire de cet appareil peut atteindre root (droits d’administrateur) ou des données sensibles, et indique, avec des priorités, où une correction est la plus efficace. Il est destiné à contrôler les appareils que vous gérez vous-même et les environnements de test.

L’analyse est en lecture seule. Elle ne modifie ni les réglages ni les fichiers, et n’applique aucune correction automatiquement. Des exemples de commandes de correction sont affichés, mais c’est à vous de décider de les exécuter ou non.

Systèmes pris en charge et contenu des paquets
Il fonctionne sous Mac (macOS 12 ou ultérieur) et sous Linux. Sur Mac, il est inclus dans le fichier de distribution de RoamSwitch (DMG) ; sous Linux, il est inclus dans les paquets de la version cliente de RoamSwitch (.deb, .rpm, AUR), et l’application comme la commande sont disponibles. Les paquets de la version serveur Linux de RoamSwitch ne contiennent que la commande (pathscope). PathScope est une application distincte de RoamSwitch, sous licence Apache License 2.0. Il n’est pas couvert par le contrat de licence de RoamSwitch (EULA).

2. Installation et lancement

PathScope s’installe comme une application distincte, avec sa propre icône. Voici comment le lancer.

EnvironnementComment le lancer
MacOuvrez PathScope.app depuis le fichier de distribution (DMG) et cliquez sur « Analyser ».
LinuxOuvrez « PathScope » dans la liste des applications et cliquez sur « Analyser ». Depuis un terminal, lancez pathscope-gui. L’affichage nécessite WebKitGTK 4.1, installé automatiquement avec deb et rpm. Sous Arch (AUR), installez webkit2gtk-4.1 comme dépendance facultative.
Ligne de commandeLancez pathscope dans un terminal. Sur Mac, il s’agit de PathScope.app/Contents/MacOS/pathscope.

Au démarrage, une fenêtre s’ouvre avec, en haut, les boutons « Analyser », « Historique », « Aide du LLM », « Expliquer avec un LLM » et « Réglages ». « Expliquer avec un LLM » n’est utilisable qu’une fois un résultat affiché. PathScope n’ouvre aucun port en écoute et sa fenêtre ne charge aucun site externe.

3. Lancer une analyse et lire le résultat

Lorsque vous cliquez sur « Analyser », PathScope collecte l’état de cet appareil à partir de l’utilisateur actuel et l’analyse. Cela peut prendre de quelques secondes à quelques dizaines de secondes. À la fin, le résultat est enregistré automatiquement comme une entrée de l’historique.

Marche à suivre

  1. Cliquez sur « Analyser ».
  2. Dans « Schéma des voies » et « Liste des voies », regardez quel utilisateur atteint root ou des données sensibles, et par quelles étapes. Les cercles et les carrés sont des utilisateurs et des destinations, et chaque ligne est une étape qui élève les droits. Le numéro sur une ligne correspond à la « raison pour laquelle l’étape est possible » dans le tableau sous le schéma.
  3. Dans « Points de correction (à corriger dans cet ordre) », repérez les endroits où une correction a le plus d’effet. Chaque élément indique sa priorité (critique, élevée, moyenne ou faible, avec un score), le nombre de voies concernées, une correction proposée et la technique MITRE ATT&CK la plus proche.
  4. Cliquez sur « Et si je corrige ceci ? » pour relancer, à titre d’essai, l’analyse des voies qui resteraient si ce point était corrigé comme proposé. « Et si je corrige tout ? » fait de même pour tous les points affichés. Ni l’un ni l’autre ne modifie cet appareil.
  5. Lisez la liste des zones qui n’ont pas pu être vérifiées, affichée sous les points de correction.
Les zones non vérifiées ne sont pas « sûres »
Il s’agit de zones qui n’ont pas pu être vérifiées faute de droits suffisants ou parce que la cible référencée n’existe pas. Cela ne signifie pas qu’« aucun danger » a été constaté, ni qu’il y a un danger. Les éléments marqués « peut-être vérifiable en exécutant avec les privilèges root » peuvent parfois être vérifiés en exécutant en tant que root.

Quelles voies sont détectées

Les vulnérabilités connues sont vérifiées à l’aide de données fournies avec l’application. Sont couverts macOS et les versions de Debian, Ubuntu, de la famille RHEL, SUSE, Arch et Alpine pour lesquelles des données existent ; tout le reste (Debian 11 et antérieures, Fedora, etc.) est indiqué comme « non vérifié ». Ce n’est pas une fonction d’analyse exhaustive des vulnérabilités.

4. Historique, exportation, vérification récurrente

Les résultats d’analyse sont conservés automatiquement dans un historique sur cet appareil. Cliquez sur « Historique » pour ouvrir la liste, où vous pouvez ouvrir une entrée, lui donner une étiquette (par exemple avant correction) ou la supprimer. Sélectionnez deux entrées et cliquez sur « Comparer les 2 sélectionnés » pour voir les voies disparues et apparues ainsi que les changements des points de correction. Servez-vous-en pour comparer la situation avant et après une correction.

Les résultats d’analyse enregistrés au format JSON sur un autre appareil peuvent être importés dans l’historique avec « Importer des résultats ». Sélectionnez au moins deux entrées dans l’historique et cliquez sur « Synthétiser la sélection » pour voir les appareils les plus exposés, par ordre, et les faiblesses communes à plusieurs appareils.

Le résultat affiché peut être enregistré en « Résultat d’analyse (JSON) », « Éléments à surveiller (JSON) » ou « Règles auditd (pour la fonction d’audit de Linux) ». Vous choisissez la destination dans la boîte de dialogue d’enregistrement. Cela se limite à écrire des fichiers : aucun réglage n’est appliqué et cet appareil n’est pas modifié.

Cela écrit un fichier de configuration qui lance l’analyse périodiquement et vous avertit lorsque des voies sont apparues depuis la fois précédente.

  1. Affichez un résultat d’analyse et cliquez sur « Enregistrer comme résultat de référence ».
  2. Définissez l’« Intervalle (minutes) » (de 5 à 10080).
  3. Sur Mac, cliquez sur « Enregistrer les réglages launchd… », sous Linux sur « Enregistrer les réglages systemd… », puis choisissez l’emplacement.
  4. Vérifiez le contenu écrit, puis enregistrez-le vous-même (par exemple avec launchctl load). PathScope ne l’enregistre pas.

5. Fonctions utilisant un LLM (facultatif)

Désactivé par défaut
Les fonctions qui utilisent un LLM ne fonctionnent qu’une fois activées dans les réglages. Une fois activées et utilisées, une partie du contenu de l’analyse est transmise à la commande du LLM choisi et au service qui se trouve derrière. Cette communication n’est pas couverte par le « Zero Telemetry » de RoamSwitch. Si vous la laissez désactivée, PathScope n’envoie aucun contenu de l’analyse hors de cet appareil.

Mise en place

  1. Cochez « Activer le LLM ».
  2. Choisissez le « LLM à utiliser ». Les choix sont les commandes claude, opencode, codex et agy, et seules celles dont l’« État » est « Installé » sont utilisables. Si « Introuvable » s’affiche, installez d’abord cette commande.
  3. Choisissez « Ce qui est envoyé au LLM pour la lecture des réglages » (voir le tableau ci-dessous).
  4. Cliquez sur « Enregistrer ».

Dans la liste, le « Modèle » et le « Délai d’attente (secondes) » se règlent pour chaque LLM. claude est lancé avec l’exécution de commandes et la lecture de fichiers désactivées. opencode, codex et agy sont considérés comme impossibles à restreindre et ne sont utilisables que si vous cochez « Je comprends que l’on ne peut pas empêcher ce LLM d’exécuter des commandes ni de lire des fichiers ». Un LLM qu’on ne peut pas restreindre peut lire des fichiers de lui-même en cours de route, et leur contenu peut être envoyé à son service.

Expliquer avec un LLM

Avec un résultat affiché, cliquez sur « Expliquer avec un LLM » pour que le LLM rédige une évaluation d’ensemble, l’ordre et les raisons des corrections, la signification des zones non vérifiées, etc. Seul un résumé des voies, des points de correction et des zones non vérifiées est transmis ; les informations brutes collectées (comme les listes de propriétaires et de permissions de fichiers) ne le sont pas. Le résumé contient toutefois les noms d’utilisateur et les chemins de fichiers qui apparaissent dans les voies. La réponse du LLM est donnée à titre indicatif. Ce sont des personnes qui vérifient et décident de la suite, et rien ne change automatiquement à partir de la réponse.

Aide du LLM (lecture des fichiers de configuration)

Les fichiers de configuration comme sudoers, cron et les scripts sont écrits de multiples façons, et un programme seul ne peut parfois pas les lire. L’aide du LLM fait lire ces fichiers par un LLM pour y chercher les passages liés aux privilèges root.

  1. Cliquez sur « Aide du LLM ». Les fichiers candidats à la lecture sont listés avec la raison de chacun (tous sont sélectionnés au départ). Les candidats comprennent sudoers, cron, les réglages de systemd et de launchd, et les exécutables chargés par des services exécutés en tant que root. Décochez ce que vous ne voulez pas envoyer.
  2. Cliquez sur « Envoyer au LLM les ○ sélectionnés ». Une confirmation de ce qui sera envoyé s’affiche ; lisez-la, puis cliquez sur « Envoyer (confirmé) ».
  3. Dans le résultat, vérifiez « Éléments trouvés », « Fichiers lus » et « Fichiers non lus (ils restent non vérifiés) ».
  4. Cliquez sur « Appliquer et relancer l’analyse » pour intégrer les éléments trouvés à l’analyse. Si vous ne voulez plus les utiliser, supprimez-les depuis « Enregistrés ».

Seuls les éléments cités par le LLM dont il a été confirmé que la ligne figure bien dans le fichier d’origine sont utilisés. Les éléments non confirmés apparaissent seulement sous « À titre indicatif » et ne servent pas à l’analyse. La vérification est refaite à chaque analyse : un élément dont la ligne d’origine a disparu n’est donc plus utilisé.

Ce qui est envoyéDétails
StandardLes valeurs qui ressemblent à des mots de passe ou à des clés sont remplacées par « [REDACTED] » avant l’envoi. Les fichiers comme les clés privées ne sont pas envoyés. Pour un gros fichier, seules les lignes contenant des chemins ou des commandes sont envoyées.
Sans restrictionUn réglage pour les cas où le contenu ne quitte pas votre machine, comme avec un LLM local (à vos risques). Les empreintes de mots de passe et éléments similaires sont également envoyés.
Ce qui n’est jamais envoyé, quel que soit le mode
Un fichier contenant une clé privée n’est pas envoyé, même s’il porte un autre nom. Les clés de formats connus et les valeurs dont le nom désigne un secret, comme un mot de passe ou un jeton, sont remplacées puis envoyées quel que soit le réglage. Comme ils sont repérés d’après le nom et la forme, gardez à l’esprit que certains secrets peuvent ne pas être détectés.

6. Utilisation en ligne de commande

La même analyse que dans la fenêtre peut être lancée avec la commande pathscope. Sans option, elle analyse les voies de l’utilisateur actuel vers root. La collecte est en lecture seule et ne modifie pas l’état de l’appareil.

pathscope
pathscope --json-out=report.json
pathscope --what-if-fix=all
pathscope --baseline=base.json --fail-on=new --notify
pathscope --print-schedule=systemd --interval-min=60
pathscope --export-watch=watch.json --export-auditd=pathscope.rules
pathscope --plain
pathscope --version
pathscope --lang=en
OptionDétails
--json-out=<file>Enregistre le résultat au format JSON.
--what-if-fix=allRelance, à titre d’essai, l’analyse des voies qui resteraient si tout était corrigé comme proposé. Avec un numéro, seulement ce point de correction.
--baseline=<file> --fail-on=newCompare avec un JSON précédent et se termine avec le code 1 si des voies sont apparues. Avec --notify, une notification de bureau (nombre seulement) est aussi affichée.
--fail-on=any|new|critical|high|mediumany se termine avec le code 1 dès qu’il y a au moins une voie ; critical, high et medium le font lorsqu’il existe un point de correction de cette priorité ou plus.
--print-schedule=launchd|systemdAffiche un exemple de configuration d’exécution périodique, sans l’enregistrer. --interval-min permet de fixer l’intervalle en minutes.
--plainAffiche l’ancienne présentation en texte simple au lieu de Markdown. Les hypothèses de l’analyse sont alors envoyées sur la sortie d’erreur au lieu de figurer dans le résultat.
--help / --version--help (-h) affiche la description de toutes les options, les codes de sortie et des exemples. --version (-V) affiche la version.

La sortie est au format Markdown. Après le titre viennent, dans l’ordre, un tableau récapitulatif, les voies, les points de correction (un tableau de la priorité, de l’étape, de la raison et des voies concernées, puis, pour chaque numéro, un détail avec la correspondance ATT&CK, les commandes de correction et une mise en garde), le périmètre de la collecte et les hypothèses de l’analyse. Les points de correction n’apparaissent que si des voies ont été trouvées, et les hypothèses seulement s’il y a quelque chose à indiquer. Avec --what-if-*, une liste de l’analyse hypothétique suit ; avec --baseline, une liste des changements depuis la dernière exécution. Vous pouvez la coller telle quelle dans une note ou un ticket. Pour obtenir l’ancienne présentation en texte simple, ajoutez --plain.

Le code de sortie est 0 pour un déroulement normal, 1 lorsqu’une condition de --fail-on est remplie, et 2 pour une erreur d’utilisation ou d’entrée/sortie. Exécutée en tant que root, la commande collecte aussi directement les processus en écoute de root. Les résultats de lecture enregistrés avec l’aide du LLM sont également pris en compte dans l’analyse de la commande.

7. Emplacements de stockage et mises à jour

ÉlémentEmplacement
Historique des résultats d’analyseSur Mac, ~/Library/Application Support/net.lafine.pathscope/history.sqlite3 ; sous Linux, ~/.local/share/net.lafine.pathscope/history.sqlite3
Réglages du LLM~/.config/pathscope/settings.json (enregistré avec des droits qui ne permettent qu’à vous de le lire et de l’écrire)
Contenu enregistré par l’aide du LLM~/.local/share/pathscope/facts.json
Le « résultat de référence » de la vérification récurrente~/.local/share/pathscope/baseline.json

L’historique peut être effacé avec « Tout supprimer » dans l’écran de l’historique. Les résultats d’analyse contiennent des informations sensibles sur la configuration de cet appareil (noms d’utilisateur, chemins de fichiers, permissions) ; limitez donc l’endroit où ils sont conservés et les personnes avec qui ils sont partagés. Pour utiliser une commande absente de la liste des LLM, ajoutez-la à la main dans profiles du fichier de réglages. Cela ne peut pas se modifier depuis la fenêtre.

Mettre l’application à jour

PathScope sur Mac se met à jour lui-même, indépendamment de RoamSwitch. Il ne se connecte à lafine.net, pour récupérer les informations sur la dernière version, que lorsque vous cliquez sur « Rechercher des mises à jour » (aucune information sur cet appareil ni sur les résultats d’analyse n’est envoyée). Si une nouvelle version existe, cliquez sur « Installer v○○ », puis, une fois terminé, sur « Redémarrer pour appliquer ». Une mise à jour téléchargée n’est installée qu’après vérification de sa signature, qui confirme qu’elle n’a pas été altérée.

Sous Linux, il fait partie du paquet RoamSwitch et se met donc à jour avec ce paquet. L’onglet « Mises à jour » l’indique également.

Les données utilisées pour l’analyse, comme celles sur les vulnérabilités connues, sont fournies avec l’application. Ce qui a été découvert après coup n’est pas vérifié tant que vous n’avez pas mis PathScope à jour. Lorsque les données fournies sont devenues anciennes, le résultat de l’analyse le signale.

8. Ce que PathScope ne fait pas

9. En cas de problème

SymptômeQue faire
Sur Mac, « Données des réglages de confidentialité (TCC.db) » apparaît parmi les zones non vérifiéesDans l’onglet « Autorisations » des « Réglages », cliquez sur « Ouvrir les réglages d’Accès complet au disque », activez PathScope dans les Réglages Système, puis redémarrez PathScope et relancez l’analyse. Les autres analyses fonctionnent même sans cette autorisation.
Le message « Impossible d’utiliser le LLM » s’affiche, ou les réglages ne peuvent pas être enregistrésActivez-le dans « Intégration LLM » des « Réglages » et choisissez le LLM à utiliser. Si la liste indique « Introuvable », installez la commande. Avec opencode, codex ou agy, la case de confirmation est également nécessaire.
Un LLM s’arrête avec « Délai dépassé »Dans la liste de « Intégration LLM » des « Réglages », augmentez le « Délai d’attente (secondes) » de ce LLM (de 1 à 900), puis enregistrez.
« Et si je corrige ceci ? » est inutilisableIl est inutilisable sur un résultat ouvert depuis l’historique. Cliquez de nouveau sur « Analyser », puis utilisez-le.
La mise à jour dans l’application est inutilisableSi vous l’avez installé sous Linux depuis un paquet RoamSwitch, mettez-le à jour en mettant à jour le paquet. Si vous ne l’avez pas installé depuis un paquet (.deb, .rpm ou AppImage), la mise à jour dans l’application est inutilisable ; réinstallez alors le paquet distribué.
← Page produit de PathScope Manuel d’utilisation pour Linux →