Citrix ADC

JSONコマンドインジェクション保護チェック

JSONコマンドインジェクションチェックは、システムのセキュリティを破ったり、システムを変更したりする不正なコマンドがないか、着信JSONトラフィックを調べます。トラフィックを調べるときに、悪意のあるコマンドが検出された場合、アプライアンスは要求をブロックするか、設定されたアクションを実行します。

コマンドインジェクション攻撃では、攻撃者はCitrix ADCオペレーティングシステムまたはバックエンドサーバーで不正なコマンドを実行することを目的としています。これを達成するために、攻撃者は脆弱なアプリケーションを使用してオペレーティングシステムのコマンドを注入します。アプライアンスがセキュリティチェックなしでリクエストを転送するだけの場合、バックエンドアプリケーションはインジェクション攻撃に対して脆弱です。したがって、セキュリティチェックを構成することは非常に重要です。これにより、Citrix ADCアプライアンスは安全でないデータをブロックすることでWebアプリケーションを保護できます。

コマンドインジェクション保護のしくみ

  1. 着信JSONリクエストの場合、WAFはトラフィックでキーワードまたは特殊文字を調べます。JSONリクエストに、拒否されたキーワードまたは特殊文字のいずれにも一致するパターンがない場合、リクエストは許可されます。それ以外の場合、要求は設定されたアクションに基づいてブロック、ドロップ、またはリダイレクトされます。
  2. リストからキーワードまたは特殊文字を除外したい場合は、特定の条件下でセキュリティチェックをバイパスする緩和ルールを作成できます。
  3. ログ記録を有効にして、ログメッセージを生成できます。ログを監視して、正当な要求に対する応答がブロックされているかどうかを判断できます。ログメッセージの数が大幅に増加すると、攻撃を開始しようとした可能性があります。
  4. また、統計機能を有効にして、違反およびログに関する統計データを収集することもできます。stats カウンタの予期しない急増は、アプリケーションが攻撃を受けていることを示している可能性があります。正当な要求がブロックされている場合は、構成を再確認して、新しい緩和ルールを構成する必要があるか、既存のルールを変更する必要があるかを確認する必要があります。

コマンドインジェクションチェックで拒否されたキーワードと特殊文字

JSONコマンドインジェクション攻撃を検出してブロックするために、アプライアンスにはデフォルトの署名ファイルで定義された一連のパターン(キーワードと特殊文字)があります。次に、コマンドインジェクション検出中にブロックされたキーワードのリストを示します。

<commandinjection>
      <keyword type="LITERAL" builtin="ON">7z</keyword>
      <keyword type="LITERAL" builtin="ON">7za</keyword>
      <keyword type="LITERAL" builtin="ON">7zr</keyword>
…
</commandinjection>

<!--NeedCopy-->

シグニチャファイルに定義される特殊文字は次のとおりです。 | ; & $ > < ' \ ! >> #

CLIを使用したJSONコマンドインジェクションチェックの構成

コマンドラインインターフェイスでは、set appfw profileコマンドを使用するか、appfwprofileコマンドを追加してJSONコマンドインジェクション設定を構成できます。 ブロック、ログ、および統計アクションを有効にすることができます。また、ペイロードで検出するキーワードや文字列文字などのコマンドインジェクションタイプを設定する必要があります。

コマンドプロンプトで入力します。

set appfw profile <profile-name> –cmdInjectionAction <action-name> -CMDInjectionType <CMDInjectionType>]

注:

デフォルトでは、コマンドインジェクションアクションは「ブロックログ統計」として設定されています。また、デフォルトのコマンドインジェクションタイプはCmdSplCharANDKeyWordとして設定されています。アップグレード後、既存のWebアプリファイアウォールプロファイルのアクションは「なし」に設定されます。

例:

set appfw profile profile1 -JSONCMDInjectionAction block -JSONCMDInjectionType CmdSplChar

ここで、使用可能なJSONコマンドインジェクションアクションは次のとおりです。

なし-コマンドインジェクション保護を無効にします。 Log:セキュリティ・チェックのコマンド・インジェクション違反をログに記録します。 Block-コマンドインジェクションのセキュリティチェックに違反するトラフィックをブロックします。 統計-コマンドインジェクションのセキュリティ違反の統計を生成します。

ここで、使用可能なJSONコマンドインジェクションタイプは次のとおりです。

Cmd SplChar -特殊文字をチェックします CmdKeyWord -コマンドインジェクションをチェックしますキーワード CmdSplCharANDKeyWord -これはデフォルトのアクションです。このアクションは、特殊文字とコマンドインジェクションをチェックします。キーワードとブロックは、両方が存在する場合のみ。 CmdSplCharORKeyWord -特殊文字とコマンドインジェクションキーワードのいずれかが見つかった場合は、それらとブロックをチェックします。

JSONコマンドインジェクション保護チェックの緩和ルールの構成

アプリケーションで、ペイロード内の特定のELEMENTまたはATTRIBUTEのJSONコマンドインジェクション検査をバイパスする必要がある場合は、緩和ルールを構成できます。

JSONコマンドのインジェクション検査緩和ルールの構文は次のとおりです。

bind appfw profile <profile name> –JSONCMDURL <expression> -comment <string> -isAutoDeployed ( AUTODEPLOYED | NOTAUTODEPLOYED ) -state ( ENABLED | DISABLED )

ヘッダーの正規表現の緩和ルールの例

bind appfw profile abc_json -jsoncmDURL http://1.1.1.1/hello.html

一方、以下は1.1.1.1でホストされているすべてのURLからのリクエストを緩和します。

bind appfw profile abc_json -jsoncmDURL http://1.1.1.1/*”

リラクゼーションを削除するには、「unbind」を使用します。

