SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

直近開催のイベントはこちら!

EnterpriseZine編集部ではイベントを随時開催しております

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

oracletechアーカイブス!

データベース・セキュリティの実装 第2回 ログの取得と監査設計のポイント


ファイングレイン監査

 ファイングレイン監査は指定した条件のデータに実際にアクセスがあった際に証跡を出力する。ファイングレイン監査はSELECT・INSERT・UPDATE・DELETEに対してのみしか設定ができないが、監査対象として表名だけではなく、列や条件の指定ができる。そのため、従業員表(表)の特定の部門の従業員(条件)の給与列(列)にアクセスがあった場合のみ監査するといった柔軟な設定が可能となり、不要な監査証跡の削減に役立つ。

 また、監査証跡出力時にオプションで任意のアクションをプログラムできる。たとえば、監査証跡表をデフォルトとは別に作成して監査レコードを出力したり、SNMPやメールで管理者にアラートを上げたりすることが可能だ。

ファイングレイン監査による詳細な監査設定
ファイングレイン監査による詳細な監査設定

 ファイングレイン監査の監査証跡の出力先もOSファイルとデータベース表(SYS.FGA_LOG$表)を選択できる。ファイングレイン監査の設定をおこなうDBMS_FGAパッケージでパラメータとして出力先を指定する。出力先にOSファイルを指定した場合には、AUDIT_FILE_DEST初期化パラメータで指定したディレクトリに出力される。

 ファイングレイン監査の監査証跡表もOracle Database 11gR2では、DBMS_AUDIT_MGMTパッケージを利用することで他の表領域に移動できる。監査証跡表を自動セグメント領域管理の表領域に移動することで、バッファビジーやキャッシュフュージョンによる待機を軽減可能であるため、該当バージョン利用の場合にはぜひ利用してほしい。

DBA監査

 Oracle DatabaseではSYSDBAおよびSYSOPER権限で接続したユーザーの接続、データベースの起動・停止に関して、必ずAUDIT_FILE_DEST初期化パラメータで指定した位置にログが出力される。このログ出力を停止することはできない。

 さらにAUDIT_SYS_OPERATIONS初期化パラメータをTRUEに設定することで、SYSDBAおよびSYSOPER権限で接続したユーザーのすべての操作を監査しOSファイルに出力できる。この監査はDBA監査と呼ばれる。

 なお、SYSユーザーによる操作は標準監査やファイングレイン監査の監査証跡には残らない。そのため、SYSユーザーを監査するためにはこのDBA監査が必須となる。

アプリケーション・コンテキストの利用

 WEBアプリケーションサーバーなど現在多くのシステムで利用されている、3層構造のアプリケーションでは、コネクションプールや代表ユーザーを利用するため、アプリケーションを利用している実際に利用者情報がデータベースから把握できず、データベースで監査をとっても実際に誰がそのSQL文を発行したかわからないことがある。

 Oracle Databaseでは、接続ごとにアプリケーションが任意の値を設定できるメモリ空間を定義できる。このメモリ空間はアプリケーション・コンテキストと呼ばれる。アプリケーション・コンテキストはアプリケーション開発者が独自に定義することもできるが、Oracleでは事前定義のアプリケーション・コンテキストを用意しており、その一つにCLIENT_IDENTIFIER属性がある。このCLIENT_IDENTIFIERに設定された値はすべての監査の監査証跡に含まれるため、アプリケーションはここに実際の利用者情報を格納しておくことで、データベースで実施した監査に実際の利用者情報を含めることができる。

CLIENT_IDENTIFIER属性を利用したアプリケーションユーザーの監査
CLIENT_IDENTIFIER属性を利用したアプリケーションユーザーの監査

 たとえば、コネクションプールを利用しているJAVAのアプリケーションを利用している場合、アプリケーションがデータベース処理をおこなうためにコネクションプールからコネクションを獲得するメソッドの中にCLIENT_IDENTIFIERを設定する命令を1行追加するだけで監査証跡にアプリケーションユーザーを含めることができる。

 アプリケーションサーバーを利用している場合、アプリケーションサーバーのコネクションプール設定画面からコネクション獲得時の追加処理としてアプリケーションユーザー名をCLIENT_IDENTIFIERにセットする処理を追加するだけでアプリケーション側には全く手を加えずに設定できる。

 CLIENT_IDENTIFERは、PL/SQL、Oracle Call Interface(OCI)およびJDBCドライバを利用して設定できる。詳細は「セキュリティ・ガイド」マニュアルのデータベースに認識されないアプリケーションユーザーの識別でのクライアント識別子の使用を参照してほしい。

 Oracle Databaseには、いままでに紹介した監査機能のほかにもデータの変更履歴を後から確認できる機能がある。変更履歴を確認することで、監査証跡だけからは分からない実際のデータの値の変化を確認することができる。今回は更新履歴を後から確認できる機能として、LogMinerとTotal Recallを紹介する。

次のページ
LogMiner

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
oracletechアーカイブス!連載記事一覧

もっと読む

この記事の著者

oracletech.jp編集部(オラクルテックジェイピーヘンシュウブ)

oracletech.jpは、オラクル・データベースと関連製品をお使いいただいている皆様、開発に携わっているエンジニアの皆様、オラクル製品を販売いただいている皆様すべてにとって有益な情報源となることを目指しています。エンタープライズ系ITを中心に、製品情報や技術情報からテクノロジー・トレンド、キャンペーンやイベント/セミナー情報まで多岐にわたります。日本オラクルの社員だけでなく...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/3537 2012/02/10 18:09

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング