プライマリ・コンテンツに移動
Oracle® Traffic Director管理者ガイド
11g リリース1 (11.1.1.9)
B66436-05
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

11.7 Webアプリケーション・ファイアウォールの管理

Webアプリケーション・ファイアウォール(WAF)とは、HTTPリクエストにルール・セットと呼ばれる一連のルールを適用するフィルタまたはサーバー・プラグインのことです。Webアプリケーション・ファイアウォールは、攻撃を検知および阻止するためのセキュリティ・レイヤーを強化するための手段として有用です。これはオリジン・サーバー内にホストされているアプリケーションのファイアウォールとして機能します。また、管理者がヘッダーや本文などHTTPリクエストの任意の部分を調査したり、条件を構成しHTTPリクエストがその条件に基づいて許可または拒否されるように設定することもできます。

Webアプリケーション・ファイアウォール・モジュールには無償のバージョンと商用バージョンがあります。Oracle Traffic DirectorのWebアプリケーション・ファイアウォール・モジュールはModSecurity 2.6をサポートしています。これはWebアプリケーション用の侵入検知およ防止エンジンです。ModSecurityのルール・セットはカスタマイズ可能で、クロスサイト・スクリプティング(XSS)やSQLインジェクションなどの一般的な攻撃からアプリケーションを保護できます。HTTPヘッダー、環境変数およびCGI変数などの様々な条件に基づき、ModSecurityは受信リクエストにフィルタを適用して拒否します。ModSecurityの詳細は、https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#wiki-Introductionを参照してください。

様々な企業がModSecurity用のルール・セットを提供していますが、Oracle Traffic Directorはオープンソース・アプリケーション・セキュリティ・プロジェクトであるOpen Web Application Security Project (OWASP)によるテストを受けた製品であり、最も使用されているルール・セット・プロバイダの1つです。詳細は、https://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Projectを参照してください。

この項には次のトピックが含まれます:

11.7.1 Webアプリケーション・ファイアウォールの概要

Oracle Traffic Directorを使用すると、構成内の各仮想サーバーに対してWebアプリケーション・ファイアウォールを有効化(または無効化)できます。これはルール・セットを適用し、オリジン・サーバーにデプロイされているWebアプリケーションのファイアウォールとして機能します。オリジン・サーバーおよび仮想サーバーの詳細は、第7章「オリジン・サーバーの管理」および第8章「仮想サーバーの管理」をそれぞれ参照してください。

Oracle Traffic Directorはルール・セットを仮想サーバー・レベルと構成レベルの両レベルでサポートしています。仮想サーバー・レベルで定義されたルールは、構成レベルで定義されたルールよりも優先されます。デプロイすると、これらのルールと構成変更がインスタンスにプッシュされ、インスタンスが再構成されます。Webアプリケーション・ファイアウォールの動作の詳細は、付録B「Webアプリケーション・ファイアウォールの例とユースケース」を参照してください。

11.7.2 Webアプリケーション・ファイアウォールの構成

Webアプリケーション・ファイアウォールを構成するには、オープン・ソースのWebアプリケーション・ファイアウォール・ルール・セットをダウンロードするか、独自のルール・セットを作成します。たとえば、OWASPリポジトリからModSecurity Core Rule Set (CRS)をダウンロードし、ルール・セットを任意のフォルダに解凍します。Oracle Traffic Directorは次のディレクトリ内にあるルールをサポートしています。

  • base_rules

  • optional_rules

  • slr_rules


注意:

Webアプリケーション・ファイアウォールでは、OWASP ModSecurityコア・ルール・セットのbase_rulesoptional_rulesおよびslr_rulesディレクトリ内の、構成で使用されるModSecurity 2.6ディレクティブをサポートしています。ただし、<IfDefine...><Location...>などのApacheコア構成ディレクティブや、RequestHeaderHeaderなど、その他のApacheモジュールでサポートされているディレクティブはサポートしていません。

前述のディレクトリを解凍した後、これらのディレクトリ内のファイルを編集して、管理サーバーにアップロードできます。これらのルール・セット・ファイルをデプロイすると、Oracle Traffic Directorインスタンスにプッシュされます。詳細は、11.7.2.1項「Webアプリケーション・ファイアウォール・ルール・セットの有効化とインストール」を参照してください。


