LinuCレベル3 セキュリティスペシャリスト インシデントの検知・防止 問14
インシデントの検知・防止/ネットワークセキュリティSYNフラッド攻撃の兆候を調べるため、TCPの3ウェイハンドシェイクのうち、クライアントが最初に送るパケットだけをtcpdumpでキャプチャしたい。フィルタ式として適切なものはどれか。
当サイトのオリジナル問題(LinuCレベル3 セキュリティスペシャリストの出題範囲「インシデントの検知・防止」に対応。実際の試験問題ではありません)
- Atcpdump -n 'tcp[tcpflags] & tcp-syn != 0'
- Btcpdump -n 'tcp[tcpflags] & tcp-ack == 0'
- Ctcpdump -n 'tcp[tcpflags] & (tcp-syn|tcp-ack) == tcp-syn'
- Dtcpdump -n 'tcp[tcpflags] & (tcp-syn|tcp-ack) != 0'
正解:C
解説
3ウェイハンドシェイクの最初のパケットは、SYNフラグが立ちACKフラグが立っていないパケットです。tcpdumpのキャプチャフィルタでは tcp[tcpflags] でフラグのバイトを取り出し、SYNとACKのビットだけを取り出した結果がSYNだけに等しいものを選びます。SYNだけを条件にすると、サーバーが返すSYN/ACKも含まれてしまいます。大量の接続要求に対して応答が完了しない状況をこうして観察すると、SYNフラッドの兆候をつかめます。
選択肢ごとの解説
- A誤り。SYNが立っていれば一致するため、サーバーが応答するSYN/ACKのパケットも含まれます。
- B誤り。ACKが立っていないことだけが条件のため、SYNの無いパケット(ACKの無いRST等)も含まれ、SYNも必須になりません。
- C正しい。SYNとACKのビットを取り出してSYNだけに等しいものを選ぶため、最初の接続要求だけに一致します。
- D誤り。SYNかACKのどちらかが立っていれば一致するため、確立後の通常の通信まで含むほぼすべてのパケットに一致します。