パケットから攻撃を読むWireshark実践ガイド
ログは消せても、流れた通信は嘘をつかない。ネットワークの“生のパケット”から、C2通信・データの持ち出し・マルウェア感染の証拠を読み解く——防御者のためのWireshark実践を、2種類のフィルタの型から、インシデント対応シナリオ、自動化・自宅ラボまで、日本語でやさしく解説します。
📋 この記事の目次
攻撃者は、感染した端末のログを消すことができます。けれど、すでにネットワークを流れてしまった通信(パケット)は、なかったことにできません。だからこそ、ネットワークの“生の記録”を読む力——パケット解析は、デジタルフォレンジックの強力な武器になります。そして、その定番ツールがWireshark(ワイヤーシャーク)です。Wiresharkの入門記事は数多くありますが、この記事はあえて「防御者として、パケットから攻撃の証拠をどう見つけるか」に的を絞ります。DFIR完全ロードマップの実践編として、フィルタの型からインシデント対応のシナリオまで、手を動かせる形で解き明かしましょう。
パケットキャプチャは、ネットワークを流れる通信をそのまま記録する行為です。中にはパスワードや個人情報が含まれることもあります。キャプチャしてよいのは、あなた自身が管理する、または明示的に許可されたネットワーク・端末に限られます。職場や公共・他者のネットワークを無断で盗聴する行為は、法律(通信の秘密の侵害など)に触れる重大な違反です。学習は、自分の自宅ラボや、公開されている演習用のパケットファイル(PCAP)で進めましょう。
🦈 Wiresharkとは? パケット解析がDFIRで効く理由
「通信を1パケット単位で見る顕微鏡」。それがネットワークの真実を映し出します。
Wireshark=通信を1パケット単位で覗ける、定番のネットワークアナライザ
Wiresharkは、ネットワークを流れる通信を捕まえて(キャプチャ)、その中身を1パケットずつ、人が読める形に分解して見せてくれる無料・オープンソースのツールです。HTTP、DNS、TLSなど数千種類のプロトコルを解釈でき、「いつ・どの端末が・どこへ・何を送ったか」を可視化します。ネットワークトラブルの調査から、マルウェアの通信解析、インシデント対応まで、世界中の実務者が使う“業界標準”の道具です。
Wiresharkの画面は、大きく3つのペイン(区画)でできています。上がパケット一覧(いつ・誰から誰へ・何の通信か)、中央が詳細(選んだ1パケットを、イーサネット→IP→TCP→アプリ層と“層ごと”に分解)、下が生のバイト列。1つの通信が、OSI参照モデルの層に沿ってきれいに展開されるので、「どの層で何が起きているか」を目で追えます。この“層で見る”感覚が、パケット解析の基礎体力になります。
なぜパケット解析がDFIR(デジタルフォレンジック&インシデント対応)で重宝されるのか。理由は「ネットワークの記録は、消しにくく、嘘をつきにくい」からです。攻撃者は侵入した端末のログを改ざん・削除できますが、すでに別の機器(ファイアウォール、スイッチ、キャプチャ装置)を通過してしまった通信までは消せません。だから、あらかじめ通信を記録しておけば(あるいは感染端末の通信をその場で取れば)、「マルウェアが外部のどこと話していたか」「どんなデータが持ち出されたか」を、客観的な証拠として突き止められるのです。
キャプチャした通信は PCAP(ピーキャップ) というファイルに保存できます。これは“ネットワークのドライブレコーダー映像”のようなもの。あとから何度でも、別の人が、落ち着いて解析できます。インシデント対応プレイブックでいう「②保全」をネットワークに対して行うのが、まさにこのPCAPの取得なのです。
🔬 パケット解析の流れ(捕まえる → 絞る → 追う → 突き合わせる)
とはいえ、ただWiresharkでキャプチャすればOK、ではありません。実際の通信は1秒間に何千・何万パケットにもなり、そのままでは“干し草の山”です。重要なのは、この山から「攻撃という名の針」を見つける絞り込みの技術。次章から、その中核である「フィルタ」を学んでいきます。なお、パケットを読むにはTCP/IPとOSI参照モデルの基礎が土台になります。不安な人は先にそちらを押さえると、理解がぐっと速くなります。
ひとことで言うと
Wiresharkは「ネットワークの真実を映す顕微鏡」。当サイトのフォレンジック5大ツールでも主力の一本として紹介していますが、本記事ではその“使いこなし”を、防御者の実戦に寄せて深掘りします。
🎛 キャプチャの基本と「2種類のフィルタ」
初心者が最初につまずく“2つのフィルタ”の違い。ここを押さえれば、もう迷いません。
Wiresharkには、名前も役割も似ているのにまったく別物の「2種類のフィルタ」があります。この違いが、入門者最大のつまずきポイント。逆に言えば、ここさえ理解すれば一気に視界が開けます。
| キャプチャフィルタ | ディスプレイフィルタ | |
|---|---|---|
| いつ効く | 記録する前(取る瞬間) | 記録した後(見るとき) |
| 役割 | そもそも何を保存するか絞る | 保存済みから何を表示するか絞る |
| 書式 | BPF構文(host, port) | Wireshark独自(ip.addr, http) |
| 戻せる? | 捨てた通信は戻らない | 何度でも条件を変えられる |
| 例 | host 10.0.0.5 | ip.addr == 10.0.0.5 |
🪣 2つのフィルタは「漏斗(じょうご)」の上段と下段
実務では、調査の段階で「広めに取って、表示で細かく絞る」のが基本です。なぜなら、キャプチャの段階で絞りすぎると、後から「あの通信も見たい」と思っても、もう手元にないから。だから保全目的なら、キャプチャフィルタは最小限(または無し)にして、“まず確保”。そのうえで、ディスプレイフィルタを駆使して針を探します。大量で困る場合だけ、キャプチャフィルタで対象ホストやポートに絞ります。
ところで、パケットは「自分が通れる場所」でしか捕まえられません。自分の端末の通信なら、その端末でWiresharkを動かせばOK。ネットワーク全体を見たい場合は、スイッチのミラーポート(SPAN)やネットワークTAPといった“通信が集まる場所”でキャプチャします。逆に言えば、普通のスイッチ環境では他人どうしの通信は自分の手元に流れてこない——これは技術的な制約であると同時に、むやみに盗聴できないための仕組みでもあります。
▲ キャプチャフィルタは host / port / net といった素朴な単語で書きます(libpcap/BPF構文)。次章のディスプレイフィルタとは書き方が違う点に注意。
🔍 ディスプレイフィルタ実践:絞り込みの型
Wireshark使いの腕は、ここで決まります。よく使う“型”を手に覚えさせましょう。
キャプチャしたパケットの山から目当てを探す主役がディスプレイフィルタです。書式は プロトコル.フィールド 演算子 値。たとえば ip.addr == 10.0.0.50 なら「送信元か宛先がこのIPのパケット」を表示します。まずは“これだけ覚えれば戦える”定番フィルタを押さえましょう。
| 目的 | フィルタ |
|---|---|
| 特定のIPに関する通信 | ip.addr == 10.0.0.50 |
| HTTPの通信だけ | http |
| DNSの問い合わせだけ | dns |
| 特定ポート(例:443) | tcp.port == 443 |
| HTTPのPOST(送信・持ち出しの疑い) | http.request.method == "POST" |
| あるドメインへのDNS問い合わせ | dns.qry.name contains "dropbox" |
| TLSの接続先名(SNI) | tls.handshake.extensions_server_name |
| 本文に特定の語を含む | frame contains "password" |
演算子も直感的です。==(等しい)、!=(等しくない)、>・<(大小)、contains(含む)、matches(正規表現)。たとえば http.response.code == 404 でエラー応答だけ、frame.len > 1000 で大きなパケットだけ、といった絞り込みが思いのままです。フィールド名は入力中に補完候補が出るので、すべてを暗記する必要はありません。
これらを and / or / not でつなげば、ぐっと鋭くなります。「特定端末の、HTTPのPOSTだけ」を見たいなら、次のように書きます。
▲ 「探す」だけでなく not で“正常を除外する”のがコツ。正規表現で柔軟に探したいときは matches も使えます(正規表現の基礎が活きます)。
フィルタは、暗記しなくても大丈夫です。Wiresharkでは、気になるパケットの項目を右クリック →「フィルタとして適用」すると、対応するディスプレイフィルタを自動で作ってくれます。「この宛先IPだけ」「このプロトコルだけ」をクリックで絞り込み、生成された式を見て“書き方を盗む”——これが、フィルタ構文を自然に覚える近道です。慣れてきたら、自分で and / not を足して、少しずつ鋭くしていきましょう。
「Follow Stream」で“会話”を復元する
1パケットずつ見ても、全体像はつかめません。気になるパケットを右クリック →「追跡(Follow)」→ TCP/HTTPストリームを選ぶと、バラバラのパケットが一つの“会話”として再構成され、やり取りの中身(リクエストとレスポンス、送られたデータ)がまとめて読めます。これがWiresharkで最も使う、強力な機能です。マルウェアがC2サーバと交わした“会話”も、ここで露わになります。
🛰 攻撃をパケットから読む:IR実践シナリオ
フィルタは手段。目的は「攻撃の足跡を見つける」こと。代表的なサインを知りましょう。
では、実際のインシデントで、パケットからどんな“攻撃のサイン”を探すのか。代表的な4つのパターンを押さえれば、調査の勘所がつかめます。
C2ビーコン(規則的な通信)
感染端末は、攻撃者のC2サーバへ「指示はある?」と一定間隔で問い合わせ続けます。同じ宛先への、短く規則正しい繰り返し通信は、強い赤信号です。
DNSトンネリング
DNSの問い合わせ名に不自然に長い・ランダムな文字列を埋め込み、データをこっそり運ぶ手口。異様に多い・長いDNSクエリは要注意です。
データの持ち出し(Exfiltration)
見慣れない外部へ、大量のアップロード(POST)。社内から外向きに、不自然に大きなデータが流れていないか。送信量の偏りが手がかりです。
平文の認証情報・不審ダウンロード
暗号化されていない通信に流れるID・パスワード、あるいはHTTPで落ちてくる実行ファイル(.exe)。Follow Streamで中身を確認します。
これらに共通するのは、「正常を知らなければ、異常は見えない」という原則です。ふだんの通信(どの端末が、どこと、どれくらい話すか)の“平常の姿”を知っていれば、そこからの逸脱——見知らぬ宛先、深夜の大量送信、規則正しすぎる通信——が自然と浮かび上がります。だからベテランほど、攻撃を探す前に「平常時のベースライン」を押さえます。次の図で、その典型例である“ビーコンの形”を見てみましょう。
📡 C2ビーコンの“形”——規則正しさが、不自然さ
このC2ビーコンの「規則正しさ」こそ、機械が通信している証拠です。人間のWeb閲覧は不規則ですが、マルウェアは時計のように正確に通信します。WiresharkのC2通信の痕跡を追う調査では、この“等間隔”が決め手の一つ。見つけた通信先のIPやドメインは、脅威インテリジェンス(IOC)と突き合わせれば、既知の攻撃インフラかどうかを判定できます。検知段階でこのパターンを自動で捕まえるなら、SigmaルールやSIEMの出番です。
いまや通信の多くはTLSで暗号化されており、Wiresharkでも中身(ペイロード)は読めません。しかし、暗号化されていても「誰と・いつ・どれだけ・どのドメイン名(SNI)へ」というメタデータは見えます。通信先・通信量・タイミングだけでも、ビーコンや持ち出しの兆候は十分つかめます。逆に、平文のまま流れるパスワードのような通信はそもそも危険——だからこそ通信の暗号化(TLS/HTTPS)が大切なのです。
📊 統計機能で「全体像」を一望する
いきなり1パケットを見るより、まず“鳥の目”で異常な偏りを探すのが上級者の作法です。
膨大なパケットを前にしたら、まず「統計(Statistics)」メニューで全体像をつかむのが定石です。木を見る前に、森を見る。Wiresharkの統計機能は、異常な“偏り”をひと目で浮かび上がらせてくれます。
プロトコル階層(Protocol Hierarchy)
通信が、どのプロトコルで何%を占めるかを一覧。「見慣れないプロトコルが妙に多い」といった違和感を、最初に掴めます。
会話(Conversations)
「どの端末とどの端末が、どれだけ通信したか」をペアで集計。通信量の多い“主役”(top talker)から、怪しい相手を見つけます。
エンドポイント(Endpoints)
通信に登場するIPアドレスの一覧と通信量。見覚えのない外部IPや、極端に通信量の多いホストが浮かびます。
I/Oグラフ(IO Graph)
通信量を時間の折れ線で可視化。一定間隔の小さな山が並べばビーコン、深夜の急なアップロードは持ち出しの疑い、と“形”で異常を読めます。
もう一つ、地味に効くのが「色分け(カラーリングルール)」です。Wiresharkは、エラーや再送、特定のプロトコルを自動で色づけしてくれます。慣れてくると、パケット一覧を眺めるだけで「赤や黒が目立つ=何か変」と直感的に気づけるように。よく追う通信に自分で色を割り当てておけば、長いキャプチャの中でも“探しもの”がパッと目に飛び込んできます。目で異常を拾うための、小さくて強力な仕掛けです。
「Expert Information」も覗いておく
Wiresharkは、再送の多発や異常なフラグなど、気になる点を「Expert Information(エキスパート情報)」として自動でまとめてくれます。スキャンや通信障害、不審なリセットの兆候など、初心者では見落としがちなヒントが集まる場所。統計とあわせて、「まず全体の異常を拾い、そこからフィルタで深掘り」という流れを身につけると、調査が一気に速くなります。
慣れてきたら、「統計で森を見る → 怪しい木をフィルタで絞る → Follow Streamで葉を読む」という往復が、自然な調査リズムになります。全体から個別へ、個別から全体へ。この行き来こそが、膨大なパケットの中から最短で真相にたどり着く、熟練者の歩き方です。
⌨️ 自動化と自宅ラボ:tsharkと安全な練習
GUIに慣れたら、CLIで“大量処理”へ。そして、安全に腕を磨く場所も用意しましょう。
Wireshark本体はGUI(画面操作)ですが、そのコマンドライン版が「tshark」です。大量のPCAPをまとめて処理したり、必要なフィールドだけを抜き出してCSVにしたり——“調査の自動化”はtsharkの独壇場。たとえば「このPCAPに出てくる宛先ホスト名を全部リストアップ」が、一行で書けます。
▲ -Y にディスプレイフィルタ、-e に欲しいフィールドを指定。GUIで覚えたフィルタが、そのままCLIでも使えます。出力をSIEMへ流す自動化も定番です。
tsharkの強みは、同じ作業を、何百ファイルにも・繰り返し・自動でかけられることです。日々集まるPCAPから「既知の悪性ドメインへの通信だけ」を毎晩抽出してアラートする、といった“仕組み化”も可能。GUIで一件ずつ確かめるWiresharkと、量をさばくtshark——手と仕組みの両輪で、調査の速度と再現性が上がります。
そして何より大切なのが、「安全に練習できる場所」です。前述のとおり、他人の通信を勝手に覗くのは厳禁。腕を磨くなら、次の方法が王道です。
演習用PCAPで“読む”練習をする
世界中の実物マルウェア通信のPCAPが、学習用に公開されています(例:malware-traffic-analysis.net)。攻撃の“本物の通信”を、安全に読み解く最良の教材です。
解析記事をなぞって“答え合わせ”する
Palo Alto Unit 42のWireshark講座(Emotetの感染通信など、日本語版あり)は、プロの調査手順を追体験できる宝庫。手を動かしながら読むと、一気に伸びます。
なお、Wiresharkは“その瞬間を深く掘る”のは得意ですが、24時間ずっと記録し続ける常時監視には、より軽量な仕組みが向きます。大規模・継続的にネットワークを見張るならZeekのような専用のネットワーク監視ツールが相棒になり、そこで見つけた“怪しい1件”をWiresharkで深掘りする——という役割分担が王道です。まずはWiresharkで「読む力」を鍛えることが、すべての土台になります。
□ TCP/IPの基礎をざっと押さえた/□ 自分のVMやラボでWiresharkを動かし、自分の通信をキャプチャしてみた/□ 2種類のフィルタの違いを理解した/□ http や dns などの定番ディスプレイフィルタを試した/□ 気になる通信をFollow Streamで“会話”として読んでみた/□ 演習用PCAPでC2ビーコンや持ち出しのサインを探してみた。まずは「自分の通信を眺める」ことから。見えてくると、面白くなります。
📚 用語集・FAQ・次に読む
つまずきやすい用語と、よくある疑問をまとめました。
ここまでに登場した言葉の“答え合わせ”として、用語集とFAQを用意しました。Wiresharkは機能が膨大ですが、入口はこの記事の範囲で十分。あとは演習用PCAPで手を動かすほどに、見える世界が広がっていきます。
📖 用語集
| 用語 | 意味 |
|---|---|
| パケット | ネットワークを流れるデータの“小包”。通信はこの集まりで成り立つ。 |
| PCAP | キャプチャした通信を保存するファイル形式。ネットワークの証拠/記録。 |
| キャプチャフィルタ | 記録する“前”に対象を絞るフィルタ(BPF構文)。捨てた通信は戻らない。 |
| ディスプレイフィルタ | 記録した“後”に表示を絞るフィルタ。何度でも変更可能。調査の主役。 |
| Follow Stream | バラバラのパケットを一つの“会話”に再構成して読む機能。 |
| C2(C&C) | 攻撃者が感染端末を遠隔操作する指令サーバ。ビーコンで通信する。 |
| ビーコン | 感染端末がC2へ一定間隔で送る“生存確認・指示待ち”通信。 |
| SNI | TLS接続時に見える接続先のドメイン名。暗号化でも通信先は分かる。 |
| tshark | WiresharkのCLI版。大量処理・フィールド抽出・自動化に使う。 |
| IOC | 不正なIP・ドメイン・ハッシュ等、攻撃を示す手がかり。通信先と照合する。 |
❓ よくある質問(FAQ)
会社のネットワークで試してみてもいいですか?
いいえ、無断ではいけません。パケットキャプチャは他者の通信内容(パスワードや個人情報を含む)を取得し得るため、権限のないネットワークでの実施は「通信の秘密の侵害」などに該当し得ます。学習は、自分専用のVM・自宅ラボ、または公開されている演習用PCAPで。業務で行う場合も、必ず正式な承認と範囲の取り決めのもとで実施してください。
通信がTLSで暗号化されていたら、もう何も分からない?
中身(送受信データ)は読めませんが、「いつ・誰と・どれだけ・どのドメイン(SNI)と通信したか」というメタデータは見えます。C2ビーコンの“等間隔”や、深夜の大量アップロードといった振る舞いは、暗号化されていても十分に検知の手がかりになります。中身まで見る必要がある検証環境では、鍵をWiresharkに渡して復号する方法もあります。
ログ分析(SIEM)があれば、パケット解析はいらない?
役割が違い、補完関係です。ログ/SIEMは「広く・速く・継続的に」監視するのが得意。パケット解析は「狭く・深く・1通信単位で真相を確かめる」のが得意です。SIEMやSigmaで“怪しい”と当たりをつけ、Wiresharkで“本当に何が起きたか”を確定する——という連携が王道です。
初心者は、まず何から練習すればいいですか?
まず自分のPCの通信を自分でキャプチャし、Webサイトを開いたときに dns や http でどう見えるかを眺めましょう。次に演習用のPCAP(malware-traffic-analysis.net など)で、C2ビーコンや不審なダウンロードを探す練習へ。TCP/IPの基礎を並行して押さえると、理解が一気に進みます。
大きすぎるPCAPで動作が重いときは?
tsharkで先に絞るのが定石です。巨大なPCAPを tshark -r big.pcap -Y "条件" -w small.pcap のように必要部分だけ切り出してから、Wireshark(GUI)で開けば軽くなります。また、キャプチャ時にファイルを一定サイズで分割する「リングバッファ」を使う手もあります。
自分でキャプチャする以外に、解析だけの仕事もありますか?
はい、むしろ実務では「誰かが取ったPCAPを解析する」場面が多くあります。インシデント対応では、機器が記録した通信や、フォレンジック担当が保全したPCAPを受け取って読み解きます。だから“捕まえる技術”と“読む技術”は別物で、本記事の③〜⑤(フィルタ・シナリオ・統計)は、自分ではキャプチャしない人にも丸ごと役立ちます。
🧭 次に読む
🗺️ 土台と全体像
🛰 通信から攻撃を追う
🎯 検知と対応につなぐ
📚 参考・出典(一次情報)
- Wireshark 公式(wireshark.org)— ユーザーガイド/ディスプレイフィルタ・リファレンス/tshark マニュアル
- Palo Alto Networks Unit 42「Wireshark によるパケット解析講座」シリーズ(Emotet感染通信ほか、日本語版あり)
- malware-traffic-analysis.net(Brad Duncan)— 演習用PCAPと解析チュートリアル
- MITRE ATT&CK(T1071 アプリケーション層プロトコル、T1048 データ持ち出し 等)
- RFC 3227「Guidelines for Evidence Collection and Archiving」(証拠保全の原則)


コメント