DDoS攻撃とは

DDoS攻撃とは、「大量のトラフィックを送ること」では、ありません。大量のトラフィックを送ることは、あくまで手段です。DDoS攻撃の目的は、攻撃先のサービスをダウンさせることにあります。攻撃手法も、正常な通信のように見せかけたり、送信元を偽装したりと巧妙化しています。本ページでは、DDoS攻撃の定義、その代表的な手法について、ご紹介します。

DoS/DDoS攻撃とは

DoS攻撃からDDoS攻撃へ

DoS攻撃からDDoS攻撃へ

DoS/DDoS攻撃とは、「大量のトラフィックを送ること」ではありません。 「大量のトラフィックを送ること」は、あくまで過程であり、攻撃の目的は、「サービスを停止させること」です。

DDoS攻撃がこれほど注目を集める以前は、DoS攻撃が主流でした。DoS攻撃とは「Denial of Service(サービスの停止)」を意味し、2000年ごろから流行し始めました。

DoS攻撃は、一人の攻撃者が、大量のトラフィックを攻撃先サーバーに送りつけ、サーバーを高負荷状態にさせる攻撃です。
防御側は、ソースが一意のIPであることから、ファイアウォールなどのACL(Access Control List)で、特定ソースIPのトラフィックをドロップしてしまえば、簡単に対処が可能です。

DDoS攻撃は、「Distributed Denial of Service(分散型サービス停止攻撃)」の略です。攻撃者は、C&Cサーバーにアクセスして、簡単な操作で、Bot化したPCやサーバーに指示を出します。指示を受けたPCやサーバーは攻撃先に対して、大量のトラフィックを送りつけ、サーバーを高負荷状態にさせます。防御側から攻撃者はまったく見えません。

DoS攻撃のように、ソースIPを指定してACLを書くことで対処することはできますが、攻撃トラフィックを送るソースIPが分散し、多数存在するため、同様の防御手法では、対策に限界があります。

サーバーだけではなく、ネットワークも保護対象

従来のセキュリティの考え方は、「守りたいアプリケーション、守りたいサーバーをいかに保護するか?」に重点がおかれていました。そのため、ユーザーやセキュリティベンダーは、アプリケーションを保護するために「守りたいアプリケーション(サーバー)」に対して、ウイルス対策を施すことで十分なセキュリティ対策と考えていました。DoS/DDoS攻撃から自社を守るとき、こうした考え方では、まったく防ぐことができません。攻撃者は、初めはサーバー宛てにDoS / DDoS攻撃を仕掛けます。攻撃により、サーバーまでのネットワーク経路上に配置されたネットワーク機器(例えば、ファイアウォール、IPS、ロードバランサ)が高負荷状態になり、ダウンしてしまいます。攻撃者は、たとえ攻撃先のサーバーが落とせなくても目的が達成できます。つまり、サーバーだけではなく、ネットワークも保護対象とする必要があることが、DoS/DDoS攻撃の非常にやっかいな点です。

代表的なDDoS攻撃手法

ASERT

TCP Syn flood

TCP Syn flood攻撃は、ボリューム攻撃に分類される攻撃手法です。原始的でありながら非常に有効な攻撃です。攻撃者は、送信元を突き止められないように、Botの送信元IPを詐称して攻撃先サーバー宛てに、Synパケットを投げ続けます。攻撃先のサーバーは、返答用にSyn-Ackパケットを投げ続け、Ackパケットを待ち続けます。攻撃者側は、Ackパケットは投げません。このやりとりが続くことで、攻撃先のサーバーはリソースを消費し続け、正規のユーザーからのリクエストに対して遅延を引き起こしてしまいます。最悪な場合、サーバーがダウンし、レスポンスができなくなることもあります。Synパケットを送ること自体は、正常な通信です。「Synパケットを受け付けないようにすることは、できない」という点でやっかいな攻撃手法です。

ASERT

DNSアンプ攻撃

現在、最も多く検出されている攻撃手法であるアンプ攻撃は、ボリューム攻撃に分類されます。 DNSアンプ攻撃は、その中でもDNSサーバーに対するアンプ攻撃です。その手法は、Botが「送信元のIP」を「攻撃先のIP」と偽ってDNS QueryをDNSサーバーに送ります。 DNS Queryを受け取ったDNSサーバーは、攻撃先のIPに対して、レスポンスを送ります。レスポンスのパケットサイズは、 DNS Queryの数十倍のサイズがあります。攻撃者は、C&Cサーバー経由でBotをコントロールして、多数のBotからDNS Queryを送ります。そうすることで攻撃者は、攻撃先のサーバーを高負荷状態にさせ、サーバーをダウンさせます。同様の手法で、NTPサーバーのしくみを利用した「NTPアンプ攻撃」という攻撃も存在します。

ASERT

コネクション型の攻撃

コネクション型の攻撃は、アプリケーション層攻撃に分類される攻撃手法です。攻撃者はBotを経由して、攻撃先サーバー宛てにTCP Synを送ります。Botは、Syn-Ackを受け取ったら、Ackを返答し、3Way Hand Shakeを成立させます。攻撃者はコネクションを確立した後、ツールを用いて大量のGetリクエストなどを投げ続けます。ここで注目すべき点は、BotやツールからTCPのコネクションが確立できてしまう点です。TCP Synパケット自体は正常な通信です。ネットワークモニタリングなどでは、このような攻撃に気づくことが、困難です。

ASERT

HTTP Get Flood

HTTP Get Flood攻撃は、アプリケーション層攻撃に分類される攻撃手法です。攻撃者は、Botを経由して、攻撃先サーバーとTCPのコネクションを確立します。その後、HTTP GetリクエストをBotから送信し続けます。その際に、攻撃者は、スクリプトなどを用いて、URLの一部を書き換えて、リクエストを投げます。こうすることで、例えば、Eコマースなどのサイトを広範囲に攻撃することができます。HTTP Getリクエスト自体は、正常な通信です。DDoS攻撃と判断をすることが困難です。

攻撃の種類

攻撃は2種類に大別されます。