ここでのトピック
保護レベルの要件を満たすために、Oracle Database Firewallを監視専用モードまたは監視およびブロック・モードでデプロイできます。
操作のニーズに応じて、次の2つのモードのいずれかでOracle Database Firewallをデプロイできます。
監視専用: このモードでは、Oracle Database Firewallはターゲット・データベースへのSQLトラフィックを監視するだけで、SQL文をブロックすることはできません。
監視およびブロック: このモードでは、Oracle Database Firewallはターゲット・データベースへのSQLトラフィックを監視するとともに、定義されたポリシーに基づいて任意のSQL文をブロックすることもできます。このモードでは、Oracle Database Firewallはターゲット・データベースに到達するトラフィックに対してインラインになります。
関連トピック
Oracle Database Firewallで使用可能なデプロイメントのタイプについて学習します。
要件に応じて、Oracle Database Firewallで使用可能な3つのデプロイメント・タイプのいずれかを選択できます。
SQLトラフィックを監視し、ターゲット・データベースに到達するSQL文を制限するには、次のようにします。
表4-1 Oracle Database Firewallのデプロイメント・タイプ
デプロイメント・タイプ | サポートされているモード | ネットワーク・インタフェース・カード(NIC)の最小数 |
---|---|---|
プロキシ |
DPE |
3 (ネットワーク分離を使用するデプロイメント用) 1 (ネットワーク分離を使用しないデプロイメント用) |
帯域外 |
DAM |
2 |
ホスト監視 |
DAM |
1 |
Database Firewallで複数のホスト監視からのトラフィックを監視し、同時にその同じDatabase Firewallを一部のデータベースに対してプロキシとして、別のデータベースに対して帯域外(スパン)で配置できます。
ノート:
Oracle Database Firewallのインライン(ブリッジ)モードの機能について学習します。
ノート:
インライン・ブリッジ・モードはリリース12.2.0.8.0で非推奨となり、将来のリリースでサポートされなくなる場合があります。かわりにプロキシ・モードを使用することをお薦めします。プロキシ・モードでは、同等のネットワーク・セキュリティ・デプロイメント機能が提供されます。
このモードではOracle Database Firewallは次のようになります。
このin-lineブリッジ・アーキテクチャでは、データベース・クライアント、アプリケーションまたはデータベース自体の構成変更は必要ありません。ネットワーク・トポロジの構成変更が必要になる場合があります。
この画像は、図内ではDBFWと示すOracle Database Firewallのインライン・ブリッジ・モードでのデプロイメントを示しています。イメージ内のコールアウトは、次のことを示しています。
Oracle Database Firewallをプロキシ・モードで構成する方法について学習します。
プロキシ・モードでは、Oracle Database FirewallはSQLの監視とブロックの両方、さらに必要に応じてSQL文の置換を行うことができます。ネットワーク・ブリッジの追加が難しい場合、またはデータベース・サーバーがリモートの場所にある場合は、Oracle Database Firewallをプロキシとして構成し、データベース・サーバーへのトラフィックがすべて、Oracle Database Firewallを通ってルーティングされるようにします。
データベース・クライアントがDatabase Firewallプロキシに接続すると、そのDatabase Firewallプロキシがデータベース・サーバーに接続して、データベース・クライアントから受信したすべてのデータを転送します。どのような場合でも、データベース・サーバーはDatabase Firewallをクライアントとして識別します。
クライアントは、データベースではなくDatabase Firewallに接続するように再構成する必要があります。Database Firewallからではない接続をすべて拒否するようにデータベースを構成することをお薦めします。
ノート:
アプリケーションがプロキシを介してDatabase Firewallのデプロイメントに接続するために必要な変更を簡単にするには、ターゲットの完全修飾ドメイン名(FQDN)がDatabase FirewallのIPアドレスに解決されるように、ローカル・ドメイン・ネーム・サーバー(DNS)を構成します。
プロキシ・モードは、次の2つの方法でデプロイできます。
ネットワーク分離を使用しないプロキシ・モードでは、クライアントとデータベースが同じサブネットワーク上に存在します。このモードでは、クライアントがOracle Database Firewall経由で接続できます。また、クライアントはデータベースに直接接続することもできるので、単一点障害を回避できます。
この画像は、ネットワーク分離を使用しないプロキシ・モードでのOracle Database Firewallデプロイメントを示しています。イメージ内のコールアウトまたはポインタは、次のことを示しています。
ネットワーク分離を使用するプロキシ・モードでは、クライアントとデータベースは異なるサブネット上に存在します。追加のサブネットがデプロイされるたびに、追加のネットワーク・インタフェース・カード(NIC)が必要になります。
この画像は、ネットワーク分離を使用したプロキシ・モードでのOracle Database Firewallデプロイメントを示しています。イメージ内のコールアウトまたはポインタは、次のことを示しています。
Oracle Database Firewallを帯域外モードで構成する方法について学習します。
帯域外モードでデータベース・アクティビティ監視を構成する場合、Database Firewallはデータベースへのクライアント・リクエストやデータベースからのレスポンスなどのネットワーク・トラフィックを捕捉します。
データベース・アクティビティは、定義されたポリシーに従って監視されます。Database Firewallにデータベース・トラフィックをコピーするには、いくつかのテクノロジを使用できます。これらのテクノロジには、たとえば、スパニング・ポートまたはネットワーク・タップ、パケット・レプリケータの使用などがあります(他にも考えられます)。
このモードでは、Oracle Database FirewallはSQLトラフィックの監視およびアラートは実行できますが、SQL文のブロックまたは置換はできません。
帯域外モードは、非ブロッキング・ポリシー要件の全体で最も単純なデプロイメント・モードです。データベースでもクライアントでも、負荷が増えることはありません。Database Firewallで生じるレイテンシや単一点障害はありません。Oracle Audit Vault and Database Firewallは、このデプロイメント・モードで高可用性をサポートします。
この画像は、帯域外モードでのDatabase Firewallコンポーネントのデプロイメントを示しています。イメージ内のコールアウトは、次のことを示しています。
関連トピック
Oracle Database Firewallを使用してOracle Audit Vaultエージェントのホスト監視モードを構成する方法について学習します。
Oracle Database Firewallでホスト監視デプロイメント・モードを使用するには、Oracle Audit Vault Agentをホスト・サーバー上に配置し、データベースとの間のネットワーク・トラフィックを監視するように構成する必要があります(このトラフィックはネットワーク・インタフェース・カード経由で受信されるため)。ホスト監視は、ネットワーク・トラフィックをDatabase Firewallに安全に転送します。
Oracle Database Firewallは、監視のみ行い、Oracle Audit Vault ServerによってデプロイされるOracle Audit Vault Agentをサポートします。このデプロイメント・オプションにより、ネットワーク・ポイントでの監視の柔軟性が高まります。ホスト監視モードを使用すると、前述したOracle Audit Vault and Database Firewallネットワーク・オプションのどれも簡単に使用できない場合に有用です。
注意:
Microsoft Windowsプラットフォーム上のホスト監視は、リリース12.2.0.11.0では動作保証されていません。12.2.0.11.0は、Microsoft Windowsプラットフォームでネットワーク証跡監視機能が不要であることが確実な場合にのみアップグレードする、または使用するようにしてください。この機能は、今後のリリースで動作保証される予定です。インストールが12.2.0.11.0より前の古いリリースに該当する場合、Microsoft Windowsプラットフォームでのホスト監視機能が動作保証されます。
ホスト監視モードでは、次のアクションが実行されます。
デプロイメント・モードでは、Oracle Database FirewallはSQLトラフィックの監視およびアラートは実行できますが、SQL文のブロックまたは置換はできません。
この画像は、ホスト監視モードでのOracle Database Firewallのデプロイメントを示しています。イメージ内のコールアウトまたはポインタは、次のことを示しています。
Oracle Audit Vault and Database FirewallのOracle Database Firewallポリシーの一部を定義する方法を学習します。
Oracle Database FirewallのDatabase Firewallポリシーの構成を理解するには、許可リストおよびブロックリストという用語を理解しておくと役立ちます。Oracle Database Firewallポリシーを作成するときにOracle Audit Vault and Database Firewallユーザー・インタフェースに許可リストまたはブロックリストという用語は表示されませんが、これらの概念はOracle Database Firewallポリシーの一部を定義するのに役立ちます。
ブロックリスト・ポリシーでは、許可されない有害な文のセットを指定します。また、受信IPアドレスやユーザー名など、文に関連付けられている様々なパラメータおよびプロパティに関する情報も提供します。現在市販されている監視ソリューションのほとんどは、ポリシー内で正規表現を使用して、データベースへの到達をブロックする必要があるSQL文を判別しています。このような第1世代のソリューションの課題は、正規表現ではSQL言語の表現力に対応しきれないことです。なんらかの有害な結果をもたらす可能性のあるSQL文の記述方法は様々で、このような文をすべて検出する正規表現ルールを書き出すことはほとんど不可能です。ブロックリストのメリットは、これを使用して、SQL文のタイプや操作対象のデータベース・オブジェクト、またはセッション情報(IPアドレス、ユーザー名、クライアント・アプリケーション名など)に基づいて特定のSQL文を拒否するポリシーを定義できることです。
有害な文のセットは一定しないので、固定された「不正」な文のセットをブロックするよりも、アプリケーションの通常のアクティビティ、およびデータベースに接続するユーザーに基づいて、「正常」な文のみを許可する方がはるかに効果的です。この正常な文のセットが許可リストです。許可リスト・ポリシーを設定するには、通常のユーザー動作を監視するポリシーを作成します。
Oracle Database Firewallポリシーでは、許可リストの肯定的な実施モデルに重点が置かれます。ただし、ファイアウォール・ポリシーの様々な要素を使用して特定のSQL文を拒否できるという意味で、ファイアウォール・ポリシーはブロックリストもサポートできます。
関連項目:
Database Firewallポリシーの作成の詳細は、『Oracle Audit Vault and Database Firewall監査者ガイド』を参照してください。ファイアウォール・ポリシーの例外ルール(前提条件とも呼ばれる)は、SQL文を分析する前に様々な要因を評価します。
例外によってこれらのセッション要因が評価されます。
たとえば、一連のクライアント・アプリケーションによるデータベースへのアクセスをブロックする(特定のユーザー・セットからリクエストが発行された場合を除く)場合に、例外を使用できます。ファイアウォール・ポリシーで設定された「通常」のSQL用ルールに制限されることなく、あらかじめ決められたIPアドレスからアクセスしてきた特定のリモート管理者が特定のアプリケーション・パフォーマンスの問題を診断できるようにする場合にも、例外を使用できます。
これらの例が示すように、例外は、それらの例外をどのように定義したかで許可リストまたはブロックリストのどちらかの観点で使用されます。ブロックリストでは、ユーザーまたはIPアドレスに基づいてクラスタを拒否することもできます。
Oracle Database Firewallを使用して分析済SQLのクラスタにポリシーを適用する方法について学習します。
Oracle Database FirewallはデータベースへのSQLトラフィックを自動的に分析し、クラスタと呼ばれる類似の文にSQLをグループ化します。このような分析されたSQLのクラスタでは、その後、シンプルなポリシー・マネージャのユーザー・インタフェースを使用し、同じタイプのSQL操作に対して通常動作の許可リストを簡単に設定できます。これらの通常動作の許可リストを設定するには、クラスタごとに適切なアクションを設定します。たとえば、ファイアウォール・ポリシーの分析済SQL部分では、警告またはブロック・アクションを設定できます。この方法では、ファイアウォール・ポリシーで様々な種類のSQL文に対してルール・セットを作成します。
ポリシーで特定のSQLクラスタを拒否することで、分析されたSQLにブロックリスト・ポリシーを使用することもできます。
例外と同様に、ファイアウォール・ポリシーのセッション・プロファイルは、SQL文を分析する前にセッション情報を評価します。
セッション・プロファイルは、次の情報を使用して定義できます。
セッション・プロファイルは例外とは異なります。
たとえば、同じSQLクラスタでも、特定のユーザーまたはIPアドレス・セットから発行された場合は、それに対して異なるルールを設定できます。
1つのファイアウォール・ポリシー内で複数のセッション・プロファイルを定義できます。ポリシーでは、最初にセッション情報を評価することで、そのセッション情報に応じて、同じ分析されたSQLに対し異なるルールを定義できます。セッション情報には、クライアントのIPアドレス、データベース・ユーザー名、オペレーティング・システムのユーザー名またはデータベース・クライアント名が含まれます。
例外と同様に、どのようにルールを定義することに決めたかで、許可リストまたはブロックリストのどちらかの観点で、セッション・プロファイルを定義できます。
特定のデータベース表に作用する特定のタイプのSQL文を回避または許可するために、ファイアウォール・ポリシー内にノベルティ・ポリシーを設定できます。
\ノベルティ・ルールは通常、DBAが特定のアプリケーション表へアクセスできないようにする必要がある場合に、ネットワーク経由のDBAの動作を制御するために使用します。
ノベルティ・ルールは、次のSQLのカテゴリに対して機能するように指定できます。
INSERT
、UPDATE
、DELETE
、SELECT
INTO
などの文SELECT
CREATE
、DROP
、ALTER
などの文GRANT
、REVOKE
などの文COMMIT
、ROLLBACK
などSQLカテゴリを特定の表と結合することにより、ノベルティ・ルールを使用して、表のクラス全体に対してポリシー動作を定義できます。
データベース・ディクショナリ表はアプリケーションに関連しておらず、これらのルールの一部ではありません。
ファイアウォール・ポリシーの他の部分と同様に、どのようにポリシーのルールを定義したかで、許可リストまたはブロックリストのどちらかの観点で、ノベルティ・ポリシーを定義できます。
Oracle Audit Vault and Database Firewallがファイアウォール・ポリシーを使用して実行するSQL分析には4つのカテゴリがあります。
SQL文は、アプリケーションの順序に従って、次のルールを使用してOracle Database Firewallインスタンスを通じて論理グループで評価されます。
例外
まず、ポリシーに対する例外が評価されます。たとえば、「リクエストがこの管理者から発行された場合以外は、分析されたSQLのルールを適用する」という例外があれば、そのルールが最初に検討されます。
セッション・プロファイル
次に、セッション・プロファイルが検討されます。ポリシーは、セッション情報に応じて(たとえば、リクエストが特定のIPアドレス・セットから発行された場合など)、そのセッション・プロファイルに対応する分析されたSQLのルール・セットを適用します。
クラスタ
SQL文のクラスタが識別され、分析済SQLクラスタに定義されたルールと照合されます。
ノベルティ・ポリシー
データベース・オブジェクトに対して定義するルールは、可能性があるルール照合の次の対象となります。これらのポリシーでは、アクセスされるデータベース表とそのアクセスに使用されるSQL文のタイプを調べます。
デフォルト・ルール
デフォルト・ルールは前述のどのルールにも一致しない残りのSQLに適用されるため、SQLの標準ポリシーを設定できます。
次の図は、ファイアウォール・ポリシーを使用してSQL文が評価される順序を示しています。ルールのすべて、またはルールのサブセットを構成できます。
Oracle Database Firewallはデータベースに入ってくるSQLを監視し、図に示すような降順で、データベースに割り当てられているファイアウォール・ポリシーを適用します。SQLがファイアウォール・ポリシーのルールに一致すると、Oracle Database Firewallはポリシーに定義されているアクションを実行します。
Oracle Database Firewallで未認可のSQLが識別された場合は、4つのタイプのレスポンスを構成できます。
Oracle Database Firewallは、不正な文を検出すると、定義されたファイアウォール・ポリシーに基づいて、次のいずれかの方法でその文を処理できます。
アラート
ポリシー外のすべてのSQL文に対してアラートを生成します。
ブロック
SQL文をブロックする。SQL文のブロック・ポリシーを定義すると、この特定の文がデータベース・サーバーに到達しなくなります。文をブロックする場合、次のアクションをファイアウォール・ポリシーに設定できます。
文をブロック後、何もしない。
ブロックの後にレスポンスを設定しない場合、クライアント接続がハングしたように見え、クライアントはセッションを終了してデータベースに再接続し、追加のSQLを実行する必要があります。
置換(推奨)
置換ポリシーを設定する場合は、ブロックされたSQL文に置換文を指定します。ブロックされた文は、データを戻さない新しい文で置き換えます。最適なエンド・ユーザー体験として置換結果を提供し、アプリケーションの実行を継続できるようにします。クライアント・セッションは維持され、クライアントは再接続せずに必要に応じて追加のSQLを実行できます。
接続の切断
このレスポンスを設定すると、ブロックされたSQL文によって、データベースへのクライアント接続が削除されます。このレスポンスにより、その特定のデータベース接続からのトラフィックがすべてブロックされます。このレスポンスは、最もアグレッシブなアクションです。アプリケーションが接続プーリングを使用している場合、このレスポンスはプールを使用しているすべてのユーザーに影響します。攻撃者が接続を再構築する可能性があるため、このアクションを常にログに記録し、適切なユーザーにアラートすることをお薦めします。
Oracle Audit Vault and Database Firewallを使用してDatabase Firewallをデプロイおよび構成する前に、必要なDatabase Firewall、必要な保護のレベル、および構成に影響するその他の要因を確認して決定する必要があります。
Oracle Audit Vault and Database Firewall (Database Firewall)を使用してDatabase Firewallをデプロイおよび構成するには、ファイアウォール計画の一部として次の質問を考慮する必要があります。
どのデータベースを保護する必要があるか。それらは、どのネットワークに配置されているか。
保護対象のデータベースはそれぞれセキュア・ターゲットとしてOracle Audit Vault Serverに追加されます。Database Firewallをどのように配置して必要な監視タイプを実現するかは、ネットワーク上のデータベースの場所によって左右されます。
データベースへのSQLトラフィックを監視するだけでなくブロックまたは置換も行う必要があるか、監視とアラートのみを行うか。
これらの質問に対する回答は、保護するデータベースによって異なる場合があります。SQL文をブロックして置換する場合、Database Firewallは、データベースとクライアント・アプリケーション間のインラインにするか、プロキシとして構成する必要があることに注意してください。
Database Firewallはいくつ必要で、ネットワークのどこに配置するか。どれをインライン(ブリッジ)にするか、帯域外(スパン・ポートを使用するなど)にするか、プロキシとして構成するか。
インライン・ブリッジ・モードは12.2.0.8.0で非推奨となり、将来のリリースでサポートされなくなる場合があります。かわりにプロキシ・モードを使用することをお薦めします。
この質問と前述の質問に対する回答を基に、データベース・セキュア・ターゲット、保護レベルおよびネットワーク・モードを示したマトリックスを参照してください。次に例を示します。
表4-2 データベース・セキュア・ターゲットのマトリックス
セキュア・ターゲット | 監視のみ/ブロック | ネットワーク・モード | Oracle Audit Vault Agent |
---|---|---|---|
データベース1 |
監視 |
帯域外 |
オプション |
データベース2 |
ブロック |
プロキシ |
オプション |
データベース3 |
ブロック |
インライン |
オプション |
データベース3 |
監視 |
ホスト監視 |
必須 |
Database Firewallに必要な強制ポイントはいくつか。
データベース・セキュア・ターゲットごとに、Oracle Audit Vault Server内に1つの強制ポイントを構成する必要があります。強制ポイントは、Oracle Audit Vault Serverに対して次の情報を提供します。
どのDatabase Firewallがこのデータベース・セキュア・ターゲットを保護しているか
アクティビティ監視(DAM)またポリシー強制/ブロック(DPE)のどちらの保護レベルを使用するか
このデータベース・セキュア・ターゲットに対するネットワーク・トラフィック・ソースは何か。
強制ポイントを構成するときには、この情報を含むリストを構成中に利用できるようにコンパイルすることを検討してください。
Database Firewallを高可用性に構成する必要があるか。
障害発生時にOracle Audit Vault and Database Firewallがセキュリティ・オブジェクトに確実にアクセスできるように、高可用性環境にOracle Audit Vault and Database Firewallを構成することをお薦めします。