Oracle Database Analyzerによるポリシーの作成
実際にポリシーを作成するとなると、大変なイメージを持たれるかもしれないが、意外にそれほどでもない。ポリシーの設定は、Oracle Database Analyzerによって設定する。これは、Windowsにインストールするクライアントアプリケーションである。
通常、Oracle Database Firewallを使用する際には、一定の学習期間が必要である。これは通常流れているSQLをキャプチャし続けることで、ポリシーを設定するための基礎となるSQLを一括して取得することが目的である。学習期間後は、SQL個々にPass, Block, Warnといったブロッキングのポリシーと、ロギングの設定を行う。構文が同じSQLはクラスタというグループにまとめられるので、クラスタ単位での一括した定義も行うことができる。
例えば、単純にホワイトリストのポリシーを作成する場合は、デフォルトをBlock、通過させたいSQLをPassにするのだが、そのSQLは学習期間で取得したSQLから選べば良い。または、テキストファイルから一括してローディングすることも可能だ。ポリシーは、ユーザやIPアドレス、プログラム名といった単位でプロファイル化して、いくつかのパターンで切り替わるようにすることもできる。画一的なポリシーの設定ではなく、SQL以外の要素も組み合わせた自由度の高いポリシー設計を行う柔軟性も持っている。
Oracle Database FirewallによるSQLモニタリング
ブロッキングについて話を進めてきたが、Oracle Database Firewallをモニタリング用途としての使用も有効である。データベースのセキュリティ要件として、「監査ログを取得すること」と記載のないRFPのほうが珍しいだろう。監査ログはセキュリティの必須要件のひとつだ。第二回で、Oracle Databaseでの監査機能や設計のポイントを述べたが、すでに稼働しているデータベースに対して、新たに監査設定をするというのはパフォーマンスの懸念を考えると躊躇してしまうのは致し方のないことかもしれない。Oracle Databaseでは、10gR2からXML監査という監査設定やファイングレイン監査といった監査の絞り込みによって性能への影響は極小化できる。しかし、それ以前のバージョンのOracle Databaseの監査ログを取得しなければならない時やOracle Database以外のデータベースではまともに監査ログを取ることができないデータベースもある。そのような場合には、Oracle Database Firewallのモニタリング機能が非常に有効になる。
事例のひとつとして、投資銀行系のデータベースの全トラフィックの監査ログを取得するという要件でOracle Database Firewallが使われている。このシステムでは、1日 1.7億件発生するトランザクションを24時間×365日漏れなく保存するという厳しい要件が定められているが、それらを見事にクリアしている。
前述に紹介したアウトオブバンド方式の構成であれば、既存のトランザクションへの影響はなく、パフォーマンスを気にする必要はない。さらに、Oracle Database Firewallはログを圧縮して保存している。その圧縮の効果は高く、例えば、Oracle DatabaseのXML監査ログと比較した場合、1,200万レコードの監査ログのサイズは、Oracle DatabaseのXML監ファイルだと8.4GB、Oracle Database Firewallでは172MBと約50分の1のサイズになる。監査ログはどうしても膨大になりがちだが、Oracle Database Firewallではログを保存しておくのに必要となるストレージサイズを縮小することを可能にする。
また、ネットワークを経由しないサーバに直接ログインした場合もモニタリングを可能にするローカルモニター、サブネットを跨いだモニタリングを可能にするリモートモニター、Oracle Database Firewallの高可用性の構成など、特筆すべき機能がまだまだあるが文字数の都合上ここまでとしよう。
より詳しい情報については、以下を参照頂きたい。
【セミナー動画/資料】Oracle Database Firewallの全貌をご紹介
全4回にわたりデータベース・セキュリティの実装ということで、エンジニアの方々が使える情報となるように心掛けて連載を続けてきた。データベースに限らずセキュリティは多層防御が基本的な考え方である。今回、紹介したOracle Database Firewallは最も最前線でデータベースを保護し、アクセス制御、監査、そして最後の砦として暗号化やマスキングが保険的な役割を果たす。是非、これらの要素をうまく組み合わせてシステムに合わせた最適なセキュリティを構築して頂きたい。
今回の取り上げた内容が少しでもデータベース・セキュリティを実装する際のヒントになることを願い、本連載を終了することにする。
関連資料
・Oracle Database Firewall|オラクルエンジニア通信
・ユーザー・アカウントおよびセキュリティの管理|オラクルエンジニア通信
※この記事はoracletech.jpからの転載です。