注意:

  • configディレクトリの外部にあるディレクトリからルール・セット・ファイルを取得するようサーバーを構成することもできますが、この場合ルール・ファイルの管理がサポートされなくなります。Oracle Traffic Directorを高可用性構成にする場合は、Webアプリケーション・ファイアウォール・ルール・セットをconfigディレクトリに格納することをお薦めします。

  • サポートされていないディレクティブ、変数、演算子、アクション、フェーズ、関数およびストレージを使用すると、サーバーの起動エラーの原因になります。たとえば、ルール・セット・ファイルmodsecurity_crs_42_tight_security.confを、非サポートのアクションverを削除せずにインストールすると、サーバーの起動時にOracle Traffic Directorによって次のエラー・メッセージが表示されます。

    [ERROR:16] [OTD-20016] Syntax error on line 20 of /scratch/rgoutham/instance1/net-config1/config/ruleset/config1/modsecurity_crs_42_tight_security.conf:
    [ERROR:16] [OTD-20016] Error parsing actions: Unknown action: ver
    [ERROR:32] [OTD-20008] Failed to parse VS webapp-firewall-ruleset (ruleset/config1/*.conf)
    [ERROR:32] [OTD-10422] Failed to set configuration
    [ERROR:32] server initialization failed
    

    このエラーを回避するには、ルール・セット・ファイルを編集し、サポートされていないディレクティブ、変数、演算子、アクション、フェーズ、関数およびストレージを削除またはコメント・アウトしてからサーバーを起動します。


11.7.2.1 Webアプリケーション・ファイアウォール・ルール・セットの有効化とインストール

管理コンソールまたはCLIのいずれかを使用して、Webアプリケーション・ファイアウォールのルール・セットを有効化およびインストールできます。


注意:

  • Webアプリケーション・ファイアウォール・ルール・セットの有効化とインストールは、実質的には構成の変更を意味します。新しいルール・セットをOracle Traffic Directorインスタンスに反映するには、4.3項「構成のデプロイ」の説明に従い、構成を再デプロイする必要があります。

  • この項のCLIの例はシェル・モード(tadm>)で示されています。CLIシェルの起動の詳細は、2.3.1項「コマンドライン・インタフェースへのアクセス」を参照してください。


管理コンソールを使用したWebアプリケーション・ファイアウォール・ルール・セットの有効化とインストール

管理コンソールを使用して仮想サーバーにWebアプリケーション・ファイアウォールを構成するには、次の操作を行います。

  1. 2.3.2項「管理コンソールへのアクセス」の説明に従って、管理コンソールにログインします。

  2. ページの左上隅にある「構成」ボタンをクリックします。

    使用可能な構成のリストが表示されます。

  3. Webアプリケーション・ファイアウォールを構成する構成を選択します。

  4. ナビゲーション・ペインで、「仮想サーバー」を展開し、Webアプリケーション・ファイアウォールを構成する仮想サーバーの名前を展開して、「Webアプリケーション・ファイアウォール」を選択します。

    「Webアプリケーション・ファイアウォール」ページが表示されます。

    1. 「Webアプリケーション・ファイアウォール」ページで、「有効」をクリックし、特定の仮想サーバーのWebアプリケーション・ファイアウォールを有効化します。

    2. 「ルール・セット・ファイルのインストール」をクリックします。

      「ルール・セット・ファイルのインストール」ダイアログ・ボックスで、ルール・セット・ファイルを解凍したフォルダを参照しルール・セット・ファイルを選択するか、ルール・セット・ファイルがある場所までの完全パスを入力します。複数のルール・セット・ファイルをインストールする場合は、1度に1つずつインストールします。

      1つ以上のルール・セット・ファイルをインストールすると、「ルール・セット・パターン」フィールドに次のテキストが追加されます。

      ruleset/<virtual-server-id>/*.conf
      

      注意:

      • 構成レベルでルール・セット・ファイルをインストールすると、ルール・セット・パターンが次のように表示されます。

        ruleset/*.conf
        
      • 必要であれば、カスタム・ルール・セット・パターンを追加できます。しかし、ruleset/<virtual-server-id>ディレクトリ(仮想サーバー・レベルの場合)またはrulesetディレクトリ(構成レベルの場合)の外部にあるルール・セットは、Oracle Traffic Directorの管理コンソールまたはCLIを使用して表示したり削除したりすることはできません。これらのルール・セットは手動で管理する必要があります。


    3. 「ルール・セットのインストール」をクリックします。

      ルール・セット・ファイルがインストールされたことを確認するメッセージが、「コンソール・メッセージ」ペインに表示されます。

      さらに、「デプロイメント保留中」メッセージが、メイン・ペインの上部に表示されます。4.3項「構成のデプロイ」の説明に従い、「変更のデプロイ」をクリックして更新された構成を即座にデプロイすることも、さらに変更を行いその後でデプロイすることもできます。

CLIを使用したWebアプリケーション・ファイアウォールの有効化

CLIを使用してWebアプリケーション・ファイアウォールを有効化するには、enable-webapp-firewallコマンドを実行します。

たとえば、次のコマンドを実行すると、構成soaにある仮想サーバーvs1でWebアプリケーション・ファイアウォールが有効になります。

tadm> enable-webapp-firewall --config=soa --vs=vs1       
OTD-70201 Command 'enable-webapp-firewall' ran successfully.

更新された構成を有効にするには、deploy-configコマンドを使用して、構成をOracle Traffic Directorインスタンスにデプロイする必要があります。

enable-webapp-firewallの詳細は、『Oracle Traffic Directorコマンドライン・リファレンス』を参照するか、--helpオプションを付けてコマンドを実行してください。

CLIを使用したWebアプリケーション・ファイアウォール・ルール・セットのインストール

CLIを使用してWebアプリケーション・ファイアウォール・ルール・セットをインストールするには、install-webapp-firewall-rulesetコマンドを実行します。

たとえば、次のコマンドを実行すると、構成soaにある仮想サーバーvs1にWebアプリケーション・ファイアウォール・ルール・セットmodsecurity_crs_20_protocol_violations.confがインストールされます。

tadm> install-webapp-firewall-ruleset --config=soa --vs=vs1 /home/rulesets/modsecurity_crs_20_protocol_violations.conf
OTD-70201 Command 'install-webapp-firewall-ruleset' ran successfully.

構成レベルでWebアプリケーション・ファイアウォール・ルール・セットをインストールするには、--vsオプションなしで前述のコマンドを実行します。たとえば、次のコマンドを実行すると、構成soaにWebアプリケーション・ファイアウォール・ルール・セットmodsecurity_crs_50_outbound.confがインストールされます。

tadm> install-webapp-firewall-ruleset --config=soa /home/rulesets/modsecurity_crs_50_outbound.conf
OTD-70201 Command 'install-webapp-firewall-ruleset' ran successfully.

更新された構成を有効にするには、deploy-configコマンドを使用して、構成をOracle Traffic Directorインスタンスにデプロイする必要があります。

install-webapp-firewall-rulesetの詳細は、『Oracle Traffic Directorコマンドライン・リファレンス』を参照するか、--helpオプションを付けてコマンドを実行してください。


注意:

set-config-propおよびset-virtual-server-propコマンドを使用して、webapp-firewall-rulesetプロパティの値を構成レベルと仮想サーバー・レベルで設定できます。詳細は、『Oracle Traffic Directorコマンドライン・リファレンス』を参照してください。

11.7.3 ルール・セット・ファイルのリスト表示

管理コンソールまたはCLIのいずれかを使用して、ルール・セット・ファイルのリストを表示できます。


注意:

この項のCLIの例はシェル・モード(tadm>)で示されています。CLIシェルの起動の詳細は、2.3.1項「コマンドライン・インタフェースへのアクセス」を参照してください。

管理コンソールを使用したルール・セット・ファイルのリストの表示

管理コンソールを使用してルール・セット・ファイルのリストを表示するには、次の操作を行います。

  1. 2.3.2項「管理コンソールへのアクセス」の説明に従って、管理コンソールにログインします。

  2. ページの左上隅にある「構成」ボタンをクリックします。

    使用可能な構成のリストが表示されます。

  3. ルール・セット・ファイルを表示する構成を選択します。

  4. 「Webアプリケーション・ファイアウォール」ページの「ルール・セット・ファイル」表に、インストール済のルール・セット・ファイルがリストされます。これらのファイルの内容を確認するには、クリックして個々のルール・ファイルを選択するか、「名前」チェック・ボックスを選択してすべてのルール・ファイルを選択します。

  5. 「表示」をクリックします。

    各ルール・ファイルの内容が「ルール・セット・ファイルの内容」ウィンドウに表示されます。

CLIを使用したルール・セット・ファイルのリストの表示

CLIを使用して個々のルール・セット・ファイルの内容を表示することはできませんが、インストール済のルール・セット・ファイルのリストを表示することは可能です。ルール・セット・ファイルのリストを表示するには、list-webapp-firewall-rulesetsコマンドを実行します。

たとえば、次のコマンドを実行すると、構成soaにある仮想サーバーvs1にインストールされているWebアプリケーション・ファイアウォール・ルール・セット・ファイルがリストされます。

tadm> list-webapp-firewall-rulesets --config=soa --vs=vs1 --verbose

ruleset-file-name
--------------------
modsecurity_crs_45_trojans.conf
modsecurity_crs_42_tight_security.conf
modsecurity_crs_46_slr_et_sqli_attacks.conf

構成レベルでインストールされているWebアプリケーション・ファイアウォール・ルール・セットのリストを表示するには、--vsオプションなしで前述のコマンドを実行します。たとえば、次のコマンドを実行すると、構成soaに構成レベルでインストールされているWebアプリケーション・ファイアウォール・ルール・セットがリストされます。

tadm> list-webapp-firewall-rulesets --config=soa --verbose

ruleset-file-name
--------------------
modsecurity_crs_40_generic_attacks.conf
modsecurity_crs_47_common_exceptions.conf

get-webapp-firewall-propコマンドを実行すると、Webアプリケーション・ファイアウォールのプロパティを表示できます。

list-webapp-firewall-rulesetsおよびget-webapp-firewall-propコマンドの詳細は、『Oracle Traffic Directorコマンドライン・リファレンス』を参照するか、--helpオプションを付けてコマンドを実行してください。

11.7.4 ルール・セット・ファイルの削除

管理コンソールまたはCLIのいずれかを使用して、ルール・セット・ファイルを削除できます。


注意:

この項のCLIの例はシェル・モード(tadm>)で示されています。CLIシェルの起動の詳細は、2.3.1項「コマンドライン・インタフェースへのアクセス」を参照してください。

管理コンソールを使用したルール・セット・ファイルの削除

特定の仮想サーバーのルール・セット・ファイルを削除するには、次の操作を行います。

  1. 2.3.2項「管理コンソールへのアクセス」の説明に従って、管理コンソールにログインします。

  2. ページの左上隅にある「構成」ボタンをクリックします。

    使用可能な構成のリストが表示されます。

  3. ルール・セット・ファイルを削除する構成を選択します。

  4. 「Webアプリケーション・ファイアウォール」ページで、個々のルール・ファイルをクリックして選択するか、「名前」チェック・ボックスを選択してすべてのルール・ファイルを選択します。

  5. 「削除」ボタンをクリックします。確認プロンプトで、「OK」です。

    「コンソール・メッセージ」ペインに、ルール・セット・ファイルが削除されたことを確認するメッセージが表示されます。

    さらに、「デプロイメント保留中」メッセージが、メイン・ペインの上部に表示されます。4.3項「構成のデプロイ」の説明に従い、「変更のデプロイ」をクリックして更新された構成を即座にデプロイすることも、さらに変更を行いその後でデプロイすることもできます。

CLIを使用したルール・セット・ファイルの削除

特定の仮想サーバーのルール・セット・ファイルを削除するには、次の例に示すようにdelete-webapp-firewall-rulesetコマンドを実行します。

tadm> delete-webapp-firewall-ruleset --config=soa --vs=vs1 modsecurity_crs_20_protocol_violations.conf
OTD-70201 Command 'delete-webapp-firewall-ruleset' ran successfully.

更新された構成を有効にするには、deploy-configコマンドを使用して、構成をOracle Traffic Directorインスタンスにデプロイする必要があります。

delete-webapp-firewall-rulesetの詳細は、『Oracle Traffic Directorコマンドライン・リファレンス』を参照するか、--helpオプションを付けてコマンドを実行してください。


注意:

disable-webapp-firewallコマンドを使用してWebアプリケーション・ファイルを無効にできます。詳細は、『Oracle Traffic Directorコマンドライン・リファレンス』を参照してください。

11.7.5 サポートされているWebアプリケーション・ファイアウォールのディレクティブ、変数、演算子、アクション、関数、永続ストレージおよびフェーズ

Oracle Traffic Directorでは様々なModSecurity 2.6のディレクティブ、変数、演算子、アクション、関数、永続ストレージおよびフェーズがサポートされています。

サポートされているWebアプリケーション・ファイアウォール・ディレクティブ

Oracle Traffic Directorでは次のModSecurity 2.6ディレクティブがサポートされています。ModSecurityディレクティブの詳細およびディレクティブのリスト(サポートされていないディレクティブを含む)は、https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#wiki-Configuration_Directivesを参照してください。

SecAction
SecArgumentSeparator
SecAuditEngine
SecAuditLog
SecAuditLog2
SecAuditLogDirMode
SecAuditLogFileMode
SecAuditLogParts
SecAuditLogRelevantStatus
SecAuditLogStorageDir
SecAuditLogType
SecComponentSignature
SecContentInjection
SecCookieFormat
SecDataDir (see note below)
SecDebugLog
SecDefaultAction
SecDebugLogLevel
SecGeoLookupDb
SecInterceptOnError
SecMarker
SecPcreMatchLimit (see note below)
SecPcreMatchLimitRecursion (see note below)
SecRequestBodyAccess
SecRequestBodyInMemoryLimit (see note below)
SecRequestBodyNoFilesLimit (see note below)
SecRequestBodyLimitAction
SecResponseBodyAccess
SecResponseBodyLimit
SecResponseBodyLimitAction (see note below)
SecResponseBodyMimeType
SecResponseBodyMimeTypesClear
SecRule
SecRuleEngine (see note below)
SecRuleRemoveById
SecRuleRemoveByMsg
SecRuleRemoveByTag
SecRuleUpdateActionById
SecRuleUpdateTargetById
SecTmpDir
SecUnicodeMapFile (see note below)
SecUnicodeCodePage (see note below)
SecUploadDir
SecUploadFileLimit
SecUploadFileMode
SecUploadKeepFiles
SecWebAppId (see note below)
SecCollectionTimeout

注意:

  • SecWebAppIdは仮想サーバー固有のWebアプリケーション・ファイアウォール構成ファイル内で指定できます。アプリケーション・ネームスペースを特定の仮想サーバーに関連付けることができます。

  • SecRequestBodyLimitActionディレクティブを使用して、SecRequestBodyNoFilesLimitにヒットしたリクエストに対してアクションを設定できます。しかし、SecRequestBodyLimitディレクティブはOracle Traffic Directorではサポートされていないため、このディレクティブにアクションを設定することはできません。

  • Oracle Traffic DirectorではSecRequestBodyLimitディレクティブがサポートされていません。これは、ModSecurityでバッファする最大リクエスト本文サイズを構成するときに使用するディレクティブです。このディレクティブのかわりに、次のオプションを使用できます。

    オプション1: SecRequestBodyNoFilesLimitディレクティブおよびSecRequestBodyLimitActionディレクティブを使用します。例:

    SecRequestBodyNoFilesLimit 100
    SecRequestBodyLimitAction Reject
    

    オプション2: 拒否動作を設定するため、リクエストのContent-Lengthヘッダーをチェックするようにobj.confでOracle Traffic Directorを構成します。さらに、max-unchunk-size値をserver.xmlで設定できます。

    同様に、ProcessPartial動作を設定するため、server.xmlでbody-buffer-size要素に適切な制限値を設定できます。この場合、制限に収まる本文の最初の部分のみが処理され、残りの部分は通過します。

  • webapp-firewall-ruleset要素で指定された構成ファイル内でSecRuleEngineディレクティブが指定されている場合、これは無視されます。ただし、SecRuleEngineDetectionOnlyモードに設定されている場合、これは当てはまりません。

  • ヘッダーContent-Typex-www-form-urlencodedに設定されている場合、SecRequestBodyInMemoryLimitディレクティブは無視されます。

  • SecDataDirSecPcreMatchLimitSecPcreMatchLimitRecursionSecUnicodeCodePageおよびSecUnicodeMapFileディレクティブは、構成レベルでのみ使用できます。これらのディレクティブのスコープはMainであると見なされます。その他のすべてのディレクティブは仮想サーバー・レベルと構成レベルの両レベルで使用できます。これらのディレクティブのスコープはAnyであると見なされます。Mainスコープのディレクティブを仮想サーバー・レベルの構成ファイル内で指定すると、エラーがログに記録され、サーバーの起動は失敗します。


サポートされているWebアプリケーション・ファイアウォール変数

Oracle Traffic Directorでは次のModSecurity 2.6変数がサポートされています。ModSecurity変数の詳細および変数のリスト(サポートされていない変数を含む)は、https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#wiki-Variablesを参照してください。

ARGS
ARGS_COMBINED_SIZE
ARGS_GET
ARGS_GET_NAMES
ARGS_NAMES
ARGS_POST
ARGS_POST_NAMES
AUTH_TYPE
DURATION
ENV
FILES
FILES_COMBINED_SIZE
FILES_NAMES
FILES_SIZES
GEO
HIGHEST_SEVERITY
MATCHED_VAR
MATCHED_VARS
MATCHED_VAR_NAME
MATCHED_VARS_NAMES
MODSEC_BUILD 
MULTIPART_BOUNDARY_QUOTED
MULTIPART_BOUNDARY_WHITESPACE
MULTIPART_DATA_AFTER
MULTIPART_DATA_BEFORE
MULTIPART_FILE_LIMIT_EXCEEDED
MULTIPART_HEADER_FOLDING
MULTIPART_INVALID_QUOTING
MULTIPART_INVALID_HEADER_FOLDING
MULTIPART_LF_LINE 
MULTIPART_MISSING_SEMICOLON
MULTIPART_CRLF_LF_LINES
MULTIPART_STRICT_ERROR
MULTIPART_UNMATCHED_BOUNDARY
PERF_COMBINED
PERF_GC
PERF_LOGGING
PERF_PHASE1
PERF_PHASE2
PERF_PHASE3
PERF_PHASE4
PERF_PHASE5
PERF_SREAD
PERF_SWRITE
QUERY_STRING
REMOTE_ADDR
REMOTE_PORT
REMOTE_USER
REQBODY_ERROR
REQBODY_ERROR_MSG
REQBODY_PROCESSOR
REQBODY_PROCESSOR_ERROR
REQUEST_BASENAME
REQUEST_BODY (see note below)
REQUEST_BODY_LENGTH
REQUEST_COOKIES
REQUEST_COOKIES_NAMES
REQUEST_FILENAME
REQUEST_HEADERS (see note below)
REQUEST_HEADERS_NAMES
REQUEST_LINE
REQUEST_METHOD
REQUEST_PROTOCOL
REQUEST_URI
REQUEST_URI_RAW
RESPONSE_BODY
RESPONSE_CONTENT_LENGTH
RESPONSE_CONTENT_TYPE
RESPONSE_HEADERS
RESPONSE_HEADERS_NAMES
RESPONSE_PROTOCOL
RESPONSE_STATUS
RULE
SERVER_ADDR
SERVER_NAME
SERVER_PORT
SESSIONID
TIME
TIME_DAY
TIME_EPOCH
TIME_HOUR
TIME_MIN
TIME_MON
TIME_SEC
TIME_WDAY
TIME_YEAR
TX
UNIQUE_ID
URL_ENCODED_ERROR
USERID
WEBAPPID
WEBSERVER_ERROR_LOG (see note below)
XML

注意:

  • rawリクエストの本文を格納するREQUEST_BODY変数には、その他のフィルタを通過した使用可能本文コンテンツが格納されます。

  • オープン・ソースのModSecurityでは、各リクエスト/レスポンスのapacheエラー・ログを収集してWEBSERVER_ERROR_LOG変数に格納し、auditlogアクションで出力できます。しかし、Oracle Traffic Directorではこの機能はサポートされていません。

  • 同じ名前のリクエスト・ヘッダーは1つに連結されるため、ヘッダー数は常に1となります。そのため、同じリクエスト・ヘッダーが送信された場合、その数に関係なく&REQUEST_HEADERS:<any header name>で常に1が返されます。


サポートされているWebアプリケーション・ファイアウォール演算子

Oracle Traffic Directorでは次のModSecurity 2.6演算子がサポートされています。ModSecurity演算子の詳細および演算子のリスト(サポートされていない演算子を含む)は、https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#wiki-Operatorsを参照してください。

beginsWith
contains
containsWord
endsWith
eq
ge
geoLookup
gt
inspectFile
ipMatch
le
lt
pm
pmf
pmFromFile
rbl (see note below)
rx
streq
strmatch
validateByteRange
validateDTD
validateSchema
validateUrlEncoding
validateUtf8Encoding
verifyCC
verifyCPF
verifySSN
within

注意:

ModSecurity 2.6ではSecHttpBlKeyディレクティブがサポートされません。そのため、RBLとしてProject Honey Pot (dnsbl.httpbl.cong)を使用することはできません(SecHttpBlKeyが必要になるため)。

サポートされているWebアプリケーション・ファイアウォール・アクション

Oracle Traffic Directorでは次のModSecurity 2.6アクションがサポートされています。ModSecurityアクションの詳細およびアクションのリスト(サポートされていないアクションを含む)は、https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#wiki-Actionsを参照してください。

allow
append
auditlog (see note below)
block
capture
chain
ctl
deny (see note below)
deprecatevar
drop (see note below)
exec
expirevar
id
initcol
log
logdata
msg
multiMatch
noauditlog
nolog
pass
pause
phase
prepend
redirect
rev
sanitiseArg
sanitiseMatched
sanitiseMatchedBytes
sanitiseRequestHeader
sanitiseResponseHeader
severity
setuid
setsid
setenv
setvar
skip
skipAfter
status
t
tag
xmlns

注意:

  • オープン・ソースのModSecurityでは、各リクエスト/レスポンスのapacheエラー・ログを収集してWEBSERVER_ERROR_LOG変数に格納し、auditlogアクションで出力できます。しかし、Oracle Traffic Directorではこの機能はサポートされていません。

  • denyなど、HTTPレスポンスのステータスを変更するアクションは、フェーズ4で呼び出された場合にレスポンス・ステータスを正しく変更しません。このようなシナリオでは、次のエラー・メッセージがサーバー・ログに記録されます。

    " ModSecurity: Access denied with code 403 (phase 4)."
    
  • dropアクションがフェーズ4で呼び出された場合、Oracle Traffic DirectorがHTTPヘッダーをクライアントに送出し、接続を切断します。

  • denyアクションがフェーズ4で呼び出された場合、Oracle Traffic Directorは403レスポンス・ステータスを送信するかわりに、レスポンス本文を取り除きます。これにより、サーバー・ログに次の警告が表示される可能性があります。

    Response content length mismatch (0 bytes with a content length of <original content length>)
    

サポートされているWebアプリケーション・ファイアウォール変換関数

Oracle Traffic Directorでは次のModSecurity 2.6変換関数がサポートされています。ModSecurity変換関数の詳細およびすべての変換関数のリストは、https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#wiki-Transformation_functionsを参照してください。

base64Decode
sqlHexDecode
base64DecodeExt
base64Encode
cmdLine
compressWhitespace
cssDecode
escapeSeqDecode
hexDecode
hexEncode
htmlEntityDecode
jsDecode
length
lowercase
md5
none
normalisePath
normalisePathWin
parityEven7bit
parityOdd7bit
parityZero7bit
removeNulls
removeWhitespace
replaceComments
removeCommentsChar
removeComments
replaceNulls
urlDecode
urlDecodeUni
urlEncode
sha1
trimLeft
trimRight
trim

サポートされているWebアプリケーション・ファイアウォール永続ストレージ

Oracle Traffic Directorでは次のModSecurity 2.6永続ストレージがサポートされています。ModSecurity永続ストレージの詳細およびすべての永続ストレージのリストは、https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#wiki-Persistant_Storageを参照してください。

GLOBAL
IP
RESOURCE
SESSION
USER

サポートされているWebアプリケーション・ファイアウォール・フェーズ

Oracle Traffic Directorでは次のModSecurity 2.6フェーズがサポートされています。ModSecurityフェーズの詳細およびすべてのフェーズのリストは、https://github.com/SpiderLabs/ModSecurity/wiki/Reference-Manual#wiki-Processing_Phasesを参照してください。

Phase:1 - Request headers stage
Phase:2 - Request body stage
Phase:3 - Response headers stage
Phase:4 - Response body stage
Phase:5 - Logging

注意:

  • denyなど、HTTPレスポンスのステータスを変更するアクションは、フェーズ4で呼び出された場合にレスポンス・ステータスを正しく変更しません。

  • dropアクションがフェーズ4で呼び出された場合、Oracle Traffic DirectorがHTTPヘッダーをクライアントに送出し、接続を切断します。

  • denyアクションがフェーズ4で呼び出された場合、Oracle Traffic Directorは403レスポンス・ステータスを送信するかわりに、レスポンス本文を取り除きます。これにより、サーバー・ログに次の警告が表示される可能性があります。

    Response content length mismatch (0 bytes with a content length of <original content length>)