ネットワークとWireshark入門:パケットをCTFで読む基礎
ネットワークのCTFでは、通信を構成する小さな記録であるパケットから、名前解決、接続、アプリケーションのやり取りを読みます。
Wiresharkはパケットを表示するための道具であり、最初から全行を読むより、通信の目的に合わせて範囲を狭めるほうが確実です。
通信の層を対応させる
IPアドレスは通信相手をネットワーク上で識別し、TCPやUDPはデータの運び方を定めます。
DNSは名前から接続先を調べ、HTTPはWebの要求と応答を表します。
この区別を持つと、表示されたポート番号、ドメイン名、URLを一つの意味として扱わずに済みます。
Wiresharkでの絞り込み
- 配布されたキャプチャの時刻範囲と、問題文にある利用者やサービス名を確認します。
- DNS、TCP、HTTPなど、問いに関係するプロトコルから表示を絞ります。
- 送信元、宛先、時刻、要求と応答を対応させ、会話の単位で読みます。
- 見つけた文字列は、どのパケットとどのフィールドにあったかをメモします。
フィルターは発見を助けますが、除外された通信に答えがないことを保証するものではありません。
結果が不自然なら、時刻範囲や別のプロトコルに戻って条件を見直します。
TCPの流れを読む
TCPでは、接続開始、データ送受信、切断という流れを追えます。
再送や順序の入れ替わりがあると、画面に並んだパケットの順番だけではアプリケーションの内容を正しく復元できない場合があります。
通信をストリーム単位で見る理由は、同じ接続に属するデータをまとめて関係付けるためです。
キャプチャに含まれる情報
パケットキャプチャには、通信内容だけでなく、接続先、時刻、端末の情報が含まれることがあります。
実際の組織や家庭の通信を無断で取得、閲覧、共有してはいけません。
キノコハッカーの配布データなど、解析を許可された記録だけを対象にし、迷った場合は責任ある利用方針を確認してください。
次に読むページ
- ネットワークカテゴリのチャレンジで、演習用の通信記録を読めます。
- Webセキュリティの基礎では、HTTPの要求と応答を詳しく扱います。
- フォレンジックの基礎は、通信を証拠として扱うときの考え方につながります。