DDoS保護¶
DDoS(Distributed Denial of Service)攻撃は、攻撃者が複数の送信元からのトラフィックでウェブサイトまたはオンラインサービスを圧倒し、サービスを利用不可能にしようとするサイバー攻撃の一種です。本ドキュメントでは、DDoS保護の推奨事項およびWallarmを用いたリソースの保護方法について説明します。
DDoS攻撃は、ボットネットと呼ばれる乗っ取られたコンピューターシステムのネットワークから発動されることが多いです。攻撃者はこれらのシステムを用いてターゲットに大量のトラフィックを送信し、サーバーに過負荷をかけ正当な要求に応答できなくします。DDoS攻撃は、ウェブサイト、オンラインゲーム、さらにはソーシャルメディアプラットフォームなど、あらゆる種類のオンラインサービスを対象とする可能性があります。
攻撃者がDDoS攻撃を実行するために使用できる技術は多数存在し、その手法やツールは大きく異なります。中には、サーバーへの大量の接続要求送信などの低レベルの手法を用いる比較的単純な攻撃もあれば、IPアドレスのなりすましやネットワークインフラの脆弱性を悪用するなど、複雑な戦術を用いる洗練された攻撃もあります。
DDoS攻撃の分類¶
攻撃者がウェブサイトまたはオンラインサービスの可用性を妨害するために利用できるDDoS攻撃にはいくつかの種類があります。以下は一般的なDDoS攻撃のタイプです:
OSI層 / 攻撃タイプ | Volumetric and amplification attacks | Protocol exploits and Logic bombs |
---|---|---|
L3/L4 |
|
|
L7 |
|
|
API/App specific (L7+) |
|
|
Volumetric and amplification attacksは、大量のトラフィックでターゲットを圧倒しようとします。目的は、ターゲットサーバーまたはネットワークの帯域幅や計算リソースを飽和させ、正当な要求に応答できない状態にすることです。
Protocol exploits and Logic bombsは、サービスまたはネットワークの通信方法の脆弱性を突くことを目的としたDDoS攻撃です。これらの攻撃は、特定のプロトコルの脆弱性を悪用する、またはターゲットが処理しにくい不正な形式のパケットを送信することで、通常のトラフィックの流れを妨害します。
DDoS攻撃の緩和¶
DDoS攻撃はさまざまな形態を取り、異なるOSI層を対象とするため、単一の対策では効果が不十分であり、包括的な保護を提供するためには複数の対策を併用する必要があります。
-
インターネットサービスプロバイダーおよびクラウドサービスプロバイダーは、通常、L3-L4レベルのDDoS攻撃に対する第一線の防御を提供します。重度のL3-L4 DDoS攻撃の場合、追加の緩和ツールが必要です。例として:
1 Gbps以上のトラフィックを発生させるDDoS攻撃の場合、トラフィックスクラビング用の専門的なDDoS保護サービスが必要になることがあります。トラフィックスクラビングとは、第三者サービスを経由してトラフィックをルーティングし、悪意のあるトラフィックを除去し、正当な要求のみをサービスに転送する技術です。L3-L4 DDoS攻撃に対する追加の保護対策として、NGFWなどのソリューションを利用することも推奨します。
-
L7 DDoS攻撃、別名「アプリケーション層」攻撃は、L3-L4攻撃に比べてより標的を絞った洗練された攻撃です。通常、L7 DDoS攻撃は攻撃対象のアプリケーションの特性を狙うため、正当なトラフィックと区別が困難です。L7 DDoS攻撃から保護するには、WAAPまたはアプリケーション層のトラフィックを解析する専門のAnti-DDoSソリューションを使用してください。また、API GatewayまたはWEBサーバーをピーク負荷に対応できるように構成することも推奨します。
保護対策を選定する際には、以下の要因に基づいて組織のニーズおよびリソースを慎重に評価する必要があります:
-
攻撃の種類
-
攻撃の量
-
ウェブアプリケーションまたはAPIの複雑さおよびコスト
DDoS攻撃を早期に識別し、迅速な対策を講じるために、対応計画を準備することも必要です。
WallarmによるL7 DDoS保護¶
Wallarmは、L7 DDoS脅威に対して幅広い保護対策を提供します:
-
API Abuse Prevention機能を有効化し、さまざまな種類の悪意のあるボットを識別して遮断します。
-
Brute force triggerにより、パスワードなどのパラメータ値に対するブルートフォースによる大量の要求を防ぎます。
-
Forced browsing triggerにより、ウェブアプリケーションの隠しリソース(ディレクトリやファイルなど)を検出しようとする悪意のある試行を防ぎます。
-
denylists and graylistsを用いたジオロケーションフィルタリングにより、攻撃を仕掛ける特定の地域からのアプリケーションやAPIへのアクセスを防ぎます。
-
denylists and graylistsを使用して信頼できない送信元をブロックします。ターゲットを絞った攻撃から保護するため、Tor、Proxy、VPN等、攻撃者が位置情報を隠しジオフィルタを回避できる信頼性の低い送信元をブロックすることが有用です。
-
Logic (Data) bomb検出。WallarmはZipまたはXML bombを含む悪意のある要求を自動的に検出して遮断します。
-
Rate limitingの設定により、特定のAPIスコープに対して許可される接続の最大数を指定します。定義された制限を超える要求はWallarmにより拒否されます。
NGINXベースのWallarmノードを使用している場合、以下の方法でL7 DDoSに対するセキュリティ向上のため、NGINXの設定を行うことが推奨されます:
-
キャッシング。一般的なリクエストに対してキャッシュ応答を設定し、DDoS攻撃下で発生するトラフィックの一部を吸収してウェブアプリケーションまたはAPIへの到達を防ぎます。
-
Rate limiting。受信リクエストに対してレート制限ルールを作成し、ターゲットのウェブアプリケーションまたはAPIに送信されるトラフィックの量を制限します。
-
接続数の制限。1つのクライアントIPアドレスが開くことのできる接続数に、実利用者に適した値の制限を設定することで、リソースの過剰使用を防ぎます。
-
遅い接続の終了。十分な頻度でデータを書き込まない接続は、長時間維持され新規接続の受付を妨げるのを防ぐために終了させます。