HTML コマンドインジェクション保護チェック
HTML コマンドインジェクションチェックは、着信トラフィックにシステムセキュリティを壊したり、システムを変更したりする不正なコマンドがあるかどうかを調べます。検出時にトラフィックに悪意のあるコマンドがある場合、アプライアンスは要求をブロックするか、設定済みのアクションを実行します。
Citrix Web App Firewall プロファイルが、コマンドインジェクション攻撃の新しいセキュリティチェックで強化されました。コマンドインジェクションセキュリティチェックによってトラフィックが検査され、悪意のあるコマンドが検出されると、アプライアンスは要求をブロックするか、設定済みのアクションを実行します。
コマンドインジェクション攻撃では、攻撃者はCitrix ADCオペレーティングシステム上で不正なコマンドを実行することを目指しています。これを達成するために、攻撃者は脆弱なアプリケーションを使用してオペレーティングシステムのコマンドを注入します。アプリケーションが安全でないデータ(フォーム、Cookie、またはヘッダー)をシステムシェルに渡した場合、Citrix ADCアプライアンスはインジェクション攻撃に対して脆弱です。
コマンドインジェクション保護のしくみ
-
着信要求の場合、WAF はトラフィックにキーワードまたは特殊文字があるかどうか調べます。着信要求に、拒否されたキーワードまたは特殊文字のいずれにも一致するパターンがない場合、要求は許可されます。それ以外の場合、要求は設定されたアクションに基づいてブロック、ドロップ、またはリダイレクトされます。
- リストからキーワードまたは特殊文字を除外する場合は、緩和ルールを適用して、特定の条件下でセキュリティチェックをバイパスできます。
- ログ記録を有効にして、ログメッセージを生成できます。ログを監視して、正当な要求に対する応答がブロックされているかどうかを判断できます。ログメッセージの数が大幅に増加すると、攻撃を開始しようとした可能性があります。
- また、統計機能を有効にして、違反およびログに関する統計データを収集することもできます。stats カウンタの予期しない急増は、アプリケーションが攻撃を受けていることを示している可能性があります。正当な要求がブロックされている場合は、構成を再確認して、新しい緩和ルールを構成する必要があるか、既存のルールを変更する必要があるかを確認する必要があります。
コマンドインジェクションチェックで拒否されたキーワードと特殊文字
コマンドインジェクション攻撃を検出してブロックするために、アプライアンスはデフォルトのシグネチャファイルに定義された一連のパターン(キーワードと特殊文字)を持っています。次に、コマンドインジェクション検出中にブロックされたキーワードのリストを示します。
<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 を使用したコマンドインジェクションチェックの設定
コマンドラインインターフェイスでは、set ザ profile コマンドまたは add ザ profile コマンドを使用して、コマンドインジェクション設定を構成できます。ブロック、ログ、および統計アクションを有効にすることができます。また、ペイロードで検出するキーワードと文字列文字も設定する必要があります。
コマンドプロンプトで入力します。
set appfw profile <profile-name> –cmdInjectionAction <action-name> -CMDInjectionType <CMDInjectionType>]
注:
デフォルトでは、コマンドインジェクションアクションは「なし」に設定されています。また、デフォルトのコマンドインジェクションタイプは
CmdSplCharANDKeyWord
として設定されています。
例:
set appfw profile profile1 -cmdInjectionAction block -CMDInjectionType CmdSplChar
ここで、使用可能なコマンドインジェクションアクションは次のとおりです。
- なし-コマンドインジェクション保護を無効にします。
- Log:セキュリティ・チェックのコマンド・インジェクション違反をログに記録します。
- Block-コマンドインジェクションのセキュリティチェックに違反するトラフィックをブロックします。
- 統計-コマンドインジェクションのセキュリティ違反の統計を生成します。
ここで、使用可能なコマンド射出タイプは次のとおりです。
- Cmd SplChar. 特殊文字をチェックする
- cmdKeyword コマンドインジェクションキーワードをチェックします
- cmdsplcharandキーワードです。特殊文字とコマンドインジェクションをチェックします。キーワードとブロックは、両方が存在する場合のみ。
- cmdsplCharorKeyword。特殊文字とコマンドインジェクションをチェックし、それらのいずれかが見つかった場合はブロックします。
コマンドインジェクション保護チェックのリラクゼーションルールの設定
アプリケーションで、ペイロード内の特定の ELEMment または attribute に対するコマンドインジェクション検査をバイパスする必要がある場合は、緩和規則を設定できます。
射出検査緩和規則コマンドの構文は次のとおりです。
bind appfw profile <profile name> –cmdInjection <string> <URL> -isregex <REGEX/NOTREGEX>
ヘッダーの正規表現の緩和ルールの例
bind appfw profile sample -CMDInjection hdr "http://10.10.10.10/" -location heaDER -valueType Keyword '[a-z]+grep' -isvalueRegex REGEX
その結果、インジェクションはコマンドインジェクションチェックを免除し、「grep」のバリアントを含むヘッダーhdr
を許可します。
クッキー内の正規表現としてvalueTypeを持つリラクゼーションルールの例
bind appfw profile sample -CMDInjection ck_login "http://10.10.10.10/" -location cookie -valueType Keyword 'pkg[a-z]+' -isvalueRegex REGEX
Citrix ADC GUIを使用したコマンドインジェクションチェックの構成
コマンドインジェクションチェックを設定するには、次の手順を実行します。
- Security > Citrix Web App Firewall > Profilesに移動します。
- [プロファイル] ページで、プロファイルを選択し、[編集] をクリックします。
- Citrix Web App Firewall プロファイル ページで、[詳細設定]セクションに移動し、[セキュリティチェック]をクリックします。
- 「 セキュリティチェック 」セクションで、「 HTML コマンドインジェクション 」を選択し、「 アクション 設定」をクリックします。
-
[HTML コマンドインジェクション設定] ページで、次のパラメータを設定します。
- アクション。コマンドインジェクションセキュリティチェックに対して実行するアクションを 1 つ以上選択します。
- 次の内容を含むリクエストをチェックします。コマンドインジェクションパターンを選択して、着信要求にパターンがあるかどうかを確認します。
- [OK] をクリックします。
GUI を使用してコマンドインジェクションパターンを表示またはカスタマイズする
GUI を使用して、 HTML コマンドインジェクションパターンを表示またはカスタマイズできます。
デフォルトのコマンド注入パターンは、デフォルトシグニチャファイルで指定されます。シグニチャオブジェクトをプロファイルにバインドしない場合、デフォルトシグニチャオブジェクトで指定されたデフォルトの HTML コマンド注入パターンが、コマンドインジェクションセキュリティチェック処理のためにプロファイルによって使用されます。デフォルトのシグニチャオブジェクトで指定されている規則とパターンは読み取り専用です。編集や修正はできません。これらのパターンを変更または変更する場合は、デフォルトの SSignatures オブジェクトのコピーを作成して、ユーザー定義署名オブジェクトを作成します。新しいユーザ定義シグニチャオブジェクトのコマンドインジェクションパターンを変更し、これらのカスタマイズされたパターンを使用するトラフィックを処理しているプロファイルでこのシグニチャオブジェクトを使用します。
詳細については、「 署名」を参照してください。
GUI を使用してデフォルトのコマンドインジェクションパターンを表示するには、次の手順を実行します。
- [ アプリケーションファイアウォール] > [署名] に移動し、[ *デフォルトシグニチャ] を選択し、[ 編集] をクリックします。
- [ CMD/SQL/XSS パターンの管理] をクリックします。 CMD/SQL/XSS パス (読み取り専用) テーブルには、
CMD/SQL/XSS
インジェクションに関連するパターンが表示されます。
- 行を選択し、[ 要素の管理 ] をクリックして、Web App Firewall コマンドインジェクションチェックで使用される対応するコマンド注入パターン (キーワード、特殊文字列、変換ルール、またはワイルドカード文字) を表示します。
GUI を使用してコマンドインジェクションパターンをカスタマイズするには
ユーザー定義の署名オブジェクトを編集して、 CMD キーワード、特殊文字列、およびワイルドカード文字をカスタマイズできます。新しいエントリを追加したり、既存のエントリを削除したりできます。コマンドインジェクション特殊文字列の変換ルールを変更できます。
- [アプリケーションファイアウォール] > [署名] に移動し、ターゲットの [ユーザ定義署名] を選択し、[ 追加] をクリックします。[ CMD/SQL/XSS パターンの管理] をクリックします。
- [ CMD/SQL/XSS パスの管理 ] ページで、ターゲットの CMD インジェクション行を選択します。
-
[ 要素を管理]、[ コマンドインジェクション要素を追加]、または [ 削除 ] をクリックします。
警告:
デフォルトのコマンドインジェクション要素を削除または変更する前に、注意が必要です。または、CMD パスを削除して行全体を削除する必要があります。シグニチャルールとコマンドインジェクションセキュリティチェックは、これらの要素に基づいてコマンドインジェクション攻撃を検出し、アプリケーションを保護します。SQL パターンをカスタマイズすると、編集中に必要なパターンが削除されると、アプリケーションがコマンドインジェクション攻撃に対して脆弱になる可能性があります。
コマンドインジェクショントラフィックおよび違反統計情報の表示
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 |
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 |
Citrix ADC GUIを使用したHTMLコマンドインジェクション統計の表示
コマンドインジェクションの統計情報を表示するには、次の手順を実行します。
- Security > Citrix Web App Firewall > Profilesに移動します。
- 詳細ウィンドウで、Web App Firewall プロファイルを選択し、[ 統計] をクリックします。
- Citrix Web App Firewall 統計 ページには、HTMLコマンドインジェクショントラフィックと違反の詳細が表示されます。
- 表形式ビュー を選択するか、 グラフィカルビュー に切り替えて、データを表形式またはグラフィック形式で表示できます。
HTML コマンドインジェクショントラフィックの統計情報
HTML コマンドインジェクション違反の統計