Microsoft ネットワーク モニターを使用してネットワーク トラフィックをキャプチャおよび分析する方法
何かのアプリやプロセスが帯域幅を独占したり、バックグラウンドで奇妙な動作をしたりしているのではないかとひそかに疑ったことがあるなら、Network Monitorのようなツールが救世主となるかもしれません。Wiresharkほど洗練されておらず、やや古めかしいツールですが、非常に軽量で、パケットの詳細に惑わされることなく、ネットワーク上で何が起こっているかを簡単に確認できます。問題は、WindowsがNetwork Monitorをあまりアップデートしていないため、時々使いにくく感じたり、適切なフィルターを見つけるのが面倒だったりすることです。しかし、一度基本を理解すれば、プログラムが外部と通信している様子を実際に把握できるようになります。例えば、疑わしいメールの送信元を特定したり、接続の問題をトラブルシューティングしたりといったことが挙げられます。
特に、どのプロセスが大量のメールを送信しているのか、あるいはマルウェアや不正アプリがデータを盗み出しているのかを突き止めたい場合に便利です。特定のポート(SMTPの25、587、465など)のトラフィックをリアルタイムでキャプチャし、どのプロセスがパケットを送信したのかを特定するのが狙いです。ヒント:フィルターを正しく設定することが重要です。正しく設定しないと、何ギガバイトものフィルタリングされていないデータに溺れてしまいます。つまり、送信SMTPトラフィックのみをフィルタリングすることと、ダンプを管理しやすい状態に保つことのバランスを取る必要があるのです。
Microsoft Network Monitor を使用して Windows でネットワーク監視を修正し、トラフィックをキャプチャする方法
ネットワークモニターをダウンロードしてインストールする
NM34_x64.exeまず、 Microsoftの公式サイトからインストーラー(インストーラーといいます)を入手するか、こちらのリンクをご利用ください。コマンドラインで実行したい場合は、winget install Microsoft. NetMonPowerShellで実行することもできます。環境によってはWinGetコマンドで問題なく動作する場合もありますが、サーバー上など特殊な環境の場合は手動でダウンロードする必要がある場合もあります。
入手したら、管理者としてインストーラーを実行します。ネットワーク ドライバーに適切に接続するためには、昇格された権限が必要なのは間違いありません。
カスタムフィルターを使用してキャプチャセッションを設定する
- ネットワークモニターが起動したら、「新しいキャプチャ」をクリックします。通常はすぐにすべてのネットワークトラフィックのキャプチャが開始されますが、送信SMTP接続のみをキャプチャしたい場合は理想的ではありません。そのため、「キャプチャ設定」をクリックし、 「フィルターの読み込み」 → 「標準フィルター」を選択してください。
- 「TCP」 -> 「TCP ポート」を選択します。これが、SMTP ポート上の電子メール トラフィックを絞り込むより速い方法です。
フィルタールールには、 のようなデフォルトのテンプレートが表示されますtcp.port == 80。これを置き換えたり編集したりして、SMTP ポートを含めます。
(tcp.port == 25 OR Payloadheader. LowerProtocol.port == 25) OR (tcp.port == 587 OR Payloadheader. LowerProtocol.port == 587) OR (tcp.port == 465 OR Payloadheader. LowerProtocol.port == 465)
さらに凝って、特定の IP からのトラフィックだけを含めたい場合は、以下を追加します。
AND (IPv4. SourceAddress == 192.168.1.100)
サーバーのIPアドレスに置き換える192.168.1.100か、ソースに関係なくすべての送信SMTPトラフィックをキャプチャする場合は省略してください。このフィルターを挿入したら、「適用」をクリックしてください。少しオタクっぽいですが、うまく機能します。フィルタリングにより、特にキャプチャをしばらく実行する場合、無関係なデータに埋もれることを防ぐことができます。
キャプチャを開始し、シナリオを再現し、分析します
- ツールバーの「開始」をクリックします。次に、監視が必要な操作を行います。テストメールを送信したり、アプリを実行したり、バグが自然に発生するのを待ったりします。実行時間を長くするほど、取得できるデータ量は多くなりますが、注意が必要です。注意しないとディスク容量がすぐにいっぱいになってしまう可能性があります。
十分なデータが収集されたら、「停止」.CAPをクリックします。その後、ファイルを保存して後で確認したり、直接分析したりできます。
ダンプファイルを開いてパケットの詳細を確認しましょう。フィルターが正しく機能していれば、SMTPコマンド、認証手順、そして標的のメールアドレスまで確認できます。「プロセス名」フィールドには、接続を開始した実行ファイル(例:blat.exeまたは )が示されていますpowershell.exe。これは、実際にメールの送信元が何であるかを明確に示す手がかりとなることがよくあります。
プロのヒント:DNSやSMBなどの他のプロトコルを詳しく調べたい場合は、フィルターに特定のポートまたはIPアドレスを追加するだけです。宛先IPアドレスやMACアドレスでフィルタリングすることもできるので、特定のサーバーやデバイスへのトラフィックを絞り込むのに役立ちます。
もちろん、フィルターは論理演算子を使って構築できるので、条件の組み合わせは慣れてしまえば難しくありません。例えば:
IPv4. SourceAddress == 192.168.1.101 && tcp.port == 443
このような詳細なフィルタリング機能こそが、ネットワークモニターの強力な点ですが、同時に少々複雑でもあります。ある設定ではうまく動作しましたが、別の設定では…特に複数のネットワークインターフェースが関係している場合や、混雑したネットワークでキャプチャを行う場合は、あまりうまく動作しませんでした。
追加のヒントとコツ
- キャプチャを停止することなく、キャプチャしたデータをフィルタリングするには、 「表示フィルタ」ウィンドウを使用します。パケットをクリックし、「表示フィルタに追加」を選択するだけです。
- オフラインでトラフィックを分析する必要がある場合は、キャプチャを.CAP形式で保存し、Wiresharkなどのツールに読み込みます。Wiresharkでは、複雑な分析が必要な場合、より多くのオプションが利用できる場合もあります。
- WindowsにはPktmonというコマンドラインツールも組み込まれており、GUIを使わずに簡単にトラフィックをダンプできます。CLIに慣れている方は、ぜひ試してみてください。
ネットワークトラフィックのキャプチャは完璧ではありません。フィルターと忍耐のゲームです。しかし、奇妙なスパムメールやマルウェアに対処したり、ネットワークの奇妙な問題のトラブルシューティングをしたりする際には、非常に役立ちます。多少の試行錯誤は覚悟しておきましょう。適切なフィルター設定をすれば、50GBもの膨大なデータを処理する手間を省くことができます。
まとめ
- ネットワークモニターをダウンロードしてインストールするか、wingetを使用します。
- SMTPポートとオプションのソースIPにカスタムフィルターを設定する
- キャプチャを開始し、問題を再現するか、待ってから停止します
- パケットを分析してプロセス名や疑わしいアクティビティを特定する
まとめ
このプロセス全体は最初は少し技術的に思えるかもしれませんが、フィルターを正しく設定すれば、ネットワークの問題や異常な動作の原因を突き止める非常に強力な手段になります。送信SMTPトラフィックのみを絞り込み、どのプロセスが原因かを特定するだけで、状況が大きく変わることもあります。ほとんどのトラブルシューティングと同様に、根気強く、ノイズを系統的に除去することが重要です。この方法が、誰かのスパムメールの謎を解くのに役立つことを願っています ― 少なくとも、自分のネットワーク上では。