DDoS攻撃は今日のインターネットセキュリティにおける最大の懸念事項です。 DDoS攻撃が機能する方法やどうすれば阻止できるかを詳しく確認しましょう。
この記事を読み終えると、以下のことができるようになります。
関連コンテンツ
是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!
記事のリンクをコピーする
分散型サービス妨害(DDoS)攻撃は、標的もしくはその周りのインフラストラクチャに大量のインターネットトラフィックを与えることで、標的となるサーバー、サービス、ネットワークの通常トラフィックを妨害しようとする悪意のある行為です。
DDoS攻撃は複数の侵害されたコンピューターシステムを攻撃トラフィックの源として利用することで効果を発揮します。悪用対象のマシンには、コンピューターやIoTデバイスなどといったその他のネットワークリソースが含まれます。
大まかに言えば、DDoS攻撃は高速道路で詰まっている交通渋滞のようなもので、通常の交通の流れが目的地に到達するのを防止します。
ボットネットが構築されると、攻撃者は各ボットに遠隔指示を送信して攻撃を指揮できます。
被害者のサーバーやネットワークがボットネットの標的になった場合、各ボットは標的対象のIPアドレスにリクエストを送信し、サーバーやネットワークが圧倒される可能性を引き起こし、通常のトラフィックへのサービス拒否をする結果となります。
各ボットは正当なインターネットデバイスであるため、攻撃トラフィックを通常トラフィックと区別することは困難です。
DDoS攻撃の最も顕著な兆候は、サイトやサービスが突然遅くなったり、利用できなくなることです。トラフィックの正当な急増など、数多くの原因が似たような問題を起こして、パフォーマンスに影響を与えます。通常はさらなる調査が必要となります。トラフィック分析ツールは、こうしたDDoS攻撃の兆候を特定するのに役立ちます。
他にもDDoS攻撃固有の兆候があり、攻撃のタイプによって異なります。
様々なタイプのDDoS攻撃が、ネットワーク接続の各種コンポーネントを標的とします。さまざまなDDoS攻撃の仕組みを理解するには、ネットワーク接続がどのように行われるのかを知る必要があります。
インターネット上のネットワーク接続は多くの異なるコンポーネント、つまり「レイヤー」で構成されています。基礎から家を建てるように、モデル内の各「レイヤー」には異なる目的があります。
以下に記載したOSI参照モデルは、7つの異なるレイヤーにおけるネットワーク接続を表すための概念フレームワークです。
ほぼすべてのDDoS攻撃がターゲットのデバイスやネットワークをトラフィックで溢れさせる行為に関わっていますが、この攻撃は3つのカテゴリーに分けることができます。攻撃者は、1つまたは複数の異なる攻撃ベクトルを利用したり、標的がとった対策に基づいて攻撃ベクトルを循環させたりする可能性があります。
レイヤー7DDoS攻撃(OSI 参照モデルの第7レイヤーに関連して)と呼ばれることもありますが、こういった攻撃の目的はサービス拒否を引き起こすために、ターゲットのリソースを使い果たすことです。
攻撃が狙うのは、HTTPリクエストに応じてサーバー上でWebページが生成され配信されるレイヤーです。単一のHTTPリクエストをクライアント側で実行するのには負荷がかかりませんが、サーバーはWebページを作成するために複数のファイルを読み込んでデータベースクエリを実行しなければならないことが多いため、その応答負荷は高いことがあります。
レイヤー7攻撃は、正当なトラフィックと悪意のあるトラフィックを区別することが難しいため、防御が困難となります。
この攻撃は多数の異なるコンピューター上にあるWebブラウザで一度に何度も更新ボタンを押す行為に似ています。つまり多数のHTTPリクエストがサーバーに押し寄せ、結果としてサービス妨害になるものです。
この種の攻撃は単純なものから複雑なものまでさまざまです。
より簡単な実装では、同じ範囲の攻撃IPアドレス、リファラー、およびユーザーエージェントを使用して1つのURLにアクセスできます。複雑なバージョンでは、多数の攻撃IPアドレスを使用し、ランダムリファラーとユーザーエージェントを使用してランダムなURLを標的にすることがあります。
プロトコル攻撃は、State-Exhaustion攻撃としても知られており、サーバーリソースやファイアウォール、ロードバランサーなどのネットワーク機器のリソースを過剰消費することでサービス妨害を引き起こすものです。
プロトコル攻撃はプロトコルスタックの第3/4レイヤーの脆弱性を利用し、ターゲットにアクセスできないようにします。
SYNフラッドは、店頭からリクエストを受け取る備品室の店員に似ています。
その店員はリクエストを受け取ると、パッケージを取りに行き、店頭にパッケージを運ぶ前に確認を受けるのを待ちます。ところが、これ以上運ぶことができないという量になるまで、確認されていない多くのパッケージリクエストを受けるため、作業許容量を超え、入ってくるリクエストに対応できなくなります。
この攻撃は、なりすましのソースIPアドレスで大量のTCP「初回接続リクエスト」のSYNパケットを標的に送りつける方法で、TCPハンドシェイク(二台のコンピューターがネットワーク接続を開始することで行う一連の通信)を悪用します。
ターゲットのマシンは各接続リクエストに応答し、ハンドシェイクの最終ステップを待機します。しかしこの最終ステップが起こることはなく、このプロセスでターゲットのリソースを使い果たします。
このカテゴリの攻撃は、標的とより大きなインターネットの間で利用可能なすべての帯域幅を消費することにより、輻輳させようとします。ボットネットからのリクエストなど、大量のデータを増幅したり、または別の手段で大量のトラフィックを作成する方法を使用して標的に送信します。
DNSアンプリフィケーションは、レストランに注文の電話が入り、「すべてのお料理を1品ずつ注文します。電話を折り返して、今私が注文したものを全部確認してください」と言われたけれど、教えられた折り返し先の電話番号は被害者の電話番号だった、という状況に似ています。ごくわずかな労力で、長い応答が生成され、被害者に送信されるようになっているのです。
なりすましのIPアドレス(被害者のIPアドレス)でDNSサーバーを開くリクエストを作成することで、ターゲットのIPアドレスがサーバーからの応答を受け取ります。
DDoS攻撃を軽減する際に重要なのは、攻撃トラフィックと通常トラフィックを区別することです。
たとえば、製品リリースで企業のWebサイトに熱心な顧客が殺到した場合、全トラフィックを遮断するのは間違いです。その企業で既知の攻撃者からのトラフィックが急増した場合は、攻撃を軽減するための努力が必要でしょう。
この難しさは、実際のお客様と攻撃トラフィックを見分けることにあります。
現代のインターネットでは、DDoSトラフィックはさまざまな形で発生します。トラフィックの設計は、なりすましのない単一ソースによる攻撃から複雑で適応性のあるマルチベクトル型攻撃までさまざまです。
マルチベクトル型DDoS攻撃は、ターゲットをさまざまな方法で圧倒するために複数の攻撃パスを使っており、1つのパスに対する対策が取られてもその取り組みは無に帰する可能性があります。
HTTPフラッド(第7レイヤーを狙う)とDNSアンプリフィケーション(第3/4レイヤーを狙う)を組み合わせるなど、プロトコルスタックの複数のレイヤーを同時にターゲットとする攻撃は、マルチベクトル型DDoSの一例です。
複数のベクトルに対応するため、マルチベクトル型DDoS攻撃の軽減にはさまざまな戦略が必要です。
全般に、攻撃が複雑であればあるほど、攻撃トラフィックを通常トラフィックと区別するのが難しくなります。攻撃者の目的はできる限りトラフィックを混ぜ合わせることで対策効率をできるだけ下げることなのです。
無差別にトラフィックの中断や制限を行う軽減対策では、悪いトラフィックと共に正規のトラフィックも切り捨てるおそれがあり、対策を回避するよう攻撃が修正される場合もあります。混乱を生じさせようとする複雑な試みを克服するために、階レイヤー化されたソリューションが最大のメリットをもたらします。
事実上すべてのネットワーク管理者が利用できるソリューションは、ブラックホールルートを作成してそのルートにトラフィックを流し込むことです。最も単純な形式では、特定の制限基準なしでブラックホールフィルタリングが実装されると、正当なネットワークトラフィックと悪意のあるネットワークトラフィックの両方がNullルートまたはブラックホールにルーティングされ、ネットワークからドロップされます。
インターネットプロパティがDDoS攻撃を受けた場合、このプロパティのインターネットサービスプロバイダー(ISP)は防御としてサイトのトラフィックすべてをブラックホールに送る可能性があります。これは事実上、ネットワークを利用できなくするという攻撃者が望む目的を達成させてしまうため、理想的なソリューションではありません。
サーバーが特定の時間枠内で受け入れるリクエストの数を制限することも、サービス妨害攻撃を軽減する方法です。
レート制限は、Webスクレイパーによるコンテンツの盗難を遅らせ、ブルートフォースログイン試行を軽減するのに役立ちますが、複雑なDDoS攻撃を効果的に処理するには不十分です。
とはいえ、レート制限は効果的なDDoS軽減戦略の有用なコンポーネントです。Cloudflareのレート制限についてご確認ください。
Webアプリケーションファイアウォール(WAF)は第7レイヤーへのDDoS攻撃軽減をサポートするツールです。WAFをインターネットとオリジンサーバーの間に配置することでリバースプロキシとして動作し、ターゲットのサーバーを特定の種類の悪意のあるトラフィックから保護します。
DDoSツールの特定に用いる一連のルールに基づいてリクエストをフィルタリングすることで、レイヤー7への攻撃を防げます。効果的なWAFの主要価値の1つは、攻撃に応じてカスタムルールを迅速に実装できることです。CloudflareのWAFをご確認ください。
この軽減アプローチでは、エニーキャストネットワークを使用して、分散サーバーのネットワーク全体に攻撃トラフィックを分散させ、トラフィックがネットワークに吸収されるようにします。
流れが急な川を複数のより小さな支流へ流すかのように、このアプローチでは分散した攻撃トラフィックの影響を管理可能なところに分散し、その破壊力を拡散します。
DDoS攻撃を軽減するエニーキャストネットワークの信頼性は、攻撃のサイズおよびネットワークのサイズと効率に依存します。Cloudflareが実装するDDoS対策において重要な部分は、ネットワークに分散したエニーキャストを利用しているという点です。
Cloudflareには348 Tbpsのネットワークがありますが、これは記録にある最大規模のDDoS攻撃よりも1桁規模の大きいものです。
現在攻撃を受けているのであれば、困難から逃れるためにできることがあります。Cloudflareに既にご登録されている方は、攻撃を軽減するためのステップに従ってください。
今後受ける可能性のある多くの攻撃ベクトルを軽減するため、Cloudflareで実施しているDDoS対策は多角的です。CloudflareのDDoS対策やその機能について詳しくご確認ください。