BIG-IP ASMについて③ DoS Protectionの設定方法
※編集中
1.Preventing DoS attacks on applications
1.1.DoS protection for applications
①「Security」→「DoS Protection」→「DoS Profiles」をクリックします。
②「Create」をクリックします。
③「Name」にプロファイル名を入力して「Finished」をクリックします。
④「DoS Profiles」のリストに作成されたリストが追加されます。プロファイル名をクリックし、「Application Security」タブをクリックします。
⑤「General Settings」の「Application Security」で「Edit」をクリックして「Enabled」のチェックボックスにチェックを入れます。
⑥「Heavy URL Protection」を設定します。どのURLを対象とするか、対象外とするか、自動検知を使用するか選択が可能です。別項で詳細を説明します。
⑦「Geolocations」を設定します。「Edit」をクリックして以下の設定を行います。
- Geolocation Blacklist:アクセスを拒否したい国を設定します。
- Geolocation Whitelist:アクセスを許可する国を設定します。それ以外の設定で攻撃を検知してもアクセスを許可します。
- How to detect attackers and which mitigation to use:Stress-basedやTPS-based Detectionで検知した国に対しての低減方法を設定します。
設定が完了したら「Close」をクリックします。
⑧DoS攻撃などを検知した場合にiRuleを使用したい場合は「Trigger iRule」で設定をします。
⑨動的に新しいコンテンツをロードする1ページからなるアプリケーションをよりよく保護するには、「Single Page Application」を有効にします。
⑩多数のURLを取り扱うには「URL Patterns」で類似のURLの論理セットを作成できます。「Not Configured」をクリックしてURLのパターンを入力します。(例:/product/*.php)
次にシステムは、複数のURLを1つにまとめたURLパターンを調べます。他の同様のURLから統計情報を集計することにより、アクセス頻度が低いURLに対するDoS攻撃をより簡単に推測できます。
⑪パフォーマンスの高速化を使用する場合は、「Performance acceleration」で使用するTCP fastL4プロファイルを選択します。
プロファイルは「Local Traffic」→「Profiles」→「Protocol」→「Fast L4」で作成します。
⑫「Update」をクリックすると設定が保存されます。
1.2.Creating a whitelist for DoS protection
①「Security」→「DoS Protection」→「DoS Profiles」をクリックします。
②プロファイル名をクリックします。
③特定の信頼されたアドレスに対するDoS攻撃のチェックを省略するには、ホワイトリスト設定を編集します。
- 画面右側の「Address Lists」で、「+」をクリックします。
- 下の「Property」で、名前を1つずつ入力し、DoS攻撃の有無を調べる必要のない信頼できるIPアドレスまたはサブネットを入力して、「Add」をクリックします。(最大20個のIPアドレスを追加できます。)
- 完了したら、「Update」をクリックします。新しいホワイトリストがアドレス一覧に追加されます。
- 新しいホワイトリストを使用するには、「Default Whitelist」の後に、追加したホワイトリストの名前を入力します。
④デフォルトのホワイトリストではなく、HTTPトラフィック用に新規にホワイトリストを作成する場合は、「Override Default」を選択し、デフォルトのホワイトリストと同じようにホワイトリストを作成します。
⑤完了したら、「Update」をクリックします。
1.3.Proactive Bot Defenseの設定
Proactive Bot Defenseを使用するためにはクライアントのブラウザがJavaScriptを受け入れる必要があります。また、この機能はDNSの逆引きを行うため、DNSサーバとDNSリゾルバを設定する必要があります。
WebサイトでCross-Origin Resource Sharing(CORS)を使用している場合、Proactive Bot Defenseには制限があります。
①「Security」→「DoS Protection」→「DoS Profiles」をクリックします。
②プロファイル名をクリックし、「Application Security」タブをクリックします。
③「General Settings」をクリックし、「Application Security」が「enable」となっていることを確認します。
④「Proactive Bot Defense」をクリックします。
⑤「Operation Mode」を使用するタイミングを設定します。
⑥「Block requests from suspicious browsers」設定では以下の設定を行います。
「CAPTCHA Setting」をクリックしてCAPTCHAレスポンスを変更することもできます。
⑦「Grace Period」設定では、システムがボットをブロックするまでに待機する秒数を入力します。デフォルト値は300秒です。
⑧「Cross-Domain Requests」設定ではCross-Domain Request(埋め込み画像、CSSスタイルシート、XML、JavaScript、FlashなどのHTML以外のリソースに対するリクエストなど)を検証する方法を指定します。Cross-Domain Requestは、HostヘッダーとReferrerヘッダーの異なるドメインを持つリクエストです。
「Allow configured domains」を選択したら、アクセス先のリソースとして「Related Site Domains」を加える必要があります。また、アクセス元の外部サイトとして「Related External Domains」を設定します。
⑨「URL Whitelist」設定で他のドメインからアクセスを許可するリソースURLを追加します。/index.htmlの形式でURLを入力し、「Add」をクリックします。ワイルドカードはサポートされています。
⑩完了したら、「Update」をクリックします。
1.4.bot defense loggingの作成
ログの設定を行う前にSplunkへのリモートロギングを設定したことを確認してください。ローカルロギングは推奨ではありません。
1.5.bot signature checkingの設定
ボットシグネチャチェックは通常、Proactive Bot Defenseで使用されます(Proactive Bot Defenseを使用するとデフォルトで有効になります)。 システムはボットシグネチャチェックを実行します。これは、既知のボットをそれらのHTTP特性に基づいて正当なまたは悪意のあるものとして識別します。 特定のカテゴリの悪意のあるボットまたは良性のボットを無視、報告、またはブロックするかどうかを指定できます。 必要に応じて、特定のシグネチャを無効にすることもできます。
①「Security」→「DoS Protection」→「DoS Profiles」をクリックします。
②プロファイル名をクリックし、「Application Security」タブをクリックします。
③「General Settings」をクリックし、「Application Security」が「enable」となっていることを確認します。
④「Bot Signatures」をクリックします。
⑤「Bot Signature Check」設定で「Enabled」を有効にします。
⑥「Bot Signature Categories」で悪意のある、または良性のボットの各カテゴリについて、要求がシグネチャと一致したときに実行するアクションを選択します。
すべての悪意のあるカテゴリまたはすべての無害なカテゴリに対して1つのアクションを選択することも、別々のカテゴリに対して異なるアクションを実行することもできます。
この設定はProactive Bot Defenseにおける設定を上書きします。
⑦特定のシグネチャを無効にしたい場合は「Bot Signatures List」で対象のシグネチャを「Disabled Signatures」へと移動させます。
⑧完了したら、「Update」をクリックします。
1.6.TPS-based DoS detection設定方法
1.7.Behavioral & Stress-based Detection設定方法
①「Security」→「DoS Protection」→「DoS Profiles」をクリックします。
DoS Profiles Listの画面が表示されます。
②作成したDoS Profile名をクリックします。
③上部の「Application」タブをクリックします。
④左の「Behavioral & Stress-based Detection」をクリックします。
⑤右上の「Edit All」をクリックします。
⑥「Operation Mode」ではプルダウンメニューから以下から設定可能です。
- Off:Behavioral & Stress-based Detectionを無効にします。Offにしているとそれ以外の設定項目は表示されません。
- Transparent:DoS攻撃に関するデータをDoSレポート画面に表示しますが、要求をブロックしたり、緩和策の実行はしません。
- Blocking:疑わしいIPアドレス、位置情報、URL、またはサイト全体に必要な緩和策を適用します。 DoSレポート画面にDoS攻撃に関する情報も表示します。
⑦「Thresholds Mode」では以下の設定をプルダウンメニューから設定が可能です。
- Automatic:システムがしきい値を自動的に設定します。しきい値を最大で設定し、7日間の履歴データを使用して最適なしきい値を計算します。その後、システムは12時間ごとにしきい値を更新します。
- Manual:手動でしきい値を設定することが可能です。「Manual」を選択すると「Stress-based Detection and Mitigation」の設定項目が表示されます。
⑧「Stress-based Detection and Mitigation」は「Thresholds Mode」で「Manual」を設定した場合のみ表示され、以下の設定が可能です。
- By Source IP:攻撃者としてIPアドレスを扱うときの条件を指定します。システムは、最もアクセスされた送信元IPアドレスに対して1つの自動しきい値を計算し、残りに対しては別のしきい値を計算します。
- By Device ID:デバイスを攻撃者として扱う場合の条件を指定します。自動しきい値の場合、1つのしきい値はアクセス頻度の高いデバイスIDに対して計算され、もう1つのしきい値は残りのしきい値に対して計算されます。
- By Geolocation:特定の国を攻撃者として扱うタイミングを指定します。自動しきい値を使用している場合は、上位20の位置情報のしきい値が計算され、1日の時間ごとに異なるしきい値が設定されます。したがって、午前9:00に計算されたしきい値は、午前8:00〜9:00のデータに基づいており、翌日の午前8:00に使用されます。
- By URL:システムが攻撃を受けているURLを処理するタイミングを指定します。自動しきい値の場合、1つのしきい値はアクセスの多いURLに対して計算され、もう1つのしきい値は残りのしきい値に対して計算されます。 (重いURLは計算に含まれません。)
- Site Wide:Webサイト全体がいつ攻撃を受けているかを判断する方法の条件を指定します。自動しきい値の場合、サイト全体で1つのしきい値が使用されます。
また、少なくとも1つの緩和方法を選択する必要があります。
- Client Side Integrity Defense:Sends a JavaScript challenge to determine whether the client is a legal browser or an illegal script. Only used when the Operation Mode is set to Blocking.
- CAPTCHA Challenge:Issues a CAPTCHA challenge to the traffic identified as suspicious by source IP address, geolocation, URL, or site wide.
- Request Blocking:
デフォルト値はF5の推奨値のようなので、初期値はこれで設定し、問題があれば後で調整しましょう。
⑨「Behavioral Detection and Mitigation」では通信動作からどのようにDDoS攻撃を低減するかを設定します。
⑩「Prevention Duration」では次の緩和ステップに進むことを決定するまでの間隔を指定します。
Configuring heavy URL protection
Recording traffic during DoS attacks
Configuring CAPTCHA for DoS protection
Associating a DoS profile with a virtual server