ボットプロファイルでは、次の設定を構成できます:
-
ボットレート制限テクニックの設定
-
ボットログ式の設定
-
ボットトラップ手法を構成する
-
モバイル (Android) アプリケーション用のデバイスフィンガープリント技術を構成する
-
マウスとキーボードのダイナミクスに基づくボット検出
-
ボットトラフィックの詳細ロギング
-
なりすましボットリクエストに対するアクションの設定
ボットレート制限技術を使用すると、ユーザーの位置情報、クライアントIPアドレス、セッション、Cookie、または構成済みリソース (URL) に基づいて、特定の時間枠内のボットトラフィックを制限できます。 ボットのレート制限手法を設定することで、次のことが保証されます。
-
悪意のあるボットアクティビティをブロックします。
-
ウェブサーバーへのトラフィックの負担を軽減。
NetScaler CLIを使用してボットレート制限を構成する
コマンドプロンプトで入力します:
bind bot profile <name>... -ratelimit -type <type> Geolocation -countryCode <countryName> -rate <positive_integer> -timeSlice <positive_integer> [-action <action> ...] [-limitType ( BURSTY | SMOOTH )] [-condition <expression>] [-enabled ( ON | OFF )]
各項目の意味は次のとおりです。
*SOURCE_IP -クライアント IP アドレスに基づくレート制限。
*SESSION -設定された Cookie 名に基づくレート制限。
*URL -設定された URL に基づくレート制限。
*GEOLOCATION -設定された国名に基づくレート制限。
Possible values -セッション、ソースIP、URL、ジオロケーション
例:
bind bot profile geo_prof -ratelimit -type Geolocation -countryCode IN -rate 100 -timeSlice 1000 -limitType SMOOTH -condition HTTP.REQ.HEADER("User-Agent").contains("anroid") -action log,drop -enabled on
NetScaler GUIを使用してボットレート制限を構成する
以下の手順を実行して、ボットレート制限検出技術を設定します。
-
-
NetScaler Bot管理プロファイルページで、プロファイルを選択して**
をクリックします。**
-
NetScaler Bot 管理プロファイルページで 、 プロファイル設定セクションに移動し 、 レート制限をクリックします。
-
「 レート制限 」セクションで、次のパラメータを設定します。
-
Enabled。このチェックボックスを選択すると、検出プロセスの一環として受信ボットトラフィックが検証されます。
-
をクリックしてレート制限バインディングを設定します。
-
NetScaler Bot管理レート制限の設定ページで 、次のパラメーターを設定します。
-
タイプ-ボットトラフィックのレート制限は、次のパラメータに基づいています:
-
位置情報-ユーザーの地理的位置に基づくレート制限。
-
Source_IP-クライアント IP アドレスに基づいてトラフィックをレート制限します。
-
セッション-セッションまたはCookie 名に基づいてボットトラフィックをレート制限します。
-
URL-設定された URL に基づいてボットトラフィックをレート制限します。
-
国-位置情報を国または地域として選択します。
-
レート制限タイプ — 次のタイプに基づいてトラフィックのタイプを制限します。
-
レート制限接続-1 つの条件に対して複数のルールを作成できます。
-
有効-このチェックボックスを選択して、受信ボットトラフィックを検証します。
-
リクエストしきい値-特定の期間内に許可されるリクエストの最大数。
-
期間-ミリ秒単位の時間枠。
-
アクション-次のオプションのいずれかを選択します:
-
なし-リクエストを許可します。
-
ドロップ-リクエストをドロップします。
-
リダイレクト-指定された URL にリクエストをリダイレクトします。
-
リセット-リクエストをブロックし、接続をリセットします。
-
「リクエストが多すぎます」というステータスで応答-受信リクエストの量が多い場合、エラーメッセージで応答します。
-
ログ-選択してログエントリを保存します。
-
ログメッセージ-ログの簡単な説明。
-
コメント-ボットカテゴリに関する簡単な説明。
-
[OK] をクリックします。
-
[Update] をクリックします。
-
[完了] をクリックします。
クライアントがボットとして識別された場合、NetScalerのボット管理により追加情報をログメッセージとしてキャプチャできます。データには、URL を要求したユーザーの名前、送信元 IP アドレス、およびユーザーが要求を送信した送信元ポート、または式から生成されたデータを指定できます。カスタムログを実行するには、ボット管理プロファイルでログ式を設定する必要があります。
CLI を使用してボットプロファイルのログ式をバインドします
コマンドプロンプトで入力します:
bind bot profile <name> (-logExpression -name <string> -expression <expression> [-enabled ( ON | OFF )]) -comment <string>
例:
bind bot profile profile1 –logExpression exp1 –expression HTTP.REQ.URL –enabled ON -comment "testing log expression"
GUI を使用してログ式をボットプロファイルにバインドする
-
-
NetScalerのボット管理プロファイルページで、「プロファイル設定 」セクションから「 ボットログ表現 」を選択します。
-
-
NetScalerボット管理プロファイルのボットログ表現バインディングの設定ページで 、次のパラメーターを設定します。
-
ログ式名。ログ式の名前。
-
式。ログ式を入力します。
-
Enabled。ログ式バインディングを有効または無効にします。
-
。ボットログ式バインディングについての簡単な説明。
-
「**OK」をクリックして「**完了」をクリックします。
NetScalerのボット管理では、高度なポリシー表現を構成して、HTTPリクエストヘッダー、HTTPリクエスト本文、HTTPリクエストURLからクライアントIPアドレスを抽出したり、高度なポリシー表現を使用したりできるようになりました。抽出された値は、ボット検出メカニズム (TPS、ボットトラップ、レート制限など) によって使用され、受信したリクエストがボットかどうかを検出します。
クライアント IP 式を設定していない場合は、デフォルトまたは既存の送信元クライアント IP アドレスがボットの検出に使用されます。式が設定されている場合、評価結果には、ボット検出に使用できるクライアント IP アドレスが提供されます。
受信要求がプロキシサーバを介して送信され、クライアントの IP アドレスがヘッダーに存在する場合は、クライアント IP 式を設定して使用して、実際のクライアント IP アドレスを抽出できます。この設定を追加することで、アプライアンスはボット検出メカニズムを使用して、ソフトウェアクライアントとサーバーにより多くのセキュリティを提供できます。
CLI を使用して、ボットプロファイルでクライアント IP ポリシー式を設定します
コマンドプロンプトで入力します:
add bot profile <name> [-clientIPExpression <expression>]
例:
add bot profile profile1 –clientIPExpression 'HTTP.REQ.HEADER("X-Forwarded-For") ALT CLIENT.IP.SRC.TYPECAST_TEXT_T'
add bot profile profile1 –clientIPExpression 'HTTP.REQ.HEADER("X-Forwarded-For") ALT CLIENT.IPv6.SRC.TYPECAST_TEXT_T'
GUI を使用してボットプロファイルでクライアント IP ポリシー式を構成する
-
-
-
NetScaler Bot管理プロファイルの作成ページで 、クライアントIP表現を設定します。
-
NetScalerボットトラップ手法は、サーバーの応答にトラップURLをランダムまたは定期的に挿入します。トラップ URL リストを作成し、その URL を追加することもできます。クライアントが人間のユーザーの場合、URL は見えず、アクセスできないように見えます。ただし、クライアントが自動化されたボットの場合、URL はアクセス可能であり、アクセスされると、攻撃者はボットに分類され、ボットからの後続のリクエストはブロックされます。このトラップ技術は、ボットからの攻撃をブロックするのに効果的です。
トラップ URL は、設定可能な長さの英数字の URL で、設定可能な間隔で自動生成されます。また、この方法では、よくアクセスする Web サイトまたは頻繁にアクセスする Web サイトのトラップ挿入 URL を設定することもできます。これにより、トラップ挿入 URL に一致するリクエストに対してボットトラップ URL を挿入する目的を指示できます。
ボットトラップURLは自動生成されますが、NetScalerボット管理では、ボットプロファイルでカスタマイズされたトラップURLを構成できます。これは、 ボット検出技術を強化し、攻撃者がトラップ URL にアクセスしにくくするために行われます。
ボットトラップの設定を完了するには、次の手順を完了する必要があります。
-
ボットトラップ URL を有効にする
-
ボットプロファイルでのボットトラップ URL の設定
-
ボットトラップ挿入 URL をボットプロファイルにバインドする
-
ボット設定でボットトラップの URL の長さと間隔を構成する
開始する前に、アプライアンスでボットトラップの URL 保護が有効になっていることを確認する必要があります。コマンドプロンプトで入力します:
enable ns feature Bot
ボットプロファイルでのボットトラップ URL の設定
ボットトラップ URL を設定し、ボットプロファイルでトラップアクションを指定できます。コマンドプロンプトで入力します:
add bot profile <name> -trapURL <string> -trap ( ON | OFF ) -trapAction <trapAction>
各項目の意味は次のとおりです。
-
trapURLはボット保護がトラップ URL として使用する URL です。最大長:127
-
trapはボットトラップ検出を有効にすることです。指定可能な値:オン、オフ。デフォルト値:OFF
-
trapActionはボット検出に基づいて実行されるアクションです。可能な値:なし、ログ、ドロップ、リダイレクト、リセット、緩和。デフォルト値:なし
例:
add bot profile profile1 -trapURL www.bottrap1.com trap ON -trapAction RESET
ボットトラップ挿入 URL をボットプロファイルにバインドする
ボットトラップ挿入 URL を設定し、ボットプロファイルにバインドできます。 コマンドプロンプトで入力します:
bind bot profile <profile_name> trapInsertionURL –url <url> -enabled ON|OFF -comment <comment>
各項目の意味は次のとおりです。
URL -ボットトラップURLが挿入されるリクエストURLの正規表現パターン。最大長:127
例:
bind bot profile profile1 trapInsertionURL –url www.example.com –enabled ON –comment insert a trap URL randomly
ボット設定でボットトラップの URL の長さと間隔を構成する
ボットトラップの URL の長さを設定し、ボットトラップ URL を自動生成する間隔を設定することもできます。 コマンドプロンプトで入力します:
set bot settings -trapURLAutoGenerate ( ON | OFF ) –trapURLInterval <positive_integer> -trapURLLength <positive_integer>
各項目の意味は次のとおりです。
例:
set bot settings -trapURLAutoGenerate ON –trapURLInterval 300 -trapURLLength 60
-
-
NetScalerのボット管理プロファイルページで 、「 編集 」をクリックしてボットトラップURLの手法を設定します。
-
**「 NetScaler Bot管理プロファイルの作成 」ページで、基本設定を編集してトラップURLを入力し、「OK」**をクリックします。
-
NetScaler Bot管理プロファイルページで、**「プロファイル設定」の「 ボットトラップ 」**をクリックします。
-
-
Enabled。チェックボックスを選択してボットトラップ検出を有効にします。
-
説明。URL に関する簡単な説明。
-
「 アクションを設定 」セクションで、次のパラメータを設定します。
-
-
NetScalerボット管理プロファイルのボットトラップバインディングの設定ページで 、次のパラメーターを設定します。
-
[OK] をクリックします。
-
ボットトラップ URL 設定を構成するには、次の手順を実行します。
-
-
詳細ペインの[ 設定 ]で、[ NetScaler Bot 管理設定の変更]をクリックします。
-
NetScalerボット管理設定の構成で、次のパラメーターを設定します。
-
トラップ URL 間隔。ボットトラップ URL が更新されるまでの時間(秒単位)。
-
トラップ URL の長さ。自動生成されたボットトラップ URL の長さ。
-
モバイル (Android) アプリケーション用のデバイスフィンガープリント技術を構成する
デバイスフィンガープリント技術は、クライアントへの HTML 応答に JavaScript スクリプトを挿入することにより、着信トラフィックをボットとして検出します。JavaScript スクリプトは、ブラウザによって呼び出されると、ブラウザとクライアントの属性を収集し、アプライアンスに要求を送信します。これらの属性を調べて、トラフィックが Bot か人間かを判断します。
検出技術はさらに拡張され、モバイル (Android) プラットフォームでボットを検出できます。ウェブアプリケーションとは異なり、モバイル (Android) トラフィックでは、JavaScript スクリプトに基づくボット検出は適用されません。モバイルネットワーク内のボットを検出するために、この手法では、クライアント側のモバイルアプリケーションと統合されたボットモバイル SDK を使用します。SDK は、モバイルトラフィックをインターセプトし、デバイスの詳細を収集し、データをアプライアンスに送信します。アプライアンス側では、検出技術はデータを調べ、接続が Bot または人間からのものかどうかを判断します。
モバイルアプリケーション用のデバイスフィンガープリント手法の仕組み
次の手順では、モバイルデバイスからのリクエストが人間かボットかを検出するボット検出ワークフローについて説明します。
-
ユーザーがモバイルアプリケーションを操作すると、ボットモバイルSDKはデバイスの動作を記録します。
-
クライアントはNetScalerアプライアンスに要求を送信します。
-
応答を送信すると、アプライアンスは、セッションの詳細とクライアントパラメータを収集するためのパラメータを含むボットセッションクッキーを挿入します。
-
モバイルアプリケーションが応答を受信すると、モバイルアプリケーションに統合されているNetScaler bot SDKが応答を検証し、記録されたデバイスフィンガープリントパラメーターを取得して、アプライアンスに送信します。
-
アプライアンス側のデバイスフィンガープリント検出技術は、デバイスの詳細を検証し、ボットセッションクッキーが疑わしいボットであるかどうかにかかわらず、ボットセッションクッキーを更新します。
-
クッキーの有効期限が切れた場合、またはデバイスの指紋保護がデバイスパラメータを定期的に検証して収集することを好む場合は、すべての手順またはチャレンジが繰り返されます。
モバイルアプリケーション向けのNetScalerデバイスフィンガープリント検出技術を使い始めるには、モバイルアプリケーションにボットモバイルSDKをダウンロードしてインストールする必要があります。
CLI を使用してモバイル(Android)アプリケーションの指紋検出技術を構成する
コマンドプロンプトで入力します:
set bot profile <profile name> -deviceFingerprintMobile ( NONE | Android )
例:
set bot profile profile 1 –deviceFingerprintMobile Android
GUI を使用してモバイル(Android)アプリケーションのデバイス指紋検出技術を構成する
-
[セキュリティ]>**[NetScaler ボット管理]**と [プロファイル] に移動します。
-
NetScaler Bot管理プロファイルページで**、ファイルを選択して
をクリックします**。
-
NetScaler Bot 管理プロファイルページで、プロファイル設定の**
をクリックします。**
-
セクションで、モバイルクライアントの種類を選択します。
-
NetScaler GUIを使用してデバイスフィンガープリント技術を構成する
この検出手法は、Java スクリプトチャレンジをクライアントに送信し、デバイス情報を抽出します。デバイス情報に基づいて、この技術はボットトラフィックをドロップまたはバイパスします。手順に従って、検出手法を設定します。
-
[セキュリティ]>**[NetScaler ボット管理]**と [プロファイル] に移動します。
-
NetScaler Bot管理プロファイルページで**、署名ファイルを選択して
をクリックします**。
-
NetScaler Bot管理プロファイルページで 、「 署名設定 」セクションに移動し、「 デバイスフィンガープリント」をクリックします。 デバイスフィンガープリントセクションで、次のパラメータを設定します:
-
Enabled - Select to enable the rule.
-
Configuration - Select one of the following options:
-
None - Allows the traffic.
-
Drop - Drop the traffic.
-
Redirect - Redirects the traffic to an error URL.
-
Mitigation, or CAPTCHA - Validates and allows the traffic.
During session replay attacks using the device fingerprint cookies, requests are dropped even if the device fingerprint configuration is set to Mitigation.
-
[Update] をクリックします。
-
[完了] をクリックします。
マウスとキーボードのダイナミクスに基づくボット検出
NetScalerのボット管理では、ボットを検出し、Webスクレイピングの異常を軽減するために、マウスとキーボードの動作に基づく高度なボット検出技術を使用しています。人間の直接的なインタラクション(CAPTCHA検証など)を必要とする従来のボット手法とは異なり、強化された手法はマウスとキーボードのダイナミクスを受動的に監視します。次に、NetScalerアプライアンスはリアルタイムのユーザーデータを収集し、人間とボットの間の行動を分析します。
マウスとキーボードのダイナミクスを用いたパッシブボット検出は、既存のボット検出メカニズムに比べて次のような利点があります。
マウスとキーボードのダイナミクスを使用したボット検出の仕組み
キーボードとマウスのダイナミクスを使用したボット検出技術は、ウェブページロガーとボット検出器の 2 つのコンポーネントで構成されています。ウェブページロガーは、ユーザーがウェブページでタスクを実行しているときのキーボードとマウスの動きを記録する JavaScript です(登録フォームへの入力など)。その後、ロガーはデータをバッチでNetScalerアプライアンスに送信します。その後、アプライアンスはデータをKMレコードとして保存し、NetScaler Consoleサーバー上のボット検出器に送信し、ユーザーが人間かボットかを分析します。
次の手順では、コンポーネントがどのように相互作用するかを説明します:
-
NetScaler管理者は、ADM StyleBook、CLI、NITRO、またはその他の方法でポリシー表現を構成します。
-
URL は、管理者がアプライアンスで機能を有効にすると、ボットプロファイルで設定されます。
-
クライアントが要求を送信すると、NetScalerアプライアンスはセッションとセッション内のすべての要求を追跡します。
-
リクエストがボットプロファイルで設定された式と一致する場合、アプライアンスはレスポンスに JavaScript(ウェブページロガー)を挿入します。
-
JavaScript はすべてのキーボード、マウスアクティビティを収集し、KM データを POST URL (一時的) に送信します。
-
NetScalerアプライアンスはデータを保存し、セッションの終了時にNetScalerコンソールサーバーに送信します。アプライアンスが POST 要求の完全なデータを受信すると、そのデータは ADM サーバーに送信されます。
-
NetScalerコンソールサービスがデータを分析し、その分析結果に基づいて、NetScalerコンソールサービスのGUIで結果を確認できます。
JavaScript ロガーは、次のマウスとキーボードの動きを記録します:
マウスとキーボードのダイナミクスを使用してボット検出を構成する
NetScalerのボット管理構成には、キーボードとマウスによる検出機能の有効化または無効化が含まれ、ボットプロファイルでJavaScript URLを構成します。 マウスとキーボードのダイナミクスを使用してボットの検出を設定するには、次の手順を実行します。
-
キーボードとマウスベースの検出を有効にする
-
HTTP レスポンスに JavaScript をいつ挿入できるかを決定する式を設定します
設定を開始する前に、アプライアンスでキーボードおよびマウスベースのボット検出機能が有効になっていることを確認します。
コマンドプロンプトで入力します:
add bot profile <name> -KMDetection ( ON | OFF )
例:
add bot profile profile1 –KMDetection ON
トラフィックを評価し、JavaScript を挿入するボット式を設定します。JavaScript は、式が true と評価された場合にのみ挿入されます。
コマンドプロンプトで入力します:
bind bot profile <name> -KMDetectionExpr -name <string> -expression <expression> -enabled ( ON | OFF ) –comment <string>
例:
bind bot profile profile1 -KMDetectionExpr -name test -expression http.req.url.startswith("/testsite") -enabled ON
キーボードマウスベースのボット検出のために HTTP レスポンスに挿入された JavaScript ファイル名を設定する
ユーザーアクションの詳細を収集するために、アプライアンスは HTTP レスポンスに JavaScript ファイル名を送信します。JavaScript ファイルは KM レコードのすべてのデータを収集し、アプライアンスに送信します。
コマンドプロンプトで入力します:
set bot profile profile1 – KMJavaScriptName <string>
例:
set bot profile profile1 –KMJavaScriptName script1
KM レコードとしてアプライアンスに送信し、ADM サーバーで処理できるマウスとキーボードの動作データの最大サイズを設定できます。
コマンドプロンプトで入力します:
set bot profile profile1 -KMEventsPostBodyLimit <positive_integer>
例:
set bot profile profile1 – KMEventsPostBodyLimit 25
JavaScriptを構成してキーボードとマウスの動作バイオメトリクスを収集するようにNetScalerアプライアンスを構成すると、アプライアンスはデータをNetScaler Consoleサーバーに送信します。 NetScaler Consoleサーバーが行動バイオメトリクスからボットを検出する方法の詳細については、
「ボット違反」トピックを参照してください。
GUI を使用してキーボードとマウスのボットの式設定を構成する
-
-
NetScaler Bot管理プロファイルページで、プロファイルを選択して**
をクリックします。**
-
-
検出を有効にします。チェックボックスを選択すると、ボットベースのキーボードとマウスのダイナミクスの動作が検出されます。
-
イベント投稿本体の制限。ブラウザから送信され、NetScalerアプライアンスで処理されるキーボードとマウスのダイナミクスデータのサイズ。
-
[OK] をクリックします。
-
[NetScaler bot Management プロファイル ]ページで、[ プロファイル設定] セクションに移動し、[ **キーボードおよびマウスベースのボット式の設定]**をクリックします。
-
-
[NetScaler bot Management プロファイルのボットのキーボードとマウス式のバインドの構成 ]ページで、次のパラメータを設定します。
-
エクスプレッション名。検出キーボードとマウスのダイナミクスのボットポリシー式の名前。
-
式。ボットポリシー式。
-
Enabled。チェックボックスを選択すると、キーボードとキーボードとマウスの両方のエクスプレッションバインディングが有効になります。
-
。ボットポリシー式とボットプロファイルへのバインドについての簡単な説明。
-
「 **OK」をクリックして「**閉じる」をクリックします。
-
「 キーボードとマウスベースのボット表現設定 」セクションで、「 更新」をクリックします。
着信要求がボットとして識別されると、NetScalerアプライアンスは監視とトラブルシューティングのためにHTTPヘッダーの詳細をさらにログに記録します。ボットの詳細ロギング機能は、Web App Firewall モジュールの詳細ロギングと似ています。
クライアントからの着信トラフィックを考えてみましょう。クライアントがボットとして識別された場合、NetScalerアプライアンスは詳細ログ機能を使用して、ドメインアドレス、URL、ユーザーエージェントヘッダー、Cookie ヘッダーなどの完全なHTTPヘッダー情報を記録します。ログの詳細は ADM サーバーに送信され、目的の監視とトラブルシューティングを行います。詳細ログメッセージは「ns.log」ファイルに保存されません。
詳細な HTTP ヘッダー情報をログとしてキャプチャするには、ボットプロファイルの verbose ロギングパラメータを設定します。コマンドプロンプトで入力します:
set bot profile <name> [-verboseLogLevel ( NONE | HTTP_FULL_HEADER ) ]
例:
set bot profile p1 –verboseLogLevel HTTP_FULL_HEADER
NetScaler GUIを使用してボットの詳細ログを構成する
手順に従って、ボットプロファイルの詳細ログレベルを設定します。
-
-
NetScaler Bot管理プロファイルページで**、「追加」をクリックします**。
-
「 NetScaler Bot管理プロファイルの作成 」ページで、詳細ログレベルを「HTTPフルヘッダー」として選択します。
-
なりすましボットリクエストに対するアクションの設定
攻撃者は、優れたボットになりすましてアプリケーションサーバーにリクエストを送信しようとする可能性があります。このようなボットは、ボットシグネチャを使用してなりすましボットとして識別されます。なりすましボットに対して以下のアクションを設定して、アプリケーションサーバーを保護してください。
良質なボットと判定されたリクエストは、なりすましの対象としてさらに評価されます。クライアントホストの検証中に RDNSエラーが発生したクライアントIPアドレスは、なりすましリクエストとして扱われます。
CLI を使用してスプーフィングされたボットリクエストのアクションを設定する
以下のコマンドを実行して、なりすましボットリクエストのアクションを設定します。
set bot profile <bot-profile-name> -spoofedReqAction <action> LOG
例:
set bot profile bot_profile -spoofedReqAction DROP LOG
この例では、なりすましボットからの要求はドロップされ、NetScalerアプライアンスに記録されます。
ヒントスプーフィングされたボットからのイベントをログに記録するには
GUI を使用してスプーフィングされたボットリクエストのアクションを設定する
以下の手順に従って、スプーフィングされたボットリクエストに対するアクションを設定します。
-
-
NetScaler Bot管理プロファイルページで**、「追加」をクリックします**。
-
スプーフィングリクエストアクションリストからアクションを選択します 。
-
「 なりすましリクエストをログに記録する」を選択します。
このアクションは、なりすましボットからのイベントをログに記録します。
-
[Create] をクリックします。