DDoS 攻撃を阻止する方法

公開: 2023-03-24

稼働時間は、フロントエンド開発者とバックエンド開発者の両方にとって主要な関心事ですが、あらゆる種類のサーバー側管理者にとっても重要です. 残念ながら、悪意のある人物がサイトを破壊する最も効果的な方法の 1 つは、分散型サービス拒否 (DDoS) 攻撃を使用してサイトをダウンさせ、アップタイムを減らすことです。 そのため、Web サイトを扱っているほとんどの人は、DDoS 攻撃を阻止する方法、または少なくとも軽減する方法を知りたいと考えています。

この投稿では、DDoS 攻撃を阻止する方法について説明します。 しかし、正確な手順に入る前に、シーンを設定しましょう。 そのために、まず DDoS 攻撃とは何かを見て、それを特定する方法を学びます。

DDoS 攻撃とは

一般的に、通常の (分散型ではない) サービス拒否 (DoS) 攻撃は、サーバー リソースを圧倒してサイトをオフラインにしようとします。 悪意のあるアクターは、余分なリクエストを使用してネットワーク上のホストのサービスを妨害し、その結果、正当なリクエストがサイトに到達できなくなります。

これは、店の外での抗議のようなものと考えることができます。 人が建物の入り口をふさいでいると、顧客は入ることができず、事実上、店舗は最適な取引ができなくなります (またはまったく取引できなくなります)。

DDoS (分散型サービス拒否) 攻撃は、ネットワーク内の多数のリモートコンピューターを使用して、この目的を達成します。 これは実際には「スラッシュドット効果」に似ており、正当で前例のないトラフィック (多くの場合、トラフィックの多い Web サイトからのリンクによるもの) がサイトの速度低下やクラッシュを引き起こす可能性があります。 ただし、これには正当な理由がありますが、DDoS 攻撃は常に計画的で悪意があります。

たとえば、DDoS 攻撃が使用するマシンの多くは、エクスプロイトまたはマルウェア インジェクションの影響を受けています。 攻撃者は、特定の IP アドレスを標的とするリモート指示を使用してこれらの「ボット」を制御し、それぞれが正当に見える可能性があります。

DoS 攻撃が成功する主な要因の 1 つは、ターゲットのインターネット速度が攻撃者よりも遅いことです。 最新のコンピューティング テクノロジではこれが困難になっているため、 DDoS 攻撃は悪意のある人物に対してはるかに優れたパフォーマンスを発揮します。

全体として、DDoS 攻撃の分散型の性質により、通常の状況下で攻撃を特定することは困難です。

DDoS 攻撃を特定する方法

DDoS 攻撃を阻止する方法を知りたい場合は、まず攻撃がどのようなものかを理解する必要があります。 トラフィック数が多いのには正当な理由がある可能性があるため、これは難しい場合があります。

大まかに言うと、サイトが遅くなったりクラッシュしたりした場合、これは障害対策を実施する兆候です (詳細は後で説明します)。そこから、多くの明確な兆候に注意する必要があります。

  • すべてが共通のシグネチャを示す大量のトラフィック。 これは、トラフィックが同じ IP アドレスまたはアドレス範囲から発信されていることを意味している可能性があります。 他のケースでは、同様の場所、参照元の Web サイト、またはデバイスの種類からのトラフィックを見つけることができます。
  • 単一のサイト エンドポイント (通常は特定のページ) へのトラフィックが急増することもあります。 多くの 404 エラーも明確な兆候である可能性があります。
  • サイトが受信することを期待するものと一致しないトラフィック パターン。 たとえば、これは、通常の時間範囲外のピークや、アクティビティのオンアワー スパイクなどの不自然なイベントである可能性があります。
  • これらはすべて、悪意のあるものではなく正当なものである可能性があります。 そのため、分析ソフトウェアを利用して、何が関連しているかを把握する必要があります。

また、すべての DDoS 攻撃が同じというわけではなく、タイプが異なると、この問題がより複雑になる可能性があることにも注意してください。 したがって、DDoS 攻撃を阻止する方法を知りたい場合は、これらのタイプについて知っておくことが重要です。

遭遇するさまざまな種類の DDoS 攻撃

