RoamSwitch for Mac 操作マニュアル
メニューバーアイコンから開くメニューを、実際の表示順どおりに、一つひとつ丁寧に解説します。初めてRoamSwitchを使う方でも、この順番でメニューを開きながら読み進めれば迷わないように構成しています。
1. このマニュアルについて
RoamSwitchはMacのメニューバーに常駐する🛡️アイコンのアプリです。Dockのアイコンをクリックする一般的なアプリとは異なり、ウィンドウを常に開いておく必要はありません。画面右上のメニューバーにあるアイコンをクリックすると、そのときの状況に応じたメニューが開きます。
メニューの内容は固定ではなく、そのときの状態によって表示される項目が変わります。たとえば「ヘルパーの承認」はヘルパーが未承認のときだけ表示され、承認済みになると消えます。同じように「Air-Gap隔離の解除」も、実際に隔離が発動しているときだけ表示されます。本マニュアルでは、こうした「条件付きで表示される項目」には条件付き表示の印を付けています。
また、多くの高度な機能にはProの印が付いています。これはRoamSwitch Proを購入(または試用)しないと有効化できない機能という意味です。印のない項目は、無料で使えます。無料版で動くのは、信頼済みネットワークごとの保護の切り替え、クリップボードの保護、手動の診断・点検です。ダウンロードの自動スキャン、自動起動の監視、ランサムウェア検知、ポートや SSH の自動遮断などの自動防御は、Pro で動きます。
2. メニューバーアイコンとステータス表示
メニューの一番上には、現在の保護状態を示す一行が表示されます。たとえば 🛡️ 信頼済みネットワークで保護中 のように、絵文字とひとことで今の状態がわかるようになっています。この行をクリックすると、現在の状態をより詳しく説明する画面が開きます。
アイコン自体の見た目も状態に応じて変化します(隔離中は警告色になるなど)。まずメニューバーのアイコンをひと目見るだけで、「今どのくらい守られているか」がおおまかに分かるように設計されています。
メニューの項目には、状態の印が付きます。✅ は、設定がオンで、保護が動いています。🟡 は、一部だけ動いています(ヘルパーが未接続、システム拡張が承認待ち、読めないファイルがある、など)。⚠️ は、設定がオンなのに、動いていません(Pro が有効でない、ヘルパーが未接続、入力を読めない、見る対象がない、おとりを1つも置けなかった、など)。理由は、項目の末尾のかっことポップアップに出ます。同じ状態は、AI クライアントの get_guard_status の liveState と liveStateReason にも出ます。
起動の15秒後に、止まっている保護を名指しした通知を、1回出します。ヘルパーに2回続けて接続できなかったときも、通知を1回出します。
3. ヘルパーの承認 (初回のみ) 条件付き表示
RoamSwitchは、ネットワークを実際に遮断したりファイアウォールを切り替えたりするために、管理者権限で動く「ヘルパー」という小さな補助プログラムを使います。インストール直後、このヘルパーがまだ承認されていない間だけ、メニューの上のほうに⚠️ ヘルパーを承認する…という項目が表示されます。
クリックするとmacOSの管理者パスワード入力画面が表示されます。パスワードを入力して承認すると、この項目は二度と表示されなくなり、以降はすべての保護機能が自動で働くようになります。この承認を行うまでは、RoamSwitchはネットワークを実際に遮断できません。初回セットアップの一部として、必ず済ませてください。
操作手順
- メニューバーの🛡️アイコンをクリックし、
⚠️ ヘルパーを承認する…を選びます。 - 表示されたmacOSのダイアログに、このMacの管理者(Admin)アカウントのユーザー名とパスワードを入力します。
- 「変更を許可」をクリックします。ダイアログが閉じ、メニューから該当項目が消えれば承認完了です。
3.1 通知と、あとで要る許可
RoamSwitch の警告は、macOS の通知で届きます。通知を許可しないと、警告が画面に出ません。通知が許可されていないときは、メニューの最上段、診断の窓、はじめの案内に、その旨が表示されます。そこから、システム設定を開けます。使う機能によっては、あとで次の許可が要ります。
- 通知: 「システム設定」の「通知」で、RoamSwitch を許可します。スタイルを「なし」にしても、警告は画面に出ません。
- フルディスクアクセス: プロセス実行の記録(Pro、自分でオン)に要ります。ランサムウェア復旧でファイルを取り出すときと、Safari の Cookie の監視にも要ります。「システム設定」の「プライバシーとセキュリティ」から許可します。
- システム拡張の承認: リンク保護(Pro)を、DNS を暗号化するブラウザー(DoH)にも効かせるときに要ります。承認するまでは、/etc/hosts の一覧だけで動きます。承認待ちのまま10分たつと、通知します(3日に1回まで)。
- アクセシビリティと入力監視: 不正USB(BadUSB)ガード(Pro、自分でオン)に要ります。
- 位置情報: Wi-Fi の名前を読みたいときだけ、任意で要ります(第5章)。RoamSwitch は、Mac の位置を読み取りません。
許可が足りない機能は、メニューで ⚠️ の印と理由が付きます。Pro を有効にした直後には、オンになったもの、自分でオンにするもの、まだ動かないもの(ヘルパーの承認、システム拡張の承認、フルディスクアクセス、監視フォルダーの登録)を、通知で1回お知らせします。
4. Air-Gap隔離中の表示と解除 条件付き表示
「Air-Gap」は、マルウェア検知やARPスプーフィング検知など、深刻な脅威をRoamSwitchが検知したときに、Macを物理的にネットワークから切り離す緊急防御機能です。発動中は、メニューの上部に隔離の種類(全面隔離/縮退モード)と、わかっていれば発動理由が表示されます。
| 項目 | 説明 |
|---|---|
| 🔒 隔離中(全面) | すべてのネットワーク通信を遮断している状態です。 |
| 🔒 隔離中(縮退) | 必要最小限の通信だけを許可しつつ、疑わしい通信を遮断している状態です。 |
| ℹ️ 隔離の状態と解除の案内… | なぜ隔離されたのか、どう解除すればよいかを説明する画面を開きます。 |
| 🔓 Air-Gap隔離を解除する | 安全を確認したうえで、手動で隔離を解除しネットワーク通信を復旧します。 |
操作手順
- メニューバーの🛡️アイコンをクリックし、隔離状態の行(
🔒 隔離中…)の下にあるℹ️ 隔離の状態と解除の案内…を選び、発動理由を確認します。 - 心当たりのある操作がなければ、同じメニューから
🔓 Air-Gap隔離を解除するを選びます。 - 確認ダイアログで「解除する」を選ぶと、その場でネットワーク通信が復旧します。
5. Wi-Fi接続情報の表示 条件付き表示
Wi-Fiに接続しているとき、接続先のネットワーク名(SSID)と暗号化方式(WPA3など)が一行で表示されます。クリックすると、電波強度や周波数帯といった、より詳しい接続情報を確認できます。有線LANのみで接続している場合はこの行は表示されません。
macOS は、位置情報の許可がないアプリには、接続中の Wi-Fi の名前を渡しません。名前が取れないときは、「接続中(名前を取得できません)」と表示します。このときも、暗号化の方式は名前なしで判定し、Open と WEP には警告します。名前を読むには、位置情報の許可が要ります。許可は、メニューの説明を読んで押したときだけ、求めます。名前が取れないあいだは、似た名前の偽アクセスポイントの検知は動きません。
6. 現在のネットワークの登録・切替
RoamSwitchの中心となる考え方は「自宅や職場のような信頼できる場所ではゆるく、それ以外の未知のネットワークでは厳しく守る」というものです。そのために、今いるネットワークを一度登録しておくことで、次回以降その場所に来たときに自動でセキュリティレベルを切り替えられるようになります。
まだ登録していないネットワークにいる場合
| 選択肢 | 説明 |
|---|---|
| 「自宅」として登録 (信頼) | 最もゆるいセキュリティレベルで登録します。自宅のWi-Fiなど、家族しか使わない場所向けです。 |
| 「職場」として登録 (標準保護) | 中程度のセキュリティレベルで登録します。オフィスなど、他人と共有する場所向けです。 |
| 「テザリング」として登録 (標準保護) | スマートフォンのテザリングなど、自分専用だが公衆網に近い回線向けです。 |
| カスタム名で登録… | 名前とセキュリティレベルを自分で指定して登録します。「実家」「サテライトオフィス」など、用途に合わせて名付けられます。 |
操作手順
- 登録したいネットワークにMacを接続した状態で、メニューバーの🛡️アイコンをクリックします。
現在のネットワークを登録にカーソルを合わせ、開いたサブメニューから「自宅」「職場」「テザリング」のいずれか、または「カスタム名で登録…」を選びます。- 「カスタム名で登録…」を選んだ場合は、表示された入力欄に好きな名前を入力し、続けてセキュリティレベルを選んで「登録」をクリックします。
登録済みのネットワークにいる場合
サブメニューには、そのネットワークに設定できるセキュリティレベル(信頼・標準保護など)がラジオボタンの一覧で並び、現在選ばれているレベルにチェックが付きます。クリックすればその場でレベルを変更できます。区切り線の下には「名称を変更…」「登録を解除」があり、ネットワークの呼び名を直したり、登録そのものをやめたりできます。
操作手順
- セキュリティレベルを変更する場合: メニューバーの🛡️アイコン→
現在のネットワーク: {登録名}から、切り替えたいレベルをクリックするだけで即座に反映されます。 - 名称を変更する場合: 同じサブメニューの区切り線の下にある「名称を変更…」をクリックし、新しい名前を入力して「保存」をクリックします。
- 登録を解除する場合: 同じサブメニューの「登録を解除」をクリックします。次回このネットワークに接続したときは「未登録」として扱われ、外出先デフォルト保護(8章)が適用されます。
7. 登録済みネットワークの管理
これまでに登録したすべてのネットワークが、サブメニューに一覧で並びます。各項目は {登録名} [{セキュリティレベル}] ({MACアドレスの一部}) という形式で表示され、さらにその先に、6章と同じセキュリティレベルの切替・名称変更・登録削除のメニューが続きます。今は近くにいない、外出先で登録したネットワークをまとめて見直したいときに使います。一つも登録していない場合は、その旨を示す空の状態が表示されます。
操作手順
- メニューバーの🛡️アイコン→
登録済みネットワーク (件数)にカーソルを合わせます。 - 見直したいネットワークの項目にさらにカーソルを合わせると、6章と同じセキュリティレベルの一覧・「名称を変更…」・「登録を解除」が現れるので、必要な操作を選びます。
8. 外出先デフォルト保護
カフェや駅、空港など、一度も登録したことのないネットワークに接続したときに自動で適用されるセキュリティレベルです。サブメニューから選べば、その既定レベルを変更できます。知らないネットワークほど油断できないため、初期状態では最も厳しいレベルが選ばれています。よほどの理由がない限り、下げないことをおすすめします。
操作手順
- メニューバーの🛡️アイコン→
外出先デフォルト保護: {レベル}にカーソルを合わせます。 - 開いたサブメニューから、既定にしたいセキュリティレベルをクリックします。
9. マルウェア対策 (XProtect & ClamAV)
RoamSwitchのメニューの中でもっとも項目数が多いのがこのサブメニューです。macOS標準のXProtectから、無料アンチウイルスのClamAV、Web・メールのダウンロード保護、DNSレベルでの脅威対策、フィッシングリンク検知、さらに多数のPro向け監視機能まで、マルウェア・不正アクセス関連の設定がここに集約されています。上から順に見ていきます。
9.1 Apple XProtect
macOSに標準搭載されているマルウェア検知エンジンXProtectの、現在のバージョンと稼働状況を確認できます。「XProtect 稼働状態を確認…」で詳細を、「ファイルアプリの安全性診断…」で個別ファイルの簡易チェックができます。RoamSwitchが何かを追加しているわけではなく、既にMacに入っている保護機能を見える化する項目です。
操作手順
- 個別ファイルを調べる場合: マルウェア対策サブメニューから「ファイルアプリの安全性診断…」を選び、開いたウィンドウにFinderからファイルをドラッグ&ドロップするか「ファイルを選択」で調べたいファイルを指定します。
9.2 ClamAV (無料アンチウイルス)
ClamAVはオープンソースの無料アンチウイルスエンジンです。インストール済みの場合、サブメニューから「今すぐクイックスキャン」「カスタムスキャン(フォルダを指定)」「ウイルス定義を更新」「隔離したファイルの管理」などが行えます。未インストールの場合は、インストールを促す案内が代わりに表示されます。
操作手順
- スキャンを実行する場合: マルウェア対策サブメニュー→ClamAV→「今すぐクイックスキャン」、または「カスタムスキャン…」を選んでフォルダを指定します。進行状況はメニューバーアイコンやスキャンウィンドウで確認でき、完了すると結果が通知されます。
- 隔離されたファイルを扱う場合: 同じサブメニューから「隔離管理」を開き、一覧からファイルを選んで「復元」(誤検知だった場合に元の場所へ戻す)または「完全に削除」を選びます。
- ウイルス定義を更新する場合: 同じサブメニューから「ウイルス定義を更新」をクリックします。最新の定義がインターネット経由で取得されます。
9.3 Web・メール保護 (ダウンロード自動スキャン) Pro
ダウンロードフォルダなど、監視対象に指定したフォルダに新しいファイルが現れるたびに、自動でウイルススキャンを行う機能です。ブラウザでファイルをダウンロードした瞬間や、メールの添付ファイルを保存した瞬間に、開く前にチェックできます。トグルで有効・無効を切り替え、「📁 監視対象フォルダ」で対象を追加・編集し、「隔離管理」でスキャン結果ごと隔離されたファイルを確認します。有効時は、直近のスキャン履歴も表示されます。
操作手順
- マルウェア対策サブメニュー→「Web・メール保護」の行を確認します。Pro を有効化した時点でオンになっています。オフにしてある場合は、その行をクリックしてトグルをオンにします。
- 「📁 監視対象フォルダ」を開き、「フォルダを追加」でダウンロードフォルダなど監視したい場所を選んで「保存」します(既定でダウンロードフォルダが含まれます)。
- 以降は該当フォルダに新しいファイルが現れるたびに自動でスキャンされます。検知時は通知が届き、ファイルは隔離管理に移動します。
9.4 DNS脅威保護 (悪質サイト・C2遮断) Pro
フィッシングサイトや、マルウェアが攻撃者のサーバーと通信する際に使う「C2(指令サーバー)」など、危険なドメインへの名前解決そのものをDNSレベルでブロックする機能です。トグルで有効化したあと、「プロバイダー」でどのセキュアDNSサービスを使うか、「適用ポリシー」でどのネットワークで適用するかを選びます。有効時は、現在セキュアDNSが実際に適用されているか、信頼済みネットワークのため適用除外になっているかが最下部に表示されます。
操作手順
- マルウェア対策サブメニュー→「DNS脅威保護」の行を確認します。Pro を有効化した時点でオンになっています。オフにしてある場合は、その行をクリックしてトグルをオンにします。
- 「プロバイダー」にカーソルを合わせ、使用したいセキュアDNSサービスをクリックします。
- 「適用ポリシー」にカーソルを合わせ、どのネットワークで適用するか(すべて/未信頼ネットワークのみ、など)を選びます。
9.5 リンク保護 (フィッシング接続の検知) Pro
クリックしようとしているリンクや、アプリが接続しようとしている接続先を、既知のフィッシングサイト一覧と照合してリアルタイムに警告する機能です。動作モードをサブメニューから選べるほか、フィッシング情報のフィード更新状況の確認、自動更新のオン・オフができます。有効時は、実際にどの仕組み(ブラウザ拡張・ネットワーク層など)でチェックが行われているかも表示されます。
操作手順
- マルウェア対策サブメニュー→「リンク保護」にカーソルを合わせ、動作モード(通知のみ/自動遮断など)をクリックして選びます。
- 「自動更新」の行をクリックすると、フィッシング情報フィードの自動更新をオン・オフできます。
通知の「今回は許可 (5分)」と、警告パネルの「許可する」は、5 分間だけの許可です。許可の終了時刻は保存するので、アプリを閉じても、再起動しても、5 分で終わります。
リンク保護は、システム拡張を承認すると、DNS を暗号化するブラウザー(DoH)の接続にも効きます。承認の前は、/etc/hosts の一覧だけで動くので、DoH の接続は止められません。承認するには、「リンク保護」の中の「システム拡張を承認 (システム設定を開く)…」を選び、「システム設定」で許可します。承認しなくても、/etc/hosts による自動ブロックは動きます。承認待ちのまま10分たつと、通知します(3日に1回まで)。承認待ちのあいだは、メニューの印が 🟡 になります。
CVE データとリンク保護の一覧は、最後に更新できた時刻と、直近の失敗を、各 CVE の窓とメニューに出します。MCP の get_guard_status では feedUpdates です。
9.6 その場で使う手動チェックツール
| 項目 | 説明 |
|---|---|
| 🔗 リンクを手動でチェック… | 気になるURLを1件だけ貼り付けて、フィッシング・悪質サイトでないかその場で確認します。 |
| 🔑 機密情報・APIキー漏洩を手動監査… | Macの中に、うっかり平文で保存されたAPIキーやパスワードなどの機密情報がないかスキャンします。 |
| 📦 パッケージCVE照合 (Homebrew)… | Homebrewでインストール済みのパッケージに、既知の脆弱性(CVE)がないか照合します。 |
| 🤖 AIエージェントの指示ファイルを監査… | AIエージェント(Claude Code・Codex・Cursor・Gemini・OpenClawなど)に読ませる指示ファイル・スキルと、OpenClawの設定にある危険な記述を点検します。画面に見えない文字や、curl | sh のように取得してそのまま実行する記述などを探します。通信はせず、鍵やトークンの値は表示しません。登録済みのプロジェクトフォルダーでは、フォルダーを開くだけで動く VS Code のタスクと、GitHub Actions の危うい書き方も探します。エージェントのメモリも読みます。Claude Code の設定ファイル(settings.json)にある、確認なしの全許可、フック、API の接続先の変更も探します。 |
操作手順
- リンクを手動でチェック: 項目を選ぶと入力欄が開くので、確認したいURLを貼り付けて「チェック」をクリックします。数秒で安全性の判定が表示されます。 脅威レポートにある
hxxps://example[.]comのような書き方のまま貼り付けても、元のアドレスに戻してから判定します。 - 機密情報・APIキー漏洩を手動監査: 項目を選ぶとスキャンが始まり、完了すると検出結果(ファイルパスと種類)が一覧表示されます。
- パッケージCVE照合: 項目を選ぶとHomebrewのインストール済みパッケージを列挙し、既知の脆弱性と照合した結果が一覧表示されます。 各行の「受容…」から理由と期限(30・90・180・365日)を決めると、その検出を「要対応」の数から外して、受容中として別に数えます。受容中の行も一覧に残り、期限が切れると通常の検出に戻ります。インストール済みのバージョンが変わったときは、受容は引き継がれません。マップに EPSS(悪用される確率の目安)がある脆弱性には「EPSS 12%(日付)」と表示され、同じ深刻度の中では高い順に並びます。悪用が確認された印ではありません。「依存関係の取得元 (Pro)」タブでは、pip の extra-index-url と、.npmrc で取得先が固定されていない npm の @scope を調べます(ファイルを読むだけで、レジストリには問い合わせません)。「インストールスクリプト (npm) (Pro)」タブでは、「今の状態を確認済みにする」を押した後に、インストール時に動くコード(スクリプトの追加・変更、コンパイル済みコードの追加)が増えたパッケージを知らせます。なくなったものは知らせません。確認済みにできるのは、この画面のボタンだけです。Homebrew が無い、失敗した、0件のいずれかのときは、灰色で「何も調べていません」と表示し、問題なしとは言いません。AI クライアントには、
homebrewInventoryで同じ区別を返します。 - AIエージェントの指示ファイルを監査: 項目を選ぶと点検が始まり、指摘がカードで一覧表示されます。「リスク: 高」「リスク: 中」と、ファイルの場所・行番号が出ます。一致は「人が読んで確認する箇所」で、悪意の断定ではありません。「Finderで表示」で該当のファイルを開けます。変更の通知は Pro です。「確認済みにする」を押して基準を作るまでは、何も通知しません。基準がないときと、Pro が有効でないときは、その理由が、メニューと点検の窓に出ます(
get_guard_statusのagentSetupWatch)。
9.7 常時監視のオン・オフ切替一覧
ここから先は、バックグラウンドで常に働く個別の監視機能を、チェックのオン・オフで切り替えるトグル項目です。表示順のとおりに並べています。Pro を有効化した時点で、ランサムウェア検知、認証情報ハニートークン、自動ログ監査、重要ファイルとロックファイルの改ざん監視、XProtect連動の自動遮断などは自動でオンになります。「ポート・デバイス監視」にある「SSH総当たりの検知と遮断」(11.3 節)も、Pro を有効化すると自動でオンになります(リモートログインがオンのときだけ働きます)。ClickFix対策、Dockerの検知、ブラウザ認証情報のアクセス監視、プロセス実行の記録は、通常の利用を妨げうる、または追加の権限が要るため、既定ではオフです。特に理由がなければ、オンになっているものはそのままにして、必要なものだけ自分でオンにしてください。リバースシェルの常時検知とネットワーク設定の変化の監視も、Pro を有効化すると自動でオンになります(どちらも通知のみです)。
通知には、起こしたプログラム(パスと PID)、親プロセス、コマンド(秘密の値は伏せます)を載せます。自動起動、重要ファイル、ロックファイルのように、ファイルの変更を見つける監視は、macOS が書いたプロセスを教えないので、変更の時刻の前後に起動したコマンドを、書いたとは限らない手がかりとして載せます(プロセス実行の記録がオンのとき)。特定できないときは、そう書きます。
操作手順 いずれも、マルウェア対策サブメニューの該当行をクリックするだけでオン・オフが切り替わります(チェックマークの有無で現在の状態がわかります)。「ランサムウェア復旧…」「プロセス実行の記録…」は切替ではなく専用ウィンドウを開く項目です。
| 項目 | 説明 |
|---|---|
| XProtectのマルウェア検知時に自動でネットワーク遮断 Pro | XProtectがマルウェアを検知した瞬間に、自動でネットワーク通信を遮断します。 |
| 新規の自動起動登録を監視 Pro | LaunchAgent/LaunchDaemonへの新しい自動起動登録を監視し、不審な永続化(マルウェアの居座り)を検知します。あわせて、シェルの起動ファイル(.zshrc など)、周期スクリプト、SSH の rc、git フック、ログイン・ログアウトフック、フォルダアクションのスクリプトに加わった不審な行も、5 秒ごとに調べます。 |
| 不審なTerminalコマンド(ClickFix対策)検知時に自動遮断 Pro | 偽のエラー画面などに騙されてTerminalに悪意あるコマンドを貼り付けさせる「ClickFix」型攻撃を検知し遮断します。ただし、rustupやHomebrewなど既知の公式インストーラーのURLと一致する場合は、遮断はせず通知のみです。 |
| Dockerの特権コンテナ・docker.sockマウントを検知 Pro | コンテナ脱獄につながりやすい危険な設定(特権モード起動、docker.sockの誤マウント)を検知します。 Exegol(ペンテスト用環境)のコンテナは、それだけでは通知しません。特権などで通知するコンテナが Exegol のものだったときに、そのことを一文で添えます。 |
| 🐤 ランサムウェアおとりファイル検知 Pro | 目立つ場所にわざと「おとりファイル」を置いておき、それが暗号化・改ざんされたら即座にランサムウェアと判断します。 |
| 🔐 汎用ランサムウェア検知(エントロピー解析) Pro | ファイルの中身がランダムに近いデータ(=暗号化された可能性が高い)に急激に変化する様子を統計的に検知します。おとりファイルを踏まない新種のランサムウェアにも対応します。全体の値が低くても、4KiBごとに区切った窓のうち2つ以上が暗号化されたデータのように見えれば数えます。ファイルの先頭だけ、または4KiB以上のブロックを1つおきに暗号化する方式も対象です。 |
| 🍯 認証情報ハニートークン Pro | 実在しない「おとりの認証情報」を仕掛けておき、それが読み取られたら侵入者がいる証拠として検知します。Mac では、本物の認証情報ファイルを読む動きは検知できません(EndpointSecurity を使わず、どのプロセスがファイルを開いたかを確実には見られないためです)。Claude Code や Codex など、AI ツールが起動のたびに自分で読むサインイン用ファイルの場所には、おとりを置きません。通知には、偽ファイルのパス、読んだプログラム、親プロセス、コマンドを載せます。読んだプロセスが終了していて特定できないときは、そう書きます。 |
| 🔑 ブラウザ認証情報アクセス監視 Pro | ブラウザに保存されたパスワードやCookieへの不審なアクセスを監視します。情報窃取マルウェアの典型的な挙動です。対象は、Chrome・Brave・Edge・Vivaldi・Chromium・Arc・Opera・Opera GX・Firefox と、Safari の Cookie です。Safari は、macOS がそのフォルダーの読み取りを許す場合(フルディスクアクセスがあるとき)だけ見られます。Orion と DuckDuckGo は対象外です。どのプロセスが開いたかは推定で、通知のみです。Pro でも既定ではオフです。 |
| 🗂 ランサムウェア復旧… Pro | ランサムウェア被害の前に、RoamSwitchが定期的に取っているAPFSのローカルスナップショットから、ファイルを別の場所(~/RoamSwitch-Recovered/<ID>/)へ取り出す窓を開きます。現在のファイルは上書きしません。取り出すには、フルディスクアクセスの許可が要ります。 |
| 🧾 プロセス実行の記録… Pro | 起動したプロセスの履歴を記録しておき、インシデント発生後の調査(何が実行されたか)に使えるようにします。 自分で ~/Library/Application Support/RoamSwitch/sigma.d に置いた Sigma ルール(process_creation の一部の書き方)も評価します。一致は通知とタイムラインへの記録だけで、遮断はしません。読み込めなかったルールは、理由つきで記録の画面に出ます。シェルの -c や、直接起動した nc・ncat・socat のコマンドラインに書かれたリバースシェルの形も検知します(ルールは全14種。exec.reverse_shell_argv)。echo > /dev/tcp/host/22 のようなポートの疎通確認は対象外です。署名なしバイナリの実行は、/tmp のほか、/var/folders 配下の一時フォルダー(TMPDIR)と /Users/Shared から起動したものも対象です。Xcode・Go・Swift・Cargo などの開発ツールが一時フォルダーに作って実行するプログラムは対象外です。攻撃ツールの起動の検知(EXR-009・EXR-010)では、ツールの名前に chisel・ligolo・mimikatz・sliver・impacket 系などを加えました。frp・nps・ngrok・ssh は、日常に使うので入れていません。スクリプトやエージェントが複数の攻撃ツールを短時間に起動する検知は、実行ファイルが /Users・/tmp・/private/tmp・/var/folders にあるプログラムにも広げました。端末・ssh・login の連鎖は、これまでどおり対象外です。 |
| 📡 イベントの転送(SIEM)… Pro | インシデントと通知を、自分で入力した SIEM・syslog・Webhook・ファイルへも送ります。既定ではオフです。「イベントの転送…」は切替ではなく専用ウィンドウを開く項目です(9.10)。 |
| 🔔 自動ログ監査(新規パターン・頻度異常を定期学習) Pro | システムログを定期的に学習し、いつもと違うパターンや頻度の異常を自動検知して通知します。通知するのは、認証の失敗やXProtectの検知など、セキュリティに関わる異常だけです。OSの通常動作によるログの変化は、通知せず、監査画面にだけ表示します。 |
| 🔔 重要システムファイルの改ざんを定期監視 Pro | OSの重要ファイルが書き換えられていないかを定期的にチェックします(FIM: ファイル整合性監視)。ファイルの変更を通知するときは、所有者と最終更新の時刻に加えて、変更の30分前から変更の直後までに始まった SSH のログイン(接続元・アカウント・認証方法・時刻、まだ接続中か)と、それより前に始まっていまも続いているセッションを添えます。時間が重なっているというだけの手がかりで、書き換えたのがそのセッションだとは分かりません(macOS は、ファイルを書き込んだプロセスを教えないためです)。該当するログインが見つからなければ、その旨を書きます。SSH総当たりの検知がオフのときは、ログインの記録を確認できなかったと書きます。対象には、/etc/sudoers.d と /etc/pam.d のすべてのファイルも入っています。これらのフォルダーに新しいファイルが加わったときも通知します。通知は1回で、そのファイルはその後の基準に加わります。sudo で Touch ID を有効にすると作られる /etc/pam.d/sudo_local も、新しいファイルとして1回だけ通知されます。この対象を加えた版への更新時は、そこにあった既存のファイルを一度だけ基準として取り込みます。macOS を更新したあとの最初の確認では、/etc/pam.d のファイルを新しい OS の内容として取り込み直します(変更、追加、削除のどれも、そのまま基準になります)。その最初の確認では、/etc/pam.d の差は通知しません。ほかのファイルは取り込み直しません。変更されたファイルと削除された重要ファイルは、人が確認するまで通知の対象のままです。確認したら、メニュー「重要ファイルの基準を現在の状態に更新…」で差分の一覧を見て、基準を更新できます。 |
| 🔔 依存関係ロックファイルの改ざんを定期監視 Pro | 開発プロジェクトの package-lock.json などのロックファイルが不正に書き換えられていないかを監視します。サプライチェーン攻撃対策です。 |
| 🐚 リバースシェルを常時監視 Pro | ログイン中のユーザー自身のシェルやインタプリタ、nc・ncat・socat を 4 秒ごとに調べ、入力と出力が公開アドレスへの外向きの TCP 接続になっているものを、2 回続けて見たときに通知します。シェルを /dev/tcp につなぐ形、ncat -e、mkfifo を使った中継などが対象です。通知のみで、プロセスの終了もネットワークの遮断もしません。Pro を有効化すると自動でオンになります。限界 root 権限のプロセスと、家庭内 LAN・Tailscale などのプライベートアドレスへの接続は見ません。一覧にない名前のプログラムも見ません。心当たりのあるプログラムは、メニューの「直近のリバースシェル検知を許可リストに追加…」で「名前@接続先」として追加できます。プロセス実行の記録のルール exec.reverse_shell_argv は起動時のコマンドラインの形を見るもので、この監視は接続したあとの実際の状態を見ます。 |
| 🌐 ネットワーク設定の変化を監視 Pro | 接続したネットワークが配った DNS サーバー、ルーター、プロキシ自動構成(PAC)、プロキシの自動検出(WPAD)を、同じネットワークの前回の状態と比べます(偽の DHCP サーバーや WPAD の手がかりです)。ネットワークは、Wi-Fi の名前かルーターのハードウェアアドレスで見分けます。見たことのない DNS サーバーや PAC のホストが現れたとき、WPAD が新しくオンになったときに通知します。初めて見るネットワークは覚えるだけで、通知しません。見たことのないルーターだけが現れたときも、覚えるだけです。新しいルーターが自分のアドレスを見たことのない DNS サーバーとして配ったときは、新しいルーターと新しい DNS サーバーが一緒に現れたことになり、強い通知になります。すでに知っているルーターが自分のアドレスを配っても通知しません。VPN などのトンネルと、手動や構成プロファイルで設定した DNS は比べません。通知のみで、設定の変更も遮断もしません。ルーターの交換のような心当たりのある変化は、メニューの「ネットワーク設定の基準を現在の状態に更新…」で、今の状態を正しい状態として記録できます。自動では受け入れません。Pro を有効化すると自動でオンになります。限界 前回と同じ DNS とルーターを配る偽サーバーは見つけられません。 |
| 🕸 Webサーバーのワーカーの異常終了を監視 Pro | nginx と Apache(Homebrew と macOS 標準)のエラーログを読み、ワーカーが 5 分のあいだに 3 回、クラッシュのシグナル(SIGSEGV・SIGABRT など)で終了したときに通知します。ワーカーは親プロセスが作り直すので、ほかの監視には映りません。脆弱性を突く攻撃の試行や、プログラムの不具合の目印になります。通知は同じサーバーにつき 1 時間に 1 回で、止めたり遮断したりはしません。nginx の設定にある error_log も読みます。 |
プロセス実行の記録は、Pro で、自分でオンにします。補助プロセスが eslogger を動かすので、フルディスクアクセスの許可が要ります。オンにするまで、記録も、改ざん検知(ハッシュの連鎖)もありません。
依存関係ロックファイルの監視は、「パッケージCVE照合」に登録した監視フォルダーだけを見ます。登録がないと、何も見ません。そのときは、メニューに ⚠️ と理由が出ます。
おとりとハニートークンは、置けた数と、置けなかった理由を、メニューに出します。1つも置けていないときは ⚠️ です。本物の認証情報ファイルがある場所には、置きません。
Docker の検知は、docker が応答しないと、⚠️ と理由を出します。有効にした時点で動いていたコンテナは、検査しません。
Web サーバーのワーカーの異常終了の監視には、オン・オフのスイッチがありません。Pro のとき、起動時から働きます。追っているログの数と状態は、get_guard_status の webWorkerCrashWatch に出ます。
ランサムウェア復旧のスナップショットを作れなかったときは、復旧の窓と、MCP の lastSnapshotError に理由を出します。3回続けて失敗すると、通知を1回出します。
AI クライアントの MCP ツールには、このほかに、次の項目があります。lastSnapshotError(スナップショットの失敗)、placement(おとりの設置数と理由)、feedUpdates(データの更新)、homebrewInventory(Homebrew を調べられたか)、get_incident_timeline の recordFile(記録を読めなかったとき)、webWorkerCrashWatch、agentSetupWatch、リンク保護が一部だけ動いている理由(システム拡張の承認待ちなど)、監視フォルダーが未登録のときの no_folders_registered、get_detection_coverage の techniques[].liveStateReason です。
入力を読めなくなったとき ログやファイルの変更を読んで働く監視(SSH 総当たり、着信ポートスキャン、プロセス実行の記録、XProtect 連動、ClickFix、重要ファイルとロックファイルの改ざん監視、ランサムウェア検知、ブラウザ認証情報、Web・メール保護、自動起動の監視)をオンにしているのに、その入力を読めなくなると(補助プロセスが動かない、権限がない、対象のファイルがない、ファイルの変更を監視する仕組みを開始できない、など)、「入力を読めていません」という通知で原因をお知らせします(同じ停止につき 1 通、10 分に 1 通まで)。読めていない間に起きたことは検知できず、読めるようになってもさかのぼっては読みません。AI クライアントの get_guard_status には、各ガードの liveState(on / off / partial / unknown)と、再起動・見えなかった区間・読めなかったファイルの数(readers)が出ます。入力を読めないガードを「オン」と表示することはありません。リバースシェルの常時検知(プロセスの一覧を読めないとき)と、ネットワーク設定の変化の監視(システム構成ストアの監視を開始できないとき)にも、同じ通知と表示があります。
9.8 動作確認用シミュレーション
「本当に守られているか」を安全に確認するための、無害な模擬テスト機能です。実際の脅威を発生させることなく、検知〜通知〜(必要なら)自動遮断までの一連の流れが正しく動くかをその場でシミュレーションできます。導入直後の動作確認や、定期的な健全性チェックにおすすめです。
| 項目 | 説明 |
|---|---|
| 🚨 ランサムウェア防護シミュレーション | おとりファイル検知・エントロピー検知の仕組みを、無害なテストファイルで疑似的に発動させます。 |
| 🚨 マルウェア検知連動Air-Gapのシミュレーション | マルウェア検知からAir-Gap隔離発動までの流れを、実害なく一通り試せます。 |
| ⚠️ Dockerリスク検知のシミュレーション | 特権コンテナ検知の通知が正しく届くかを確認します。 |
操作手順
- マルウェア対策サブメニューから試したいシミュレーション項目を選びます。
- 確認ダイアログが出た場合は「実行」を選びます。数秒〜数十秒後、実際の検知時と同じ形式で通知が届けば正常に動作しています。
9.9 Webシェル等の検知ルール(Web Rules)
Web を開発している Mac のために、PHP・JavaScript・JSP・ASP の Web シェルや注入された不正コード、画像に偽装した PHP、.htaccess の悪用を見つけます(Mac 1.11.11 以降)。対象は、~/Sites、MAMP、Herd、Local、/Library/WebServer/Documents、パッケージ CVE 照合に登録したプロジェクトフォルダー、そして Web・メール保護がすでに見ているフォルダー(ダウンロードなど)です。ClamAV が入っていなくても動きます。
設定は、メニューバー 🛡️ アイコン → マルウェア対策 → 「Webシェル等の検知ルールの設定…」で開きます。画面には、ルールの版と件数、「開発用のWebフォルダを今すぐ検査」、ルールとフックのフォルダーを開くボタン、「自動で隔離する水準」、アカウント対処のスイッチ、検知したがそのまま残しているファイルの一覧があります。
隔離は、既定では「critical だけ」です。重大な検知(eval($_POST[...]) のような一行 Web シェルなど)は隔離庫へ移して通知します(「隔離ファイルを管理」から戻せます)。それより低い「high」の検知は、ファイルに触れず、通知と、画面の一覧に出すだけです。一覧では、「Finderで開く」「今後は検知しない」「一覧を消去」ができます。作業中のファイルが誤検知で動かないようにするための既定です。水準は「隔離しない」「criticalだけ」「criticalとhigh」から選べます。「今後は検知しない」を選んだファイルの一覧は、ClamAV の除外とは別です。
いつ調べるか: ダウンロードなど、すでに見ているフォルダーは、書き込まれた直後に調べます。開発用の Web フォルダーは、1 日 1 回と、「開発用のWebフォルダを今すぐ検査」で調べます。1 日 1 回の検査は、時間がかかるため node_modules と .git に入りません(フォルダーを指定した検査は node_modules にも入ります)。Mac は、実行する前に止めることはできず、すべて事後の検知です。
調べられなかったものがあるとき: 開発用の Web フォルダーの検査で、開けないファイルや種類を確認できない項目、一覧を取得できないフォルダー、4 MB を超えて先頭しか調べていないファイルがあると、その件数と「検知なし」の意味を通知でお知らせします(ボタンで自分で始めた検査は通知、1 日 1 回の検査は通知履歴に残ります)。この場合の「検知なし」は、調べられた範囲に不正なコードが見つからなかったという意味です。何も飛ばさなかった検査の表示は変わりません。件数は、MCP ツール get_guard_status の webRulesFolderScan にも出ます。
上級者向け: 独自のルールは「ルールのフォルダを開く」で開く場所(~/Library/Application Support/RoamSwitch/rules.d)に置きます(所有者が root か自分で、他人が書き込めないファイルだけを読みます)。検知のたびに自分のスクリプトを呼ぶには、「フックのフォルダを開く」で開く場所(~/Library/Application Support/RoamSwitch/hooks)に、実行ファイル post-detection を置きます(検知の内容が JSON で標準入力に渡されます。30 秒で打ち切られます)。アカウント対処(「検知時に、ファイルの持ち主のログインシェルを無効化する」)は、既定でオフです。オンにするには管理者パスワードが必要で、隔離できたファイルの持ち主が対象です。ログイン中のユーザー(この Mac を使っているあなたを含む)、root、UID 501 未満には、何もしません。無効にしたアカウントは、画面から元に戻せます。 書いた独自ルールの確認には、「ルールファイルを検証…」でJSONファイルを選びます。使えるルールの数、書き間違い(知らないキーには、近いキーを候補に添えます)、既存のルールを置き換えるかどうかが出ます。「スキーマを書き出す」は、エディタでキーの補完と書き間違いの指摘を効かせるための JSON Schema を ~/Library/Application Support/RoamSwitch/web_rules.schema.json に書き出します(rules.d の中には置きません)。独自ルールが組み込みやフィードの同じ id のルールを置き換えたときは、警告ではなく注記として画面に出ます。
9.10 イベントの転送(SIEM・syslog・Webhook) Pro
RoamSwitch が記録したインシデントと通知を、自分で用意した SIEM・syslog サーバー・Webhook・ファイルにも残すための機能です。既定ではオフで、何も送りません。メニューバー 🛡️ アイコン → マルウェア対策 → 「イベントの転送(SIEM)…」で開く画面で「イベントを転送する」をオンにして、送り先を入力したときだけ動きます。Pro のライセンスが有効なときだけ送信します。
送るもの: ホスト名・イベントID・時刻・種類・重大度・ルール・対処・プロセスIDとプロセス名・概要だけです。ファイルの中身、画面、入力した文字は送りません。RoamSwitch の運営側の受け口はありません。インシデントにはプロセスの名前と ID が含まれるので、送り先の管理者はそれを見られます。
送り先(使うものだけ入力): syslog(udp://・tcp://・tls://。形式は RFC 5424 か CEF。TCP と TLS は文字数つきか改行で区切る)、JSON Lines ファイル(0600。「1ファイルの上限」で世代交代)、署名付き Webhook(HMAC-SHA256。宛先と署名鍵はキーチェーンに保存)。TLS は証明書の連鎖とホスト名を確認し、確認できなければ送りません。社内のCAは PEM ファイルで指定でき、その場合はそのCAだけを信頼します。「転送する最低の重大度」で送るものを絞れ、「テストを送る」で、保存する前に送り先を確かめられます。
送れなかったとき: TCP・TLS・Webhook は、この Mac のディスク上のキュー(0600。「再送キューの上限」と「再送を続ける時間」で制限)に置き、間隔を空けて再送します。アプリを終了するときに送り切れなかった分も、キューに残します。UDP とファイルは再送しません。送れた数・失敗した数・直近のエラー・再送待ちの数は、同じ画面の「状態」に出ます。
Linux 版との違い: 形式と設定項目、再送の動きは Linux 版(サーバー運用マニュアル §16)と同じです。組織ポリシー(Fleet)による送り先の指定と、Webhook の内部アドレスの拒否は、Mac 版にはありません。
9.11 ClickFix 対策(貼り付ける前の確認と、実行後の履歴の確認) Pro
ClickFix 対策は、Pro で、自分でオンにします(既定はオフ)。見つけ方は2つです。1つは、貼り付ける前の、クリップボードの確認です。もう1つは、実行したあとの、シェル履歴の確認です。
クリップボードの確認: 中身が変わったときだけ読み、ClickFix の規則に一致すると、「貼り付けると危険なコマンドの可能性があります。端末に貼り付けないでください。」と通知します。通知のボタンで、クリップボードを空にできます。自動では消さず、Air-Gap も発動しません。中身は保存せず、通知に載せるのは、規則名と先頭8文字だけです。
クリップボードを読むのは、macOS 15.4 以降で、「システム設定」の「プライバシーとセキュリティ」→「ほかのアプリからの貼り付け」で、RoamSwitch を「許可」にしたときだけです。それ以外では読まず、メニューに「クリップボードの確認は許可されていません」と表示します(AI クライアントでは、読み取り元が clipboard_not_permitted です)。
シェル履歴の確認: これは、実行したあとの検知です。zsh は、既定では、シェルを終了するまで履歴に書きません。そのため、Terminal のタブを閉じるまで、検知されません。
~/.zshrc に setopt INC_APPEND_HISTORY を足すと、実行の直後に検知できます。ClickFix 対策を有効にした直後と、メニューから、同意を得て足せます。足す行とファイルを表示し、~/.zshrc.roamswitch-backup に複製してから書きます。既存のバックアップは上書きせず、時刻つきの別名にします。「元に戻す」は、足した行だけを消します。設定済みなら、「タブを閉じるまで検知されません」の表示は出ません。
限界として、この設定は、Terminal で開いているタブには効かず、新しいタブから有効になります。~/.zshrc がシンボリックリンクのときは、書き換えません。
10. Macセキュリティ総合診断
Macのセキュリティ設定全体を採点する総合診断機能です。メニューのタイトル自体に「○/○ 良好 ・ 点数」がリアルタイムで表示されるので、メニューを開かなくても一目で健康状態がわかります。サブメニューを開くと、チェック項目ごとの合否が一覧表示されます。
| 項目 | 説明 |
|---|---|
| 📊 総合診断レポートを開く… | 全チェック項目の詳細と改善方法をまとめたレポート画面を開きます。 |
| 📜 Macセキュリティログ監査… | これまでに検知・記録されたセキュリティイベントのログを確認します。 |
| 📈 セキュリティアクティビティログ… | 封じ込めインシデント履歴とメール添付マルウェアの検知結果を、検索・フィルタ・時系列グラフで横断的に確認します。詳しくは次の10.1をご覧ください。 |
| 🔔 通知履歴… | RoamSwitchが過去に表示した通知の履歴一覧です。 |
| 今すぐ再診断 | その場で診断をやり直し、最新の状態に更新します。 |
操作手順
- 設定を見直したあとは、サブメニューの「今すぐ再診断」をクリックすると、その場でスコアが更新されます。
- 改善が必要な項目を知りたいときは「📊 総合診断レポートを開く…」を選び、開いたウィンドウで赤色・黄色の項目を確認します。多くの項目には、その場で対処できるボタンが用意されています。
診断項目には、プロキシの自動検出(WPAD / PAC)と、AI エージェントの認証情報ファイルがあります。前者は、「プロキシを自動検出」がオンのとき、またはネットワークが指定した PAC を使っているときに不合格にします。自分や管理者が設定した PAC は、情報として表示するだけで、不合格にはしません。後者は、Claude Code・Codex・Gemini CLI・GitHub Copilot・opencode がサインイン情報を保存する既定の場所のファイルについて、グループや他のユーザーの権限、所有者、クラウド同期フォルダーや git の作業ツリーの中にないかを確認します。ファイルの中身は読みません。環境変数で場所を変えたツールは見つけられません。Claude Code は Mac ではサインイン情報をキーチェーンに保存するので、このファイルがない Mac が多く、その場合は何も確認しません。Mac では、これらのファイルを読む動きは検知できません。本物の認証情報ファイルの場所に、おとりのファイルも置きません。
診断項目には、バックアップの最新性もあります。Time Machine の記録を読み、最後のバックアップが 7 日以内なら合格です。バックアップ先がない、記録がない、7 日より前のいずれかなら不合格です。別のバックアップアプリ(Arq・Carbon Copy Cloner・SuperDuper!・ChronoSync・Backblaze)が入っているだけのときと、記録を読めないときは「不明」にして、点数には入れません。同じディスクの中にあるローカルスナップショットは、外のバックアップには数えません。復元できるかどうかは調べません。
診断項目には、追加で信頼している証明書(認証局)もあります(ネットワーク防御、チェック ID は trust_anchors)。security dump-trust-settings を、ユーザーのドメインと管理者のドメインについて読みます。信頼の設定は、人・管理者・プロファイルが設定したときだけ付くので、一覧に出る証明書は、誰かが追加したものです。Apple 自身のルート証明書は数えず、信頼の結果が「deny」(信頼しない)の証明書も数えません。追加された証明書の名前が傍受ツールに見えるとき(mitm、proxy、charles、fiddler、burp、portswigger、zscaler、netskope、squid、inspection、sslsplit)は不合格にして、その名前を示します(最大3件)。それ以外の追加された証明書(会社のルート証明書、mkcert など)は、情報として示して合格にします(自分で設定したものなら問題ありません)。コマンドを読めないときは「確認できませんでした」にします。理由は、暗号化された通信(パスワードや API キーを含む)を読むプロキシは、Mac にその認証局を信頼させる必要があるからです。見えないものは、アプリが自分で持っている証明書と、証明書をいつ追加したかです。新しく入っても、その時には通知しません。検知の範囲は T1553.004(一部)です。何も変更せず、何も送りません。
10.1 セキュリティアクティビティログ
封じ込めインシデント履歴(ARPスプーフィング検知・ランサムウェアおとりファイル検知・XProtect連動Air-Gap・未知ポート自動遮断など)と、メール添付ファイルで確定したマルウェア検知結果を1つの画面に統合し、キーワード検索・カテゴリや重要度によるフィルタ・時系列グラフからのドリルダウンで横断的に振り返れる画面です。
| 項目 | 説明 |
|---|---|
| 検索・フィルタ | キーワードによる絞り込みに加えて、カテゴリ(ARPスプーフィング・ClickFixなど)・重要度(info / warning / critical)・期間(過去24時間〜すべての期間)を組み合わせて絞り込めます。 |
| 時系列グラフ | 選択した期間の検知件数を棒グラフで表示します。期間が72時間以内なら1時間単位、それを超えると1日単位に自動で切り替わります。 |
| グラフからのドリルダウン | グラフのバーをクリックすると、その時間帯のイベントだけに一覧を絞り込めます。もう一度クリックすると絞り込みが解除されます。 |
| CSVエクスポート Pro | 現在の絞り込み結果をCSVファイルとして書き出します。先頭が =・+・-・@、タブ、復帰のセルには、先頭に ' を付けて書き出します。表計算ソフトが数式として実行しないようにするためです。 |
同じサブメニューの「📜 Macセキュリティログ監査…」はmacOS自体の統合ログ(sudo・SSH・Gatekeeper・XProtectなど)が対象ですが、こちらはRoamSwitch自身が下した封じ込め判断だけをまとめて横断的に検索できる点が異なります。
操作手順
- メニューバーの🛡️アイコン→
Macセキュリティ総合診断→📈 セキュリティアクティビティログ…を選びます。 - 画面上部でカテゴリ・重要度・期間を選び、必要に応じて検索欄にキーワードを入力します。
- グラフのバーをクリックすると、その時間帯だけに一覧が絞り込まれます。もう一度クリックすると解除されます。
11. ポート・デバイス監視
ネットワークそのもの(ARPスプーフィング、VPN、開いているポート)から、接続されている物理デバイス(USB、Bluetooth)まで、Macの「外との境界」を監視する項目がまとまっています。
11.1 ARPスプーフィング検知
同じネットワーク上の別の端末が、あなたのMacと通信内容を盗み見ようとする「ARPスプーフィング(なりすまし)」攻撃を検知します。現在の状態が一行で表示され、検知中であれば「今すぐ全遮断する」がその場に現れます。「自動遮断」と「ゲートウェイのARP/NDPを固定(予防)」はトグルで有効・無効を切り替えられ、後者は未信頼ネットワークで攻撃そのものを事前に成立しづらくする予防策です。Pro を有効化すると「自動遮断」は既定でオンになり、「ゲートウェイのARP/NDPを固定(予防)」は既定オフです。
操作手順
- 検知中に手動で遮断したい場合は、ポート・デバイス監視サブメニューの「今すぐ全遮断する」をクリックします。
- 「自動遮断」「ゲートウェイのARP/NDPを固定(予防)」の各行をクリックすると、その場でオン・オフが切り替わります。
11.2 VPNトンネル (未信頼ネットワークでのMITM対策) Pro
カフェや空港など信頼できないネットワークにいるとき、通信を暗号化してVPN経由に切り替える機能です。まず「バックエンド」でWireGuardとTailscaleのどちらを使うか選びます。
| バックエンド | 特徴 |
|---|---|
| WireGuard | 自分で用意したWireGuard設定を読み込んで使う方式です。接続・切断、接続状況(ハンドシェイク)の確認、キルスイッチ(VPN切断時に通信そのものを止める安全装置)、設定ファイルのインポート・削除ができます。 |
| Tailscale | Tailscaleアカウントのメッシュネットワークを使う方式です。出口ノード(Exit Node)の選択、キルスイッチの切替、接続・切断ができます。 |
操作手順
- ポート・デバイス監視サブメニュー→「VPNトンネル」→「バックエンド」で、WireGuardかTailscaleのどちらを使うか選びます。
- WireGuardの場合: 「設定ファイルをインポート…」から、あらかじめ用意した
.conf設定ファイルを選択します。インポート後は「接続」をクリックすると即座にVPNが有効になります。 - Tailscaleの場合: 「接続」を選ぶとブラウザでTailscaleのログイン画面が開くので、アカウントでログインして許可します。以降は「出口ノード(Exit Node)」から経由先を選べます。
- どちらの方式でも「キルスイッチ」の行をクリックするとオン・オフを切り替えられます。オンにしておくと、VPN接続が予期せず切れた際に通信そのものが止まり、生の通信が漏れるのを防げます。
11.3 外部公開ポート
あなたのMac上で、外部からアクセス可能な状態で開いているポート(開発サーバーの立て上げ忘れなど)を一覧表示します。ファイアウォールの現在の状態も一緒に確認できます。意図せず開いたままの開発用ポートは、攻撃者に狙われる典型的な穴になるため、定期的にここを見て閉じ忘れがないか確認する習慣をおすすめします。
| 項目 | 説明 |
|---|---|
| 未知のリスニングポートを自動遮断 Pro | 見覚えのないポートが新しく開いたら、自動的に外部からのアクセスを遮断します。Pro を有効化した時点で、自動でオンになります。 |
| 着信ポートスキャン検知 Pro | 攻撃者が事前調査として行う「ポートスキャン」を受けていないか検知します。Pro を有効化すると自動でオンになり、スキャン元のアドレスを10分間だけ自動で遮断します。ゲートウェイ・DNS・このMac自身のアドレスは遮断しません。遮断だけは、メニューでオフにできます。 |
| SSH総当たりの検知と遮断 Pro | リモートログイン(SSH)がオンのときだけ、sshd のログを読みます(オフの Mac では何も読みません)。短時間(既定は10分間)にログインへ6回失敗した送信元を検知して通知し、既定で1時間、SSH のポートへの新しい接続だけを遮断します。すでに接続中のセッションは切りません。遮断を重ねるたびに期間は4倍になり、上限は7日です。Pro を有効化すると自動でオンになります。ゲートウェイ・DNS・このMac自身のアドレスは遮断せず、除外リストに書いた送信元、いま SSH で接続中の送信元、30日以内に公開鍵認証で成功した送信元も遮断しません。プライベートアドレスは免除しません。fail2ban などが動いている Mac では、遮断を譲って検知と通知だけを行います。通知は、遮断したときと、失敗を重ねた送信元からログインに成功したとき(重大。セッションは切りません)だけです。限界として、この Mac と同じ /64 にある IPv6 の送信元(同じ LAN の IPv6)は、その /64 を止めると自分自身も巻き込むため、自動では遮断しません。通知も出さず、記録にだけ残ります。外部の IPv6 は /64 単位で遮断します。 |
| SSH総当たりの遮断の設定… | 検知する失敗の回数と時間、最初の遮断の長さ、遮断を重ねるたびに延ばす倍率、遮断の上限、公開鍵で成功した送信元を除く期間、遮断しない送信元の一覧を設定します。いま遮断している送信元の一覧と、最近の SSH ログインも見られ、遮断は送信元ごとにも、まとめても解除できます。検知か遮断をオフにすると、いまの遮断もすべて解除されます。「ネットワークを緊急復旧…」にも含まれます。 |
| 公表された攻撃用サーバーとの通信を遮断 Pro | JPCERT/CC が2026年10月15日の報告(Web・API を狙う攻撃)で攻撃に使われたサーバーとして公表した3つの IP アドレス(210.149.87.120・118.26.36.16・69.10.51.162)との通信を、出る方向も入る方向も落とします。RoamSwitch が pf(パケットフィルタ)を使っているあいだ、つまり Pro でポートスキャン検知(既定でオン)や未知ポートの遮断が動いているとき、または VPN キルスイッチの最中に働きます。それ以外のときは pf を触りません(緊急 Air-Gap は元々すべて遮断します)。貸しサーバーのアドレスは別の人に割り当て直されることがあるため、リストは小さく、出典のある3件だけです。リンク保護の URL 監査も、この3つのアドレスを名指しで警告します。 |
| 実証型脆弱性診断(能動的到達確認) | 開いているポートに実際に到達確認を行い、外部から本当にアクセスできてしまうかを検証します。開発サーバーのポート(127.0.0.1)に、Cookie も認証もつけずに、/admin・/api/admin・/api/users・/api/v1/users・/api/v1/user・/actuator/env・/swagger-ui/index.html の 7 つのパスを 1 回ずつ GET するプローブ webvuln-unauth-admin も使います。応答が 200 で、データ(空でない JSON の配列、エラー用ではない JSON のオブジェクト、ユーザーの表のある HTML、Swagger UI)のときだけ、指摘にします。ログイン画面・リダイレクト・SPA の枠・{"error":"unauthorized"} は、指摘にしません。ログインは試さず、推測もファズもしません。副作用として申告しているのは、ログへの痕跡と多数のリクエストです。ブラウザ側のメニューを隠すだけで、サーバー側で認可を確認していないアプリを見つけるためのものです。 |
| 実証型脆弱性診断ログをCSV出力 Pro | 診断結果をCSVファイルに書き出し、記録や報告に使えるようにします。先頭が =・+・-・@、タブ、復帰のセルには、先頭に ' を付けて書き出します。表計算ソフトが数式として実行しないようにするためです。 |
| 実証型脆弱性診断ステータスを表示 Pro | 直近の診断結果の概要をその場で確認します。 |
| RoamSwitch Sensor ペアリング… | サーバーやIoT機器にインストールした別製品「RoamSwitch Sensor」とこのMacを連携させます。 |
操作手順
- 開いているポートを確認するには、ポート・デバイス監視サブメニュー→「外部公開ポート (件数)」にカーソルを合わせます。
- 「RoamSwitch Sensor ペアリング…」を選ぶと入力欄が開くので、Sensor側の画面に表示されたペアリングコードを入力して「連携」をクリックします。
11.4 接続中USBデバイス / USB・BadUSBガード
現在接続されているUSBデバイスが一覧表示されます。その下には、USBメモリを装いながら実はキーボードとして振る舞い勝手にコマンドを打ち込む「BadUSB」攻撃への対策項目が並びます。
接続中の USB デバイスの一覧を取得できなかったときは、取得に失敗したと表示し、最後に取得できた時刻を添えます。
| 項目 | 説明 |
|---|---|
| 不正USB / BadUSB物理ポートガード Pro | 許可していないUSBデバイスの接続そのものを検知・警告します。 |
| 不正USBストレージ自動遮断 Pro | 許可リストにないUSBストレージデバイスを自動的に無効化します。 |
| USB / BadUSBガード設定… | 許可するデバイスの登録・管理を行う設定ウィンドウを開きます。 |
操作手順
- 「USB / BadUSBガード設定…」を開き、今後も使う予定のデバイスを一覧から選んで「許可リストに追加」をクリックします。
- 設定が済んだら、ポート・デバイス監視サブメニューの「不正USB / BadUSB物理ポートガード」「不正USBストレージ自動遮断」をそれぞれクリックしてオンにします。
11.5 Bluetooth自動オフ Pro
未信頼ネットワークにいるときなど、必要なタイミングでBluetoothを自動的にオフにするトグルです。近距離からの不正なBluetooth接続の機会そのものを減らします。表示内容はBluetoothの状態や対応状況によって変わります。
操作手順 ポート・デバイス監視サブメニューの該当行をクリックするとオン・オフが切り替わります。
Bluetooth の自動オフは、Pro で、自分でオンにします。blueutil が要ります。あとから無くなると、メニューに ⚠️ と理由を出し、通知します。
12. 手動オーバーライド
通常RoamSwitchは接続中のネットワークに応じて自動でセキュリティレベルを切り替えますが、「今だけ特定のレベルに固定したい」というときに使うのがこの機能です。一番上の「自動判定に戻す」を選べばいつでも自動モードに戻せます。その下には各セキュリティレベルが並び、いずれかを選ぶとさらにどれくらいの期間その設定を維持するかを聞かれます。
| 継続期間 | 説明 |
|---|---|
| 次回ネットワーク切断まで(推奨) | Wi-Fiを切ったり別のネットワークに移動したりすると自動的に解除されます。うっかり戻し忘れる心配がなく、最も安全な選択です。 |
| 1時間だけ | 1時間経過すると自動的にもとの自動判定へ戻ります。 |
| 4時間だけ | 4時間経過すると自動的にもとの自動判定へ戻ります。 |
| 解除するまで継続 | 自分で「自動判定に戻す」を選ぶまでその設定のままになります。戻し忘れに注意してください。 |
操作手順
- メニューバーの🛡️アイコン→
手動オーバーライドにカーソルを合わせます。 - 固定したいセキュリティレベルをクリックします。
- 続けて表示される継続期間の一覧から、維持したい期間をクリックすると即座に適用されます。
- 自動判定へ戻したくなったら、いつでも同じ場所から「自動判定に戻す」をクリックします。
13. RoamSwitch Pro
Pro未購入の場合は「💎 Pro版を認証 / 購入…」と表示され、クリックするとライセンス認証画面(購入導線を含む)が開きます。すでにPro版が有効な場合は「💎 RoamSwitch Pro (有効)」という表示に変わり、クリックすると現在のライセンス状態を確認できます。9章や11章で見た多数のPro機能は、ここでライセンスを認証すると一括で使えるようになります。
操作手順
- まだ購入していない場合: メニューバーの🛡️アイコン→「💎 Pro版を認証 / 購入…」をクリックすると開く画面から、購入(または試用)手続きに進みます。
- すでにライセンスキーを持っている場合: 同じ画面のライセンスキー入力欄にキーを貼り付け、「認証」をクリックします。認証が成功すると、メニュー表示が「💎 RoamSwitch Pro (有効)」に変わります。
14. ログイン時に自動起動
Macを再起動・ログインするたびにRoamSwitchを自動で立ち上げるかどうかのオン・オフ切替です。チェックが付いていればログイン時に自動起動します。常時保護のためにも、オンのままにしておくことを強くおすすめします。
14.1 自己監視(異常終了時の自動再起動)
自己監視は、既定ではオフです(オプトイン)。メニューの「自己監視(異常終了時の自動再起動): オフ…」を選び、案内に同意すると、アプリに含まれる見張りのプログラムを、ログイン項目に登録します。「システム設定」→「一般」→「ログイン項目とApp機能拡張」で承認を求められたら、RoamSwitch の項目をオンにしてください。オンになるまで、自己監視は動きません。
オンにすると、RoamSwitch が異常終了したときに、再起動して知らせます。オンにしていないあいだは、異常終了しても再起動しません。スクリプトで入れた古い設定があるときは、同意のうえで外してから登録します。同じ項目から、いつでもオフにできます。アンインストールでも外れます。状態は、メニューと、get_detection_coverage の T1562.001(liveState と liveStateReason)に出ます。
15. 言語 / Language
RoamSwitch自体の表示言語をサブメニューのラジオボタンから選べます。macOSのシステム言語とは独立して、RoamSwitchだけの表示言語を切り替えられます。
操作手順 サブメニューから使いたい言語をクリックすると、メニューやウィンドウの表示がその場で切り替わります。
16. ヘルプ・About・アップデート確認
| 項目 | 説明 |
|---|---|
| ヘルプ & ガイド… | アプリ内蔵のヘルプ画面を開きます。このWebマニュアルとあわせてご利用ください。 |
| RoamSwitchについて… | バージョン番号や開発元など、アプリの基本情報を表示します。サポートに問い合わせる際、バージョン番号の確認にも使います。 |
| アップグレードを確認… | 新しいバージョンが出ていないか、その場でチェックします。 |
17. 復旧とアンインストール
| 項目 | 説明 |
|---|---|
| 🆘 ネットワークを緊急復旧… | 誤って隔離・遮断されたままになり通信できなくなった場合に、強制的にネットワークを復旧させます。「インターネットに繋がらなくなった」ときの最終手段です。 |
| 🗑 RoamSwitchをアンインストール… | RoamSwitch本体・ヘルパー・関連ファイルを、Finderでのドラッグ&ドロップだけでは残ってしまう補助プログラムまで含めて、正しい手順で完全に削除します。 |
操作手順
- 通信が止まったときの緊急復旧: メニューバーの🛡️アイコン→「🧰 復旧とアンインストール」→「🆘 ネットワークを緊急復旧…」をクリックし、確認ダイアログで「復旧」を選びます。
- アンインストールする場合: 同じサブメニューから「🗑 RoamSwitchをアンインストール…」をクリックします。管理者パスワードの入力を求められたら入力し、確認ダイアログで「アンインストール」を選ぶと、本体・ヘルパー・関連ファイルがすべて削除されます。手順の詳細はアンインストールの手順を参照してください。
18. 終了 (Quit)
RoamSwitch自体を終了します。終了している間は、ネットワークの自動判定や保護機能が働かなくなる点に注意してください。一時的に止めたいだけであれば、終了ではなく12章の「手動オーバーライド」で必要なレベルに固定する方法もあわせて検討してください。