Citrix ADC

XML SQL sphereンジェクションチェック

XML SQLインジェクションチェックでは,XML SQLインジェクション攻撃の可能性があるユーザー要求を調べます。xmlペ▪▪ロ▪▪ドに挿入されたsqlが見▪▪かると,要求がブロックされます。

XML SQL攻撃は,ソースコードをWebアプリケーションに挿入して,悪意を持ってデータベース操作を実行するための有効なSQLクエリとして解釈および実行できるようにする可能性があります。たとえば,XML SQL攻撃を起動して,データベースのコンテンツへの不正アクセスを取得したり,格納されたデータを操作したりできます。XML SQLインジェクション攻撃は一般的であるだけでなく,非常に有害でコストがかかる可能性があります。

データベース・ユーザーの権限を区分化すると,ある程度データベースを保護するのに役立ちます。すべてのデータベースユーザーには,目的のタスクを完了するために必要な特権のみを付与する必要があります。これにより,sqlクエリを実行して他のタスクを実行できなくなります。たとえば,読み取り専用ユーザーにデータテーブルの書き込みや操作を許可してはなりません。Web App Firewall XML SQL Injection チェックは、すべての XML 要求を検査し、セキュリティを損なう可能性のある不正な SQL コードの挿入に対する特別な防御を提供します。Web App Firewall は、ユーザーの XML 要求で不正な SQL コードを検出すると、要求をブロックできます。

Citrix Web应用防火墙は、SQLキーワードと特殊文字の存在を検査して,XMLSQLインジェクション攻撃を識別します。キーワードと特殊文字のデフォルトのセットは,XML SQL攻撃の起動に一般的に使用される既知のキーワードと特殊文字を提供します。Web应用防火墙では、一重引用符 (‘)、バックスラッシュ ()、セミコロン (;) の 3 文字を SQL セキュリティチェック処理の特殊文字と見なします。新しいパターンを追加したり、デフォルトのセットを編集して XML SQL チェック検査をカスタマイズしたりできます。

Web应用程序防火墙は,XML SQLインジェクション保護を実装するためのさまざまなアクションオプションを提供します。リクエストをブロックし,観察された違反に関する詳細をns.logファesc .logジを記録し,統計を収集して観測された攻撃の数を追跡することができます。

アクションに加えて,XML SQLインジェクション処理用に構成できるパラメータがいくつかあります。SQLワaapl . SQLワaapl . SQLルドカをチェックできます。XMLのSQL▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪sqlキ,ワ,ド,sqlSplCharSQLSplCharandKeywordSQLSplCharORキ,ワ,ド)のいずれかを選択して,XMLの処理時にSQLキーワードとSQL特殊文字の評価方法を指定できます。ペ▪▪ロ▪▪ド。“XMLSQLコメント処理“パラメータには,XML SQLインジェクションの検出時に検査または免除する必要のあるコメントのタイプを指定するオプションがあります。

リラクゼ,ションを展開して,誤検出を回避できます。Web应用防火墙XML的SQLチェックは、着信要求のペイロードに対して実行され、攻撃文字列が複数行に分散している場合でも識別されます。このチェックでは、要素内のSQL aapl . exeンジェクション文字列と属性値が検索されます。緩和を適用して,指定した条件下でセキュリティチェック検査をバ。ログと統計情報は,必要な緩和を特定するのに役立ます。

アクションオプション

アクションは,XML SQLインジェクションチェックがリクエストでSQLインジェクション攻撃文字列を検出したときに適用されます。アプリケーションに最適化されたXML SQLインジェクション保護を構成するには,次のアクションを使用できます。

:ブロックを有効にすると,入力がXML SQLインジェクションタイプの指定と一致した場合にのみ,ブロックアクションがトリガーされます。たとえば,SQLSplCharANDKeywordがXML SQLインジェクションタイプとして設定されている場合,リクエストにキーワードが含まれていない場合,ペイロードでSQL特殊文字が検出された場合でも,リクエストはブロックされません。XML SQL aaplンジェクションタaaplプがSQLSplCharまたはSQLSplCharORキ,ワ,ドのいずれかに設定されている場合,このような要求はブロックされます。

