yamory Blog

ある日突然やってくる DDoS攻撃の概要と対策

DDoS攻撃 とは、システムやネットワークに意図的に過剰な負荷をかけるなどの方法により、システム、サービス、Webサイト、アプリケーション、またはその他のリソースにアクセスをできないようにする攻撃を指します。
「DDoS」は「Distributed Denial of Service」の略称で、日本語では「分散型サービス拒否攻撃」と訳されることが一般的です。

本記事ではDDoS攻撃の概要から対策方法までを解説していきます。

DDoS攻撃の仕組み

DDoS攻撃では、複数のシステムから標的となるシステムのサーバーやネットワーク機器などに対して、一斉に攻撃を仕掛けます。
攻撃によって、ネットワークやシステム、Webサイトが持つネットワーク帯域やリソースを消費しきり、攻撃を受けたターゲットはサービス提供が行えなくなります。
攻撃者は様々なツールを駆使して、攻撃対象のサーバーに対して大量のリクエストを送信し、サーバーが処理をさばくことができなくなる(応答不能)状態にします。
攻撃に利用するシステムとしては、コンピュータのみならず、最近ではIoTデバイスなど他のネットワークリソースを用いることもあります。

DDoS攻撃を実在するものに例えるなら、高速道路に膨大な台数の車両を送り込むことで、大渋滞を起こさせるといった問題に例えられるでしょう。道路が渋滞することにより、本来の利用者は目的地に到着することが困難になり、インフラとしてのサービス提供が行えなくなります。

DDoS攻撃とDoS攻撃の違い

DDoS攻撃とセットで扱われる言葉として「DoS攻撃」というものがあります。

DoS攻撃は脆弱性をついた攻撃などを仕掛けるケースと、大量のリクエストを単一のマシンから送ることでサービスを停止させる行為などを指します。
例えば皆さんが利用しているWebブラウザでも、ページのリロードを行えるショートカット"F5キー"を連打することにより、サーバーへのアクセスを連続して行うことができますが、これもユーザーが故意に行えばDoS攻撃とみなされる可能性のあるものです(F5アタックとも呼ばれます)。DoS攻撃はあくまで「サービス提供妨害」を指すので、 F5アタックのような狭義の物から、システム妨害攻撃全般の広義のものまでを包括してDoSと呼びます。

DDoS攻撃は、複数の攻撃元(複数のIPアドレス)から一斉に行われるため、より大きなトラフィックを送り付けることが可能となり、攻撃対象に対してより大きな負荷が発生します。

DDoS攻撃もDoS攻撃の一部ではありますが、上記のように攻撃元が複数の場合を特筆して「DDoS攻撃」と呼ぶことが一般的です。

DDoS攻撃はどのようにして実行されるのか

攻撃者はボットネットを介して大量のリクエストをターゲットに送ります。すると、ターゲットとなるサーバーは応答に必要なリソースが枯渇しサービス不能状態に陥ります。これがDDoS攻撃の仕組みです。
DDoS攻撃の概略

DDoS攻撃を実行するために、まず攻撃者は、攻撃を実行するためのマシンとネットワークを確保していきます。
この確保したマシンとネットワークは「ボットネット」と呼ばれ、コンピュータにマルウェアを仕込んだり、脆弱なIoT機器 / サーバを乗っ取り構築されます。
ボットネットに悪用されている各マシンの所有者は、ほとんど場合、知らないうちにリモートで制御されています。

ボットネットが確立されると、攻撃者はボットネットを介して大量のリクエストをターゲットに送ります。その結果、ターゲットとなるサーバーないしはネットワークでは、通常のリクエストの応答で必要なリソースが枯渇し、ターゲットをサービス不能状態に陥らせます。

各ボットからのアクセスは、通常のアクセスで発生しうるトラフィックを用いている場合があり、攻撃のトラフィックなのか見分けがつかないこともあります。

DDoS攻撃にも規模があり、稀ではありますが非常に規模が大きい場合、各国間でつながっている国際ケーブルのトラフィックをも使い切ってしまうこともあります。
※Googleが提供している「Digital Attack Map」というサイトでは、世界中で発生しているDDoS攻撃が可視化されて見ることができます

DDoS攻撃の種類

ほぼすべてのDDoS攻撃に言えることは、トラフィックを伴うターゲットデバイスまたはネットワークが圧迫されることにあります。
DDoS攻撃にはいくつかの種類がありますが、大きくは4つに分類できます。

主な攻撃の種類

TCPコネクション攻撃

これらは、ロードバランサー、ファイアウォール、アプリケーションサーバーなどのインフラとデバイスに対して、利用可能なすべてのコネクションを使い果たすことを試みます。
数百万のコネクションを担保できる環境でも、攻撃規模によっては攻撃が成功する可能性があります。

ボリューム攻撃(Volume-Based DDoS Attacks)

ネットワークの帯域幅を使い果たすことを目的とした攻撃です。
これらは、ターゲットネットワーク / サービス内、またはターゲットネットワーク / サービスとインターネット間での帯域幅を消費しようとします。

フラグメント攻撃

被害者にTCPまたはUDPフラグメントのフラッドを送信し、被害者がストリームを再構成する際のリソース消費を悪用する攻撃です。
分割されたパケット(フラグメント)を受け取った際、サーバはリソースの一部を利用してパケットを再構築します。これを悪用し継続的に分割されたパケットを送ることで、マシンリソースを大量に浪費させるのがフラグメント攻撃です。

