ICDロゴ

TCP SYNフラッド攻撃 (TCP SYN Flooding Attack)

【ティー・シー・ピー・シン・フラッド・コウゲキ】

別名
SYNフラッド攻撃 (SYN Flooding Attack) 【シン・フラッド・コウゲキ】

最終更新日: 2006/11/27

 DoS攻撃の一種で、TCPのハンドシェイクが確立しない要求パケットを次々に送信することで、リソースを浪費させ、サービス拒否の状態とする攻撃のこと。単に「SYNフラッド攻撃」と呼ばれることもある。さらに、攻撃元がIPアドレスを詐称(IPスプーフィング)する手法と組み合わせることにより、より防御が困難な攻撃となる。

 TCPによる接続では、まずクライアントがサーバに対してSYNパケットを送信する。次にサーバがクライアントに対して、SYN/ACKパケットを返し、そのメッセージに対して、さらにクライアントが承認のためのACKパケットを送信することで、初めて接続が確立する。3回のパケットのやり取りを通じて接続が確立するので、これを「3ウェイ・ハンドシェイク」という。しかしクライアントが最後のACKパケットを返さないと、接続が確立しない状態(「ハーフ・オープン」状態)のまま、サーバは待たされることになる。ハーフ・オープン状態では、クライアントからのACK応答を待つために、サーバ側はTCP接続のためのリソースを割り当てたままタイムアウトするまで待つことになる。

 ところが、ハーフ・オープン状態の数が多くなりすぎるとサーバ側のリソースを無用に消費してしまい、新しい(正規の)TCP接続を受け付けられなくなったり、ほかの処理が滞ったりするなど、さまざまな問題が発生する。このように、最初のSYNパケットだけを連続して送信し続ける攻撃を、TCP SYNフラッド攻撃と呼ぶ。

 さらに、送信元のIPアドレスを詐称することにより、意味のないIPアドレスへのSYN/ACKパケットの返信の必要が生じ、ネットワークに対して無用なトラフィック増を招いたり、例えば同じIPアドレスからの連続したTCP SYN要求を抑制するといった対策を行いにくくしたりすることができる。

 3ウェイ・ハンドシェイクは、TCP接続における基本的な通信開始シーケンスであり、SYN要求を受け取ってもハーフ・オープン状態にしないというなどという、完全な防御策はない。しかしTCP SYNフラッド攻撃に対する影響をいくらか軽減することは可能である。例えば、ある一定量以上の(同じIPアドレスからの連続する)SYN要求は受け付けないようにしたり、ファイアウォールでTCP接続を代理受信し、正常にオープンできた接続だけをサーバに渡したり、といった方法がある。また、ファイアウォールやOSでIPスプーフィングを検知し、排除するような設定を行うことにより、IP詐称と組み合わせたTCP SYNフラッド攻撃を防ぐことができる。ただし、インターネットから社内のIPアドレスを詐称するようなIPスプーフィングの検知は簡単に排除できるが、グローバル・アドレスを詐称するようなIPスプーフィングの検知は容易ではない。ネットワーク監視ソフトウェアなどを活用し、常にネットワークの状態をモニタリングすることも対策としては重要である。

Copyright (C) 2000-2007 Digital Advantage Corp.

アイティメディアの提供サービス

キャリアアップ