日志:ログ機能を有効にすると,XML SQLインジェクションチェックによって実行されるアクションを示すログメッセージが生成されます。ブロックが無効になっている場合は,xml SQL違反が検出された場所(要素属性)ごとに個別のログメッセ,ジが生成されます。ただし,要求がブロックされると,1 .。ログを監視して、正当な要求に対する応答がブロックされているかどうかを判断できます。ログメッセージの数が大幅に増加すると、攻撃を開始しようとした可能性があります。

统计数据:有効の場合,统计機能は違反とログに関する統計情報を収集します。统计カウンタの予期しない急増は,アプリケーションが攻撃を受けていることを示している可能性があります。正当な要求がブロックされている場合は,設定を再度参照して,新しい緩和ルールを設定するか,既存の緩和ルールを変更する必要があるかを確認する必要があります。

XML SQLパラメタ

ブロック,ログ,および統計アクションに加えて,XML SQLインジェクションチェックの次のパラメータを設定できます。

XML SQLワ▪▪ルドカ▪▪ド文字のチェック:ワイルドカード文字を使用して,構造化クエリ言語(sql select)ステートメントの選択範囲を広げることができます。これらのワルドカド演算子は,就像および不喜欢演算子と組み合わせて使用して,値を同様の値と比較できます。パセント(%)およびアンダスコア(_)文字は,ワルドカドとしてよく使用されます。パーセント記号は,ms - dosで使用されるアスタリスク(*)ワイルドカード文字に似ており,フィールド内の0,1,または複数の文字に一致します。アンダ,スコアは,ms-dosの疑問符(?)に似ています。ワ▪▪ルドカ▪▪ド文字。これは,式内の単一の数字または文字と一致します。

たとえば,次のクエリを使用して文字列検索を実行し,名前にD文字が含まれているすべての顧客を検索できます。

SELECT * from customer WHERE name: %D%

次の例では,演算子を組み合わせて,2番目と3番目の文字として0を持給与値を検索します。

SELECT * from customer WHERE salary like '_00%

別のdbmsベンダは,余分な演算子を追加することにより,ワルドカド文字を拡張しました。Citrix Web App Firewallは、これらのワイルドカード文字を挿入することによって開始される攻撃から保護できます。デフォルトのワイルドカード文字は、パーセント(%)、アンダースコア(_)、キャレット(^)、開始角括弧([)、および閉じ角括弧(])です。この保護は、HTML プロファイルと XML プロファイルの両方に適用されます。

デフォルトのワルドカド文字は,*默认签名で指定されたリテラルのリストです。

- % -  _ - ^ - [ - ] 

攻撃のワ@ @ルドカ@ @ド文字は[^ a-f]のようにpcreにすることができます。Web应用防火墙は PCRE ワイルドカードもサポートしていますが、ほとんどの攻撃をブロックするには、上記のリテラルワイルドカード文字で十分です。

XML的SQLワ▪▪ルドカ▪▪ド文字チェックは,xml SQLの特殊文字チェックとは異なります。このオプションは,誤検出を避けるために注意して使用する必要があります。

SQL aaplンジェクションタaaplプを含むリクエストのチェック: Web应用防火墙には,アプリケーションの個々のニーズに基づいて,SQLインジェクションインスペクションに必要なレベルの厳密さを実装するための4つのオプションがあります。要求は,sql違反を検出するための。4。

  • SQL特殊文字とキワド: SQL違反をトリガーするには,検査場所にSQLキーワードとSQL特殊文字の両方が存在する必要があります。この制限の最小限の設定もデフォルトの設定です。
  • SQL特殊文字]: SQL違反をトリガーするには,処理されたペイロード文字列に少なくとも1つの特殊文字が含まれている必要があります。
  • SQLキワド: SQL違反をトリガーするには,処理されたペイロードストリングに,指定されたSQLキーワードの少なくとも1つが存在する必要があります。このオプションは考慮せずに選択しないでください。誤検出を回避するには,入力にキ,ワ,ドがないことを確認してください。
  • SQL特殊文字またはキワド:セキュリティチェック違反をトリガーするには,キーワードまたは特殊文字列がペイロードに存在している必要があります。

ヒント

