PathScope Bedienungshandbuch
Dieses Handbuch führt in der Reihenfolge der Bildschirme durch den Ablauf, vom Aufspüren der Schwachstellen dieses Geräts mit PathScope bis zur Klärung, wo man mit der Behebung beginnt. Bei den Bedienschritten wird Fachjargon weitgehend vermieden; die Befehle stehen gesammelt im Kapitel „Verwendung über die Kommandozeile“.
1. Was PathScope ist
PathScope findet die „Pfade“, über die ein normaler Benutzer auf diesem Gerät root (Administratorrechte) oder vertrauliche Daten erreichen kann, und zeigt mit Priorität an, wo eine Behebung am meisten bewirkt. Es ist für die Prüfung von Geräten gedacht, die Sie selbst verwalten, sowie von Testumgebungen.
Die Analyse ist schreibgeschützt. Einstellungen und Dateien werden nicht verändert, und Korrekturen werden nicht automatisch angewendet. Beispielbefehle zur Behebung werden angezeigt; ob Sie sie ausführen, entscheiden Sie selbst.
pathscope). PathScope ist eine eigenständige App neben RoamSwitch und steht unter der Apache License 2.0. Die RoamSwitch-Lizenzvereinbarung (EULA) gilt dafür nicht.2. Installation und Start
PathScope wird als eigenständige App mit eigenem Symbol installiert. So starten Sie es.
| Umgebung | So starten Sie |
|---|---|
| Mac | Öffnen Sie PathScope.app aus der Distributionsdatei (DMG) und klicken Sie auf „Analysieren“. |
| Linux | Öffnen Sie „PathScope“ in der Anwendungsliste und klicken Sie auf „Analysieren“. Im Terminal lautet der Befehl pathscope-gui. Für die Darstellung wird WebKitGTK 4.1 benötigt; bei deb und rpm wird es automatisch installiert. Unter Arch (AUR) installieren Sie webkit2gtk-4.1 als optionale Abhängigkeit. |
| Kommandozeile | Führen Sie im Terminal pathscope aus. Auf dem Mac ist es PathScope.app/Contents/MacOS/pathscope. |
Nach dem Start öffnet sich ein Fenster, an dessen oberem Rand die Schaltflächen „Analysieren“, „Verlauf“, „LLM-Unterstützung“, „Mit LLM erklären“ und „Einstellungen“ stehen. „Mit LLM erklären“ lässt sich erst drücken, wenn ein Ergebnis angezeigt wird. PathScope öffnet keinen lauschenden Port, und das Fenster lädt keine externen Seiten.
3. Analyse starten und Ergebnis lesen
Wenn Sie auf „Analysieren“ klicken, erfasst PathScope den Zustand dieses Geräts, ausgehend vom aktuellen Benutzer, und analysiert ihn. Das kann einige Sekunden bis einige zehn Sekunden dauern. Danach wird das Ergebnis automatisch als ein Eintrag im Verlauf gespeichert.
Vorgehen
- Klicken Sie auf „Analysieren“.
- In „Pfadgrafik“ und „Liste der Pfade“ sehen Sie, welcher Benutzer über welche Schritte root oder vertrauliche Daten erreicht. Kreise und Quadrate sind Benutzer und Ziele, jede Linie ist ein Schritt, der Rechte erhöht. Die Nummer an einer Linie entspricht dem „Grund, warum der Schritt möglich ist“ in der Tabelle unter der Grafik.
- Unter „Ansatzpunkte (in der Reihenfolge der Behebung)“ prüfen Sie, wo eine Behebung die größte Wirkung hat. Jeder Eintrag zeigt die Priorität (kritisch, hoch, mittel oder niedrig, mit Punktzahl), die Zahl der betroffenen Pfade, einen Korrekturvorschlag und die nächstliegende MITRE-ATT&CK-Technik.
- Mit „Was, wenn dies behoben wird?“ wird probehalber neu analysiert, wie die Pfade aussähen, wenn dieser Ansatzpunkt wie vorgeschlagen behoben würde. „Was, wenn alles behoben wird?“ tut dasselbe für alle angezeigten Ansatzpunkte. Beides verändert dieses Gerät nicht.
- Lesen Sie die Liste der Bereiche, die nicht geprüft werden konnten und unter den Ansatzpunkten angezeigt wird.
Welche Pfade gefunden werden
- Mitgliedschaft in der Gruppe docker (erlaubt dieselben Aktionen wie root)
- Missbrauch einer mit root-Rechten laufenden ausführbaren Datei (SUID), um root zu werden, Dateien zu überschreiben oder Dateien zu lesen
- Die ausführbare Datei eines Dienstes, der als root läuft, eines Programms, mit dem root lauscht, oder einer Datei, die root regelmäßig ausführt, lässt sich überschreiben
- Einstellungen, die sudo ohne Passwort erlauben (die Konfigurationsdateien von sudo und cron werden einbezogen, wenn sie mit „LLM-Unterstützung“ gelesen wurden)
- Auf dem Mac lässt sich eine App überschreiben, der Zugriff auf alle Dateien erlaubt wurde
- In der installierten Software, im Kernel oder in der macOS-Version steckt noch eine bekannte Schwachstelle, die in echten Angriffen ausgenutzt wurde oder sehr wahrscheinlich ausgenutzt wird (im CISA-KEV-Katalog oder, ohne KEV-Eintrag, mit hohem EPSS-Wert von FIRST; nur solche, mit denen ein normaler Benutzer root werden kann)
Bekannte Schwachstellen werden anhand von Daten geprüft, die in der App mitgeliefert werden. Erfasst werden macOS sowie die Versionen von Debian, Ubuntu, RHEL-Familie, SUSE, Arch und Alpine, für die Daten vorliegen; alles andere (Debian 11 und älter, Fedora usw.) wird als „ungeprüft“ angezeigt. Es ist keine Funktion zur lückenlosen Untersuchung von Schwachstellen.
4. Verlauf, Export, laufende Prüfung
Analyseergebnisse werden automatisch als Verlauf auf diesem Gerät aufbewahrt. Mit „Verlauf“ öffnen Sie die Liste; dort können Sie einen Eintrag öffnen, mit einer Bezeichnung versehen (z. B. vor der Korrektur) oder löschen. Wählen Sie zwei Einträge und klicken Sie auf „Zwei ausgewählte Einträge vergleichen“, sehen Sie die verschwundenen und neu hinzugekommenen Pfade sowie die Änderungen bei den Ansatzpunkten. Nutzen Sie das, um die Lage vor und nach einer Korrektur zu vergleichen.
In einem anderen Gerät im JSON-Format gespeicherte Analyseergebnisse lassen sich mit „Analyseergebnisse importieren“ in den Verlauf übernehmen. Wählen Sie im Verlauf zwei oder mehr Einträge und klicken Sie auf „Ausgewählte Einträge auswerten“, sehen Sie die gefährdetsten Geräte in der Reihenfolge und die Schwachstellen, die mehrere Geräte gemeinsam haben.
Das angezeigte Analyseergebnis lässt sich als „Analyseergebnis (JSON)“, „Überwachungsziele (JSON)“ oder „auditd-Regeln (für die Linux-Überwachung)“ speichern. Den Speicherort wählen Sie im Speichern-Dialog. Es wird nur geschrieben; Einstellungen werden nicht angewendet und dieses Gerät wird nicht verändert.
Dabei wird eine Konfigurationsdatei geschrieben, die regelmäßig analysiert und benachrichtigt, wenn gegenüber dem letzten Mal mehr Pfade vorhanden sind.
- Lassen Sie ein Analyseergebnis anzeigen und klicken Sie auf „Als Vergleichsbasis speichern“.
- Legen Sie das „Intervall (Minuten)“ fest (von 5 bis 10080).
- Klicken Sie auf dem Mac auf „launchd-Konfiguration speichern …“, unter Linux auf „systemd-Konfiguration speichern …“ und wählen Sie den Speicherort.
- Prüfen Sie den geschriebenen Inhalt und registrieren Sie ihn dann selbst (z. B. mit launchctl load). PathScope registriert nichts.
5. Funktionen mit LLM (optional)
Einrichten
- Setzen Sie das Häkchen bei „LLM-Anbindung aktivieren“.
- Wählen Sie das „Zu verwendende LLM“. Zur Auswahl stehen die Befehle claude, opencode, codex und agy; verwendbar sind diejenigen, deren „Status“ „Installiert“ lautet. Steht dort „Nicht gefunden“, installieren Sie den Befehl zuerst.
- Wählen Sie den „Umfang der Daten, die beim Auslesen von Konfigurationen an das LLM gehen“ (siehe Tabelle unten).
- Klicken Sie auf „Speichern“.
In der Liste lassen sich „Modell“ und „Zeitlimit (Sekunden)“ für jedes LLM ändern. claude wird mit abgeschaltetem Ausführen von Befehlen und Lesen von Dateien gestartet. opencode, codex und agy gelten als nicht abschaltbar und lassen sich nur verwenden, wenn Sie „Mir ist bekannt, dass sich bei diesem LLM das Ausführen von Befehlen und das Lesen von Dateien nicht abschalten lassen“ ankreuzen. Ein nicht einschränkbares LLM kann zwischendurch nach eigenem Ermessen Dateien lesen, und deren Inhalt kann an den Dienst des LLM gesendet werden.
Mit LLM erklären
Ist ein Ergebnis angezeigt, lässt „Mit LLM erklären“ das LLM eine Gesamteinschätzung, die Reihenfolge und Gründe der Behebung, die Bedeutung der nicht geprüften Bereiche und Ähnliches schreiben. Übergeben wird nur eine Zusammenfassung der Pfade, Ansatzpunkte und nicht geprüften Bereiche; die erfassten Rohdaten (etwa Listen von Dateibesitzern und Berechtigungen) werden nicht übergeben. Die Zusammenfassung enthält allerdings die in den Pfaden vorkommenden Benutzernamen und Dateipfade. Die Antwort des LLM dient als Anhaltspunkt. Prüfen und Entscheiden übernimmt der Mensch; aufgrund der Antwort ändert sich nichts automatisch.
LLM-Unterstützung (Konfigurationsdateien auslesen)
Konfigurationsdateien wie sudoers, cron und Skripte sind sehr unterschiedlich geschrieben, und ein Programm allein kann sie manchmal nicht lesen. Die LLM-Unterstützung lässt ein LLM solche Dateien lesen und nach Angaben suchen, die root-Rechte betreffen.
- Klicken Sie auf „LLM-Unterstützung“. Die zu lesenden Kandidaten werden mit Begründung aufgelistet (zunächst sind alle ausgewählt). Kandidaten sind unter anderem sudoers, cron, die Konfigurationen von systemd und launchd sowie ausführbare Dateien, die von als root laufenden Diensten geladen werden. Entfernen Sie das Häkchen bei allem, was Sie nicht senden möchten.
- Klicken Sie auf „Ausgewählte Dateien an LLM senden (Anzahl: ○)“. Es erscheint eine Bestätigung dessen, was gesendet wird; lesen Sie sie und klicken Sie dann auf „Senden (bestätigt)“.
- Prüfen Sie im Ergebnis „Gefundene Einträge“, „Gelesene Dateien“ und „Nicht gelesene Dateien (bleiben ungeprüft)“.
- Mit „Übernehmen und erneut analysieren“ fließen die gefundenen Einträge in die Analyse ein. Möchten Sie sie nicht mehr verwenden, löschen Sie sie unter „Gespeichert“.
Verwendet werden nur die vom LLM genannten Einträge, bei denen bestätigt wurde, dass die Zeile tatsächlich in der Originaldatei steht. Nicht bestätigte Einträge erscheinen nur unter „Zur Information“ und fließen nicht in die Analyse ein. Die Bestätigung wird bei jeder Analyse wiederholt, sodass ein Eintrag, dessen Originalzeile verschwunden ist, nicht mehr verwendet wird.
| Umfang | Inhalt |
|---|---|
| Standard | Passwort- oder schlüsselähnliche Werte werden vor dem Senden durch „[REDACTED]“ ersetzt. Dateien wie private Schlüssel werden nicht gesendet. Von einer großen Datei werden nur die Zeilen mit Pfaden oder Befehlen gesendet. |
| Uneingeschränkt | Eine Einstellung für Fälle, in denen der Inhalt Ihr Gerät nicht verlässt, etwa bei einem lokalen LLM (auf eigene Verantwortung). Auch Passwort-Hashes und Ähnliches werden gesendet. |
6. Verwendung über die Kommandozeile
Dieselbe Analyse wie im Fenster lässt sich auch mit dem Befehl pathscope ausführen. Ohne Optionen analysiert er die Pfade vom aktuellen Benutzer zu root. Die Erfassung ist schreibgeschützt und verändert den Zustand des Geräts nicht.
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
| Option | Inhalt |
|---|---|
--json-out=<file> | Speichert das Ergebnis als JSON. |
--what-if-fix=all | Analysiert probehalber neu, wie die Pfade aussähen, wenn alles wie vorgeschlagen behoben würde. Mit einer Nummer nur dieser Ansatzpunkt. |
--baseline=<file> --fail-on=new | Vergleicht mit einer früheren JSON-Datei und beendet sich mit Exitcode 1, wenn Pfade hinzugekommen sind. Mit --notify erscheint zusätzlich eine Desktop-Benachrichtigung (nur die Anzahl). |
--fail-on=any|new|critical|high|medium | any beendet mit Exitcode 1, sobald es mindestens einen Pfad gibt; critical, high und medium tun das, wenn es einen Ansatzpunkt mit dieser oder höherer Priorität gibt. |
--print-schedule=launchd|systemd | Gibt ein Beispiel für eine Konfiguration zur regelmäßigen Ausführung aus. Sie wird nicht registriert. Mit --interval-min legen Sie das Intervall in Minuten fest. |
--plain | Gibt statt Markdown die ältere Textdarstellung aus. Die Annahmen der Analyse gehen dann an die Standardfehlerausgabe, statt im Ergebnis zu stehen. |
--help / --version | --help (-h) zeigt die Beschreibung aller Optionen, die Exitcodes und Beispiele. --version (-V) zeigt die Version. |
Die Ausgabe ist Markdown. Nach dem Titel folgen nacheinander eine Übersichtstabelle, die Pfade, die Ansatzpunkte (eine Tabelle mit Priorität, Schritt, Grund und betroffenen Pfaden, danach je Nummer ein Detailabschnitt mit der ATT&CK-Zuordnung, den Befehlen zur Behebung und einem Hinweis), der Erfassungsumfang und die Annahmen der Analyse. Die Ansatzpunkte erscheinen nur, wenn Pfade gefunden wurden, die Annahmen nur, wenn es etwas zu nennen gibt. Mit --what-if-* folgt eine Liste der hypothetischen Analyse, mit --baseline eine Liste der Änderungen gegenüber dem vorherigen Lauf. Sie lässt sich direkt in eine Notiz oder ein Ticket einfügen. Die ältere Textdarstellung erhalten Sie mit --plain.
Der Exitcode ist 0 bei normalem Ende, 1 wenn eine --fail-on-Bedingung erfüllt war und 2 bei einem Fehler in der Bedienung oder bei Ein-/Ausgabe. Als root ausgeführt, erfasst der Befehl auch die Listener, auf die root lauscht, direkt. Mit der LLM-Unterstützung gespeicherte Leseergebnisse fließen ebenfalls in die Analyse des Befehls ein.
7. Speicherorte und Updates
| Inhalt | Speicherort |
|---|---|
| Verlauf der Analyseergebnisse | Auf dem Mac ~/Library/Application Support/net.lafine.pathscope/history.sqlite3, unter Linux ~/.local/share/net.lafine.pathscope/history.sqlite3 |
| LLM-Einstellungen | ~/.config/pathscope/settings.json (so gespeichert, dass nur Sie sie lesen und schreiben können) |
| Mit der LLM-Unterstützung gespeicherte Inhalte | ~/.local/share/pathscope/facts.json |
| Die „Vergleichsbasis“ der laufenden Prüfung | ~/.local/share/pathscope/baseline.json |
Den Verlauf können Sie im Verlaufsfenster mit „Alle löschen“ entfernen. Analyseergebnisse enthalten vertrauliche Angaben zur Konfiguration dieses Geräts (Benutzernamen, Dateipfade, Berechtigungen); beschränken Sie daher, wo sie aufbewahrt und mit wem sie geteilt werden. Möchten Sie einen Befehl verwenden, der nicht in der LLM-Liste steht, ergänzen Sie ihn von Hand unter profiles in der Einstellungsdatei. Über das Fenster lässt sich das nicht ändern.
App aktualisieren
PathScope auf dem Mac aktualisiert sich unabhängig von RoamSwitch selbst. Nur wenn Sie auf „Nach Updates suchen“ klicken, verbindet es sich mit lafine.net, um die Informationen zur neuesten Version abzurufen (Angaben zu diesem Gerät oder zu Analyseergebnissen werden nicht gesendet). Gibt es eine neue Version, klicken Sie auf „v○○ installieren“ und danach auf „Neu starten und anwenden“. Ein heruntergeladenes Update wird erst eingespielt, nachdem seine Signatur geprüft wurde und bestätigt, dass es nicht manipuliert wurde.
Unter Linux ist es Teil des RoamSwitch-Pakets und wird daher mit der Aktualisierung dieses Pakets aktualisiert. Der Tab „Updates“ weist ebenfalls darauf hin.
Die für die Analyse genutzten Daten, etwa zu bekannten Schwachstellen, werden mit der App mitgeliefert. Was danach entdeckt wurde, wird erst geprüft, wenn Sie PathScope aktualisieren. Sind die mitgelieferten Daten veraltet, weist das Analyseergebnis darauf hin.
8. Was nicht möglich ist
- Es ändert weder Einstellungen noch Dateien und führt keine Korrekturen automatisch aus. Es zeigt nur Korrekturvorschläge an.
- „Keine Pfade gefunden“ ist ein Ergebnis innerhalb des Bereichs, der erfasst werden konnte. Es ist kein Nachweis der Sicherheit.
- Es untersucht Schwachstellen nicht lückenlos. Betrachtet werden nur bekannte Schwachstellen, die in echten Angriffen ausgenutzt wurden und mit denen ein normaler Benutzer root werden kann.
- „Was, wenn dies behoben wird?“ lässt sich nur auf das Ergebnis einer gerade durchgeführten Analyse anwenden, nicht auf ein aus dem Verlauf geöffnetes Ergebnis.
9. Wenn etwas nicht klappt
| Symptom | Abhilfe |
|---|---|
| Auf dem Mac erscheint „Datenschutz-Daten (TCC.db)“ unter den nicht geprüften Bereichen | Klicken Sie im Tab „Berechtigungen“ unter „Einstellungen“ auf „Einstellungen für ‚Festplattenvollzugriff‘ öffnen“, schalten Sie PathScope in den Systemeinstellungen ein, starten Sie PathScope neu und analysieren Sie erneut. Die übrigen Analysen funktionieren auch ohne diese Erlaubnis. |
| „Das LLM ist nicht verwendbar“ erscheint, oder die Einstellungen lassen sich nicht speichern | Aktivieren Sie es in den „Einstellungen“ unter „LLM-Anbindung“ und wählen Sie das zu verwendende LLM. Steht in der Liste „Nicht gefunden“, installieren Sie den Befehl. Bei opencode, codex oder agy ist zusätzlich das Bestätigungskästchen nötig. |
| Ein LLM bricht mit „Zeitüberschreitung“ ab | Erhöhen Sie in der Liste unter „LLM-Anbindung“ in den „Einstellungen“ das „Zeitlimit (Sekunden)“ dieses LLM (von 1 bis 900) und speichern Sie. |
| „Was, wenn dies behoben wird?“ lässt sich nicht verwenden | Bei einem aus dem Verlauf geöffneten Ergebnis ist es nicht verfügbar. Klicken Sie erneut auf „Analysieren“ und verwenden Sie es dann. |
| Die Aktualisierung in der App ist nicht verfügbar | Wenn Sie es unter Linux aus einem RoamSwitch-Paket installiert haben, aktualisieren Sie es über das Paket. Wurde es nicht aus einem Paket (.deb, .rpm oder AppImage) installiert, ist die Aktualisierung in der App nicht verfügbar; installieren Sie dann bitte das bereitgestellte Paket neu. |