コンテンツにスキップ

システムレベルキャプチャ

内部からの平文の読み取りすら許さない対象があります。macOS の内蔵アプリや、特に手ごわく深く隠れたアプリケーションは、あらゆる外部からの干渉を、始まる前に遮断します。システムレベルキャプチャは、プログラムの内部では実行せず、システムの低いレイヤーから観測します一般的なツールでは近づくことすらできないこうした対象でさえ、その平文を白日の下にさらします。これがローカルキャプチャ方法の切り札です。

この記事は macOS を扱います。Windows では、システムネットワークスタックを経由するシステムプログラム(.NET / PowerShell など)に同等の機能があります。本機のアプリ層キャプチャを参照してください。


1. 「他のツールが手の届かない」ものが見える

Section titled “1. 「他のツールが手の届かない」ものが見える”

macOS の内蔵アプリ、システムサービス、あるいはあの手ごわく深く隠れたアプリケーションが、サーバーと何を話しているのかを見たい。通常はどこでも壁にぶつかります。プロキシキャプチャは締め出され(証明書を拒否して単にエラーを投げます)、プログラム内部からの平文の読み取りはシステムの保護に阻まれ、NIC でキャプチャできるのは暗号文だけです。システムレベルキャプチャは、そのやり取りの平文を読み取れる数少ない方法の1つです。

ローカルキャプチャ方法は一段ずつ踏み込んでいき、これはその最後尾に立ちます。

対象 NIC /プロセス単位 アプリ層キャプチャ 本機のシステムレベルキャプチャ
通常のプログラム ✅(オーバースペック)
証明書ピンニング/独自暗号 🔒 暗号文 ✅ 平文 ✅ 平文
手ごわく高度に隠れたアプリケーション 🔒 / ❌ ❌ 干渉を拒否 平文
内蔵アプリ/システムサービス 🔒 / ❌ ❌ 干渉を拒否 平文

それより前のどの方法でも対象を扱えないときは、これに任せてください。


  • プログラムの内部では実行しない:内蔵アプリや手ごわいアプリケーションは、プログラムの内部で実行されるあらゆる干渉を遮断するため、アプリ層キャプチャはそれらには効きません。システムレベルキャプチャは別の角度から攻めます。インジェクションなし、プログラムの改変なし、証明書なし。システムの低いレイヤーで帯域外から読み取るため、この保護では止められません。
  • 証明書に手を触れない:中間者として振る舞わず、証明書にも一切手を触れないため、証明書ピンニングはそもそも通用しません。これらのアプリケーションの証明書チェックがどれほど厳格でも、影響を及ぼせません。
  • 他が届かないレイヤーに届く:macOS の内蔵アプリ、App Store、各種システムサービスは、システムの低レベルのネットワークチャネルを経由します。そこはちょうど、それより前のすべてのキャプチャ方法に共通する盲点です。システムレベルキャプチャはまさにこのレイヤーをカバーし、それらの平文をすべて余さず見せてくれます。

  • 内蔵アプリとシステムサービス:App Store、システムコンポーネント、バックグラウンドサービスなど、macOS 自身のプログラムのネットワークのやり取り。
  • 手ごわく深く隠れたアプリケーション:トラフィックを奥深くに埋め込み、あらゆる外部からの干渉を拒むサードパーティ製プログラム。
  • 通常のプログラム:もちろんこれらも扱えますが、それはオーバースペックです。通常のプログラムには、それより前の方法のほうが簡単です。

  1. 対象を選ぶ:ドロップダウンから実行中のプログラムを選ぶか、プログラムのパス/名前を入力します。
  2. 任意で**「起動の瞬間」をキャプチャ**:ツールに先にプログラムを閉じさせてから起動し直させると、起動直後のトラフィックもキャプチャできます(多くの認証/ハンドシェイクがその瞬間に行われます)。
  3. キャプチャを開始し、プログラムが送受信する平文を確認します。

新規セッション・本機のシステムレベルキャプチャ:実行中のプログラムを選ぶ(またはパス/名前を入力する)と、システムの低いレイヤーから帯域外でその平文のやり取りを観測する。「ターゲットを再起動」にチェックを入れると起動直後もカバーできる

実際の結果:システムの低いレイヤーから帯域外で対象プログラムを観測すると、その HTTPS のやり取りが完全に平文へ復元される。詳細ビューには「復号済み」と表示され、リクエストとレスポンスが1件ずつ並ぶ


5. キャプチャ後:読みやすく、デコードできる

Section titled “5. キャプチャ後:読みやすく、デコードできる”

低いレイヤーから読み取った平文は、他のすべてのキャプチャ方法と同じ処理を経ます。

  • 複数の表示モード:構造化表示、テキスト整形、16進、そして自動判別があり、送信側と受信側で個別に切り替えられます。データの表示とデコードを参照してください。
  • 自動展開と自動判別:gzip / brotli / deflate / zstd を自動展開し(多重に重なった圧縮も含む)、JSON、XML、protobuf / gRPC などを自動判別して整形します。

6. 4つのローカルキャプチャ方法の選び方

Section titled “6. 4つのローカルキャプチャ方法の選び方”
あなたの状況 使うべき方法
macOS の内蔵アプリ、手ごわいアプリケーション(他の方法では届かない) 本機のシステムレベルキャプチャ(この記事)
すでに実行中のプログラム/証明書ピンニング/プロキシを受け付けない/独自暗号 本機のアプリ層キャプチャ
コマンドで起動できる通常のプログラム(ブラウザ/スクリプト/CLI) 本機のプロセス単位のキャプチャ
マシン上のすべてのトラフィック、または非 HTTP トラフィックを見たい 本機の NIC キャプチャ

関連:プロキシキャプチャ · 本機のアプリ層キャプチャ · データの表示とデコード