NetScaler ボット管理システムは、さまざまな手法を使用して受信ボットトラフィックを検出します。この手法は、ボットタイプを検出するための検出ルールとして使用されます。テクニックは次のとおりです。
ボット管理では、ブロックリスト、許可リスト、およびレート制限の手法について、最大 32 個の構成エンティティがサポートされています。
ボット許可リスト -許可リストとしてバイパスできるIPアドレス (IPv4とIPv6)、サブネット (IPv4とIPv6)、およびポリシー表現のカスタマイズされたリスト。
ボットブロックリスト -ウェブアプリケーションへのアクセスをブロックする必要がある IP アドレス (IPv4 と IPv6)、サブネット (IPv4 と IPv6)、およびポリシー表現のカスタマイズされたリスト。
IPレピュテーション -このルールは、受信ボットトラフィックが悪質なIPアドレスからのものかどうかを検出します。
デバイスフィンガープリント -このルールは、受信ボットトラフィックの受信リクエストヘッダーにデバイスフィンガープリント ID と、受信クライアントボットトラフィックのブラウザ属性があるかどうかを検出します。
-
クライアントブラウザで JavaScript を有効にする必要があります。
-
XML 応答では機能しません。
ボットログ表現 -検出技術により、追加情報をログメッセージとしてキャプチャできます。データには、URL を要求したユーザーの名前、送信元 IP アドレス、およびユーザーが要求を送信した送信元ポート、または式から生成されたデータを指定できます。
レート制限 -このルールは、同じクライアントからの複数のリクエストをレート制限します。
ボットトラップ -クライアントの応答にトラップ URL をアドバタイズすることで、自動ボットを検出してブロックします。クライアントが人間のユーザーの場合、URL は見えず、アクセスできないように見えます。この検出技術は、自動ボットからの攻撃をブロックするのに効果的です。
TPS -最大リクエスト数とリクエストの増加率が設定された時間間隔を超えると、受信トラフィックをボットとして検出します。
CAPTCHA -このルールはボット攻撃を軽減するためにCAPTCHAを使用します。CAPTCHA は、受信トラフィックが人間のユーザーからのものか、自動化されたボットからのものかを判断するためのチャレンジ/レスポンスの検証です。この検証は、Web アプリケーションにセキュリティ違反を引き起こす自動ボットをブロックするのに役立ちます。CAPTCHA は、IP レピュテーションおよびデバイスフィンガープリント検出技術のボットアクションとして設定できます。
それでは、ボットトラフィックを検出して管理するための各手法をどのように構成できるかを見てみましょう。
アプライアンスをNetScaler CLIベースのボット管理構成にアップグレードする方法
アプライアンスを古いバージョン(NetScalerリリース13.0ビルド58.32以前)からアップグレードする場合は、最初に既存のボット管理構成をNetScaler CLIベースのボット管理構成に手動で変換する必要があります。ボット管理設定を手動で変換するには、次の手順を実行します。
-
最新バージョンにアップグレードした後、次のコマンドを使用してアップグレードツール「upgrade_bot_config.py」に接続します。
コマンドプロンプトで入力します:
shell "/var/python/bin/python /netscaler/upgrade_bot_config.py > /var/bot_upgrade_commands.txt"
-
次のコマンドを使用して、構成を実行します。
コマンドプロンプトで入力します:
batch -f /var/bot_upgrade_commands.txt
-
アップグレードした設定を保存します。
save ns config
NetScaler CLIベースのボット管理の設定
ボット管理設定では、1 つ以上のボット検出手法を特定のボットプロファイルにバインドできます。 NetScalerベースのボット管理を設定するには、次の手順を完了する必要があります。
-
ボット管理を有効にする
-
ボット署名のインポート
-
ボットプロファイルの追加
-
ボットプロファイルのバインド
-
ボットポリシーの追加
-
バインドボットポリシー
-
ボット設定の構成
開始する前に、アプライアンスでボット管理機能が有効になっていることを確認します。新しいNetScalerまたはVPXをお持ちの場合は、構成する前にその機能を有効にする必要があります。NetScalerアプライアンスを以前のバージョンから現在のバージョンにアップグレードする場合は、構成する前にこの機能を有効にする必要があります。コマンドプロンプトで入力します:
enable ns feature Bot
デフォルトのシグニチャボットファイルをインポートし、ボットプロファイルにバインドできます。コマンドプロンプトで入力します:
import bot signature [<src>] <name> [-comment <string>] [-overwrite]
各項目の意味は次のとおりです:
src -ローカルパス名または URL (プロトコル、ホスト、パス、およびファイル名)。最大の長さ:2047インチ。
インポートするオブジェクトが、アクセスにクライアント証明書認証を必要とする HTTPS サーバー上にある場合、インポートは失敗します。
name -ボット署名ファイルオブジェクトの名前。これは必須の議論です。最大長:31
comment -署名ファイルオブジェクトに関する説明。最大長:255
overwrite -既存のファイルを上書きするアクション。
overwriteオプションを使用して、署名ファイルの内容を更新します。または、 update bot signature <name> コマンドを使用してNetScalerアプライアンス上の署名ファイルを更新します。
import bot signature http://www.example.com/signature.json signaturefile -comment commentsforbot –overwrite
上書きオプションを使用して、署名ファイル内のコンテンツを更新できます。また、update bot signature <name>コマンドを使用して、NetScalerアプライアンスの署名ファイルを更新することもできます。
ボットプロファイルは、アプライアンスでボット管理を設定するためのプロファイル設定の集まりです。ボット検出を実行するように設定を構成できます。
コマンドプロンプトで入力します:
add bot profile <name> [-signature <string>] [-errorURL <string>] [-trapURL <string>] [-whiteList ( ON | OFF )] [-blackList ( ON | OFF )] [-rateLimit ( ON | OFF )] [-deviceFingerprint ( ON | OFF )] [-deviceFingerprintAction ( none | log | drop | redirect | reset | mitigation )] [-ipReputation ( ON | OFF )] [-trap ( ON | OFF )]
例:
add bot profile profile1 -signature signature -errorURL http://www.example.com/error.html -trapURL /trap.html -whitelist ON -blacklist ON -ratelimit ON -deviceFingerprint ON -deviceFingerprintAction drop -ipReputation ON -trap ON
ボットプロファイルを作成したら、ボット検出メカニズムをプロファイルにバインドする必要があります。
コマンドプロンプトで入力します:
bind bot profile <name> | (-ipReputation [-category <ipReputationCategory>] [-enabled ( ON | OFF )] [-action ( none | log | drop | redirect | reset | mitigation )] [-logMessage <string>]
例:
次に、IP レピュテーション検出手法を特定のボットプロファイルにバインドする例を示します。
bind bot profile profile5 -ipReputation -category BOTNET -enabled ON -action drop -logMessage message
ボットトラフィックを評価するためのボットポリシーを追加する必要があります。
コマンドプロンプトで入力します:
add bot policy <name> -rule <expression> -profileName <string> [-undefAction <string>] [-comment <string>] [-logAction <string>]
各項目の意味は次のとおりです。
Name-ボットポリシーの名前。文字、数字、またはアンダースコア文字(_)で始まり、文字、数字、ハイフン(-)、ピリオド(.)ポンド(#)、スペース()、アットマーク(@)、等号(=)、コロン(:)、およびアンダースコア文字のみを含める必要があります。ボットポリシーの追加後に変更できます。
Rule-指定されたリクエストにボットプロファイルを適用するかどうかをポリシーが決定するために使用する式。これは必須の議論です。最大長:1499
profileName-リクエストがこのボットポリシーに一致した場合に適用するボットプロファイルの名前。これは必須の議論です。最大長:127
undefAction-ポリシー評価の結果が未定義(UNDEF)の場合に実行するアクション。UNDEF イベントは、内部エラー状態を示します。最大長:127
Comment- このボットポリシーに関する説明。最大長:255
logAction -このポリシーに一致するリクエストに使用するログアクションの名前。最大長:127
例:
add bot policy pol1 –rule "HTTP.REQ.HEADER(\"header\").CONTAINS(\"custom\")" - profileName profile1 -undefAction drop –comment commentforbotpolicy –logAction log1
コマンドプロンプトで入力します:
bind bot global -policyName <string> -priority <positive_integer> [-gotoPriorityExpression <expression>][-type ( REQ_OVERRIDE | REQ_DEFAULT )] [-invoke (-labelType ( vserver | policylabel ) -labelName <string>) ]
例:
bind bot global –policyName pol1 –priority 100 –gotoPriorityExpression NEXT -type REQ_OVERRIDE
コマンドプロンプトで入力します:
bind lb vserver <name>@ ((<serviceName>@ [-weight <positive_integer>] ) | <serviceGroupName>@ | (-policyName <string>@ [-priority <positive_integer>] [-gotoPriorityExpression <expression>]
例:
bind lb vserver lb-server1 –policyName pol1 –priority 100 –gotoPriorityExpression NEXT -type REQ_OVERRIDE
必要に応じて、デフォルト設定をカスタマイズできます。 コマンドプロンプトで入力します:
set bot settings [-defaultProfile <string>] [-javaScriptName <string>] [-sessionTimeout <positive_integer>] [-sessionCookieName <string>] [-dfpRequestLimit <positive_integer>] [-signatureAutoUpdate ( ON | OFF )] [-signatureUrl <URL>] [-proxyServer <ip_addr|ipv6_addr|*>] [-proxyPort <port|*>]
各項目の意味は次のとおりです。
defaultProfile -接続がどのポリシーにも一致しない場合に使用するプロファイル。デフォルト設定は "" で、一致しない接続はそれ以上フィルタリングされずにNetScalerに送り返されます。最大長:31
javaScriptName -ボットネット機能が応答に使用する JavaScript の名前。文字または数字で始まり、1 ~ 31 の英字、数字、およびハイフン(-)とアンダースコア(_)記号で構成する必要があります。次の要件は、NetScaler CLIにのみ適用されます。名前に1つ以上のスペースが含まれる場合は、名前を二重引用符または一重引用符で囲みます(たとえば、「私のクッキー名」または「私のクッキー名」)。最大長:31
sessionTimeout -セッションは秒単位でタイムアウトし、その後ユーザーセッションは終了します。
Minimum value -1、最大値:65535
sessionCookieName -ボットネット機能が追跡に使用するセッション Cookie の名前。文字または数字で始まり、1 ~ 31 の英字、数字、およびハイフン(-)とアンダースコア(_)記号で構成する必要があります。次の要件は、NetScaler CLIにのみ適用されます。名前に1つ以上のスペースが含まれる場合は、名前を二重引用符または一重引用符で囲みます(たとえば、「私のクッキー名」または「私のクッキー名」)。最大長:31
dfpRequestLimit -デバイスフィンガープリントが有効になっている場合に、ボットセッション Cookie なしで許可するリクエストの数。最小値:1、最大値:4294967295
signatureAutoUpdate -ボットの自動更新シグネチャを有効/無効にするために使用されるフラグ。指定可能な値:オン、オフ。 デフォルト値:OFF
signatureUrl -ボット署名マッピングファイルをサーバーからダウンロードするための URL。デフォルト値: https://nsbotsignatures.s3.amazonaws.com/BotSignatureMapping.json。最大長:2047
proxyServer - AWSから更新された署名を取得するためのプロキシサーバーIP。
proxyPort -AWSから更新された署名を取得するためのプロキシサーバーポート。デフォルト値:8080
proxyUsername -シグニチャアップデートをダウンロードする際にプロキシサーバを認証するためのユーザー名。
proxyPassword — シグニチャアップデートをダウンロードする際にプロキシサーバを認証するためのパスワード。
例:
set bot settings –defaultProfile profile1 –javaScriptName json.js –sessionTimeout 1000 –sessionCookieName session -proxyServer 10.102.30.112 -proxyPort 3128 -proxyUsername defaultuser -proxyPassword defaultPassword
NetScaler GUIを使用してボット管理を構成する
NetScalerのボット管理は、最初にアプライアンスで機能を有効にすることで構成できます。有効にすると、ボットポリシーを作成して、着信トラフィックをボットとして評価し、そのトラフィックをボットプロファイルに送信できます。次に、ボットプロファイルを作成し、そのプロファイルをボット署名にバインドします。別の方法として、デフォルトのボットシグネチャファイルのクローンを作成し、シグネチャファイルを使用して検出手法を設定することもできます。署名ファイルを作成したら、それをボットプロファイルにインポートできます。
-
ボット管理機能を有効にする
-
ボット管理設定を構成する
-
NetScalerボットのデフォルト署名のクローニング
-
NetScalerボット署名のインポート
-
ボット署名設定を構成する
-
ボットプロファイルの作成
-
ボットポリシーの作成
ボット管理を有効にするには、次の手順を実行します。
-
ナビゲーションペインで、
を展開し、
>
をクリックします。
-
[ 拡張機能の構成 ]ページで、[ NetScaler ボット管理 ]チェックボックスを選択します。
-
[OK] をクリックします。
デバイスフィンガープリント技術のボット管理設定を構成する
次の手順を実行して、デバイスフィンガープリント技術を設定します:
-
-
詳細ペインの[ 設定 ]で、[ NetScaler Bot管理設定の変更]をクリックします。
-
NetScalerボット管理設定の構成で、次のパラメーターを設定します。
-
デフォルトプロファイル。ボットプロファイルを選択します。
-
JavaScript の名前。ボット管理がクライアントへの応答で使用する JavaScript ファイルの名前です。
-
セッションタイムアウト。ユーザーセッションが終了するまでのタイムアウト(秒単位)。
-
セッションクッキー。ボット管理システムが追跡に使用するセッション Cookie の名前。
-
デバイスフィンガープリント要求制限。デバイスフィンガープリントが有効になっている場合に、ボットセッション Cookie なしで許可するリクエストの数。
-
プロキシサーバー-最新の署名がアップロードされるプロキシサーバーの IP アドレス。
-
プロキシポート — 最新のシグネチャがアップロードされたマシンのポート番号。
-
プロキシユーザー名 — プロキシサーバーの認証用のユーザー名
-
プロキシパスワード-プロキシサーバーの認証用パスワード。
「プロキシ・ユーザー名」フィールドと「プロキシ・パスワード」フィールドは、「プロキシ・サーバー」フィールドと「プロキシ・ポート」フィールドが設定されている場合に有効になります。
-
[OK] をクリックします。
次の手順を実行して、ボット署名ファイルのクローンを作成します。
-
-
NetScalerのボット管理署名ページで**、デフォルトのボット署名レコードを選択し、「複製」をクリックします。**
-
-
[Create] をクリックします。
独自の署名ファイルがある場合は、ファイル、テキスト、または URL としてインポートできます。ボット署名ファイルをインポートするには、 次の手順を実行します。
-
-
NetScalerボット管理署名ページで 、ファイルをURL、ファイル、またはテキストとしてインポートします。
-
[続行] をクリックします。
-
NetScalerボット管理署名のインポートページで 、次のパラメータを設定します。
-
名前-ボット署名ファイルの名前。
-
コメント-インポートされたファイルに関する簡単な説明。
-
上書き-ファイルの更新中にデータを上書きできるようにするには、このチェックボックスを選択します。
-
署名データ-署名パラメータの変更
-
[完了] をクリックします。
NetScaler GUIを使用してボット許可リストを構成する
この検出技術により、許可されたリストの URL を設定した URL をバイパスできます。許可リストの URL を設定するには、次の手順を実行します:
-
-
NetScaler Bot管理プロファイルページで**、ファイルを選択して
をクリックします**。
-
NetScaler Bot管理プロファイルページで 、「 署名設定 」セクションに移動し、「 ホワイトリスト」をクリックします。
-
-
Enabled。このチェックボックスを選択すると、検出プロセスの一環として許可リストの URL が検証されます。
-
を設定します。許可リスト URL を構成します。URL は、ボットの検出中にバイパスされます。「 追加 」をクリックして、ボット許可リストに URL を追加します。
-
NetScaler Bot管理プロファイルのホワイトリストバインディングの設定ページで 、次のパラメーターを設定します。
-
タイプ。URL タイプは、IPv4 アドレス、サブネット IP アドレス、またはポリシー式に一致する IP アドレスです。
-
Enabled。チェックボックスを選択して URL を検証します。
-
価値。URL アドレス。
-
ログ。ログエントリを保存するには、このチェックボックスを選択します。
-
メッセージをログに記録します。ログの簡単な説明。
-
-
[OK] をクリックします。

-
[Update] をクリックします。
-
[完了] をクリックします。
NetScaler GUIを使用してボットブロックリストを構成する
この検出技術により、ブロックリストとして設定した URL を削除できます。ブロックリスト URL を設定するには、次の手順を実行します。
-
-
NetScaler Bot管理プロファイルページで**、署名ファイルを選択して
をクリックします**。
-
NetScaler Bot管理プロファイルページで 、「 署名設定 」セクションに移動し、「 ブラックリスト」をクリックします。
-
-
Enabled。このチェックボックスを選択すると、検出プロセスの一環としてブロックリストの URL を検証できます。
-
を設定します。URL をボットブロックリスト検出プロセスの一部として設定します。これらの URL は、ボット検出中にドロップされます。「 追加 」をクリックして、ボット禁止リストに URL を追加します
-
NetScaler Bot管理プロファイルのブラックリストバインディングの設定ページで 、次のパラメーターを設定します。
-
タイプ。URL タイプは、IPv4 アドレス、サブネット IP アドレス、または IP アドレスです。
-
Enabled。チェックボックスを選択して URL を検証します。
-
価値。URL アドレス。
-
ログ。ログエントリを保存するには、このチェックボックスを選択します。
-
メッセージをログに記録します。ログインの簡単な説明。
-
-
[OK] をクリックします。

-
[Update] をクリックします。
-
[完了] をクリックします。
NetScaler GUIを使用してIPレピュテーションを設定する
IP レピュテーションボット手法では、Webroot の IP レピュテーションデータベースとクラウドサービスプロバイダーデータベースを使用して、クライアントのリクエストが悪意のある IP アドレスかパブリッククラウド IP アドレスかを検証します。ボットカテゴリの一部として設定され、ボットアクションが関連付けられます。Webroot IP レピュテーションとクラウドサービスプロバイダーのデータベースカテゴリを設定するには、次の手順を実行します。
-
-
[NetScaler bot 管理プロファイル]ページでプロファイルを選択し 、[ 編集]をクリックします。
-
NetScaler Bot管理プロファイルページで 、「 プロファイル設定 」セクションに移動し、「 IPレピュテーション」をクリックします。
-
-
Enabled。このチェックボックスを選択すると、検出プロセスの一環として受信ボットトラフィックが検証されます。
-
カテゴリを設定します。IP レピュテーション技術は、さまざまなカテゴリの着信ボットトラフィックに使用できます。設定されたカテゴリに基づいて、ボットトラフィックをドロップまたはリダイレクトできます。
をクリックして、悪意のあるボットカテゴリを設定します。
-
NetScalerボット管理プロファイルのIPレピュテーションバインディングの設定ページで 、次のパラメーターを設定します。
-
カテゴリ。Webroot IP レピュテーションボットカテゴリを選択して、クライアントリクエストを悪意のある IP アドレスとして検証します。
-
IP_BASED-このカテゴリは、クライアント IP アドレス (IPv4 および IPv6) が悪意のあるものかどうかをチェックします。
-
BOTNET-このカテゴリには、ボットネット C&C チャネル、およびボットマスターによって制御される感染したゾンビマシンが含まれます。
-
SPAM_SOURCES-このカテゴリには、プロキシを介したスパムメッセージのトンネリング、異常な SMTP アクティビティ、フォーラムスパムアクティビティが含まれます。
-
SCANNERS-このカテゴリには、プローブ、ホストスキャン、ドメインスキャン、パスワード総当たり攻撃など、すべての偵察が含まれます。
-
DOS:このカテゴリには、DOS、DDOS、異常同期フラッド、異常トラフィック検出が含まれます。
-
REPUTATION-このカテゴリは、マルウェアに感染していることが現在知られている IP アドレス (IPv4 および IPv6) からのアクセスを拒否します。このカテゴリには、Webroot レピュテーションインデックススコアが平均的に低い IP アドレスも含まれます。このカテゴリを有効にすると、マルウェアの配布ポイントに接触していると特定されたソースからのアクセスが防止されます。
-
フィッシング-このカテゴリには、フィッシングサイトをホストしている IP アドレス (IPv4 および IPv6) や、広告クリック詐欺やゲーム詐欺などのその他の詐欺行為が含まれます。
-
PROXY-このカテゴリには、プロキシサービスを提供する IP アドレス (IPv4 および IPv6) が含まれます。
-
ネットワーク-TORまたはダークネットとも呼ばれるオニオンルーターなど、プロキシおよび匿名化サービスを提供するIP。
-
MOBILE_THREATS-このカテゴリは、クライアントの IP アドレス (IPv4 および IPv6) と、モバイルデバイスに有害なアドレスのリストをチェックします。
-
カテゴリ。Webroot パブリッククラウドサービスプロバイダーのカテゴリを選択して、クライアントリクエストがパブリッククラウド IP アドレスであることを検証します。
-
AWS-このカテゴリは、AWS のパブリッククラウドアドレスのリストでクライアント IP アドレスをチェックします。
-
GCP-このカテゴリは、クライアントの IP アドレスを Google Cloud Platform のパブリッククラウドアドレスのリストで確認します。
-
AZURE-このカテゴリは、Azure のパブリッククラウドアドレスのリストでクライアントアドレスをチェックします。
-
ORACLE-このカテゴリは、Oracle のパブリッククラウドアドレスのリストでクライアント IP アドレスをチェックします。
-
IBM-このカテゴリは、クライアントの IP アドレスと IBM のパブリック・クラウド・アドレスのリストをチェックします。
-
SALESFORCE-このカテゴリは、クライアントの IP アドレスと Salesforce のパブリッククラウドアドレスのリストをチェックします。
Webroot IP レピュテーションボットカテゴリに指定可能な値:IP、ボットネット、SPAM_SOURCES、スキャナー、DOS、レピュテーション、フィッシング、プロキシ、ネットワーク、MOBILE_THREATS。
Webroot パブリッククラウドサービスプロバイダーのカテゴリに指定可能な値:AWS、GCP、AZURE、ORACLE、IBM、SALESFORCE。
-
Enabled。このチェックボックスを選択して、IP レピュテーションシグニチャの検出を検証します。
-
Bot action. 設定したカテゴリに基づいて、アクション、ドロップ、リダイレクト、または軽減アクションを割り当てることはできません。
-
ログ。ログエントリを保存するには、このチェックボックスを選択します。
-
メッセージをログに記録します。ログの簡単な説明。
-
-
[OK] をクリックします。
-
[Update] をクリックします。
-
[完了] をクリックします。

IP レピュテーションを無効にする場合は、必ずダウンロードを停止してください。IP レピュテーションのダウンロードを停止するには、次の手順を実行します。
-
-
デフォルトの非侵入型プロファイルを****BOT_BYPASS に変更します。
ボットレート制限技術を使用すると、ユーザーの位置情報、クライアント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 つの条件に対して複数のルールを作成できます。
-
有効-このチェックボックスを選択して、受信ボットトラフィックを検証します。
-
リクエストしきい値-特定の期間内に許可されるリクエストの最大数。
-
期間-ミリ秒単位の時間枠。
-
アクション-選択したカテゴリのボットアクションを選択します。
-
ログ-ログエントリを保存するチェックボックスを選択します。
-
ログメッセージ-ログの簡単な説明。
-
コメント-ボットカテゴリに関する簡単な説明。
-
[OK] をクリックします。
-
[Update] をクリックします。
-
[完了] をクリックします。
NetScaler GUIを使用してデバイスフィンガープリント技術を構成する
この検出技術は、Java スクリプトチャレンジをクライアントに送信し、デバイス情報を抽出します。デバイス情報に基づいて、この技術はボットトラフィックをドロップまたはバイパスします。手順に従って、検出手法を設定します。
-
-
NetScaler Bot管理プロファイルページで**、署名ファイルを選択して
をクリックします**。
-
NetScaler Bot管理プロファイルページで 、「 署名設定 」セクションに移動し、「 デバイスフィンガープリント」をクリックします。 デバイスフィンガープリントセクションで 、次のパラメータを設定します:
-
Enabled - Select to enable the rule.
-
Configuration - Select one of the following options:
-
None - Allows the traffic.
-
Drop - Drops the traffic.
-
Redirect - Redirects the traffic to 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] をクリックします。
-
[完了] をクリックします。
モバイル (Android) アプリケーション用のデバイスフィンガープリント技術を構成する
デバイスフィンガープリント技術は、クライアントへの HTML 応答に JavaScript スクリプトを挿入することにより、着信トラフィックをボットとして検出します。JavaScript スクリプトは、ブラウザによって呼び出されると、ブラウザとクライアントの属性を収集し、アプライアンスに要求を送信します。これらの属性を調べて、トラフィックが Bot か人間かを判断します。
検出技術はさらに拡張され、モバイル (Android) プラットフォームでボットを検出できます。ウェブアプリケーションとは異なり、モバイル (Android) トラフィックでは、JavaScript スクリプトに基づくボット検出は適用されません。モバイルネットワーク内のボットを検出するために、この手法では、クライアント側のモバイルアプリケーションと統合されたボットモバイル SDK を使用します。SDK は、モバイルトラフィックをインターセプトし、デバイスの詳細を収集し、データをアプライアンスに送信します。アプライアンス側では、検出技術はデータを調べ、接続が Bot または人間からのものかどうかを判断します。
モバイルアプリケーション用のデバイスフィンガープリント手法の仕組み
次の手順では、モバイルデバイスからのリクエストが人間かボットかを検出するボット検出ワークフローについて説明します。
-
ユーザーがモバイルアプリケーションを操作すると、ボットモバイルSDKはデバイスの動作を記録します。
-
クライアントはNetScalerアプライアンスに要求を送信します。
-
応答を送信すると、アプライアンスは、セッションの詳細とクライアントパラメータを収集するためのパラメータを含むボットセッションクッキーを挿入します。
-
モバイルアプリケーションが応答を受信すると、モバイルアプリケーションと統合されたNetScalerボットSDKが応答を検証し、記録されたデバイスフィンガープリントパラメーターを取得してアプライアンスに送信します。
-
アプライアンス側のデバイスフィンガープリント検出技術は、デバイスの詳細を検証し、ボットセッションクッキーが疑わしいボットであるかどうかにかかわらず、ボットセッションクッキーを更新します。
-
クッキーの有効期限が切れた場合、またはデバイスの指紋保護がデバイスパラメータを定期的に検証して収集することを好む場合は、すべての手順またはチャレンジが繰り返されます。
モバイルアプリケーション向けのNetScalerデバイスフィンガープリント検出技術を使い始めるには、モバイルアプリケーションにボットモバイルSDKをダウンロードしてインストールする必要があります。
CLI を使用してモバイル(Android)アプリケーションの指紋検出技術を構成する
コマンドプロンプトで入力します:
set bot profile <profile name> -deviceFingerprintMobile ( NONE | Android )
例:
set bot profile profile 1 –deviceFingerprintMobile Android
GUI を使用してモバイル(Android)アプリケーションのデバイス指紋検出技術を構成する
-
-
NetScaler Bot管理プロファイルページで**、ファイルを選択して
をクリックします**。
-
NetScaler Bot 管理プロファイルページで、プロファイル設定の**
をクリックします。**
-
セクションで、モバイルクライアントの種類を選択します。
-
クライアントがボットとして識別された場合、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のボットトラップ技術は、サーバーの応答にトラップ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ボット管理プロファイルの作成ページで 、一般セクションにボットトラップURLを入力します。
-
NetScaler Bot管理プロファイルページで、**「プロファイル設定」から「 ボットトラップ 」**をクリックします。
-
-
Enabled。チェックボックスを選択してボットトラップ検出を有効にします
-
説明。URL に関する簡単な説明。
-
「アクションを設定」セクションで、次のパラメータを設定します。
-
Action. Action to be taken for bot detected by bot trap access.
-
Log. Enable or disable logging for bot trap binding.
-
-
NetScalerボット管理プロファイルのボットトラップバインディングの設定ページで 、次のパラメーターを設定します。
-
トラップ URL。ボットトラップ挿入 URL として確認する URL を入力します。
-
Enabled。ボットトラップ挿入 URL を有効または無効にします。
-
-
ボットトラップ URL 設定を構成するには、次の手順を実行します。
-
-
詳細ペインの[ 設定 ]で、[ NetScaler Bot 管理設定の変更]をクリックします。
-
NetScalerボット管理設定の構成で、次のパラメーターを設定します。
-
トラップ URL 間隔。ボットトラップ URL が更新されるまでの時間(秒単位)。
-
トラップ URL の長さ。自動生成されたボットトラップ URL の長さ。
-
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表現を設定します。
-

IP レピュテーションとデバイスフィンガープリント検出のための CAPTCHA の構成
CAPTCHA は、「Computers and Humans Apart を伝える完全に自動化された Public Turing test」の略の頭字語です。CAPTCHA は、着信トラフィックが人間のユーザーまたは自動ボットからのものかどうかをテストするように設計されています。CAPTCHA は、ウェブアプリケーションにセキュリティ違反を引き起こす自動ボットをブロックするのに役立ちます。NetScalerでは、CAPTCHAはチャレンジレスポンスモジュールを使用して、受信トラフィックが自動ボットではなく人間のユーザーからのものかどうかを識別します。
この検出手法により、ブラウザの詳細からユーザエージェント情報を識別できます。ユーザーエージェント情報に基づいて、ボットは不良または良好なボットとして識別され、ボットアクションを割り当てます。
スタティックシグニチャ技術を設定するには、次の手順を実行します。
-
ナビゲーションペインで、
>
>
の順に展開します**。
-
NetScaler Bot Managementの署名ページで**、署名ファイルを選択して「編集」をクリックします。**
-
NetScaler Bot Managementの署名ページで 、「 署名設定 」セクションに移動し、「 ボット署名」をクリックします。
-
-
スタティックシグニチャを設定します。このセクションには、ボットの静的署名レコードのリストがあります。レコードを選択し、
をクリックして、そのレコードにボットアクションを割り当てることができます。
-
[OK] をクリックします。
-
-
[完了] をクリックします。
NetScalerのボット管理は、Webアプリケーションをボットから保護します。ボットの静的シグネチャは、着信リクエストのユーザーエージェントなどのリクエストパラメータに基づいて、良いボットと悪いボットを識別するのに役立ちます。ファイル内のシグネチャのリストは巨大で、新しいルールが追加され、古いルールが定期的に削除されます。管理者は、カテゴリで特定のシグニチャまたはシグニチャのリストを検索したい場合があります。署名を簡単にフィルタリングするために、ボットシグネチャページには拡張された検索機能があります。検索機能を使用すると、シグニチャルールを検索し、アクション、シグニチャ ID、開発者、シグニチャ名などの 1 つ以上のシグニチャパラメータに基づいてそのプロパティを設定できます。
アクション-特定のカテゴリのシグニチャルールに設定したいボットアクションを選択します。使用可能なアクションタイプは次のとおりです。
-
選択項目を有効にする-選択したすべての署名ルールを有効にします。
-
選択項目を無効にする-選択したすべてのシグニチャルールを無効にします。
-
選択したものをドロップ-選択したすべてのシグニチャルールに「ドロップ」アクションを選択します。
-
選択したリダイレクト-選択したすべてのシグニチャルールに「リダイレクト」アクションを適用します。
-
選択項目をリセット-選択したすべてのシグニチャルールに「リセット」アクションを適用します。
-
選択したログ-選択したすべてのシグニチャルールに「ログ」アクションを適用します。
-
Drop Selected を削除-選択したすべてのシグニチャルールに対するドロップアクションの設定を解除します。
-
選択したリダイレクトを削除-選択したすべてのシグニチャルールへのリダイレクトアクションの設定を解除します。
-
Reset Selected を削除-選択したすべてのシグニチャルールに対するリセットアクションの設定を解除します。
-
選択したログを削除-選択したすべてのシグニチャルールへのログアクションの設定を解除します。
カテゴリ-カテゴリを選択して、それに応じてシグニチャルールをフィルタリングします。次に、シグニチャルールのソートに使用できるカテゴリの一覧を示します。
-
アクション-ボットのアクションに基づいてソートします。
-
カテゴリ-ボットカテゴリに基づいてソートします。
-
開発者-ホスト企業の発行元に基づいてソートします。
-
有効-有効になっている署名ルールに基づいてソートします。
-
Id-署名ルール ID に基づいてソートします。
-
ログ-ロギングが有効になっているシグニチャルールに基づいてソートします。
-
名前-シグニチャルール名に基づいてソートします。
-
タイプ-署名タイプに基づいてソートします。
-
バージョン-シグニチャルールのバージョンに基づいてソートします。
NetScaler GUIを使用して、アクションとカテゴリの種類に基づいてボットの静的署名ルールを検索します
-
-
-
NetScaler Bot 管理署名ページで、静的署名セクションの**「編集」をクリックします。**
-
セクションで、ドロップダウンリストからシグニチャアクションを選択します。
-
検索機能を使用してカテゴリを選択し、それに応じてルールをフィルタリングします。
-
[Update] をクリックします。
NetScaler GUIを使用してボットの静的署名ルールプロパティを編集します
-
-
-
NetScaler Bot 管理署名ページで、静的署名セクションの**「編集」をクリックします。**
-
セクションで、ドロップダウンリストからアクションを選択します。
-
検索機能を使用してカテゴリを選択し、それに応じてルールをフィルタリングします。
-
静的署名リストから、シグニチャを選択してプロパティを変更します。
-
**[OK]**をクリックして確定します。
NetScalerのボット管理におけるCAPTCHAの仕組み
NetScalerボット管理では、CAPTCHA検証は、ボットポリシーが評価された後に実行されるポリシーアクションとして構成されます。CAPTCHA アクションは、IP レピュテーションおよびデバイスフィンガープリント検出技術でのみ使用できます。以下に、CAPTCHA の仕組みを理解する手順を示します。
-
IP レピュテーションまたはデバイスフィンガープリントボットの検出中にセキュリティ違反が観察された場合、ADC アプライアンスは CAPTCHA チャレンジを送信します。
-
クライアントは CAPTCHA レスポンスを送信します。
-
アプライアンスは CAPTCHA 応答を検証し、CAPTCHA が有効な場合、要求は許可され、バックエンドサーバーに転送されます。
-
CATCHA 応答が無効な場合、アプライアンスは最大試行回数に達するまで新しい CAPTCHA チャレンジを送信します。
-
最大試行回数の後でも CAPTCHA 応答が無効である場合、アプライアンスは要求をドロップするか、設定されたエラー URL にリダイレクトします。
-
ログアクションを設定した場合、アプライアンスは要求の詳細を ns.log ファイルに保存します。
NetScaler GUIを使用してCAPTCHA設定を構成する
ボット管理 CAPTCHA アクションは、IP レピュテーションおよびデバイスフィンガープリント検出技術でのみサポートされます。CAPTCHA 設定を構成するには、次の手順を実行します。
-
-
NetScaler Bot管理プロファイルページで、プロファイルを選択して**
をクリックします。**
-
NetScaler Bot管理プロファイルページで、**「 プロファイル設定」セクションに移動し、「CAPTCHA」**をクリックします。
-
「 CAPTCHA 設定 」セクションで、「 追加」をクリックして、プロファイルに CAPTCHA 設定を構成します 。
-
NetScalerボット管理CAPTCHAの構成ページで 、次のパラメーターを設定します。
-
URL。IP レピュテーションおよびデバイスフィンガープリント検出技術中に CAPTCHA アクションが適用されるボット URL。
-
Enabled。CAPTCHA サポートを有効にするには、このオプションを設定します。
-
猶予時間。現在の有効な CAPTCHA 応答を受信した後、新しい CAPTCHA チャレンジが送信されないまでの期間。
-
待ち時間。ADC アプライアンスがクライアントが CAPTCHA 応答を送信するまで待機するまでに要した時間。
-
ミュート期間。不正な CAPTCHA 応答を送信したクライアントが、次の試行を許可されるまで待つ必要がある期間。このミュート期間中、ADC アプライアンスは要求を許可しません。範囲:60 ~ 900 秒、推奨:300 秒
-
リクエストの長さ制限。CAPTCHA チャレンジがクライアントに送信される要求の長さ。長さがしきい値より大きい場合、要求はドロップされます。デフォルト値は 10 ~ 3000 バイトです。
-
再試行回数。クライアントが CAPTCHA チャレンジを解決するために再試行できる試行回数。範囲:1—10、推奨:5。
-
クライアントが CAPTCHA 検証に失敗した場合、アクション/ドロップ/リダイレクトアクションは実行されません。
-
ログ。このオプションを設定すると、レスポンス CAPTCHA が失敗したときにクライアントからのリクエスト情報を保存できます。データはns.logファイルに保存されます。
-
-
-
-
NetScaler Bot Managementの署名ページで**、署名ファイルを選択して「編集」をクリックします。**
-
NetScaler Bot Managementの署名ページで 、「 署名設定 」セクションに移動し、「 ボット署名」をクリックします。
-
-
スタティックシグニチャを設定します。ボット静的署名レコードを選択し、
をクリックして、ボットアクションをそのレコードに割り当てます。
-
[OK] をクリックします。
-
-
[完了] をクリックします。
ボット静的シグニチャ手法では、シグニチャルックアップテーブルと良いボットと不良ボットのリストを使用します。ボットは、ユーザーエージェント文字列とドメイン名に基づいて分類されます。着信ボットトラフィックのユーザーエージェント文字列とドメイン名がルックアップテーブルの値と一致する場合、設定されたボットアクションが適用されます。 ボット署名の更新は AWS クラウドでホストされ、署名ルックアップテーブルは、署名の更新のために AWS データベースと通信します。自動署名更新スケジューラーは1時間ごとに実行され、 AWSデータベースをチェックし 、NetScalerアプライアンスの署名テーブルを更新します。
設定するシグニチャ自動更新 URLは、https://nsbotsignatures.s3.amazonaws.com/BotSignatureMapping.json
また、プロキシサーバーを設定し、プロキシを介して AWS クラウドからアプライアンスにシグネチャを定期的に更新することもできます。プロキシ設定の場合、ボット設定でプロキシ IP アドレスとポートアドレスを設定する必要があります。
次の図は、ボット署名がAWSクラウドから取得され、NetScalerで更新され、NetScaler Consoleで署名更新の概要がどのように表示されるかを示しています。
ボットシグネチャ自動更新スケジューラは、次のことを行います。
-
AWS URI からマッピングファイルを取得します。
-
マッピングファイル内の最新のシグニチャを、ADC アプライアンスの既存のシグニチャでチェックします。
-
AWS から新しい署名をダウンロードし、署名の整合性を検証します。
-
既存のボット署名を、ボット署名ファイル内の新しい署名で更新します。
-
SNMPアラートを生成し、署名更新の概要をNetScalerコンソールに送信します。
ボット署名の自動更新を設定するには、次の手順を実行します。
ADC アプライアンスのボット設定で自動更新オプションを有効にする必要があります。 コマンドプロンプトで入力します:
set bot settings –signatureAutoUpdate ON
プロキシサーバーを介して AWS 署名データベースにアクセスする場合は、プロキシサーバーとポートを設定する必要があります。 set bot settings –proxyserver –proxyport
例:
set bot settings –proxy server 1.1.1.1 –proxyport 1356
NetScaler GUIを使用してボット署名の自動更新を構成する
ボット署名の自動更新を設定するには、次の手順を実行します。
-
-
詳細ペインの[ 設定 ]で、[ NetScaler Bot 管理設定の変更]をクリックします。
-
「 NetScaler Bot管理設定の構成」で、「 署名の自動更新 」チェックボックスを選択します。
-
「 **OK」をクリックして「**閉じる」をクリックします。
ボットプロファイルは、ボットタイプの検出に使用されるボット管理設定の集まりです。プロファイルでは、Web App Firewall が各フィルタ(またはチェック)を Web サイトへのボットトラフィックに適用する方法と、それらからの応答を決定します。
ボットプロファイルを設定するには、次の手順を実行します。
-
-
-
NetScaler Bot管理プロファイルの作成ページで 、次のパラメーターを設定します。
-
名前。ボットプロファイル名。
-
署名。ボット署名ファイルの名前。
-
エラー URL。リダイレクトの URL。
-
-
ボットポリシーは、ボット管理システムへのトラフィックを制御し、監査ログサーバーに送信されるボットログも制御します。手順に従って、ボットポリシーを設定します。
-
-
-
NetScalerボット管理ポリシーの作成ページで 、次のパラメーターを設定します。
-
名前。ボットポリシーの名前。
-
式。ポリシー式またはルールをテキスト領域に直接入力します。
-
ボットプロファイル。ボットポリシーを適用するボットプロファイル。
-
未定義のアクション。割り当てるアクションを選択します。
-
-
ログアクション。ボットトラフィックを記録するための監査ログメッセージアクション。監査ログアクションの詳細については、「監査ログ」のトピックを参照してください。
-
1 秒あたりのトランザクション数 (TPS) ボット技術は、1 秒あたりの要求数 (RPS) と RPS の増加率が設定されたしきい値を超えた場合に、着信トラフィックをボットとして検出します。この検出技術は、ウェブスクレイピングアクティビティ、ブルートフォースログイン、その他の悪意のある攻撃を引き起こす可能性のある自動ボットから Web アプリケーションを保護します。
ボット技術は、両方のパラメータが設定されていて、両方の値がしきい値制限を超えて増加した場合にのみ、着信トラフィックをボットとして検出します。 アプライアンスが特定のURLから多くのリクエストを受け取り、NetScalerのボット管理者にボット攻撃があるかどうかを検出させたいシナリオを考えてみましょう。TPS 検出技術は、1 秒以内に URL から送信された要求の数(設定値)と 30 分以内に受信された要求数の増加率(設定値)を調べます。値がしきい値制限を超えると、トラフィックはボットと見なされ、アプライアンスは設定されたアクションを実行します。
1 秒あたりのボットトランザクション (TPS) 手法の設定
TPS を設定するには、次の手順を完了する必要があります:
-
ボットの TPS を有効にする
-
TPS 設定をボット管理プロファイルにバインドする
TPS 設定をボット管理プロファイルにバインドする
ボット TPS 機能を有効にしたら、TPS 設定をボット管理プロファイルにバインドする必要があります。
コマンドプロンプトで入力します:
bind bot profile <name>… (-tps [-type ( SourceIP | GeoLocation | RequestURL | Host )] [-threshold <positive_integer>] [-percentage <positive_integer>] [-action ( none | log | drop | redirect | reset | mitigation )] [-logMessage <string>])
例:
bind bot profile profile1 -tps -type RequestURL -threshold 1 -percentage 100000 -action drop -logMessage log
1 秒あたりのボットトランザクション (TPS) を有効にする
開始する前に、アプライアンスでボット TPS 機能が有効になっていることを確認する必要があります。コマンドプロンプトで入力します:
set bot profile profile1 –enableTPS ON
NetScaler GUIを使用してボットトランザクション/秒(TPS)を構成する
1 秒あたりのボットトランザクションを設定するには、次の手順を実行します。
-
-
NetScaler Bot管理プロファイルページで、プロファイルを選択して**
をクリックします。**
-
NetScaler Bot管理プロファイルの作成ページで 、「 署名設定 」セクションの「 TPS 」をクリックします。
-
セクションで、機能を有効にし、
をクリックします。
-
[NetScaler Bot管理プロファイルのTPSバインドの構成 ]ページで、次のパラメーターを設定します。
-
タイプ-次のタイプのいずれかを選択します:
SOURCE_IP — クライアント IP アドレスに基づいた TPS。
GEOLOCATION — クライアントの地理的位置に基づく TPS。
HOST-特定のバックエンドサーバーの IP アドレスに転送されたクライアント要求に基づく TPS。
URL — 特定の URL からのクライアント要求に基づく TPS。
-
固定しきい値-1 秒間隔内に TPS 入力タイプから許可されるリクエストの最大数。
-
パーセンテージしきい値-30分間隔内のTPS入力タイプからのリクエストの最大増加率。
-
アクション-TPS バインディングによって検出されたボットに対して実行するアクション。
-
ログ-TPS バインディングのロギングを有効または無効にします。
-
メッセージをログに記録します。TPS バインディングによって検出されたボットのログを記録するメッセージです。最大長:255
-
コメント-TPS 構成に関する簡単な説明。最大長:255
-
マウスとキーボードのダイナミクスに基づくボット検出
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 ボット管理プロファイルページで 、編集アイコンをクリックします。
-
基本設定の「 キーボードとマウスベースのボット検出 」セクションで、次のパラメータを設定します:
-
検出を有効にします。チェックボックスを選択すると、ボットベースのキーボードとマウスのダイナミクスの動作が検出されます。
-
イベント投稿本体の制限。ブラウザから送信され、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フルヘッダーとして選択します。**
-
なりすましボットリクエストに対するアクションの設定
攻撃者は、優れたボットになりすましてアプリケーションサーバーにリクエストを送信しようとする可能性があります。このようなボットは、ボットシグネチャを使用してなりすましボットとして識別されます。なりすましボットに対して以下のアクションを設定して、アプリケーションサーバーを保護してください。
CLI を使用してスプーフィングされたボットリクエストのアクションを設定する
以下のコマンドを実行して、なりすましボットリクエストのアクションを設定します。
set bot profile <bot-profile-name> -spoofedReqAction <action> LOG
例:
set bot profile bot_profile -spoofedReqAction DROP LOG
この例では、なりすましボットからの要求はドロップされ、NetScalerアプライアンスに記録されます。
ヒントスプーフィングされたボットからのイベントをログに記録するには
GUI を使用してスプーフィングされたボットリクエストのアクションを設定する
以下の手順に従って、スプーフィングされたボットリクエストに対するアクションを設定します。
-
-
NetScaler Bot管理プロファイルページで**、「追加」をクリックします**。
-
スプーフィングリクエストアクションリストからアクションを選択します 。
-
「 なりすましリクエストをログに記録する」を選択します。
このアクションは、なりすましボットからのイベントをログに記録します。
-
[Create] をクリックします。
NetScaler bot Managementによってドロップされたリクエストヘッダー
キャッシュに関連するリクエストヘッダーの多くは、セッションのコンテキスト内のすべてのリクエストを表示するためにドロップされます。同様に、ウェブサーバーが圧縮された応答を送信できるようにするエンコーディングヘッダーが要求に含まれている場合、ボット管理者はこのヘッダーを削除して、圧縮されていないサーバー応答の内容をボット管理者が検査して JavaScript を挿入するようにします。
ボット管理者は以下のリクエストヘッダーを削除します。
範囲-失敗したファイル転送または部分的なファイル転送からの回復に使用されます。
If-Range-すでにキャッシュにそのオブジェクトの一部が含まれている場合、クライアントはオブジェクトの一部を取得できます (条件付き GET)。
If-Modified-Since-要求されたオブジェクトがこのフィールドで指定された時間以降に変更されていない場合、エンティティはサーバーから返されません。HTTP 304 変更されていないというエラーが表示されます。
If-None-Match-キャッシュされた情報を最小限のオーバーヘッドで効率的に更新できます。
Accept-Encoding-gzip などの特定のオブジェクトにはどのようなエンコーディング方法が許可されていますか。