HTMLおよびJSONペイロードのSQL文法ベースの保護
HTTPおよびJSONペイロードでのSQLインジェクション攻撃を検出するためにパターン一致アプローチを使用します。このアプローチでは、事前定義された一連のキーワードと(または)特殊文字のセットを使用して攻撃を検出し、違反としてフラグを立てます。このアプローチは効果的ですが、多くの誤検出が発生し、1 つ以上の緩和ルールが追加される可能性があります。特に、HTTP または JSON リクエストで「Select」や「From」などの一般的に使用される単語が使用されている場合。 HTMLおよびJSONペイロードの SQL 文法保護チェックを実装することで、誤検知を減らすことができます。
SQL 文法ベースの保護使用シナリオ
JSONペイロードの SQL インジェクション攻撃を検出するように設定することもできます。緩和ルールを追加するには、既存の緩和ルールを再利用できます。「ValueType」「キーワード」のルールでは、細粒緩和ルールは、SQL 文法にも適用されます。 JSON SQL 文法では、既存の URL ベースのメソッドを再利用できます。
CLI を使用して SQL 文法ベースの HTML 保護を設定します
add appfw profile <profile-name> –SQLInjectionAction <action-name> -SQLInjectionGrammar ON/OFF
add appfw profile profile1 –SQLInjectionAction Block –SQLInjectionGrammar ON
CLI を使用して HTML の SQL パターンマッチ保護と文法ベースの保護を設定します
add appfw profile <profile-name> –SQLInjectionAction <action-name> -SQLInjectionGrammar ON –SQLInjectionType <Any action other than ‘None’: SQLSplCharANDKeyword/ SQLSplCharORKeyword/ SQLSplChar/ SQLKeyword>
add appfw profile p1 –SQLInjectionAction block – SQLInjectionGrammar ON –SQLInjectionType SQLSplChar
CLI を使用して HTML を文法ベースで保護する SQL インジェクションチェックのみを設定する
add appfw profile <profile-name> –SQLInjectionAction <action-name> -SQLInjectionGrammar ON –SQLInjectionType None
add appfw profile p1 –SQLInjectionAction block – SQLInjectionGrammar ON –SQLInjectionType None
CLIを使用してHTMLをSQL文法ベースで保護するための緩和ルールをバインドする
SQLインジェクションチェックをバイパスする必要がある場合は、緩和ルールを設定する必要があります。
SQL文法を使用して検出を実行する場合にのみ評価されます。
SQLコマンドの構文は次のとおりです。コマンドプロンプトで入力します:
bind appfw profile <name> -SQLInjection <String> [isRegex(REGEX| NOTREGE)] <formActionURL> [-location <location>] [-valueType (Keywor|SpecialString|Wildchar) [<valueExpression>][-isValueRegex (REGEX | NOTREGEX) ]]
bind appfw profile p1 -sqlinjection abc http://10.10.10.10/ bind appfw profile p1 –sqlinjection 'abc[0-9]+' http://10.10.10.10/ -isregex regEX bind appfw profile p1 –sqlinjection 'name' http://10.10.10.10/ -valueType Keyword 'selec[a-z]+' -isvalueRegex regEX
GUI を使用して SQL 文法ベースの HTML 保護を設定します
CLI を使用して JSON ペイロードの SQL 文法ベースの保護を設定します
add appfw profile <profile-name> -type JSON –JSONSQLInjectionAction <action-name> -JSONSQLInjectionGrammar ON/OFF
add appfw profile profile1 –type JSON –JSONSQLInjectionAction Block –JSONSQLInjectionGrammar ON
CLI を使用して JSON ペイロードの SQL パターンマッチ保護と文法ベースの保護を設定します
add appfw profile <profile-name> -type JSON –JSONSQLInjectionAction <action-name> -JSONSQLInjectionGrammar ON –JSONSQLInjectionType <Any action other than ‘None’: SQLSplCharANDKeyword/ SQLSplCharORKeyword/ SQLSplChar/ SQLKeyword>
add appfw profile p1 –type JSON –JSONSQLInjectionAction block – JSONSQLInjectionGrammar ON –JSONSQLInjectionType SQLSplChar
CLI を使用して JSON ペイロードの SQL インジェクションチェックのみの文法ベースの保護を設定します
add appfw profile <profile-name> -type JSON –JSONSQLInjectionAction <action-name> -JSONSQLInjectionGrammar ON –JSONSQLInjectionType None
add appfw profile p1 –type JSON –JSONSQLInjectionAction block – JSONSQLInjectionGrammar ON –JSONSQLInjectionType None
CLIを使用してJSON ペイロードをSQL文法ベースで保護するためのURLベースの緩和ルールをバインドする
JSONコマンドインジェクションインスペクションをバイパスする必要がある場合は、緩和ルールを設定できます。 JSONコマンドインジェクションインスペクション緩和ルールの構文は次のとおりです。コマンドプロンプトで入力します:
bind appfw profile <profile name> –JSONCMDURL <expression> -comment <string> -isAutoDeployed ( AUTODEPLOYED | NOTAUTODEPLOYED ) -state ( ENABLED | DISABLED )
bind appfw profile p1 -sqlinjection abc http://10.10.10.10/ bind appfw profile p1 –sqlinjection 'abc[0-9]+' http:// 10.10.10.10/ -isregex regEX bind appfw profile p1 –sqlinjection 'name' http://10.10.10.10/ -valueType Keyword 'selec[a-z]+' -isvalueRegex regEX