PersonalSOC Handbuch
Hier erfahren Sie, wie Sie die App verwenden, die die Protokolle und den Schutzstatus dieses Geräts per Knopfdruck schreibgeschützt sammelt und zu einem Bericht macht, den man auf einen Blick erfasst. Zuerst werden die Schritte in der Oberfläche erklärt, die Befehlszeile steht in einem späteren Kapitel.
1. Was PersonalSOC ist
PersonalSOC ist eine App, die die Protokolle und den Schutzstatus dieses Geräts sammelt und als Feststellungen und Bericht zusammenfasst. Sie ist so gebaut, dass eine Einzelperson ohne eigenes Sicherheitspersonal belegbar erkennen kann, was auf dem eigenen Gerät geschieht, und entscheiden kann, was als Nächstes zu tun ist.
Die App ist schreibgeschützt: Sie ändert keine Einstellungen, löscht keine Dateien und sperrt keinen Datenverkehr. Die Protokollanalyse übernehmen feste Analysatoren, die weder ein LLM noch das Netzwerk nutzen. Die LLM-Anbindung ist optional und anfangs aus.
Was nicht möglich ist
- Es ist ein Werkzeug für das eine Gerät, auf dem es läuft. Mehrere Geräte gemeinsam anzuzeigen ist nicht möglich.
- Es erhöht nie seine Rechte. Ein Protokoll, das nur root lesen kann, wird als „nicht lesbar“ angezeigt, und sudo wird nicht verwendet.
- „Keine Erkennung“ ist kein Beweis für Sicherheit. Auch das Gesamtrisiko ist nur ein Richtwert von 0 bis 100, keine Wahrscheinlichkeit.
- Gelesen werden nur feste Quellen. In der Oberfläche lassen sich weder Dateien noch Befehle zum Lesen festlegen.
2. Installation und Start
PersonalSOC ist eine eigene App, getrennt von RoamSwitch. Sie hat ein eigenes Symbol und wird mit RoamSwitch zusammen ausgeliefert. In den Menüs von RoamSwitch gibt es dafür keinen Einstieg; Sie öffnen sie als eigenständige App.
| Umgebung | Installation und Öffnen |
|---|---|
| Mac | Das RoamSwitch-DMG enthält PersonalSOC.app. Verschieben Sie sie in den Ordner „Programme“ und öffnen Sie „PersonalSOC“. Erforderlich ist macOS 12 oder neuer. |
| Linux (Client-Edition) | Sie liegt den deb-, rpm-, tarball- und AUR-Paketen von RoamSwitch bei. Öffnen Sie „PersonalSOC“ in der App-Liste oder starten Sie im Terminal personalsoc-app. Das Fenster benötigt WebKitGTK 4.1, das deb und rpm automatisch installieren. Installieren Sie unter Arch (AUR) webkit2gtk-4.1 als optionale Abhängigkeit. |
| Linux Server Edition | Enthalten ist nur der Befehl. Führen Sie personalsoc im Terminal aus (die Fenster-App personalsoc-app ist nicht enthalten). Zum Betrieb der Server-Edition siehe das Betriebshandbuch (Linux Server). |
3. Die erste Statusprüfung
Es liest die festen Quellen nur, wenn Sie „Status prüfen“ drücken. Quellen, die es nicht lesen soll, können Sie in den Einstellungen ausschalten.
Vorgehen
- Öffnen Sie die App und klicken Sie oben rechts auf „Einstellungen“.
- Darunter stehen die Quellen, die auf diesem Betriebssystem gelesen werden. Entfernen Sie den Haken bei allem, was nicht gelesen werden soll.
- Klicken Sie auf „Speichern“ und mit „← Zurück“ zurück zur Startseite.
- Klicken Sie auf „Status prüfen“. Ein Fortschrittsbalken erscheint, und nach dem Ende werden die Ergebnis-Tabs angezeigt.
Am Ende erscheinen die Anzahlen, zum Beispiel „Prüfung abgeschlossen. 3 Erkennung(en) / 2 IOC(s)“. Die Tabs erklärt das nächste Kapitel.
| Umgebung | Was gelesen wird |
|---|---|
| Mac | Das einheitliche macOS-Protokoll (sudo und sshd der letzten 24 Stunden) und die MCP-Einstellungen (Claude Code, Claude Desktop, opencode, Cursor). Außerdem liest es die Zugriffsprotokolle von Webservern (das mitgelieferte Apache von macOS sowie nginx und httpd aus Homebrew). Die Aufzeichnung der von Gatekeeper abgelehnten Vorgänge zu lesen dauert etwa 10 Sekunden und ist deshalb anfangs aus. |
| Linux | Das Authentifizierungsprotokoll (sshd), auditd, Web-Zugriffsprotokolle (nginx / apache, auch die je virtuellem Host getrennten Protokolle), DNS-Abfrageprotokolle (dnsmasq / named) und die MCP-Einstellungen. |
| Beide | Ist RoamSwitch installiert, kommt dessen schreibgeschütztes MCP hinzu. Mit dem Kontrollkästchen „Erkennungsverlauf und Konfigurationsdiagnose aus dem MCP von RoamSwitch beziehen (schreibgeschützt)“ lässt es sich abschalten. |
4. Die Ergebnisse lesen
| Tab | Was Sie sehen |
|---|---|
| Dashboard | Diagramme zeigen das Gesamtrisiko (Richtwert) als Anzeige, die Anzahl nach Schweregrad, Vorkommen je Kategorie, den zeitlichen Verlauf und die Anzahl nach MITRE ATT&CK. |
| Bericht | Ein Markdown-Bericht über die Quellen, die Feststellungen nach Kategorie und die IOCs. „Markdown kopieren“ kopiert ihn vollständig, „Markdown-Quelltext anzeigen“ schaltet auf den Rohtext um. |
| Feststellungen | Sie können die Erkennungen einzeln durchgehen, jeweils mit Schweregrad, Vertrauensstufe, ATT&CK-Nummer, Anzahl und den Zeilennummern der belegenden Protokollzeilen. |
| Quellen | Eine Liste dessen, was geprüft wurde. Der Status lautet „Gelesen“, „Nicht vorhanden“, „Nicht lesbar (Berechtigung)“, „Fehlgeschlagen“ oder „Deaktiviert“; nicht lesbare und fehlgeschlagene Quellen wurden nicht geprüft. |
| IOC | Eine Liste der in den Protokollen gefundenen IPs, Domains, URLs und Hashes. Sie erscheinen in entschärfter Schreibweise wie 198[.]51[.]100[.]7, damit nichts versehentlich geöffnet wird. |
| Zusammenfassung als LLM-Eingabe | Dieser Tab erscheint nur, wenn die LLM-Anbindung aus ist. Es ist eine Zusammenfassung, die Sie von Hand an ein LLM geben können, und sie enthält keine rohen Protokollzeilen. Verwenden Sie „Kopieren“. |
5. Einstellungen und geplante Ausführung
„Einstellungen“ oben rechts auf der Startseite ist nach Funktionen in Tabs gegliedert. Klicken Sie nach einer Änderung auf „Speichern“ und mit „← Zurück“ zurück zur Startseite.
Anzeigesprache Neben „Automatisch (Betriebssystem folgen)“ stehen Japanisch, Englisch, Deutsch, Spanisch, Französisch, Italienisch, Koreanisch, Portugiesisch (Portugal) sowie vereinfachtes und traditionelles Chinesisch zur Wahl, jeweils unter dem eigenen Namen der Sprache.
Geplante Ausführung (optional)
Setzen Sie den Haken bei „In regelmäßigen Abständen automatisch prüfen“ und speichern Sie: Auf dem Mac wird ein launchd-Benutzeragent registriert, unter Linux ein systemd-Benutzertimer. Das Intervall wählen Sie aus 7 Stufen zwischen 15 Minuten und 24 Stunden, anfangs ist es 1 Stunde.
Ausgeführt wird nur personalsoc scan --notify, ohne root. Benachrichtigt wird nur bei einer Erkennung, die beim letzten Mal nicht da war, und die Meldung enthält nur Anzahlen (unter Linux wird notify-send benötigt). Mit „Nur benachrichtigen, wenn es eine Erkennung gibt, die beim letzten Mal nicht da war“ lässt sich die Benachrichtigung auch abschalten.
Entfernen Sie das Häkchen und speichern Sie, dann wird die Registrierung aufgehoben.
6. LLM-Anbindung (optional)
Die LLM-Anbindung ist optional und anfangs aus. Ist sie aktiviert, führt nach der Statusprüfung der Befehl des gewählten LLM eine weitere Untersuchung durch und schreibt als Auditor einen Bericht. Verwendbar sind die Befehle opencode, claude, codex und agy.
Vorgehen
- Setzen Sie den Haken bei „LLM-Anbindung aktivieren“.
- Wählen Sie das „Zu verwendende LLM“. Eines, das als „(nicht installiert)“ erscheint, hat auf diesem Gerät keinen Befehl.
- Ändern Sie bei Bedarf das Modell und das Timeout (Sekunden). Bleibt das Modell leer, gilt der Standard des jeweiligen LLM.
- Klicken Sie auf „Speichern“, gehen Sie zur Startseite zurück und klicken Sie auf „Status prüfen“. Nach der Prüfung läuft gleich die LLM-Untersuchung.
Was an das LLM gelangt
- Weitergegeben werden der Inhalt der Erkennungen, die belegenden Protokollzeilen, die von MCP zurückgegebenen Zeichenketten und die Anmerkungen zu den Quellen. Sie werden weitergegeben, damit die Lage genau untersucht werden kann.
- Vor der Weitergabe werden Geheimnisse wie Schlüssel, Tokens und Passwörter unkenntlich gemacht und unsichtbare Zeichen entfernt.
- PersonalSOC gibt dem LLM weder eine Shell noch Dateien. Das LLM fordert nur an, was es untersuchen möchte, und PersonalSOC führt die von ihm erlaubten schreibgeschützten Werkzeuge aus und liefert die Ergebnisse zurück. Es gibt höchstens 6 Untersuchungsrunden.
- Die Ausgabe des LLM wird nicht für vertrauenswürdig gehalten und im Bericht als Zitat behandelt. Ein LLM liest Erkennungen mitunter schwerwiegender, als sie sind; prüfen Sie das Fazit deshalb immer anhand der „Feststellungen“.
Zur Einschränkung der Werkzeuge
- In der Spalte „Status“ der Tabelle in den Einstellungen zeigen
opencodeundclaude„Werkzeuge gesperrt“. claude wird mit abgeschalteten eingebauten Werkzeugen, MCP-Servern und Skills gestartet und lädt Ihre eigenen Einstellungen nicht. opencode wird mit verweigerten Berechtigungen gestartet. codexundagylassen sich auf diese Weise nicht abschalten und zeigen deshalb „Werkzeuge nicht sperrbar“.
7. Die Befehlszeile verwenden
Der Befehl heißt personalsoc. Unter Linux liegt er in /usr/bin/personalsoc, auf dem Mac in PersonalSOC.app/Contents/MacOS/.
| Befehl | Was er tut |
|---|---|
personalsoc scan | Prüft automatisch die Logs dieses Rechners und RoamSwitch (MCP) und zeigt die Erkennungen als Liste an. Für Logs, die nur root lesen kann (Authentifizierung, Webserver, auditd), führen Sie es mit sudo aus. |
personalsoc scan --report | Gibt den Markdown-Bericht aus (ohne LLM). |
personalsoc scan --llm <name> | Gibt den Bericht aus, den das LLM nach einer Untersuchung mit schreibgeschützten Werkzeugen als Auditor geschrieben hat. name ist opencode, claude, codex, agy und so weiter. |
personalsoc scan --notify | Benachrichtigt nur, wenn es eine Erkennung gibt, die beim letzten Mal nicht da war. So ruft die geplante Ausführung den Befehl auf. |
personalsoc <type> <file> | Analysiert eine angegebene Datei. type ist sshd, auditd, web, dns, unified, mcp, inject oder ioc. Wird für file der Wert - angegeben, liest der Befehl die Standardeingabe; --report, --brief und --llm lassen sich ebenfalls anfügen. |
--lang <lang> | Lässt sich an jeden Befehl anhängen und legt die Anzeigesprache fest, mit Vorrang vor der Einstellung. Die Codes lauten ja, en, de, es, fr, it, ko, pt-PT, zh-Hans und zh-Hant. |
--llm die ausdrückliche Handlung, den Inhalt an das LLM zu übergeben; er funktioniert daher auch, wenn „LLM-Anbindung aktivieren“ in den Einstellungen aus ist. Auch die Bestätigung für LLMs mit nicht sperrbaren Werkzeugen wird nicht verlangt; verwenden Sie codex oder agy daher nur, wenn Ihnen bewusst ist, dass während der Untersuchung Dateien gelesen und gesendet werden können.8. Speicherorte und Updates
Was gespeichert wird
| Element | Ort |
|---|---|
| Einstellungen | ~/.config/personalsoc/settings.json (mit Rechten gespeichert, die nur Sie lesen und schreiben können) |
| Aufzeichnung der letzten Erkennungen (zur Entscheidung über Benachrichtigungen) | ~/.local/state/personalsoc/last.json (nur Hashes als Fingerabdrücke der Erkennungen; Protokolltext wird nicht aufbewahrt) |
| Registrierung der geplanten Ausführung | Auf dem Mac ~/Library/LaunchAgents/dev.personalsoc.scan.plist (die Ausgabe geht nach ~/Library/Logs/personalsoc-scan.log). Unter Linux personalsoc-scan.timer und personalsoc-scan.service in ~/.config/systemd/user/. |
PersonalSOC speichert weder Berichte noch gesammelte Protokolle in Dateien. Wenn Sie etwas aufbewahren möchten, nutzen Sie „Markdown kopieren“ in der Oberfläche oder die Ausgabe der Befehlszeile. Um ein LLM hinzuzufügen, bearbeiten Sie profiles in der Einstellungsdatei von Hand; in der Oberfläche lässt es sich nicht ändern.
Updates
Auf dem Mac aktualisieren Sie über „Updates“ in den Einstellungen. Nur wenn Sie „Nach Updates suchen“ anklicken, verbindet sich die App mit lafine.net und erhält Informationen zur neuesten Version (eine öffentliche JSON-Datei). Informationen über dieses Gerät oder seine Protokolle werden nicht gesendet. Gibt es eine neuere Version, klicken Sie auf „Herunterladen und installieren“. Die Signatur der heruntergeladenen Datei wird mit dem in die App eingebetteten öffentlichen Schlüssel geprüft; schlägt das fehl, wird nichts installiert. Danach startet die App neu.
Auf dem Mac aktualisiert ein Update von RoamSwitch selbst PersonalSOC nicht. Unter Linux gibt es keine Update-Funktion; PersonalSOC ist in den Updates der RoamSwitch-Pakete enthalten.
9. Wenn etwas nicht klappt
| Symptom | Ursache und Abhilfe |
|---|---|
| Eine Quelle zeigt „Nicht lesbar (Berechtigung)“ | Authentifizierungs-, Webserver- und auditd-Logs sind ohne Administratorrechte nicht lesbar. PersonalSOC erhöht seine Rechte nicht selbst; führen Sie es daher mit sudo aus. Das ist etwas anderes als „keine Erkennungen“: Dieses Log wurde nicht geprüft. |
| Die geplante Ausführung lässt sich nicht speichern | Meldet der Mac, die App laufe von einem temporären, isolierten Ort, verschieben Sie PersonalSOC.app in den Ordner „Programme“, öffnen Sie sie erneut und speichern Sie noch einmal. Heißt es, der Befehl personalsoc sei nicht gefunden worden, muss personalsoc am selben Ort wie die App selbst liegen. |
| Die Untersuchung mit claude scheitert mit „Not logged in“ | PersonalSOC startet claude, ohne Ihre eigenen Einstellungen zu laden (etwa env und apiKeyHelper in ~/.claude/settings.json). Konfigurationen, die sich über diese Einstellungen authentifizieren, etwa mit Proxy, Bedrock oder Vertex, scheitern dadurch. Fügen Sie "llm_user_settings": ["claude"] von Hand zur Einstellungsdatei hinzu, wird claude mit Ihren Einstellungen gestartet. Werkzeuge und MCP bleiben abgeschaltet. |