「ネットワーク接続」は、コンピューターが Web を介してリンクする方法を説明する単純なフレーズのように思えるかもしれませんが、それは誤りです。 Open Systems Interconnection (OSI) モデルは、ネットワーク接続と通信システムの実際の層状の複雑さを示しています。

理論上の OSI レイヤーの概要。
画像クレジット: ジョー・マナ.

DDoS 攻撃は、標的とするレイヤーに基づいてさまざまなカテゴリに分類されます。 それでも、それらをさまざまなグループにまとめることはできます。 これはレイヤーごとに行うこともできますが、DDoS 攻撃の対象によって分類することもできます。

たとえば、ボリューム攻撃は、ネットワーク層とトランスポート層 (3 層と 4 層) を圧倒するように見えます。ここでの攻撃は、データが Web を介して移動する方法と、伝送プロトコルの有効性を変える可能性があります。

1 つはドメイン ネーム システム (DNS) 増幅攻撃で、「ボットネット」を使用してターゲットの IP アドレスを偽装し、公開 DNS サーバーに要求を送信します。 これにより、サーバーはターゲット IP に応答し、リソースを圧倒します。

プロトコル層攻撃

プロトコルまたはインフラストラクチャ レイヤー攻撃も、レイヤー 3 および 4 を標的とし、DDoS 攻撃を実行する典型的な方法を表しています。 これは、サーバーのリソースとネットワーク機器が入ってくるデータを処理できない場所です.

ここでの例は、ユーザー データグラム プロトコル (UDP) リフレクション攻撃です。 これは、UDP のステートレスな性質を利用しています。 ほぼすべてのプログラミング言語を使用して、有効な UDP 要求パケットを作成できます。 攻撃を成功させるには、ターゲットの IP アドレスを UDP ソース アドレスとしてリストするだけで済みます。

このデータが向かうサーバーは、データを増幅してより大きな応答パケットを作成し、それをターゲット IP アドレスに反映します。 そのため、悪意のあるアクターはどの時点でもサーバー接続を確立する必要がなく、安価に作成できます。

Web サーバーに接続すると、クライアントとサーバーの間で、同期 ( SYN ) と確認 ( ACK ) パケットの両方を含む「スリーウェイ ハンドシェイク」が行われます。 サーバーは結合されたSYN-ACKパケットを送信しますが、クライアントは単一のSYNおよびACKパケットを送信します。

SYNフラッド攻撃では、クライアント (この場合は悪意のあるユーザー) が複数のSYNパケットを送信しますが、最終的なACKパケットは送信しません。 これにより、半分開いた伝送制御プロトコル (TCP) 接続が多数残ります。これは、サーバーが新しい接続を受け入れる容量を使い果たしたことを意味します。 これは、利用可能な接続を正当なユーザーから遠ざけるためのもう 1 つの方法です。

アプリケーション層攻撃

DDoS 攻撃は、3 層目と 4 層目だけではありません。 7 番目のアプリケーション層は最上位にあります。 これは、人間とコンピューターの対話を処理し、アプリがネットワーク サービスにアクセスできるようにすることを意味します。

そのため、多くの場合 HTTP リクエストを使用して、このレイヤーを操作する DDoS 攻撃が多数存在します。 クライアントにとって HTTP リクエストは安価ですが、サーバーにとっては技術的な観点から応答するのにコストがかかります。 攻撃は、主に同じ方法を使用してサイトにアクセスするため、正当なトラフィックのように見えることがあります。

たとえば、HTTP フラッドは、ブラウザの更新ボタンを連続して押すようなものです。 このタイプの DoS 相互作用がDDoSになると、より複雑になります。

HTTP フラッドのスタイルも複雑になる可能性があり、多数の異なる IP アドレスとランダムなシグネチャを使用して、膨大な範囲の Web URL をターゲットにして攻撃の範囲を拡大します。 単一の URL を対象とする単純な実装でさえ、多くの損害を引き起こします。

ハッカーにとって、Slowloris 攻撃は使用する帯域幅が少なくなりますが、より多くの混乱を引き起こす可能性があります。 ここでは、各リクエストがサーバーに対して処理するのに無限の時間がかかり、利用可能なすべての接続を独占します。 この攻撃は、同時接続数が比較的少ないサーバーに対して有効であるため、小規模な Web サイトに影響を与えることがよくあります。

DDoS 攻撃に備える方法