[SQL特殊文字]オプションを選択すると,Web应用防火墙は特殊文字を含まない文字列をスキップします。ほとんどのSQLサーバーは特殊文字が前に付いていないSQLコマンドを処理しないため,このオプションを有効にすると,保護されたWebサイトを危険にさらすことなく,Web应用防火墙の負荷を大幅に減らし,処理を高速化できます。

SQLコメント処理:デフォルトでは,Web应用防火墙はXMLデータ内のすべてのコメントを解析し,挿入されたSQLコマンドがないかチェックします。多くのSQLサ,バ,は,SQL特殊文字が先行していても,コメント内のすべてを無視します。処理を高速化するために,XML SQLサーバーがコメントを無視する場合,挿入されたSQLのリクエストを調べるときにコメントをスキップするようにWeb应用防火墙を設定できます。XML SQLコメント処理オプションは次のとおりです。

  • ANSIunixベースのSQLデータベースで通常使用されるANSI形式のSQLコメントをスキップします。
  • ネスト:ネストされたSQLコメントをスキップします。このコメントは,Microsoft SQL Serverで通常使用されます。
  • ansi /ネスト]: ANSIおよびネストされたSQLコメント標準の両方に準拠するコメントをスキップします。ANSI標準のみ、またはネストされた標準のみに一致するコメントは、挿入された SQL についてチェックされます。
  • すべてのコメントをチェック:何もスキップせずに,注入されたSQLのリクエスト全体をチェックします。これがデフォルトの設定です。

ヒント

ほとんどの場合,ネストまたはANSI /嵌套バックエンドデータベースがMicrosoftSQL服务器で実行されていない限り,オプション。他のほとんどの種類のSQL Serverソフトウェアは,ネストされたコメントを認識しません。ネストされたコメントが別の種類の SQL サーバーに送信された要求に表示された場合、そのサーバーのセキュリティ侵害の試みを示している可能性があります。

リラクゼ,ションル,ル

アプリケーションで,XMLペイロード内の特定の元素または属性に対してXML SQLインジェクション検査をバイパスする必要がある場合は,緩和規則を設定できます。XML SQLインジェクションインスペクションのリラクゼーション規則には,次のパラメータがあります。

  • [名前]:リテラル文字列または正規表現を使用して,要素の名前または属性の名前を設定できます。次の式は,文字列PurchaseOrder_で始まり,2文字以上10文字以下の数値の文字列が続くすべての要素を除外します。

    コメント:"発注要素のxml sqlチェックを免除"

XMLSQLInjection: "PurchaseOrder_[0-9A-Za-z]{2,10}" IsRegex: REGEX Location: ELEMENT State: ENABLED 

注:名前では大文字と小文字が区別されます。重複するエントリは許可されませんが,名前や場所の違いを大文字にすることで,類似したエントリを作成できます。たとえば,次の緩和規則はそれぞれ一意です。

1) XMLSQLInjection: XYZ IsRegex: NOTREGEX Location: ELEMENT State: ENABLED 2) XMLSQLInjection: XYZ IsRegex: NOTREGEX Location: ELEMENT State: ENABLED 3) XMLSQLInjection: XYZ IsRegex: NOTREGEX Location: ATTRIBUTE State: ENABLED 4) XMLSQLInjection: XYZ IsRegex: NOTREGEX Location: ATTRIBUTE State: ENABLED 
  • 場所: XMLペ▪▪ロ▪▪ドでXML SQL▪▪ンスペクション例外の場所を指定できます。オプション元素はデフォルトで選択されています。属性に変更できます。
  • コメント:これはオプションのフィ,ルドです。この緩和規則の目的を説明するために,最大255文字の文字列を使用できます。

警告

正規表現は強力です。特に,pcre形式の正規表現に精通していない場合は,記述した正規表現を再確認してください。例外として追加する名前を正確に定義していることを確認し、それ以外は何も定義しないでください。正規表現を不注意に使用すると、意図しない Web コンテンツへのアクセスをブロックしたり、XML SQL インジェクション検査でブロックされた攻撃を許可するなど、望ましくない結果が生じる可能性があります。

コマンドラ▪▪ンを使用したXML▪▪SQL▪▪ンジェクションチェックの設定

コマンドラインを使用してXML SQLインジェクションアクションおよびその他のパラメーターを構成するには,次の手順に従います。

