PERSONALSOC 0.1.14 ・ 最終更新: 2026-10-17

PersonalSOC 操作マニュアル

この端末のログと防御の状況を、ボタン1つで読み取り専用に集めて、ひと目で分かるレポートにするアプリの使い方です。画面の操作を順番に説明し、コマンドラインは後ろの章にまとめています。

1. PersonalSOC とは

PersonalSOC は、この端末のログと防御の状況を集めて、検出事項と報告書にまとめるアプリです。専任の担当者がいない個人が、自分の端末で何が起きているかを根拠つきで知り、次にやることを決められるように作られています。

読み取り専用なので、設定を変えたり、ファイルを消したり、通信を遮断したりはしません。ログの解析は、LLM もネットワークも使わない決まった手順の解析器が行います。LLM 連携は任意で、最初はオフです。

できないこと

2. 入れ方と起動のしかた

PersonalSOC は、RoamSwitch とは別のアプリです。独自のアイコンを持ち、RoamSwitch の配布物に同梱されています。RoamSwitch のメニューに入口はなく、アプリとして単独で開きます。

環境入れ方と開き方
MacRoamSwitch の DMG に PersonalSOC.app が入っています。「アプリケーション」フォルダへ移して、「PersonalSOC」を開きます。macOS 12 以降です。
Linux (クライアント版)RoamSwitch の deb・rpm・tarball・AUR パッケージに同梱されています。アプリの一覧から「PersonalSOC」を開きます。ターミナルからは personalsoc-app です。画面には WebKitGTK 4.1 が必要で、deb と rpm では自動で入ります。AUR では webkit2gtk-4.1 を任意の依存として入れてください。
Linux Server Edition含まれません。サーバー版の運用は運用マニュアル (Linux Server)を参照してください。
RoamSwitch がなくても使えます
PersonalSOC は単体でも使えます。RoamSwitch が入っている端末では、RoamSwitch の読み取り専用の MCP から、未解決の検知や設定診断の結果なども取り込み、ログの検出事項と一緒に1つの報告書にまとめます。入っていなければ、その収集元は使われません。

3. はじめての状況確認

「状況を確認する」を押したときだけ、固定の収集元を読みます。読ませたくない収集元は、設定で外せます。

操作手順

  1. アプリを開き、右上の「設定」を押します。
  2. その下に、この OS で読む収集元が並びます。読ませたくないものがあれば、チェックを外します。
  3. 「保存」を押し、「← 戻る」でホームに戻ります。
  4. 「状況を確認する」を押します。進み具合のバーが出て、終わると結果のタブが並びます。

終わると「確認が終わりました。検出 3 件 / IOC 2 件」のように件数が出ます。タブの見かたは次の章です。

環境読むもの
MacmacOS 統合ログ(直近24時間の sudo と sshd)と、MCP の設定(Claude Code・Claude Desktop・opencode・Cursor)。Web サーバーのアクセスログ(macOS 標準の Apache、Homebrew の nginx と httpd)も読みます。Gatekeeper が拒否した記録は、読むのに約10秒かかるので、最初はオフです。
Linux認証ログ(sshd)、auditd、Web アクセスログ(nginx / apache。仮想ホストごとのログも含む)、DNS クエリログ(dnsmasq / named)、MCP の設定。
共通RoamSwitch が入っていれば、その MCP(読み取り専用)。「RoamSwitch の MCP(読み取り専用)から検知履歴と設定診断を取る」のチェックで切れます。

4. 結果の見かた

タブ見えるもの
ダッシュボード総合リスク(目安)のゲージ、深刻度別の件数、分類ごとの発生件数、発生の推移、MITRE ATT&CK の件数が、図で見られます。
報告書収集元、分類別の検出事項、IOC をまとめた Markdown の報告書です。「Markdown をコピー」で丸ごとコピーでき、「Markdown のソースを表示」で元の文字列に切り替えることもできます。
検出事項検出を1件ずつ見られます。深刻度、確度、ATT&CK の番号、件数、根拠になったログの行番号が付きます。
収集元何を確認したかの一覧です。状態は「読めた」「該当なし」「読めない(権限)」「失敗」「無効」のどれかで、「読めない」と「失敗」の収集元は確認できていません。
IOCログから見つかった IP、ドメイン、URL、ハッシュの一覧です。誤って開かないよう、198[.]51[.]100[.]7 のような無害化した書き方で出ます。
LLM用の要約入力LLM 連携がオフのときだけ出るタブです。手で LLM に渡すための要約で、ログの生の行は入っていません。「コピー」で使います。
総合リスクの数字について
総合リスクは、検知の種類ごとに深刻度と確度で重みを付けて足した、0 から 100 の目安です。確率ではなく、同じ検知が何度出ても増えません。確度は「確定」「有力」「仮説」の3段階です。

5. 設定と定期実行

ホーム右上の「設定」を開くと、機能ごとのタブに分かれています。変えたあとは「保存」を押し、「← 戻る」でホームに戻ります。

表示言語 「自動(OS の設定に従う)」のほか、日本語、English、Deutsch、Español、Français、Italiano、한국어、Português (Portugal)、简体中文、繁體中文から選べます。

定期実行(任意)

「定期的に自動確認する」にチェックを入れて保存すると、Mac は launchd のユーザーエージェント、Linux は systemd のユーザータイマーに登録されます。間隔は 15 分から 24 時間までの 7 段階で選び、最初は 1 時間です。

動くのは personalsoc scan --notify だけで、root は使いません。前回になかった検出があるときだけ通知し、本文は件数だけです(Linux では notify-send が要ります)。「前回になかった検出があるときだけ通知する」で通知を切ることもできます。

