開発
パケットキャプチャ方法
Seiya Kobayashi
こんにちは、アルバイトの小林です。
今回は、PS4のゲームの通信をキャプチャしたいと思い、そのためにはどうしたらいいのでしょう。
ネットワーク上のパケットキャプチャツールをどこに設置するかが大事です。
- ハブで構成されたネットワーク
ハブはトラフィックを全てのポートに流すので、空いているポートに設置するだけでキャプチャできます。
ですが、ハブは全てのポートに接続されている機器と帯域を取り合うのでパケットが消失してしまい再送しようとするのでさらなる衝突が起こりますので、今ではほとんど使われていません。
ハブ自体の入手もそう簡単には見つからないかもしれません。
2. スイッチ、ルータで構成されたネットワーク
スイッチは原理上、自分宛のパケットしか見ることができません。
そこで、自分宛以外の機器の通信をキャプチャする方法として、ポートミラーリング、ハブの使用、タップの使用、ARPキャッシュポイゾニングの4つを紹介します。
ポートミラーリング
もっとも簡単だと思います。
スイッチがポートミラーリングに対応していて、空きポートがあることが前提です。
コマンドで特定のポートの通信を他のポートにコピーすることができます。
コマンドはスイッチのメーカーや機器ごとで違うので注意。
ハブの使用
キャプチャしたい機器と解析用機器をハブに接続して同じネットワークセグメント上に置く。
タップの使用
タップ(ネットワークタップ)は2つの機器間に設置してその2点間のパケットをキャプチャします。
大量のパケットの監視、一方向の通信 → 非統合型
それ以外 → 統合型
が望ましいそうです。
ARPキャッシュポイゾニング
偽のMACアドレスをARPメッセージに含みスイッチに送信し、別の機器のトラフィックに割り込みをします。
まとめると、、、
- ポートミラーリング
- ネットワークに無影響で、余分なパケットが作られない
- ホストをネットワークから切断しないで設定できるため、ポートのミラーリングにも便利
- ハブ
- ホストを一時的に切断しても問題ない場合
- 複数のホストからのパケットをキャプチャする場合は不向き
- タップ
- ホストを一時的に切断しても問題ない場合
- コスト高め
- ARPキャッシュポイゾニング
- 余分なパケットが流れてしまう
- ポートミラーリングが使えない場合に即座にキャプチャしたい場合に有効
通常はポートミラーリングが良いと思いました。
結局、 スイッチからPS4とキャプチャツールのあるPCをつなぎ、ポートミラーリングを使ってPS4に送られるパケットをPCにも送ることでキャプチャできると思います。
キャプチャしたデータから何か面白いデータがあれば報告を兼ねてブログ更新できたらと思います。
ちなみに図はdraw.ioで作りました。なかなか便利なのでオススメです。
ありがとうございました。