コマンドラe.c.ンe.c.ンタe.c.フェe.c.スでは,设置appfw配置文件コマンドまたは添加appfw配置文件**コマンドのいずれかを使用して,xml SQL aaplンジェクション保護を設定できます。ブロック,ログ,および統計アクションを有効にできます。ペイロードで検出するSQL攻撃パターンのタイプ(キーワード,ワイルドカード文字,特殊文字列)を選択します。設定済みの設定をデフォルトに戻すには,**unset appfw profileコマンドを使用します。次のコマンドはそれぞれ1つのパラメータのみを設定しますが,1つのコマンドに複数のパラメータを含めることができます。

  • set appfw profile **-XMLSQLInjectionAction** (([block] [log] [stats]) | [none])
  • 设置appfw profile -XMLSQLInjectionCheckSQLWildChars (ON |OFF)
  • set appfw profile -XMLSQLInjectionType ([SQLKeyword] | [SQLSplChar] | [SQLSplCharANDKeyword] | [SQLSplCharORKeyword])
  • set appfw profile -XMLSQLInjectionParseComments ([checkall] | [ansi|nested] | [ansinenced])

コマンドラ▪▪ンを使用してSQL▪▪ンジェクション緩和ル▪▪ルを構成するには

次のように,緩和ルールを追加または削除するには,绑定または解开コマンドを使用します。

- bind appfw profile  - xmlsqlinjection  [isRegex (REGEX | NOTREGEX)] [-location (ELEMENT | ATTRIBUTE)] - comment  [-state (ENABLED | DISABLED)] - unbind appfw profile  - xmlsqlinjection  

>绑定appfw配置文件test_profile -XMLSQLInjection "PurchaseOrder_[0-9A-Za-z]{2,15}" -isregex REGEX -location ATTRIBUTE >解绑定appfw配置文件test_profile -XMLSQLInjection "PurchaseOrder_[0-9A-Za-z]{2,15}" -location ATTRIBUTE 

GUIを使用したXMLSQL aaplンジェクションセキュリティチェックの設定

GUIでは,アプリケーションに関連付けられたプロファイルの(XML SQL注入)セキュリティー検査を区画で設定できます。

GUIを使用してXML SQL aaplンジェクションチェックを構成または変更するには

  1. 网络AppFirewallに移動します> .使用实例プロファ@ @ルをクリックし,タ,ゲットプロファ,[編集]をクリックします。
  2. [詳細設定]ペ电子邮箱ンで,[セキュリティチェック]をクリックします。

セキュリティチェックテーブルには,すべてのセキュリティチェックに対して現在構成されているアクション設定が表示されます。設定には2のオプションがあります。

。XML SQLインジェクションのブロック,ログ,および統計アクションを有効または無効にするだけの場合は,テーブルのチェックボックスをオンまたはオフにして[好]をクリックし,[保存して閉じる]をクリックして[セキュリティチェック]ウィンドウを閉じます。

b。このセキュリティー検査の追加オプションを構成する場合は,“XML SQL注入”をダブルクリックするか,行を選択して”アクションの設定をクリックして,次のオプションを表示します。

SQLワイルドカード文字のチェック:ペイロード内のSQLワイルドカード文字を攻撃パターンと見なします。

チェック要求:チェックするSQLインジェクションのタイプ(SQLキーワード,SQLSplchar, SQLSplcharandキーワード,またはSQLSplcharorKeyword)。

SQLコメント処理:チェックするコメントのタイプ([すべてのコメント],[ANSI],[ネストされた],または[ANSI /ネスト])。

上記の設定のいずれかを変更したら,[好吧]をクリックして変更を保存し,[セキュリティチェック]テ.ブルに戻ります。必要に応じて,他のセキュリティ,検査の設定に進むことができます。[好吧)をクリックして[セキュリティチェック]セクションで行ったすべての変更を保存し,[保存して閉じる]をクリックして[セキュリティチェック]ペ操作系统ンを閉じます。

GUIを使用してXML SQLを使用してンジェクション緩和ル,ルを構成するには

  1. 网络AppFirewallに移動します> .使用实例プロファ@ @ルをクリックし,タ,ゲットプロファ,[編集]をクリックします。
  2. 詳細設定]ペ电子邮箱ンで,[緩和規則]をクリックします。
  3. “緩和規則”テ,ブルで,”XML SQL sphereンジェクション“エントリをダブルクリックするか,エントリを選択して”編集をクリックします。
  4. XML SQL catalogンジェクション緩和規則"ダ电子邮箱アログで,緩和規則の”追加」、「編集」、「削除」、「有効化,または"無効化”の操作を実行します。