準備とは、DDoS 攻撃を阻止する方法です。通常に戻るのが早ければ早いほど良いからです。 実際、脅威を完全に除去することはおそらく不可能ですが、潜在的な問題を最小限に抑えることはできます。

ただし、キャッシュフローによって DDoS 攻撃を阻止するための計画が決まる可能性があるため、その前に、支出できる金額を「集計」する必要があります。 攻撃がビジネスにどれだけの損害を与えるかから始めて、逆算して利用可能な予算を決定する必要があります。 攻撃の途中でやりたくなるような計算ではありません。

そこから、準備に集中すべき 3 つの重要な領域に注意する必要があります。

  • 障害と回復の計画を作成します。これにより、チームの全員に何をすべきかが明確に詳細に伝えられます。
  • そこから、割り当てられた予算の一部を専用の DDoS 防御サービスに費やすことができます。 これにより、サイトを監視したり、受信した悪意のあるトラフィックの一部を「排除」したりする専門家が配置されます.
  • DDoS 攻撃が開始されるタイミングを特定する方法を学びます。 DDoS 攻撃の明らかな兆候を監視し、壊滅的な事態が発生する前に対応できるため、ここではサイト分析が重要になります。

技術的なレベルでは、DDoS 攻撃が始まる前に阻止するためにできることは他にもたくさんあります。 これについては次に説明します。

DDoS 攻撃を軽減する方法

DDoS 攻撃を阻止する方法に関する最大の問題の 1 つは、トラフィックの良し悪しを見分けるのに苦労することであるため、1 つのソリューションだけに頼って軽減することはできません。 これは、「マルチベクトル」DDoS 攻撃、つまり複数の OSI レイヤーを攻撃する DDoS 攻撃に注目した場合に特に当てはまります。

そのため、防御を支援するために準備を重ねる必要もあります。 これを行うには、いくつかの簡単な方法があります。

  • ブラックホール ルーティング。 ここで、ヌル ルートへのトラフィックをフィルタリングし、ネットワークからドロップします。 特定のフィルタリングを行わないと、すべてのトラフィックが破棄されるため、理想的ではありません。
  • レート制限。 これだけでは DDoS 攻撃を阻止するには不十分ですが、各ユーザーが完了するアクションの数を制限できます。
  • ネットワーク拡散。 サイトに到達するトラフィックを分散ネットワーク全体に分散させると、理論的には DDoS 攻撃の影響が分散されます。

そのため、帯域幅、ネットワーク接続、およびその他のリソースをスケーリングすることは、DDoS 攻撃に対抗するための最良の方法の 1 つです。 後で説明するソリューションの一部は、防御としてトラフィックを分散するクラウド サービスとして提供されます。

CAPTCHA などのオンサイト ソリューションを使用して、サイトの重要なエンドポイントを保護することもできます。 これは、サイトのリソースを大量に消費する要素をログイン画面やその他の保護要素の背後に配置できるため、ログイン ページに高レベルのセキュリティが必要な場所です。

Google recaptcha サービスは、ddos 攻撃を阻止するのに役立ちます。

さらに、いくつかの手動の技術的な考慮事項を実装できます。 たとえば、SYN または UDP のしきい値を低く設定し、サーバーでハーフオープン接続をタイムアウトにすることができます。

DDoS 攻撃を阻止するための 4 段階の戦略

この記事の残りの部分では、DDoS 攻撃を阻止する方法を 4 つのステップで説明します。 幸いなことに、私たちが提供するアドバイスは規範的でも厳格でもありません。 そのため、アイデアを自分のニーズに適応させることができます。

説明する内容は次のとおりです。

  • 対応計画と危機戦略がどのようにあなたのベーコンを救うことができるか.
  • Web サーバーを防御するために使用する必要があるアプローチ。
  • オンプレミスの DDoS 保護の利点と欠点。
  • クラウドベースの DDoS ミティゲーションでできること。

すでに述べたトピック、つまり戦略から始めましょう。

1. 戦略と対応計画の策定

公式の災害対応計画でやろうとしているすべてのことを固めるというのは素晴らしいアイデアです。 これは、ビジネスで最も詳細なドキュメントの 1 つであり、攻撃を阻止してリソースを回復するために必要なすべての手順が含まれている必要があります。

