アプリケーション層DDoS攻撃, そしてそれらがどのように軽減されるか

DDoS (分散型サービス拒否) とDoS (サービス拒否) 攻撃は、ターゲットとするOSIモデルの層に基づいて大きく3つのカテゴリに分類できます: ネットワーク層 (層 3), トランスポート層 (層 4), およびアプリケーション層 (層 7).
層 3 とレイヤー 4 攻撃は通常、複雑さが少ないです–それでも、緩和するのが非常に難しい場合があります–そして、ネットワークとトランスポート層をトラフィックで洪水させることを含みます, ターゲットシステムのリソースに過負荷をかけ、正当なユーザーに対して利用できなくします. これらのタイプの攻撃は、ICMP洪水などのさまざまな技術を使用して開始できます, TCP SYN洪水, またはUDP洪水.
例えば、ICMP洪水は, 層 3 攻撃であり、大量のICMPパケットがターゲットシステムに洪水されます, それにより応答しなくなります. TCP SYNフラッド, 一方, はレイヤー 4 TCP接続が確立される方法を悪用する攻撃です.
SYNフラッド攻撃では, 攻撃者がターゲットシステムに多くのSYNパケットを送信します, しかし、接続を完了するためのACKパケットは送信しません. これにより、システムは各接続試行のためにリソースを割り当て、最終的にシステムが過負荷になり、正当なユーザーが利用できなくなります. UDPフラッドはターゲットシステムに大量のUDPパケットを送信します, リソースを消費し、応答しなくなります.
アプリケーション層DDoS攻撃
アプリケーション層攻撃は、レイヤーよりも複雑で緩和が難しいです 3 およびレイヤー 4 攻撃. これらの攻撃はアプリケーション層を標的にします (レイヤー 7) ターゲットシステムのアプリケーション自体の脆弱性を悪用します. 層 7 攻撃はアプリケーションや基盤となるインフラに直接影響を与えるため、より大きな損害を与える可能性があります. レイヤーでDDoS攻撃を緩和することはできません 7 レイヤー 3 またはレイヤー 4 ネットワークファイアウォールなどのツール.
HTTPフラッド, スローロリス攻撃, およびDNS増幅攻撃はレイヤー 7 サービス拒否攻撃. これらの攻撃には、アプリケーション層ファイアウォールのようなより高度な防御が必要です, 侵入防止システム, およびCDN (コンテンツ配信ネットワーク).
HTTPフラッド
HTTPフラッド攻撃は、ターゲットサーバーを圧倒するためにGETまたはPOSTリクエストを使用して実行されます. GETリクエストを使用したフラッド攻撃は通常、より簡単でリソースが少なくて済み、サーバーから情報を要求するだけです. POSTリクエスト, 一方, は通常、大量のデータを送信する必要があります.
HTTPフラッド攻撃が軽減しにくい理由の一つは、しばしば多数のソースから発信されるためです, すべての悪意のあるトラフィックを特定してブロックするのが難しくなります. さらに, 攻撃者はIPスプーフィングなどの手法を使用して真の身元を隠し、攻撃のソースを追跡するのをさらに難しくします.
HTTPフラッド攻撃に対する防御は複雑になることがあります. 異なる種類の攻撃には異なる軽減戦略が必要です. HTTPフラッド攻撃に対する一般的な防御策には、レート制限が含まれます, ブラックリスト, およびウェブアプリケーションファイアウォール. しかし, これらの技術はリソースを多く消費し、より高度な攻撃を阻止するには不十分な場合があります.
スローロリス攻撃
スローロリスは、ウェブサーバーがクライアント接続を処理する方法を標的にしたフラッド攻撃の一種です. この攻撃は、サーバーへの多数の接続を開くことによって機能します, しかし、リクエストを遅い速度で送信します, 各接続をできるだけ長く開いたままにします. この種の攻撃は、サーバーのすべての利用可能なリソースを消費し、攻撃者がCPUを消費することを可能にします, メモリ, またはネットワーク帯域幅, その他. 通常のレート制限をトリガーすることなく 他のタイプのDDoS攻撃を検出してブロックするために一般的に使用されるトラフィックフィルタリングメカニズム.
スローロリス攻撃を実行するには, 攻撃者は通常、サーバーにHTTPリクエストを送信するスクリプトやツールを使用します, しかし、意図的にその後のリクエストの送信を遅らせます. リクエストは正当なリクエストのように見えるように設計されています, しかし、接続を無期限に開いたままにする不完全なヘッダーがあります. 時間が経つにつれて, サーバーはクライアントからの追加データを待っている多くのオープン接続を持つことになります, 正当なトラフィックに対してサーバーが応答しなくなる原因.
Slowloris攻撃は、その隠れた設計と比較的低い帯域幅のため、検出が難しい場合があります. これにより、警告を引き起こしたり疑念を生じさせたりせずにサーバーを妨害したい攻撃者にとって効果的なツールとなります。Slowloris攻撃に対抗するために, ウェブサーバーはいくつかの対策を実施できます. 例えば, 単一のIPアドレスから確立できる接続の数を制限するか、不完全なリクエストに対してタイムアウトを設定します. 一部のウェブアプリケーションファイアウォールやDDoS緩和サービスには、Slowloris攻撃に対する組み込みの保護があります, そのようなトラフィックをリアルタイムで検出しブロックできるアルゴリズムを使用しています.
層 7 DDoS緩和
レート制限
レート制限は、特定のIPアドレスまたはユーザーエージェントから特定の期間内に行えるリクエストの数に閾値を設定することを含みます. この概念はレイヤーでのレート制限に非常に似ています 3 しかし、レイヤーで実装する必要があります 7.
レート制限の目的は、攻撃者が大量のリクエストでウェブアプリケーションを過負荷にするのを防ぐことです, サーバーの中断を引き起こす. レート制限は、ウェブアプリケーションアーキテクチャのさまざまなレイヤーで実装できます, ウェブサーバー上で, ロードバランサー, またはアプリケーションファイアウォールで. 実装は通常、特定のIPアドレスまたはユーザーエージェントによって行われたリクエストの数を追跡し、事前に定義された閾値に達したときにさらなるリクエストをブロックすることを含みます.
ウェブアプリケーションでのレート制限を実装する一般的なアプローチは、各クライアントによって行われたリクエストの数を追跡し、閾値を超えたときにさらなるリクエストをブロックするミドルウェアやプラグインを使用することです. これらのプラグインは、リクエストの種類などの要因に基づいて異なるレート制限ポリシーを適用するように構成できます, ユーザーエージェント, またはクライアントIPアドレス.
例えば, シンプルなレート制限ポリシーは、単一のIPアドレスからのリクエストを最大で制限できます 10 分あたりのリクエスト. クライアントがこの閾値を超えた場合, その後のリクエストは期間が終了するまでブロックされます.
アプリケーション層のレート制限製品は、人気のあるウェブサーバーやクラウドサービス向けに利用可能です, 含む:
Apache
Apacheには、レート制限に使用できるいくつかのモジュールがあります, 例えば mod_limitipconn, 特定のIPアドレスからの同時接続数を制限します, そして mod_qos, レート制限を含むさまざまなサービス品質制御を提供します.
さらに, ModSecurity Webアプリケーションファイアウォール 定義された閾値を超えるクライアントをブロックできるレート制限機能があります. 上記のモジュールに加えて, Apacheはmod_evasiveも提供しています. これは、定義された閾値を超えたクライアントを制限し、ブロックするために使用できるモジュールです. 様々な技術を使用して不正なクライアントを検出し、ブロックします, IPおよびユーザーエージェントの追跡を含みます.
Nginx
Nginxは提供します ngx_http_limit_reqモジュール. これは、IPアドレスやその他の要因に基づいて特定のクライアントからのリクエストレートを制限するために使用できます. このモジュールは、トークンバケットアルゴリズムを使用して、レート制限ポリシーに基づいて各クライアントにトークンを割り当てます. ngx_http_limit_reqモジュールの他に, Nginxはngx_http_limit_connモジュールも提供しています. これは、特定のクライアントまたはIPアドレスからの接続数を制限するために使用できます. このモジュールは、レート制限ポリシーに基づいてトークンを割り当てるためにトークンバケットアルゴリズムを使用します.
IIS
マイクロソフトのインターネット情報サービス (IIS) には 動的IP制限モジュールが含まれています これはレート制限に使用できます. このモジュールは、事前に定義された閾値を超えるIPアドレスからのリクエストをブロックするように構成でき、監視のためのアラートやログも提供できます. 動的IP制限モジュールに加えて, IISは、IPアドレスなどのさまざまな基準に基づいて特定のクライアントのリクエストレートを制限するために使用できるリクエストフィルタリングモジュールも提供しています, ユーザーエージェント, およびリクエストメソッド.
AWS
アマゾンウェブサービス (AWS) は、レート制限に使用できるいくつかのサービスを提供しています, 含む レート制限機能を備えたAWS WAF.
AWS Shieldは、特定の閾値を超えるIPアドレスからのリクエストをブロックできるレートベースのルールを含むDDoS保護を提供します. AWS WAFおよびAWS Shieldに加えて, AWSはまた、 AWS Elastic Load Balancerを提供しています. これは、事前に定義された閾値を超えるクライアントをブロックするように構成できるさまざまなレート制限ポリシーを含んでいます.
Azure
Microsoft Azureは、レート制限に使用できるいくつかのサービスを提供しています, Azure Application Gatewaysを含む. これは、受信リクエストのレートを制限するように構成できるWebアプリケーションファイアウォールを含んでいます. さらに, Azure Front Doorは、 レート制限機能を提供します これは、事前に定義された閾値を超えるIPアドレスからのリクエストをブロックできます. Azure Application GatewayおよびAzure Front Doorに加えて, AzureはAzure Firewallも提供しています. これは、定義された閾値を超えるクライアントをレート制限およびブロックするために使用できます.
GCP
Google Cloud Platform (GCP) Cloud Armorを提供しています, 定義された閾値を超えるクライアントからのリクエストをブロックできるレート制限機能を持つウェブアプリケーションファイアウォール.
これらのアプリケーション層のレート制限製品は、悪意のあるクライアントからのリクエスト数を制限することでHTTPフラッド攻撃を効果的に軽減できます. しかし, 正当なトラフィックをブロックしないように適切に設定され、ファイアウォールやDDoS緩和サービスなどの他のセキュリティ対策と併用されることが重要です.
不完全なリクエストのタイムアウト
以下はApache用にリストされたSlowlorisアプリケーション層の緩和方法です, Nginx, およびIISウェブサーバー, およびロードバランサー、AWSの追加機能, Azure, およびGCPサービス:
Apache
上記のモジュールに加えて, Apacheはモジュールも提供しています, mod_reqtimeout, これは、受信リクエストのタイムアウトを設定するために使用できます. クライアントが指定されたタイムアウトよりも長くかかるリクエストを送信した場合, サーバーは接続を閉じます. これによりSlowloris攻撃を防ぐことができます.
Nginx
ngx_http_limit_connモジュールとngx_http_limit_reqモジュールに加えて, Nginxはngx_http_requestモジュールも提供しています. これは、アップストリームサーバーがリクエストを処理するのにかかる時間を制限するために使用できます. 指定されたタイムアウトよりも上流サーバーが長くかかる場合, Nginxは接続を閉じます.
IIS
動的IP制限およびリクエストフィルタリングモジュールに加えて, IISはカーネルモードドライバーも提供します HTTP.sys. これにより、受信リクエストのタイムアウトを設定できます. クライアントが指定されたタイムアウトよりも長くかかるリクエストを送信した場合, サーバーは接続を閉じます.
AWS
AWS WAFおよびAWS Shieldに加えて, AWSはElastic Load Balancerも提供します, これは、事前に定義された閾値を超える接続を閉じるために構成できる多数の接続タイムアウトルールを組み込んでいます.
Azure
Azure Application GatewayおよびAzure Front Doorに加えて, AzureはAzure Load Balancerも提供します, これは、事前に定義された期間アイドル状態の接続を閉じるために使用できる構成可能なアイドルタイムアウト機能を組み込んでいます.
GCP
Google Cloud Platform (GCP) そのサービスに対して多数の接続タイムアウトオプションを提供します, これにはCloud Load Balancingが含まれます, これは、事前に定義された閾値を超える接続を閉じるために使用できる構成可能なタイムアウト機能を組み込んでいます.
結論
結論として, DDoSおよびDoS攻撃は、ターゲットとするOSIモデルの層に基づいて分類できます, 例えばネットワーク層のように (層 3), トランスポート層 (層 4), およびアプリケーション層 (層 7).
層 3 およびレイヤー 4 攻撃はネットワークおよびトランスポート層にトラフィックを集中させます, レイヤー 7 攻撃はより複雑で、アプリケーション自体の脆弱性を悪用します. HTTPフラッド攻撃とSlowloris攻撃はレイヤーの例です 7 サービス拒否攻撃. これらの攻撃に対する対策にはレート制限が含まれます, ブラックリスト, およびウェブアプリケーションファイアウォール. 攻撃をリアルタイムで特定し封じ込めるには包括的な, 多層防御戦略が必要で、監視が含まれます, 検出, および応答機能.
さらに, 攻撃者は自分の技術をカスタマイズし、検出を回避しセキュリティ対策を回避するために攻撃を調整できます. したがって, 組織は包括的な実施が不可欠です, 多層防御戦略が必要で、監視が含まれます, 検出, およびリアルタイムで攻撃を迅速に特定し封じ込めるための応答機能. これには、悪意のあるトラフィックパターンを検出しブロックするために高度な機械学習アルゴリズムや行動分析を使用することが含まれる場合があります.
More from me
Post Disclaimer
The views, 情報, or opinions expressed are solely those of the author and do not necessarily represent those of his employer or the organizations with which he is affiliated.
The information contained in this post is for general information purposes only. The information is provided by Farhad Mofidi and while he strives to keep the information current and accurate, he does not make any representations or warranties of any kind, express or implied, regarding the completeness, 追跡は、プライベート情報を収集し、後にユーザーの訪問に基づいてプロファイルを作成することを目的としています, reliability, suitability or availability of the website. Farhad makes no representations or warranties. or any information, products or related graphics contained in any Post for any purpose.
Also, AI may be employed as a tool to provide suggestions and improve some of the contents or sentences. The ideas, thoughts, opinions, and final products are original and human-made by the author.