ビジュアラ▪▪ザ▪を使用してXML SQL▪▪ンジェクション緩和ル▪ルを管理するには

すべての緩和ル,ルをまとめて表示するには,[緩和ル,ル]テ,ブルの[XML SQL注入]行をハe - mail e - mail e - mail e - mail e - mailビジュアラザ]をクリックします。展開されたリラクゼションのビジュアラザには,新しいルルを追加するか,既存のル,ルを編集するオプションがあります。ノドを選択し,緩和ビジュアラザの対応するボタンをクリックして,ルルのグルプを有効または無効にすることもできます。

guiを使用してsql esc esc esc esc esc esc esc esc esc esc次のステップを実行します。

GUIを使用して,sqlパタンを表示またはカスタマズできます。

デフォルトのSQLパタンは,[Web应用防火墙> [署名> [*デフォルトの署名]で指定されます。シグネチャオブジェクトをプロファイルにバインドしない場合,默认签名オブジェクトで指定されたデフォルトのSQLパターンが,プロファイルによってXML SQL注入セキュリティチェック処理に使用されます。デフォルトシグニチャオブジェクトの規則とパタ,ンは読み取り専用です。編集や修正はできません。これらのパターンを変更または変更する場合は,默认签名オブジェクトのコピーを作成し,SQLパターンを変更して,ユーザー定義のシグニチャオブジェクトを作成します。カスタマイズされたSQLパターンを使用するトラフィックを処理するプロファイルで,ユーザ定義のシグニチャオブジェクトを使用します。

詳細にいては,”署名を参照してください。

デフォルトのsqlパタンを表示するには,次のステップを実行します。

一个。Web应用防火墙> [署名]に移動し,[*デフォルトの署名]を選択して[編集]をクリックします。次に,[管理]をクリックしますSQL/cross-siteスクリプトパタン。

管理SQL /跨站点スクリプトパステーブルは,SQLインジェクションに関連する次の4行を示しています。

注入(not_alphaum, SQL)/关键字注入(not_alphaum, SQL)/ specialstring注入(not_alphaum, SQL)/ transformrules/transform注入(not_alphaum, SQL)/ wildchar 

B.行を選択して”エレメントの管理”をクリックすると,Web应用防火墙SQLインジェクションチェックで使用される対応するSQLパターン(キーワード,特殊文字列,変換ルール,ワイルドカード文字)が表示されます。

sqlパタンをカスタマズするには:ユーザー定義の署名オブジェクトを編集して,SQLキーワード,特殊文字列,およびワイルドカード文字をカスタマイズできます。新しいエントリを追加したり,既存のエントリを削除したりできます。sql特殊文字列の変換ルルを変更できます。

一个。Web应用防火墙]> [署名]に移動し,タゲットのユザ定義署名をハラト表示して[編集]をクリックします。[管理]をクリックしますSQL/跨站点管理を表示するためのスクリプトパタンSQL/跨站スクリプトパステブル。

b.タゲットSQL行を選択します。

我。要素の管理]をクリックして,対応するSQL要素を追加編集または削除します。

2[削除]をクリックして,選択した行を削除します。

警告

デフォルトのSQL要素を削除または変更する場合,またはSQLパスを削除して行全体を削除する場合は,十分に注意する必要があります。シグニチャルールとXML SQL注入セキュリティチェックは,これらの要素に依存してSQL注入攻撃を検出し,アプリケーションを保護します。SQLパターンをカスタマイズすると,編集中に必要なパターンが削除されると,アプリケーションがXML SQL攻撃に対して脆弱になる可能性があります。

XML SQL sphereンジェクションチェックでのログ機能の使用

ログアクションを有効にすると,XML SQL sphereンジェクションのセキュリティチェック違反がAPPFW_XML_SQL違反として監査ログに記録されます。Web应用防火墙は、ネイティブログ形式と CEF ログ形式の両方をサポートしています。ログをリモート syslog サーバに送信することもできます。