アプリケーション攻撃

アプリケーションまたはサービスの特定の部分へ攻撃することで、少ないトラフィックでターゲットサービスのパフォーマンスを低下させる攻撃です。
XXEによるDoSなどもここに含まれます。

輻輳

また、先述した「攻撃」に加えて、攻撃トラフィックを増殖させる手段として「輻輳(ふくそう)」があります。
攻撃者は輻輳のテクニックも組み合わせて攻撃を行うことで、ターゲットにより大きな影響が出ることを狙います。

DNS リフレクション

攻撃者は被害者のIPアドレスを偽造することにより、DNSサーバーに小さなリクエストを送信し、被害者に大きな返信を送信するようリクエストできます。これにより、攻撃者はボットネットからのすべてのリクエストのサイズを拡大できるため、ターゲットのリソースを簡単に消費させることができます。

DDoS攻撃に対して、どう立ち向かい対策を行うか

対策手法

DDoS攻撃は昔からインターネット全体の脅威とされつつも、現代になっても防御が難しい攻撃の一つです。上述したように、攻撃手法は正規のユーザアクセスと全く同じ通信を用いたものから、異常パケットの送信まで多岐に渡るため、その対策手法も多岐に渡ります。
以下に、代表的な対策の手法を紹介します。

ブラックリストIPで遮断〜ボットネットのアクセスを防ぐ〜

攻撃者が毎回新しいボットネットを構築することは稀で、多くの場合ボットネットは使い回しされています。そのため、過去にスキャン行為や攻撃行為が観測されたIPアドレスは、ボットが存在する可能性が高いIPアドレスとしてしてセキュリティベンダーなどが提供するブラックリストに記録されています。
こうしたブラックリストを活用、IPアドレスベースでブロックすることは最もシンプルかつ即時性のある対策です。

なお、ブラックリストによってはサービス提供国のISPのアドレスが記録されていることもあるため、その選定では精度や更新頻度を確認することをお勧めします。

また、もしサービス提供する国が限られている場合、国情報を用いてサービス提供国からのアクセスのみを許可することも有効な対策です。

攻撃手法で遮断〜サーバのリソースを守る〜

ブラックリストによる遮断は高い効果を見込めますが、ブラックリストに載っていいないIPやサービス提供国におけるISPのIPなど意図的に透過させている場合もあると思います。
それらのIPアドレスからのアクセスへの対応として、上述したDDoS攻撃の攻撃手法に着眼し、攻撃と想定される通信を遮断する方法です。
具体的な方法としては、基礎的ですが同一IPからの大量のコネクション要求やRFC上起こり得ないパケットの遮断などがあげられます。

DoSに繋がるリスクを減らす〜アプリのリソースを守る〜

クエリを実行するページなど、アプリケーションが使用しているアーキテクチャや作りによっては、正常なリクエストが攻撃に転用される恐れがあります。
このようなリスクに対しては、弱点となり得るページにおいて大量アクセス時にSorryページを返すなどし、サービス不能状態に陥らないようにすることができます。

どこで対策するか

DDoS攻撃を防ぐことにも膨大なリソースが割かれます。単一の機器などで対策を行なっている場合は、それ自体がサービス不能の原因となりえます。構成にもよりますが、最悪の場合ネットワークの全断などが起きえます。

DDoSの対策では、帯域幅やリソースの大きいクラウドサービスや、ISPが提供するDDoS対策サービスなどで対策することをお勧めします。

DDoS攻撃を発生させないために

DDoS攻撃は突然発生することがあります。
日々備えておくことが重要ですが、DDoS攻撃の一部とならないようにすることも重要です。
DDoS攻撃で用いられるボットネットの多くは、脆弱性のあるソフトウェアを使用したクライアントPCや、脆弱性のある、または設定の甘いサーバやIoT機器が使用されることがあります。これらのセキュリティを保つことで、ボットネットの発生リスクを抑え、インターネット全体の安全性を高めることができるでしょう。

さいごに

DDoS攻撃はターゲットを麻痺させる定番の手法として今も盛んに行われている攻撃手法です。
一方で、世間で話題になった際に、サーバーに大量のアクセスが来訪することもあるため、適切に防御していくことが難しい部分もあります。

DDoS攻撃への対策サービスなども提供されていますので、ぜひ活用をご検討ください。

yamoryでは、Webアプリケーションの約9割を占めると言われているオープンソースソフトウェアの脆弱性と、その脆弱性に関連する攻撃情報をモニタリングし、アプリケーションのセキュア化を支援いたします。インターネットの安全性を高めるためにも、ぜひ一度お試しいただければ幸いです。

オープンソース脆弱性管理ツール yamory

  • 利用中のOSSを抽出し
    脆弱性を自動スキャン
  • 脆弱性への対応優先度を自動で分類
  • 組織規模に合わせたプランを選択可能

フリー

¥0

個人向け

1チームまでの開発チーム作成

yamory を使いはじめる

プロ

有料料金はお問い合わせください

中〜大規模組織向け

無制限の開発チーム作成

開発チームを俯瞰できるセキュリティチーム機能

危険な脆弱性の Slack 連携通知機能

Jira Cloud と連携

シングル・サインオン(SSO)連携*

* SSO 連携は無料トライアルではご利用できません。プロプラン契約後からご利用できます。

30日間の無料トライアルを開始