Citrix ADC

JSON SQL インジェクション保護チェック

受信 JSON リクエストは、部分的な SQL クエリ文字列またはコード内の不正なコマンドの形で SQL インジェクションを持つことができます。これは、あなたのウェブサーバーのJSONデータベースからデータを盗むにつながります。このような要求を受信すると、アプライアンスはお客様のデータを保護するための要求をブロックします。

クライアントがJSON SQLリクエストをCitrix ADCアプライアンスに送信し、JSONパーサーがリクエストペイロードを解析し、SQLインジェクションが観察された場合、アプライアンスはJSON SQLコンテンツに制約を適用します。この制約は、JSON SQL リクエストのサイズ制限を強制します。その結果、JSON SQL インジェクションが検出されると、アプライアンスはアクションを適用し、JSON SQL エラーページに応答します。

JSON SQL インジェクション保護の設定

JSON SQL 保護を構成するには、次の手順を完了する必要があります。

  1. アプリケーションのファイアウォールプロファイルを JSON として追加します。
  2. JSON SQL インジェクション設定のアプリケーションファイアウォールプロファイルの設定
  3. アプリケーションのファイアウォールプロファイルをバインドして JSON SQL アクションを設定します。

タイプ JSON のアプリケーションファイアウォールプロファイルを追加します

まず、アプリケーションファイアウォールで JSON Web コンテンツを JSON SQL Injection 攻撃から保護する方法を指定するプロファイルを作成する必要があります。 コマンドプロンプトで、次のように入力します。

add appfw profile <name> -type (HTML | XML | JSON)

プロファイルタイプを JSON に設定すると、HTML や XML などの他のチェックは適用されません。

add appfw profile profile1 –type JSON

JSON SQL インジェクションアクションの設定

JSON SQL インジェクション攻撃からアプリケーションを保護するには、1 つ以上の JSON SQL インジェクションアクションを設定する必要があります。 コマンドプロンプトで、次のように入力します。

set appfw profile <name> - JSONSQLInjectionAction [block] [log] [stats] [none]

SQL インジェクションのアクションは次のとおりです。 Block-このセキュリティー検査に違反する接続をブロックします。 Log - このセキュリティチェックの違反を記録します。 Stats -このセキュリティー検査の統計を生成します。 None -このセキュリティー検査のすべてのアクションを無効にします。

JSON SQL インジェクションタイプの設定

アプリケーションファイアウォールプロファイルで JSON SQL Injection タイプを設定するには、コマンドプロンプトで次のように入力します。

set appfw profile <name> - JSONSQLInjectionType <JSONSQLInjectionType>

set appfw profile profile1 -JSONSQLInjectionType SQLKeyword

使用可能なSQLインジェクションタイプは次のとおりです。 使用可能なSQLインジェクションタイプ。 sqlSplchar。SQL特殊文字、 SQLキーワードをチェックします。SQL キーワードをチェックします。 SQLSplCharandキーワードです。見つかった場合は、ブロックとブロックの両方をチェックします。 SQLSplCharOR キーワードです。SQL特殊文字またはsplキーワードが見つかった場合はブロックします。 指定可能な値:SQL文字、SQLキーワード、SQLスプライン文字またはキーワード、SQLSplcharandキーワードです。

: 1 つ以上のアクションを有効にするには、「appfw プロファイルの設定-JSONSQLInjectionAction」と入力し、次に有効にするアクションを入力します。

set appfw profile profile1 -JSONSQLInjectionAction block log stat

次に、ペイロード、対応するログメッセージ、および統計カウンタの例を示します。

Payload:
=======
{
  "test": "data",
  "username": "waf",
  "password": "select * from t1;",
  "details": {
    "surname": "test",
    "age": "23"
  }
}

Log Message:
===========
08/19/2019:08:49:46 GMT pegasus121 Informational 0-PPE-0 : default APPFW APPFW_JSON_SQL 6656 0 :  10.217.32.165 18402-PPE0 - profjson http://10.217.32.147/test.html SQL Keyword check failed for object value(with violation="select(;)") starting at offset(52) <blocked>
Counters:
========
   1  441083             1 as_viol_json_sql
   3       0             1 as_log_json_sql
   5       0             1 as_viol_json_sql_profile appfw__(profjson)
   7       0             1 as_log_json_sql_profile appfw__(profjson)

Citrix GUI を使用して JSON SQL インジェクション保護を構成する

JSON SQL インジェクション保護設定を設定するには、以下の手順に従います。

  1. ナビゲーションペインで、[セキュリティ] > [プロファイル] に移動します。
  2. [プロファイル] ページで、[追加] をクリックします。
  3. Citrix Web App Firewall プロファイル]ページで、[詳細設定]の[セキュリティチェック]をクリックします。
  4. [セキュリティーチェック] セクションで、[JSON SQL インジェクション設定] に移動します。
  5. チェックボックスの近くにある実行可能アイコンをクリックします。

    JSON SQL インジェクションのセキュリティチェック

  6. [アクション設定] をクリックして、[JSON SQL インジェクション設定] ページにアクセスします。
  7. JSON SQL インジェクション アクションを選択します。
  8. [OK] をクリックします。

    JSON SQL インジェクションのセキュリティチェック

  9. Citrix Web App Firewall プロファイル]ページで、[詳細設定]の下の[リラクゼーションルール]をクリックします。
  10. [リラクゼーションルール] セクションで、[JSON SQL インジェクション 設定] を選択し、[編集] をクリックします。

    JSON SQL インジェクションのセキュリティチェック

  11. [JSON SQL インジェクション緩和ルール] ページで、リクエストの送信先の URL を入力します。この URL に送信されたすべてのリクエストはブロックされません。
  12. [作成] をクリックします。

    JSON SQL インジェクションのセキュリティチェック

JSON SQL インジェクション保護チェック