unbind appfw profile abc_json -jsoncmDURL “ http://1.1.1.1/*”

GUIを使用してJSONコマンドインジェクションチェックを構成する

次の手順を実行して、JSONコマンドインジェクションチェックを構成します。

  1. Security > Citrix Web App Firewall > Profilesに移動します。
  2. [プロファイル] ページで、プロファイルを選択し、[編集] をクリックします。
  3. Citrix Web App Firewall プロファイル]ページで、[詳細設定]セクションに移動し、[セキュリティチェック]をクリックします。

セキュリティ設定でJSONセキュリティチェックにアクセスする

  1. [ セキュリティチェック] セクションで、[ JSONコマンドインジェクション ]を選択し、[ アクション 設定]をクリックします。
  2. JSONコマンドインジェクション設定 ページで、次のパラメーターを設定します

    1. アクション。JSONコマンドインジェクションのセキュリティチェックのために実行する1つ以上のアクションを選択します。
    2. 次の内容を含むリクエストをチェックします。コマンドインジェクションパターンを選択して、着信要求にパターンがあるかどうかを確認します。
  3. [OK] をクリックします。

JSON コマンドインジェクションチェックの設定を構成する

コマンドインジェクショントラフィックおよび違反統計情報の表示

Citrix Web App Firewall統計 ページには、セキュリティトラフィックとセキュリティ違反の詳細が表形式またはグラフ形式で表示されます。

コマンドインターフェイスを使用してセキュリティの統計情報を表示するには。

コマンドプロンプトで入力します。

stat appfw profile profile1

Appfw プロファイルトラフィック統計 レート (/s) 合計
要求 0 0
要求バイト数 0 0
応答 0 0
送信バイト数 0 0
中止します 0 0
リダイレクトします 0 0
長期平均応答時間(ミリ秒) 0
最近の平均応答時間(ミリ秒) 0
HTML/XML/JSON違反の統計 レート (/s) 合計
開始URL 0 0
URL を拒否する 0 0
リファラヘッダー 0 0
バッファオーバーフロー 0 0
クッキーの整合性 0 0
クッキーのハイジャック 0 0
CSRFフォームタグ 0 0
HTML クロスサイトスクリプティング 0 0
HTML SQL インジェクション 0 0
フィールドの書式 0 0
フィールドの一貫性 0 0
クレジットカード 0 0
セーフオブジェクト 0 0
署名の違反 0 0
コンテンツの種類 0 0
JSON サービス拒否攻撃 0 0
JSON SQL injection 0 0
JSON Cross-Site Scripting 0 0
ファイルのアップロードの種類 0 0
コンテンツタイプ XML ペイロードを推定 0 0
HTML CMD インジェクション 0 0
XML 形式 0 0
XML サービス拒否 (XDoS) 0 0
XML メッセージの検証 0 0
Web サービスの相互運用性 0 0
XML SQL Injection 0 0
XML Cross-Site Scripting 0 0
XML 添付ファイル 0 0
SOAP 障害違反 0 0
XML 汎用違反 0 0
違反合計 0 0
HTML/XML/JSONログ統計情報 レート (/s) 合計
開始URLログ 0 0
URL ログを拒否する 0 0
リファラーヘッダーログ 0 0
バッファオーバーフローログ 0 0
クッキーの整合性ログ 0 0
クッキーのハイジャックログ 0 0
タグログからのCSRF 0 0
HTMLクロスサイトスクリプティングログ 0 0
HTMLクロスサイトスクリプティング変換ログ 0 0
HTML SQL インジェクションのログ 0 0
HTML SQL 変換ログ 0 0
フィールド形式のログ 0 0
フィールド整合性ログ 0 0
クレジットカード 0 0
クレジットカード変換ログ 0 0
セーフオブジェクトログ 0 0
シグニチャログ 0 0
コンテンツタイプログ 0 0
JSON サービス拒否ログ 0 0
JSON SQL インジェクションログ 0 0
JSON クロスサイトスクリプティングログ 0 0
ファイルアップロードタイプのログ 0 0
コンテンツタイプ XML ペイロード L を推測する 0 0
JSON CMDインジェクション 0 0
HTML コマンドインジェクションログ 0 0
XML 形式のログ 0 0
XML サービス拒否 (XDoS) ログ 0 0
XML メッセージ検証ログ 0 0
WSI ログ 0 0
XML SQL インジェクションログ 0 0
XMLクロスサイトスクリプティングログ 0 0
XML 添付ファイルログ 0 0
SOAP 障害ログ 0 0
XML 汎用ログ 0 0
ログメッセージの合計 0 0

サーバエラー応答統計率 (/s) | 合計 | |—|–|–| HTTP クライアントエラー (4xx Resp) | 0 | 0| HTTP サーバエラー (5xx Resp) | 0 |

HTML/XML/JSONログ統計情報 レート (/s) 合計
JSONコマンドインジェクションログ 0 0
XML形式のログ 0 0

Citrix ADC GUIを使用したJSONコマンドインジェクション統計の表示

コマンドインジェクションの統計情報を表示するには、次の手順を実行します。

  1. Security > Citrix Web App Firewall > Profilesに移動します。
  2. 詳細ウィンドウで、Web App Firewall プロファイルを選択し、[ 統計] をクリックします。
  3. Citrix Web App Firewall Statistics ページには、JSONコマンドインジェクショントラフィックと違反の詳細が表示されます。
  4. 表形式ビュー を選択するか、 グラフィカルビュー に切り替えて、データを表形式またはグラフィック形式で表示できます。

JSONコマンドインジェクショントラフィック統計

JSON コマンドインジェクショントラフィック統計の GUI セクション

JSONコマンドインジェクション違反の統計

JSON コマンドインジェクショントラフィック統計の GUI セクション