含める必要があるいくつかの注意事項を次に示します。

  • DDoS 攻撃に対応する際に、各チーム メンバーが従うべき手順を順番に説明します。
  • 顧客、クライアント、サプライヤー、ベンダー、およびその他の利害関係者に問題を伝えなければならないチーム外の人々への指示が必要です。
  • インターネット サービス プロバイダー (ISP)、DDoS 保護サービス、および最前線にいるその他の重要な連絡先の詳細を含める必要があります。

これが実施されると、会社全体が、サイトのサーバーを保護するために何をする必要があるかを理解できるようになります。

2. Web サーバーを防御する方法を理解する

DDoS 攻撃には主に 2 つの問題があります。

  1. 攻撃がいつ発生するかを判断するのは困難です。
  2. 進行中の攻撃に対応しなければならない場合は、すでに手遅れです。

これらの問題の両方を解決するには、DDoS 保護サービスを採用する必要があります。 Cloudflare は最高の 1 つであり、それに応じて Web トラフィックを傍受、拡散、およびフィルタリングするための世界規模の専用サーバー アーキテクチャが含まれています。

Cloudflare の DDoS サービスの概要。OSI スケールで保護するレイヤーを完備しています。

これを念頭に置いて、静的なトラフィックのしきい値を実装したり、IP ブロックリストをいっぱいにしたりする必要はありません。これでは十分ではなく、ほとんどの場合事後措置です。 スケーラビリティは DDoS 攻撃を阻止する最良の方法の 1 つであるため、「ホームスパン」方式には帯域幅の制約があり、専用サービスの方が優れています。

3. オンプレミス保護を実装する

オンプレミスの DDoS 保護では、ネットワーク上のハードウェア デバイスを使用して、保護されたサーバーのトラフィックをフィルター処理します。 これは、DDoS 攻撃を軽減および阻止するための実行可能で洗練された方法です。

Radware と F5 はハードウェア DDoS 緩和ユニットを作成し、一部はハードウェア WAF (Web アプリケーション ファイアウォール) も作成します。

ハードウェア WAF ユニットを示すラドウェアの Web サイト - ddos​​ 攻撃を阻止する方法に役立ちます。

ただし、オンプレミスの保護でできることは限られており、大規模な攻撃、特に DDoS を阻止することはできません。 そのため、DDoS 攻撃を阻止する最善の方法として、クラウドベースの DDoS セットアップを追加する必要があります。

4. クラウドベースの DDoS ソリューションを検討する

実際には、より多くのサイトがクラウド保護に依存しています。これは、スケーラブルで、常時稼働しており、ハードウェアよりも安価であるためです。 維持費も安いです。

一部の DDoS サービスは ISP レベルでのみ機能しますが、クラウド内で機能するサービスは保護範囲が広くなっています。 多くの場合、これらのサービスには、トラフィックを分散するための大規模なコンピューター ネットワークがあります。

たとえば、Amazon の AWS Shield はそのネットワークを利用して、DDoS 攻撃の自動検出と緩和を実行します。 さらに、ツールがファースト パーティの WAF と共にサーバーを保護する方法をカスタマイズできます。

Amazon の AWS Shield サービスの概要。DDoS 攻撃を阻止する方法を示しています。

Cloudflare の Magic Transit は、既存のオンプレミス ソリューションを補完するものとして十分に機能します。 また、ロード バランサー、高度なパケット フィルタリングなど、仮想ネットワークの管理に役立つツールを完全に補完することもできます。

結論🔥

DDoS 攻撃は、サイトをクラッシュさせようとする悪意のある試みに直面して、サイトを圧倒します。 敗北主義者のように見えるかもしれませんが、DDoS 攻撃はおろか、あらゆる攻撃を完全に阻止する実際の方法はありません。 そのため、DDoS 攻撃を阻止する方法は複雑です。

攻撃を軽減することは良い戦略であり、サーバー レベルで実行できる実装はたくさんあります。 どのような戦略を立て、Web サーバーをどのように防御したいかを理解することが重要です。 オンプレミスの保護は素晴らしいアイデアであり、WAF はほぼ不可欠です。 AWS Shield などのクラウド ソリューションや、CAPTCHA などのオンサイト クラウド標準も機能します。

DDoS 攻撃を阻止する方法について質問がありますか? 以下のコメントセクションで質問してください!