コマンドランを使用してログメッセジにアクセスするには,次の手順を実行します。

シェルに切り替えて,/var/log/フォルダ内のns。日志を末尾に付けて,XMLクロスサイトスクリプティング違反に関連するログメッセージにアクセスします。

> Shell > tail -f /var/log/ns.log | grep APPFW_XML_SQL 

GUIを使用してログメッセ,ジにアクセスするには

Citrix GUIには,ログメッセージを分析するための便利なツール(Syslog观众)が含まれています。Syslogビュ,アには,次の複数のオプションがあります。

  • Web应用防火墙> [プロファ@ @ル]に移動し,タ,ゲットプロファ,ルを選択して[セキュリティチェック]をクリックします。[XML SQL sphereンジェクション]行をハe - mail e - mail e - mail e - mail e - mailログ]をクリックします。プロファ@ @ルの XML SQL Injection チェックから直接ログにアクセスすると、GUI によってログメッセージが除外され、これらのセキュリティチェック違反に関連するログのみが表示されます。

  • システム> [監査に移動して,Syslogビュ,アにアクセスすることもできます。[監査メッセ,ジ]セクションで,[Syslogメッセ,ジ]リンクをクリックしてSyslog查看器を表示します。このビュ,ア,には,他のセキュリティチェック違反ログを含むすべてのログメッセ,ジが表示されます。これは,要求処理中に複数のセキュリティー検査違反がトリガーされる可能性がある場合のデバッグに役立ちます。

  • Web应用防火墙> [ポリシ> [監査]に移動します。[監査メッセージ]セクションで、[Syslogメッセ,ジ]リンクをクリックしてSyslogビュ,アを表示します。このビュ,アには,他のセキュリティチェック違反ログを含むすべてのログメッセ,ジが表示されます。

XMLベースのSyslogビューアには,関心のあるログメッセージだけを選択するためのさまざまなフィルタオプションがあります。XML SQL sphereンジェクションチェックのログメッセ,ジを選択するには,[モジュ,ル]のドロップダウンオプションで[APPFW]を選択してフィルタリングします。(事件类型)リストには,選択内容をさらに絞り込むための豊富なオプションが用意されています。たとえば,[APPFW_XML_SQL]チェックボックスをオンにして[適用]ボタンをクリックすると,XML SQL注入セキュリティチェック違反に関するログメッセ,ジだけがSyslogビュ,アに表示されます。

特定のログメッセ,ジの行にカ,ソルを置くと,モジュ,ル▪▪▪▪ベントタ▪▪▪▪プaaplベントidクラesc escアントIP地址などの複数のオプションがログメッセ,ジの下に表示されます。これらのオプションのいずれかを選択して,ログメッセージ内の対応する情報を強調表示することができます。

XML SQL sphereンジェクション違反の統計

统计アクションが有効な場合,Web应用防火墙がこのセキュリティチェックに対して何らかのアクションを実行すると,XML SQL sphereンジェクションチェックのカウンタが増加します。統計は、トラフィック、違反、およびログのレートと合計数について収集されます。ログカウンタの増分サイズは、構成された設定によって異なります。たとえば、ブロック・アクションが有効になっている場合、3 つのXML SQL注入違反を含むページに対するリクエストは,最初の違反が検出されるとすぐにページがブロックされるため,统计カウンタを1つずつインクリメントします。ただし,ブロックが無効になっている場合,同じ要求を処理すると,違反とログの統計カウンタが3ずつ増加します。これは,違反ごとに個別のログメッセ,ジが生成されるためです。

コマンドラ▪▪ンを使用してXML▪▪SQL▪▪ンジェクションチェック統計を表示するには

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

> sh appfw统计信息

特定のプロファesc escルの統計情報を表示するには,次のコマンドを使用します。

> stat appfw profile <配置文件名称>

GUIを使用してXML SQL aaplンジェクション統計を表示するには

  1. システム> [セキュリティ> [Web应用防火墙]に移動します。
  2. 右側のペ电子邮箱ンで,[統計リンク]にアクセスします。
  3. スクロ,ルバ,を使用して,XML SQL sphereンジェクションの違反とログに関する統計を表示します。統計テーブルはリアルタイムデータを提供し、7秒ごとに更新されます。