プロトコルの読み取り
TCP、HTTP、DNSを分析します
「プロトコルの読み取り」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
レイヤーごとのプロトコル
ネットワークトラフィックはレイヤーに分かれて構成されています。各パケットは、封筒の中に封筒を重ねるように、下位層のプロトコルの中に上位層のプロトコルを包みます。
トラフィックを読むには、これらのレイヤーを正しい順番で一つずつ読み解きます。
Ethernet -> IP -> TCP -> HTTP
(frame) (pkt) (seg) (data)TCPハンドシェイク
TCP接続は、SYN、SYN-ACK、ACKによる3ウェイハンドシェイクで始まります。これを確認できれば、実際に接続が確立されたことが分かります。
SYNを送信したのにSYN-ACKの応答がない場合は、閉じたポートか、ファイアウォールによる破棄を示すことがよくあります。
Client -> SYN
Server -> SYN, ACK
Client -> ACK (connection up)TCPフラグと状態
TCPのフラグから接続状態が分かります。通信を追跡するために、よく使われるフラグを覚えましょう。
- SYN:開始。
- ACK:確認応答。
- FIN:正常な終了。
- RST:強制的なリセット。
ストリームを追跡する
WiresharkではTCPストリームを追跡して、ばらばらのパケットではなく、通信を読みやすいテキストとして再構成できます。
パケットを右クリックしてFollowを選択すると、リクエストとレスポンス全体をまとめて確認できます。
Right-click -> Follow -> TCP StreamHTTPを読む
HTTPトラフィックは、暗号化されていなければ平文です。メソッド、パス、ヘッダー、ボディを直接読み取れます。
そのため、暗号化されていないHTTPは分析に役立つ豊富な情報源である一方、ネットワーク所有者にとってはリスクでもあります。
GET /admin HTTP/1.1
Host: intranet.local
Cookie: session=abc123
HTTP/1.1 200 OKHTTPSとTLS
HTTPSはHTTPをTLSで包むため、ペイロードは暗号化されます。それでもTLSハンドシェイク、SNIホスト名、証明書は確認できます。
鍵がなければボディは読み取れませんが、メタデータからも状況を読み取れます。
TLS Client Hello
server_name: bank.example.com (SNI)
TLS Server Hello + CertificateDNSを読む
DNSクエリから、ホストが接続しようとしているドメインが分かります。多くの場合、接続が確立される前に確認できます。
クエリとそのレスポンスから、要求された名前と解決されたアドレスが分かります。
DNS query: A cdn.example.com
DNS response: cdn.example.com -> 93.184.x.x指標としてのDNS
DNSは分析者にとって宝の山です。既知の悪性ドメイン、長くランダムに見えるサブドメイン、異常に多いクエリを探すと、不審な動作の手がかりになります。
異常を探す際には、これを大いに活用します。
UDPとICMP
すべてがTCPとは限りません。UDPは接続を確立せず(DNS、DHCP、QUICで使われます)、ICMPはpingや到達不能エラーなどの制御メッセージを運びます。
ICMPの通信量が異常に多い場合は、スキャンやトンネリングの兆候かもしれません。
統計メニューを使う
WiresharkのStatisticsメニューでは、プロトコル階層、通信、エンドポイントなど、キャプチャの概要を確認できます。
まずここから分析を始め、どのプロトコルが大半を占め、どのホストが最も多く通信しているかを確認しましょう。
Statistics -> Protocol Hierarchy
Statistics -> Conversations
Statistics -> Endpointsメンタルモデルを構築する
優れた分析者は、ネットワークの正常な状態を把握します。正常な状態が分かれば、異常がすぐに目につきます。
プロトコルを流暢に読み取ることが、これから学ぶすべての基礎になります。
クイックチェック
プロトコルの読み取りについての理解度を確認します。
まとめ
ネットワークプロトコルの読み取り方を学びました。
- トラフィックはレイヤー構造になっています。Ethernet、IP、TCP/UDP、アプリケーションの順です。
- TCPはSYN、SYN-ACK、ACKで開始し、フラグから状態が分かります。
- Follow TCP Streamで通信を再構成できます。
- HTTPは読み取れますが、HTTPSで確認できるのはTLSメタデータとSNIだけです。
- DNSから接続先が分かり、Statisticsで正常な状態を見つけられます。
次は、異常と悪意のあるトラフィックを検出します。
よくある質問
「プロトコルの読み取り」レッスンは無料ですか?
はい。「プロトコルの読み取り」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「プロトコルの読み取り」で何を学びますか?
TCP、HTTP、DNSを分析します ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「プロトコルの読み取り」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- パケットのキャプチャ
- プロトコルの読み取り
- 異常の検知
- アーティファクトの抽出