チェックを外して保存すると、登録が解除されます。

6. LLM 連携(任意)

LLM 連携は任意で、最初はオフです。有効にすると、状況確認のあとに、選んだ LLM のコマンドが追加の調査をして、監査官として報告書を書きます。使えるのは、opencode、claude、codex、agy のコマンドです。

操作手順

  1. 「LLM 連携を有効にする」にチェックを入れます。
  2. 「使う LLM」を選びます。「(未導入)」と出るものは、この端末にコマンドがありません。
  3. 必要なら、モデルとタイムアウト(秒)を変えます。モデルを空欄にすると、その LLM の既定が使われます。
  4. 「保存」を押してホームに戻り、「状況を確認する」を押します。確認のあと、続けて LLM の調査が走ります。

LLM に渡るもの

道具の制限について

道具を制限できない LLM を使うとき
調査中に LLM が自分の判断でファイルを読むことがあり、読んだ内容はその LLM のサービスに送られます。使うには、「使う LLM」の下の確認にチェックを入れます。確認は LLM ごとで、チェックがないと保存も調査もできません。
Zero Telemetry との関係
RoamSwitch の「Zero Telemetry」(通信内容・ログを外部に送信しない)は、RoamSwitch 本体についての説明です。PersonalSOC の LLM 連携を有効にした場合の通信は、これに含まれません。送り先と扱いは、選んだ LLM とその提供者の規約に従います。LLM 連携をオフのままなら、PersonalSOC がログの内容を端末の外へ送ることはありません。

7. コマンドラインで使う

コマンドは personalsoc です。Linux では /usr/bin/personalsoc にあり、Mac では PersonalSOC.app/Contents/MacOS/ の中にあります。

コマンドできること
personalsoc scanこの端末のログと RoamSwitch(MCP)を自動で確認し、検出を一覧で表示します。root でないと読めないログ(認証・Web サーバー・auditd)は、sudo を付けて実行します。
personalsoc scan --reportMarkdown の報告書を表示します(LLM なし)。
personalsoc scan --llm <name>LLM が読み取り専用のツールで調べて、監査官として書いた報告書を表示します。name は opencode、claude、codex、agy などです。
personalsoc scan --notify前回になかった検出があるときだけ通知します。定期実行が呼ぶ形です。
personalsoc <type> <file>ファイルを指定して解析します。type は sshd、auditd、web、dns、unified、mcp、inject、ioc です。file に - を指定すると標準入力を読み、--report、--brief、--llm も付けられます。
--lang <lang>どのコマンドにも付けられ、表示言語を設定より優先して指定します。コードは ja、en、de、es、fr、it、ko、pt-PT、zh-Hans、zh-Hant です。
コマンドラインでの LLM
コマンドラインでは、--llm を付けて実行すること自体が、LLM に渡す明示の操作なので、設定の「LLM 連携を有効にする」がオフでも動きます。道具を制限できない LLM の確認も求められないので、codex や agy を使うときは、調査中にファイルが読まれて送られる可能性を理解したうえで使ってください。

8. 保存場所とアップデート

保存されるもの

もの場所
設定~/.config/personalsoc/settings.json(自分だけが読み書きできる権限で保存されます)
前回の検出の記録(通知の判定用)~/.local/state/personalsoc/last.json(検出の指紋にあたるハッシュだけで、ログの文字列は残しません)
定期実行の登録Mac は ~/Library/LaunchAgents/dev.personalsoc.scan.plist(出力は ~/Library/Logs/personalsoc-scan.log)。Linux は ~/.config/systemd/user/ の personalsoc-scan.timer と personalsoc-scan.service です。

PersonalSOC は、報告書や集めたログをファイルに保存しません。残したいときは、画面の「Markdown をコピー」か、コマンドラインの出力を使ってください。LLM を増やしたいときは、設定ファイルの profiles を手で編集します。画面からは変えられません。

アップデート

Mac は、設定の「アップデート」で更新します。「アップデートを確認」を押したときだけ lafine.net に接続し、最新版の情報(公開の JSON)を受け取ります。この端末やログの情報は送りません。新しい版があれば「ダウンロードしてインストール」を押します。ダウンロードしたファイルは、アプリに埋め込んだ公開鍵で署名を検証し、失敗したら何も入れません。終わるとアプリが再起動します。

Mac では、RoamSwitch 本体のアップデートでは PersonalSOC は更新されません。Linux にはアップデート機能がなく、RoamSwitch のパッケージの更新に含まれます。

9. こんなときは

症状原因と対処
収集元が「読めない(権限)」になる認証ログ、Web サーバー、auditd のログは、管理者権限がないと読めません。PersonalSOC は自分で権限を上げないので、sudo を付けて実行してください。「検出なし」とは別の状態で、そのログは確認できていません。
定期実行を保存できないMac で「隔離された一時的な場所から実行されています」と出たときは、PersonalSOC.app を「アプリケーション」フォルダへ移して開き直し、もう一度保存します。「personalsoc コマンドが見つからない」と出たときは、アプリ本体と同じ場所に personalsoc が必要です。
claude の調査が「Not logged in」で失敗するPersonalSOC は claude を、利用者の設定(~/.claude/settings.json の env や apiKeyHelper など)を読み込ませずに起動します。プロキシ、Bedrock、Vertex など、その設定で認証している構成では失敗します。設定ファイルに "llm_user_settings": ["claude"] を手で足すと、利用者の設定を読み込ませて起動します。道具と MCP は止めたままです。
← PersonalSOC 製品ページ Mac版 操作マニュアルへ →