HTML SQL aaplンジェクションチェック
多くのWebアプリケーションには,SQLを使用してリレーショナルデータベースサーバーと通信するWebフォームがあります。悪意のあるコードやハッカーが,安全ではないWebフォームを使用してSQLコマンドをWebサーバーに送信する可能性があります。Web应用防火墙HTML SQL aaplンジェクションチェックは、セキュリティを侵害する可能性のある不正な SQL コードのインジェクションに対する特別な防御を提供します。Web App Firewall は、ユーザーリクエストで不正な SQL コードを検出すると、リクエストを変換して SQL コードを非アクティブにするか、リクエストをブロックします。Web App Firewall は、1) POST 本文、2) ヘッダー、および 3) Cookie の 3 つの場所に挿入された SQL コードの要求ペイロードを調べます。注入された SQL コードのリクエストのクエリ部分を調べるには、特定のコンテンツタイプに対してアプリケーションファイアウォールプロファイル設定 ‘inspectQueryContentTypes’ を構成してください。
キーワードと特殊文字のデフォルトのセットは,SQL攻撃の起動に一般的に使用される既知のキーワードと特殊文字を提供します。新しいパターンを追加したり,デフォルトセットを編集してSQLチェックインスペクションをカスタマイズしたりできます。Web应用防火墙には、SQL インジェクション保護を実装するためのさまざまなアクションオプションが用意されています。Web App Firewall プロファイルには、ブロック、ログ、統計、学習の各アクションに加えて、SQL特殊文字を変換して攻撃を無害にするオプションも用意されています。
アクションに加えて,SQLインジェクション処理用に構成できるパラメーターがいくつかあります。SQLワaapl . SQLワaapl . SQLルドカ。SQL▪▪ンジェクションタ▪▪プを変更し,4▪▪のオプション(sqlKeyword,sqlSPLChar**, **sqlSplCharandKeyword、sqlSPLCharorKeyword)のいずれかを選択して,ペイロードの処理時にSQLキーワードとSQL特殊文字を評価する方法を指定できます。[SQL注释处理]パラメ,タ,には、SQLインジェクション検出中に検査または除外する必要のあるコメントのタイプを指定するオプションがあります。
リラクゼ,ションを展開すると,誤検出を回避できます。Web应用防火墙学習エンジンは、緩和ルールの設定に関する推奨事項を提供できます。
アプリケーションに最適化されたSQLインジェクション保護を構成するには,次のオプションを使用できます。
块——入力がSQLインジェクションタイプの仕様と一致する場合にのみブロックアクションがトリガーされます。たとえば,SQLSplCharANDKeywordがSQLインジェクションタイプとして設定されている場合,入力でSQL特殊文字が検出された場合でも,リクエストにキーワードが含まれていなくてもリクエストはブロックされません。SQL aaplンジェクションタaaplプがsqlSPLCharまたはsqlSPLCharorKeyword**のいずれかに設定されている場合,このようなリクエストはブロックされます。
日志:ログ機能を有効にすると,SQLインジェクションチェックによって実行されるアクションを示すログメッセージが生成されます。ブロックアクションが無効になっている場合、SQL 違反が検出された入力フィールドごとに個別のログメッセージが生成されます。 ただし、要求がブロックされると、1 つのメッセージだけが生成されます。同様に、SQL 特殊文字が複数のフィールドで変換された場合でも、変換操作に対してリクエストごとに 1 つのログメッセージが生成されます。ログを監視して、正当な要求に対する応答がブロックされているかどうかを判断できます。ログメッセージの数が大幅に増加すると、攻撃を開始しようとしたことを示している可能性があります。
[统计数据]:有効にすると,統計機能は違反とログに関する統計情報を収集します。统计カウンタの予期しない急増は,アプリケーションが攻撃を受けていることを示している可能性があります。正当なリクエストがブロックされる場合,新しい緩和ルールを構成する必要があるか,既存の緩和ルールを変更する必要があるかを確認するために,構成を再確認しなければならない場合があります。
学習——どのSQL緩和ルールがアプリケーションに適しているかわからない場合は,学習機能を使用して,学習したデータに基づいて推奨事項を生成できます。Web应用程序防火墙学習エンジンはトラフィックを監視し,観測された値に基づいてSQL学習の推奨事項を提供します。パフォーマンスを損なうことなく最適な効果を得るには,学習オプションを短時間有効にしてルールの代表的なサンプルを取得し,ルールを展開して学習を無効にすることをお勧めします。
SQL特殊文字の変換- Web应用防火墙では,一重引用符('),バックスラッシュ(\)
,セミコロン(,)の3つの文字をSQLセキュリティチェック処理の特殊文字と見なします。SQL変換機能は、HTMLリクエストのSQLインジェクションコードを変更して,リクエストが無害になるようにします。変更されたHTMLリクエストはサバに送信されます。デフォルトの変換ルールはすべて/ netscaler default_custom_settings.xmlファイルに指定されています。
変換操作では,リクエストに以下の変更を加えることで,sqlコ,ドが非アクティブになります。
- 一重引用符(')から二重引用符(")。
- バックスラッシュ
(\)
をダブルバックスラッシュ(\)
にします。 - セミコロン(;)は完全に削除されます。
この3の文字(特殊文字列)は,SQL Serverにコマンドを発行するために必要です。SQLコマンドの前に特別な文字列を付けない限り,ほとんどのSQLサーバーではそのコマンドが無視されます。したがって,変換が有効な場合にWeb应用防火墙が実行する変更により,攻撃者はアクティブなSQLを挿入できなくなります。これらの変更が加えられた後,リクエストは保護されたWebサescトに安全に転送されます。保護されたWebサイト上のWebフォームがSQL特殊文字列を正当に含むことができるが,Webフォームが正しく動作するために特殊文字列に依存しない場合,Web应用防火墙が保護されたWebサイトに提供する保護を低下させずに,ブロックを無効にして変換を有効にして,正当なWebフォームデータのブロックを防止できます。
変換操作は,SQL aaplンジェクションタaaplプ設定とは独立して機能します。変換が有効で、SQLインジェクションタイプがSQLキーワードとして指定されている場合,リクエストにキーワードが含まれていなくてもSQL特殊文字が変換されます。
ヒント
通常,変換とブロッキングのどらかを有効にしますが,両方を有効にすることはできません。ブロックアクションが有効になっている場合は,変換アクションよりも優先されます。ブロッキングを有効にしている場合,変換の有効化は冗長です。
SQLワaapl . SQLワaapl . SQLルドカ——ワイルドカード文字を使用して,SQL (SQL select)ステートメントの選択範囲を広げることができます。これらのワ,[いいね!]および[不是いいね]演算子と共に使用して,値を類似の値と比較できます。パセント(%)およびアンダスコア(_)文字は,ワルドカドとしてよく使用されます。パーセント記号は,ms - dosで使用されるアスタリスク(*)ワイルドカード文字に似ており,フィールド内の0文字,1文字,または複数の文字に一致します。アンダ,スコアはms-dosの疑問符(?)と似ています。ワ▪▪ルドカ▪▪ド文字。これは,式の1の数字または文字に一致します。
たとえば,次のクエリを使用して文字列検索を実行し,名前にD文字が含まれるすべての顧客を検索できます。
“% d %”のような名前のカスタマ,から*を選択してください。:
次の例では,演算子を組み合わせて,2番目と3番目に0がある給与値をすべて検索します。
顧客から*を選択where給与' _ 00% ':
DBMSベンダ,によっては,演算子を追加してワ,ルドカ,ド文字を拡張しています。Citrix Web App Firewallは、これらのワイルドカード文字を挿入することによって開始される攻撃から保護できます。デフォルトの 5 つのワイルドカード文字は、パーセント (%)、アンダースコア (_)、キャレット (^)、開き角かっこ ([)、閉じ角かっこ (]) です。この保護は、HTML プロファイルと XML プロファイルの両方に適用されます。
デフォルトのワルドカド文字は,*默认签名で指定されたリテラルのリストです。
< wildchar类型=“文字”> % < / wildchar >
< wildchar类型=“文字”> _ < / wildchar >
< wildchar类型=“文字”> ^ < / wildchar >
< wildchar type = "文字“> < / wildchar >
< wildchar type = "文字“> < / wildchar >
攻撃のワ@ @ルドカ@ @ド文字は[^ a-f]のようにpcreになります。Web应用防火墙は PCRE ワイルドカードもサポートしていますが、ほとんどの攻撃をブロックするには、上記のリテラルワイルドカード文字で十分です。
注:
SQLワルドカド文字のチェックは,SQLの特殊文字チェックとは異なります。誤検出を避けるため,このオプションは注意して使用する必要があります。
SQL aaplンジェクションタaaplプを含むリクエストの確認——Web应用防火墙には,アプリケーションの個々のニーズに基づいて,SQLインジェクションインスペクションに必要なレベルの厳格さを実装するための4つのオプションが用意されています。SQL違反を検出するために,リクエストはaaplンジェクションタaaplプの指定と照合されます。SQLインジェクションタイプには,次の4つのオプションがあります。
- SQL特殊文字とキワド: SQL違反をトリガーするには,SQLキーワードとSQL特殊文字の両方を入力に含める必要があります。この最も制限の少ない設定もデフォルト設定です。
- SQL特殊文字-sql違反をトリガするには,入力に少なくとも1の特殊文字が含まれている必要があります。
- SQLキワド: SQL違反をトリガーするには,指定したSQLキーワードのうち少なくとも1つが入力に存在している必要があります。このオプションは十分に考慮せずに選択しないでください。誤検出を避けるため,入力にキ,ワ,ドが含まれていないことを確認します。
- SQL特殊文字またはキワド:セキュリティチェック違反をトリガーするには,入力にキーワードまたは特殊文字列が含まれている必要があります。
ヒント:
SQL特殊文字を含む入力をチェックするようにWeb应用防火墙を構成すると,Webアプリケーションファイアウォールは特殊文字を含まないWebフォームフィールドをスキップします。ほとんどのSQLサーバーは,前に特殊文字が付いていないSQLコマンドを処理しないため,このオプションを有効にすると,Web应用防火墙の負荷を大幅に軽減し,保護されたWebサイトを危険にさらすことなく処理を高速化できます。
SQLコメントの処理——デフォルトでは,Web应用防火墙はすべてのSQLコメントに注入されたSQLコマンドをチェックします。ただし,多くのSQLサーバーでは,SQL特殊文字が前に付いていても,コメント内の内容は無視されます。処理を高速化するために,SQLサーバーがコメントを無視する場合,挿入されたSQLのリクエストを調べるときにコメントをスキップするようにWeb应用防火墙を構成できます。SQLコメント処理オプションは次のとおりです。
- ANSIunixベースのSQLデータベースで通常使用されるANSI形式のSQLコメントをスキップします。例:
—(2个▪▪のハ▪▪フン)—これは,2个▪▪のハ▪▪フンで始まり,行末で終わるコメントです。
{}-中カッコ(中カッコはコメントを囲みます。{はコメントの前にあり,}はその後に続きます。中括弧は1行または複数行のコメントを区切ることができますが,コメントはネストできません)
/* */: C风格注释(不允许嵌套注释)。请注意/*!<以斜杠开头,后面跟着星号和感叹号的注释不是注释> */
MySQL ServerはCスタルのコメントのいくかのバリアントをサポトしています。これらのコードを使用すると,MySQL拡張を含むが,移植可能なコードを,次の形式のコメントを使用して記述できます。
/ * !mysql特定代码*/
.#: Mysqlコメント:これは#文字で始まるコメントです。
- ネスト:ネストされたSQLコメントをスキップします。このコメントは,Microsoft SQL Serverで通常使用されます.たとえば,;- (2),/ * * /(ネストされたコメントを許可します)
- [すべてのコメントをチェック。]:何もスキップせずに,注入されたSQLのリクエスト全体をチェックします。これがデフォルトの設定です。
ヒント
通常,バックエンドデータベースがMicrosoft SQL Server上で実行されていない限り,[ネスト]または[ANSI /ネスト]オプションを選択しないでください。他のほとんどの種類のSQL Serverソフトウェアは,ネストされたコメントを認識しません。ネストされたコメントが、別の種類の SQL Server 宛ての要求に表示される場合は、そのサーバーのセキュリティ侵害の試みを示している可能性があります。
[检查请求头]:フォームフィールドの入力の検査に加えて,HTML SQLインジェクション攻撃のリクエストヘッダーを調べる場合は,このオプションを有効にします。GUIを使用する場合は,Web应用防火墙プロファ,aaplルの[詳細設定]-> [プロファereplicationル設定]ペンでこのパラメタを有効にすることができます。
注:
检查请求ヘッダ,フラグを有効にすると,用户代理ヘッダ,の緩和ル,ルを設定する必要がある場合があります。のようなsqlキワドや, sql特殊文字のセミコロン(;)が存在すると,偽陽性が発生し,このヘッダ,を含む要求がブロックされる可能性があります。警告
リクエストヘッダーのチェックと変換の両方を有効にすると,ヘッダーで見つかったSQL特殊文字も変換されます。受け入れ,受け入れ文字セット,受け入れエンコーディング,受け入れ言語,期待,およびユーザーエージェントヘッダーは,通常,セミコロン(,)が含まれています。请求ヘッダ,のチェックと変換を同時に有効にすると,エラ,が発生する場合があります。
inspectQueryContentTypes -特定のコンテンタプに対するSQL SQL目录ンジェクション攻撃のリクエストクエリ部分を調べる場合は,このオプションを設定します。GUIを使用する場合は,应用程序防火墙プロファ电子邮件ルの[詳細設定] - > [プロファ@ @ル設定]ペaapl . aapl . aapl . aapl . aapl . aapl。
SQLファングレンリラクゼション
Web应用程序防火墙では、SQLインジェクションインスペクションチェックから特定のフォームフィールド,ヘッダー,または饼干を除外するオプションがあります。SQLインジェクションチェックのリラクゼーションルールを設定することで,これらのフィールドの1つ以上のインスペクションを完全にバイパスできます。
Web应用程序防火墙では,緩和ルールを微調整することで,より厳格なセキュリティを実装できます。アプリケーションでは,特定のパターンを許可する柔軟性が要求される場合がありますが,セキュリティインスペクションをバイパスするように緩和規則を設定すると,ターゲットフィールドがSQL攻撃パターンの検査から免除されるため,アプリケーションが攻撃に対して脆弱になる可能性があります。SQLのきめ細かい緩和は,特定のパタ,ンを許可し,残りをブロックするオプションを提供します。たとえば,Web应用防火墙には現在、100 を超える SQL キーワードのデフォルトセットがあります。ハッカーは SQL Injection 攻撃でこれらのキーワードを使用できるため、Web App Firewall は潜在的な脅威としてフラグを立てます。特定の場所で安全と見なされる 1 つ以上のキーワードをリラックスできます。潜在的に危険なSQLキーワードの残りの部分は、ターゲットの場所がチェックされ、セキュリティチェック違反が引き続きトリガーされます。これで、より厳密な制御が可能になりました。
緩和で使用されるコマンドには,[値タ▪▪プ]と[**値式]のオプションパラメ,タがあります。値式が正規表現かリテラル文字列かを指定できます。値の型は空白のままにすることも,[キ,ワ,ド]、(SpecialString),または[WildChar]**を選択することもできます。
警告:
正規表現は強力です。特にpcre形式の正規表現に慣れていない場合は,作成した正規表現をすべて再確認してください。例外として追加するURLを正確に定義していることを確認し,それ以外は何も定義しないでください。ワイルドカード,特にドットアスタリスク(. *)メタ文字またはワイルドカードの組み合わせを不注意に使用すると,ブロックする意図がないWebコンテンツへのアクセスをブロックしたり,HTML SQLインジェクションチェックでブロックされた攻撃を許可するなど,望ましくない結果が生じる可能性があります。
考慮すべきポ电子邮箱ント:
- 値式はオプションの引数です。フィ,ルド名には値式がない場合があります。
- フィルド名は複数の値式にバンドできます。
- 値式には値型を割り当てる必要があります。SQL値の型は,1)キーワード,2)SpecialStringまたは3)WildCharのいずれかになります。
- フィ,ルド名とurlの組み合わせごとに複数の緩和ル,ルを設定できます。
コマンドラ▪▪ンを使用したSQL▪▪ンジェクションチェックの設定
コマンドラインを使用してSQLインジェクションアクションとその他のパラメーターを構成するには,次の手順を実行します。
コマンドラe.c.ンe.c.ンタe.c.フェe.c.スでは,设置appfw配置文件コマンドまたは添加appfw配置文件コマンドのいずれかを使用して,sql esc escンジェクション保護を設定できます。ブロック、学習、ログ、統計アクションを有効にし、SQL インジェクション攻撃文字列で使用される特殊文字を変換して攻撃を無効にするかどうかを指定できます。ペイロードで検出する SQL 攻撃パターンの種類 (キーワード、ワイルドカード文字、特殊文字列) を選択し、Web App Firewall で SQL インジェクション違反のリクエストヘッダーも検査するかどうかを指定します。取消设置appfw配置文件コマンドを使用して,構成した設定をデフォルトに戻します。次のコマンドはそれぞれ1つのパラメータのみを設定しますが,1つのコマンドに複数のパラメータを含めることができます。
- ページの下部に表示されるアプリケーションファイアウォールプロファイル”パラメータの説明“を設定します。
-SQLInjectionAction (([block] [learn] [log] [stats]) | [none]) - ページの下部に表示されるアプリケーションファイアウォールプロファイル”パラメータの説明“を設定します。
-SQLInjectionTransformSpecialChars (**ON** | OFF) - ページの下部に表示されるアプリケーションファイアウォールプロファイル”パラメータの説明“を設定します。
<名称> - * * SQLInjectionCheckSQLWildChars * * (* * * * | * * * *)
- ページの下部に表示されるアプリケーションファイアウォールプロファイル”パラメータの説明“を設定します。
* * <名称> - * * SQLInjectionType * * ((* * SQLKeyword * *) |【* * SQLSplChar * *】|【* * SQLSplCharANDKeyword * *】|【* * SQLSplCharORKeyword * *))
- ページの下部に表示されるアプリケーションファイアウォールプロファイル”パラメータの説明“を設定します。
<名称> - * * SQLInjectionParseComments * * ((* * checkall * *) | (* * ansi |嵌套* *)| (* * ansinested * *))
- **ページの下部に表示されるアプリケーションファイアウォールプロファイル”パラメータの説明“を設定します。
ペ,ジの下部に表示されるパラメ,タの説明。-CheckRequestHeaders (ON | OFF)
ペ,ジの下部に表示されるパラメ,タの説明。- CheckRequestQueryNonHtml (ON | OFF)
コマンド▪▪ンタ▪▪フェ▪スを使用してSQL▪▪ンジェクション緩和ル▪▪ルを設定するには
バインドを追加または削除するには,次のように绑定または解开コマンドを使用します。
bind appfw profile
-SQLInjection [isRegex(REGEX| NOTREGE)] [-location ] [-valueType (Keywor|SpecialString|Wildchar) [ ][-isValueRegex (REGEX| NOTREGEX)]] unbind appfw profile
-SQLInjection [-location ] [-valueTyp(关键字|SpecialString|Wildchar) [ ]]
注:
SQLキーワードとSQL特殊文字のリストを含むビューシグニチャオブジェクトを表示することで,デフォルトのシグニチャファイルのコンテンツからSQLキーワードのリストを検索できます。
GUIを使用したSQLを使用したンジェクションのセキュリティ,検査の設定
GUIでは,アプリケーションに関連付けられたプロファイルのペインでSQL注入セキュリティー検査を構成できます。
GUIを使用してSQL aaplンジェクションチェックを構成または変更するには
- [アプリケションファアウォル]>[プロファ]に移動し,タ,ゲットプロファ,ルを強調表示して[編集]をクリックします。
- [詳細設定]ウィンドウで,[セキュリティチェック]をクリックします。
セキュリティー検査テーブルには,すべてのセキュリティー検査に対して現在構成されているアクション設定が表示されます。設定には次の2のオプションがあります。
一个。HTML SQLインジェクションの[ブロック],[ログ],[統計],および[学習]の各アクションを有効または無効にするには,テーブルのチェックボックスをオンまたはオフにして,(好吧]をクリックし,[保存して閉じる]をクリックして[セキュリティチェック]ウィンドウを閉じます。
b。このセキュリティ・チェックのその他のオプションを構成する場合は,“HTML SQLインジェクション”をダブルクリックするか,行を選択して”アクションの設定をクリックして,次のオプションを表示します。
SQL特殊文字の変換:要求内の任意のSQL特殊文字を変換します。
SQLワaapl . SQLワaapl . SQLルドカ:ペSQLワ。
「次を含むリクエストのチェック”——チェックするSQLインジェクションのタイプ(sqlKeyword、sqlSPLChar sqlSPLCharandKeyword,またはsqlSPLCharorKeyword)。
SQLコメントの処理——チェックするコメントのタイプ([すべてのコメントをチェック],[ANSI],[ネスト],または[ANSI /ネスト])。
上記の設定のいずれかを変更したら,”OK”をクリックして変更内容を保存し,“セキュリティチェック”(安全检查)テーブルに戻ります。必要に応じて,他のセキュリティ,検査の設定に進むことができます。[好吧)をクリックして[セキュリティチェック]セクションで行った変更をすべて保存し,[保存して閉じる]をクリックして[セキュリティチェック]ウィンドウを閉じます。
GUIを使用してSQLを使用してンジェクション緩和ル,ルを構成するには
- [アプリケションファアウォル> [プロファ@ @ル]に移動し,タ,ゲットプロファ,ルを強調表示して[編集]をクリックします。
- [詳細設定]ウィンドウで,[緩和規則]をクリックします。
- “緩和規則”テ,ブルで,”SQL注入“エントリをダブルクリックするか,エントリを選択して”編集をクリックします。
- 「HTML SQL aaplンジェクション緩和規則“ダ电子邮箱アログで,緩和規則の”追加」、「編集」、「削除」、「有効化,または"無効化」
注
新しいル,ルを追加すると,[値の型フィルド]で[キ,ワ,ド]または[SpecialString]または[WildChar]オプションを選択しない限り,[値の**式**]フィルドは表示されません。
ビジュアラSQL
すべての緩和ル,ルをまとめて表示するには,[SQL注入]行をハe - mail e - mail e - mail e - mail [ビジュアラザ]をクリックします。デプロ,[新しいル,ルを追加]または[既存のル,ルを編集]のオプションがあります。ノドを選択し,緩和ビジュアラザの対応するボタンをクリックして,ルルのグルプを有効または無効にすることもできます。
GUIを使用して射出パタンを表示またはカスタマズする
GUIを使用して,射出パタ,ンを表示またはカスタマ,ズできます。
デフォルトのSQLパタンは,デフォルトのシグニチャファルで指定されます。シグニチャオブジェクトをプロファイルにバインドしない場合,デフォルトシグニチャオブジェクトで指定されたデフォルトのインジェクションパターンが,コマンドインジェクションセキュリティチェック処理のためにプロファイルによって使用されます。デフォルトのシグニチャオブジェクトで指定されている規則とパタ,ンは読み取り専用です。編集や修正はできません。これらのパターンを変更または変更する場合は,デフォルトのSSignaturesオブジェクトのコピーを作成して,ユーザー定義署名オブジェクトを作成します。新しいユーザ定義シグニチャオブジェクトのコマンドインジェクションパターンを変更し,これらのカスタマイズされたパターンを使用するトラフィックを処理しているプロファイルでこのシグニチャオブジェクトを使用します。
詳細にいては,”署名を参照してください。
GUIを使用してデフォルトの射出パタ,ンを表示するには,次の手順を実行します。
- [アプリケションファアウォル]>[署名.]に移動し,[*デフォルトシグニチャ]を選択し、[編集]をクリックします。
- [Cmd / sql / xssパタンの管理]をクリックします。「sql /クロスサereplicationトスクリプティングパスの管理“テブルには,cmd / sql / xsンジェクションに関連するパタンが表示されます。”
- 行を選択し,[要素の管理]をクリックして,Web应用防火墙コマンドインジェクションチェックで使用される対応する注入パターン(キーワード,特殊文字列,変換ルール,またはワイルドカード文字)を表示します。
SQL catalog catalogンジェクションチェックでの学習機能の使用
学習アクションが有効になると,Web应用防火墙学習エンジンはトラフィックを監視し,トリガーされた違反を学習します。学習したル,ルは定期的に検査できます。十分に検討した後,学習したル,ルをSQLンジェクション緩和ル,ルとして展開できます。
sql cmd cmd cmd cmd cmd cmd cmd cmd cmd: Citrix ADCソフトウェアのリリース11.0で,Web应用防火墙の学習拡張機能が導入されました。細かいSQLインジェクション緩和をデプロイするために,Web应用防火墙はきめ細かいSQLインジェクション学習を提供します。学習エンジンは,観測された値のタイプ(关键字、SpecialString、Wildchar)および入力フィールドで観測された対応する値式に関する推奨事項を作成します。ブロックされたリクエストをチェックして、現在のルールが制限が厳しく、緩和する必要があるかどうかを判断するだけでなく、学習エンジンによって生成されたルールを確認して、違反を引き起こしている値タイプと値式を判断し、で対処する必要があります。リラクゼーションルール。
重要
Web应用程序防火墙の学習エンジンでは,名前の最初の128バイトしか区別できません。128年フォームに,最初のバイトに一致する名前のフィールドが複数ある場合,学習エンジンはそれらを区別できないことがあります。同様に,デプロイされた緩和ルールは,そのようなフィールドをSQLインジェクション検査から誤って緩和する可能性があります。
(注)用户代理ヘッダーのSQLチェックインをバイパスするには,次の緩和ルールを使用します。
绑定appfw profile your_profile_name -SQLInjection User-Agent " .*" -location头
コマンドランンタスを使用して学習デ
コマンドプロンプトで,次のコマンドのいずれかを入力します。
show appfw learningdata
SQLInjection rm appfw learningdata
-SQLInjection [ ] [ ] export appfw learningdata
SQLInjection
GUIを使用して学習済みデ,タを表示または使用するには
[アプリケションファアウォル]>[プロファ]に移動し,タ,ゲットプロファ,ルを強調表示して[編集]をクリックします。
[詳細設定]ペ电子邮箱ンで,[学習済みル,ル]をクリックします。「学習済みル,ル」テーブルでSQL注入エントリを選択してダブルクリックすると,学習したル,ルにアクセスできます。学習したルールを展開したり、緩和ルールとして展開する前にルールを編集したりできます。ルールを破棄するには、ルールを選択して「スキップ」(跳过)ボタンをクリックします。一度に編集できるル:1。
また,“学習済みル,ル”(学习规则)テ,ブルで”SQL注入“エントリを選択し,”ビジュアラザ”(视觉型的人)をクリックして,学習済みのすべての違反の統合ビュ,を表示することもできます。ビジュアラ@ @ザを使用すると,学習したル@ @ルを簡単に管理できます。1つの画面でデータの包括的なビューを表示し,1回のクリックでルールのグループに対するアクションの実行を容易にします。ビジュアラザの最大の利点は,正規表現を推奨して複数のルルを統合できることです。デリミタとアクションurlに基づいて,これらのル,ルのサブセットを選択できます。ドロップダウンリストから番号を選択すると,ビジュアライザーに25岁,50岁,または75個のルールを表示できます。学習したルルのビジュアラザには,ルルを編集して緩和として展開するオプションがあります。または,ル,ルをスキップして無視することもできます。
SQL catalog catalogンジェクションチェックでログ機能を使用する
ログアクションを有効にすると,html SQL esc escンジェクションのセキュリティチェック違反がAPPFW_SQL違反として監査ログに記録されます。Web应用防火墙は、ネイティブログ形式と CEF ログ形式の両方をサポートしています。ログをリモート syslog サーバに送信することもできます。
コマンドラ▪▪ンを使用してログメッセ▪▪ジにアクセスするには
シェルに切り替えて/var/log/フォルダ内のns.logsを末尾にして,sql ` `。
>壳
# tail -f /var/log/ns.log | grep APPFW_SQL .log
リクエストが変換されたときのHTML SQL aapl . exeンジェクションログメッセ
Jun 26 21:08:41 10.217.31.98 CEF:0|Citrix|Citrix ADC|NS11.0|APPFW|APPFW_SQL|6|src=10.217.253.62 geolocation=Unknown spt=54001 method=GET request=http://aaron.stratum8.net/FFC/login.php?login_name=%27+or&passwd=and+%3B&drinking_pref=on&text_area=select+*+from+%5C+%3B&loginButton=ClickToLogin&as_sfid=AAAAAAXjnGN5gLH-hvhTOpIySEIqES7BjFRs5Mq0fwPp-3ZHDi5yWlRWByj0cVbMyy-Ens2vaaiULKOcUri4OD4kbXWwSY5s7I3QkDsrvIgCYMC9BMvBwY2wbNcSqCwk52lfE0k%3D&as_fid=feeec8758b41740eedeeb6b35b85dfd3d5def30cmsg= Special characters seen in fields cn1=74 cn2=762 cs1=pr_ffc cs2=PPE1 cs3=9ztIlf9p1H7p6Xtzn6NMygTv/QM0002 cs4=ALERT cs5=2015 act=transformed
ポストリクエストがブロックされた場合のHTML SQL aapl . exeンジェクションログメッセ
Jun 26 21:30:34 10.217.31.98 CEF:0|Citrix|Citrix ADC|NS11.0|APPFW|APPFW_SQL|6|src=10.217.253.62 geolocation=Unknown spt=9459 method=POST request=http://aaron.stratum8.net/FFC/login_post.php msg=SQL关键字check failed for field text_area="(')" cn1=78 cn2=834 cs1=pr_ffc cs2=PPE1 cs3=eVJMMPtZ2XgylGrHjkx3rZLfBCI0002 cs4=ALERT cs5=2015 act=blocked
注
10.5.eビルド(エンハンスメントビルド)と11.0以降のビルドでのストリーミング変更の一環として,入力データをブロック単位で処理するようになりました。RegExパタ,ンマッチングは,連続した文字列マッチングで4Kに制限されるようになりました。この変更により、SQL違反ログメッセージには,以前のビルドとは異なる情報が含まれる場合があります。入力のキ、ワ、ドと特殊文字は、多くのバ、トで区切ることができます。データを処理するときに,入力値全体をバッファリングするのではなく,SQLキーワードと特殊文字列を追跡します。ログメッセージには、フィールド名に加えて、SQL キーワード、SQL 特殊文字、または SQL キーワードと SQL 特殊文字の両方が含まれるようになりました。これらの文字は、構成された設定によって決定されます。次の例に示すように、残りの入力はログメッセージに含まれなくなります。
例:
10.5では,Web应用防火墙がSQL違反を検出すると,次に示すように,入力文字列全体がログメッセージに含まれることがあります。
SQL关键字检查失败的字段文本=\"select a name from testbed1;(;)\".*<阻止> . txt
リクエストサドストリミングおよび11.0トする10.5.;eの拡張ビルドでは,次に示すように,フィールド名,キーワード,および特殊文字(該当する場合)のみをログメッセージに記録します。
SQL关键字检查字段失败**text="select(;)"< >阻塞
この変更は、应用程序/ x-www-form-urlencodedマルチパート/フォームデータ,または文本/ x-gwt-rpcコンテンツタイプを含むリクエストに適用されます。JSONまたはXMLペロドの処理中に生成されるログメッセジは,この変更の影響を受けません。
GUIを使用してログメッセ,ジにアクセスするには
Citrix GUIには,ログメッセジを分析するための便利なル(Syslog查看器)が含まれています。Syslogビュ,アにアクセスするには,複数のオプションがあります。
- [アプリケションファアウォル> [プロファ@ @ル]に移動し,タ,ゲットプロファ,ルを選択して[セキュリティチェック]をクリックします。HTML SQL aaplンジェクション行を強調表示して、[ログ]をクリックします。プロファイルのHTML SQLインジェクションチェックから直接ログにアクセスすると,GUIによってログメッセージが除外され,これらのセキュリティチェック違反に関連するログのみが表示されます。
- 「Citrix ADC」>「システム」>「監査の順に選択して,Syslogビュ,アにアクセスすることもできます。[审计信息]セクションで,[Syslog消息リンクをクリックして[Syslog查看器]を表示します。このビュ,アには,他のセキュリティチェック違反ログを含むすべてのログメッセ,ジが表示されます。これは,要求処理中に複数のセキュリティチェック違反がトリガーされる可能性がある場合のデバッグに役立ちます。
- アプリケションファアウォル>ポリシ>監査に移動します。[Audit Messages] セクションで、[Syslog消息リンクをクリックして[Syslog查看器]を表示します。このビュ,アには,他のセキュリティチェック違反ログを含むすべてのログメッセ,ジが表示されます。
HTMLベースのSyslogビューアには,関心のあるログメッセージのみを選択するためのさまざまなフィルタオプションがあります。HTML SQLンジェクションチェックのログメッセ,ジを選択するには、「モジュ,ル“のドロップダウン·リスト·オプションで”APPFWを選択してフィルタリングします。(事件类型)リストには,選択内容をさらに絞り込むための豊富なオプションが用意されています。たとえば,”APPFW_SQL“チェック·ボックスを選択して”適用ボタンをクリックすると,SQL注入セキュリティ·チェック違反に関するログ·メッセ,ジのみがSyslog查看器に表示されます。
特定のログメッセ,ジの行にカ,ソルを置くと,[モジュ,ル]、[▪▪▪▪ベントタ▪▪▪▪プ]、[aaplベントid]、[クラesc escアントIP地址]などの複数のオプションがログメッセ,ジの下に表示されます。これらのオプションを選択すると,ログメッセ,ジ内の対応する情報を強調表示できます。
[クリックして展開。]機能はGUIでのみ使用できます。Syslog查看器を使用すると、ログを表示するだけでなく、Web App Firewall セキュリティチェック違反のログメッセージに基づいて HTML SQL インジェクション緩和ルールを展開することもできます。この操作では、ログメッセージは CEF ログ形式である必要があります。クリックして展開機能は、ブロック (またはブロックしない) アクションによって生成されたログメッセージに対してのみ使用できます。変換操作に関するログメッセージの緩和ルールは展開できません。
Syslog查看器から緩和ル,ルを展開するには,ログメッセ,ジを選択します。選択した行の[Syslog查看器]ボックスの右上隅にチェックボックスが表示されます。このチェックボックスをオンにし,[アクション]リストから緩和ルールを展開するオプションを選択します。[**編集とデプロ**],[**デプロxx . x],[すべてデプロxx . x]]は,**
(单击部署)オプションを使用してデプロイされるSQLインジェクションルールには,細粒度緩和の推奨事項は含まれません。
GUIの[クリックしてデプロstore]機能を使用するには,次の手順を実行します。
- Syslog查看器で,[モジュ,ル]オプションの[アプリケションファアウォル]を選択します。
- 対応するログメッセ,ジをフィルタするには,▪▪▪▪ベントタ▪▪▪▪プとしてAPP_SQLを選択します。
- 展開するル,ルを識別するには,このチェックボックスをオンにします。
- オプションの[アクション(动作)]ドロップダウンリストを使用して,緩和ル,ルを展開します。
- ル,ルが対応する[緩和ル,ル]セクションに表示されていることを確認します。
SQL catalog catalogンジェクション違反の統計
統計アクションが有効になっている場合,Web应用防火墙がこのセキュリティチェックに対して何らかのアクションを実行すると,SQLインジェクションチェックのカウンタが増加します。統計は,トラフィック,違反,およびログのレトと合計数にいて収集されます。ログカウンタの増分サesc escズは,構成された設定によって異なります。たとえば,ブロック・アクションが有効になっている場合、3つのSQLインジェクション違反を含むページのリクエストでは、最初の違反が検出されるとすぐにページがブロックされるため、statsカウンタが1つずつ増加します。ただし、ブロックが無効になっている場合、同じ要求を処理すると、違反ごとに個別のログメッセージが生成されるため、違反とログの統計カウンタが 3 ずつ増加します。
コマンドラesc esc esc esc esc esc esc esc esc esc esc esc次のステップを実行します。
コマンドプロンプトで入力します。
Sh appfw統計
特定のプロファesc escルの統計情報を表示するには,以下のコマンドを使用します。
> stat appfw profile <配置文件名称>
GUIを使用してHTML SQL aaplンジェクションの統計情報を表示するには
- システム>セキュリティ>アプリケションファアウォルに移動します。
- 右側のペ电子邮箱ンで,[統計リンク]にアクセスします。
- スクロルバを使用して,html SQLンジェクション違反とログに関する統計を表示します。統計テブルはリアルタムデタを提供し,7秒ごとに更新されます。
ハ▪▪ラ▪▪ト
SQL▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪▪
- sql @ sql @ sql @ sql @ sql @ sql @ sqlcitrix Web应用防火墙はフォームパラメータ内のSQLキーワードと特殊文字の組み合わせを監視することで,SQLインジェクションから保護します。すべてのSQLキーワード,特殊文字,ワイルドカード文字,およびデフォルトの変換ルールは,/ netscaler default_custom_settings.xmlファイルに指定されています。
- カスタマ@ @ズ:デフォルトのキーワード,特殊文字,ワイルドカード文字,および変換ルールを変更して,アプリケーションの特定のニーズに合わせてSQLセキュリティチェックインスペクションをカスタマイズできます。デフォルトのシグニチャオブジェクトのコピーを作成するか,既存のエントリを変更するか,新しいシグニチャオブジェクトを追加します。このシグニチャオブジェクトをプロファ▪▪ルにバ▪▪ンドして,カスタマ▪▪ズした設定を利用します。
- ハ@ @ブリッドセキュリティモデル——シグニチャとディープセキュリティ保護の両方で,プロファイルにバインドされたシグニチャオブジェクトで指定されたSQL /跨站点スクリプティングパターンが使用されます。シグニチャオブジェクトがプロファイルにバインドされていない場合は,デフォルトのシグニチャオブジェクトに存在するSQL /跨站点スクリプティングパターンが使用されます。
- [变换]:変換操作にいて,次の点に注意してください。
- 変換操作は,他のSQL SQL目录ンジェクションアクション設定とは独立して動作します。変換が有効で,ブロック,ログ,統計,学習がすべて無効になっている場合,SQLの特殊文字は変換されます。
- SQL変換が有効な場合,SQL特殊文字が非ブロックモードで変換された後,ユーザー要求がバックエンドサーバーに送信されます。ブロックアクションが有効になっている場合は,変換アクションよりも優先されます。インジェクションタイプがSQL特殊文字として指定され,ブロックが有効な場合,変換アクションにもかかわらずリクエストはブロックされます。
- [きめ細かな緩和と学習]:緩和ルールを微調整して,SQL要素のサブセットをセキュリティチェック検査から緩和し,残りは検出します。学習エンジンは,観測されたデ,タに基づいて,特定の値のタ,プと値の式を推奨しています。
- [单击部署1: syslogビューアでつまたは複数のSQL違反ログメッセージを選択し,緩和ルールとして展開します。