一馬力のメモ帳

MVSからLinuxまで。基盤屋さんは眠らない

Wiresharkで不要なパケットを除外する

f:id:htbariki:20200603002044p:plain

パケット調査時に不要なパケット(邪魔パケット)を除外するアプローチを取ることで必要なパケットにたどり着く可能性が高くなります。
この記事ではキャプチャ済みのパケットから調査に不要なパケットを除外していく方法を紹介します。

目次


不要なパケットのプロトコルを特定する

パケットリストに現れる不要なパケット

調査対象のパケットを開いたときに、不要なパケットを除外したくなることがあります。例えば下の図の例。

パケットリストを確認すると,このパケットはmacOSで取得したためにmDNSパケットが大量に含まれています。
mDNSはIPアドレスが不明でも〜.localでアクセス可能としてくれるプロトコルです。macOSではこのパケットが大量に発行されます。
※特に我が家はapple製品が多いのでmDNSパケットが色々な機械から出たり入ったり忙しいパケットになっています。

f:id:htbariki:20200603002028p:plain

プロトコル階層でプロトコル毎のパット割合を確認する

Wiresharkの プロトコル階層 表示機能を利用してみると,具体的に不要なパケットの量が分かります。
このキャプチャにはmDNSのパケットが57.7%の含まれています。

mDNSが調査対象外のプロトコルの場合,キャプチャファイルの半分以上が不要なパケットになっています。
この状態では調査はなかなか進みませんよね?確率的には2回に1回。不要なパケットが流れている状態です。

f:id:htbariki:20200603002034p:plain

不要なパケットを除外する

ではこの不要なパケットを除外する方法を見ていきます。
不要なパケットを除外するためにはWiresharkの表示フィルタ機能を利用します。

表示フィルタの書き方は2種類ありますので順番に確認してみようと思います。

not△プロトコル名で除外する

まずは1つ目。
表示フィルタに  not△プロトコル名 をを入力します。
※△はブランクの意味

下の図の例では not mdns が入力されパケットリストからmDNSパケットが見えない状態になっています。

f:id:htbariki:20200603002055p:plain

!プロトコル名で除外する

次に2つ目。
表示フィルタに  !プロトコル名 を入力します。

下の図の例では !mdns が入力されパケットリストからmDNSパケットが見えない状態になっています。

表示フィルタでは「!」はnotの意味を持っています。
!mdnsを入力することによりmdnsではないプロトコルのみが表示される状態となります。

f:id:htbariki:20200603002048p:plain

プロトコル階層で再度確認してみる

プロトコル階層機能で再度確認してみると,mDNSが除外されパケットがスッキリしています。
これで調査対象のパケットが見やすくなり調査しやすい状態になります。

f:id:htbariki:20200603002039p:plain

パケット調査のアプローチは

  • 必要なパケットを特定する
  • 不要なパケットを除外する

の2つを効率よく利用してすすめることで作業が楽になります。
上手に表示フィルタで不要なパケットを除外して必要なパケットを抜き出してみ見て下さい
※気分は砂金とり!!

この記事が参考になれば幸いです。

参考資料

 表示フィルタ

Cheat Sheets:WIRESHARK DISPLAY FILTERS

Wireshark User’s Guide:Building Display Filter Expressions

  Multicast DNS

RFC 

RFC 6762 - Multicast DNS 日本語訳

RFC 6762 : Multicast DNS

試した環境

ホストOS

2500/15.4 MJLT2J/A MacBook Pro Retinaディスプレイ

MacBook Pro (Retina, 13-inch, Late 2013)
macOS Catalina
  システムのバージョン:    macOS 10.15.4 (19E287)
  カーネルのバージョン:    Darwin 19.4.0

Wireshark

Wireshark
Version 3.2.4 (v3.2.4-0-g893b5a5e1e3e)