次に、データベース監査を行う上でのポイントについて説明します。
監査の目的やデータベースへの負荷などを考慮し、取得対象とすべきアクセスログを検討、決定します(表2)。
取得条件 | |
---|---|
取得対象 | 表、ユーザー、SQL文のタイプ、SQL文の成功と失敗、ログオンやログオフなど |
取得範囲 | 端末、プログラム、時間帯など |
表2 取得対象、範囲と条件 |
Oracle Databaseの監査機能を使用した場合、アクセスログの生成量によりデータベースへの負荷が大きく変わります。また、アクセスログが大量に生成される場合、取得したログ(監査ログ)を保存するためのリソースや後述するモニタリング時の負荷にも影響します。
全てのアクセスログを取得するのではなく、目的に応じて必要なアクセスログのみを取得するのがポイントです。
例えば、業務アプリケーション側で統制が取れている場合や業務アプリケーションの実行ログを取得している場合は、データベース監査で業務アプリケーションからのアクセスログを取得する必要はないと考えられます。この場合、データベース監査で取得対象とすべきは、業務アプリケーション以外からのアクセスログや特権ユーザーのアクセスログです。
監査ログは、改ざんされないように保全します。監査ログが容易に改ざんできるような状態では、ログの信頼性や証拠能力が低下してしまいます。データベース管理者や一般ユーザーが監査ログにアクセスできないよう保存形式や場所を検討します。
監査ログを保存しているだけでは、監査になりません。定期的にログをチェックし、不正アクセスの有無や統制の有効性を確認する必要があります。事前に設定した目的に従い、ログのチェック条件や周期を決定します。また、不正アクセス発生時にリアルタイムで警告を通知できる仕組みや定期的なレポート作成など、運用時を想定した仕組みも併せて検討します。
最後に、データベースの格納データやデータベースとアプリケーション間のネットワーク通信データを可読不能な状態にする「暗号化」について説明します。
データベースの格納データや通信データは、デフォルトでは暗号化されていません。データベースファイルやバックアップメディアが盗難、紛失した場合、それらのメディアから情報が漏えいする可能性があります。また、通信データは、スニッフィングなどで傍受される可能性があります。格納データや通信データを暗号化することで、前述したような情報漏えいを防ぐことができます。
Oracle Databaseでは、バージョンやエディションによって暗号化の方式や暗号化の可能なデータ型が異なります。Oracle Databaseの暗号化機能を検討する際は注意が必要です(表3、表4、図4)。
また、暗号化と復号の頻度が高い場合には、パフォーマンスへの影響が大きくなります。PCI DSSや個人情報保護法の順守など、暗号化実装に至った目的を考慮し、必要なデータのみを暗号化するのがポイントです。
データベースセキュリティ実装の流れと、主なデータベースセキュリティ対策の種類、ポイントを説明しました。データベースへのセキュリティ対策は費用や手間がかかり、データベースの負荷も高くなりがちです。そのため、運用ポリシーや設定の見直しによるアクセス制御と、有効性評価のための監査のみを行っているところが一般的です。
データベースへのセキュリティ対策を効果的に実現するためには、まず目的と目標(対策すべきこと)を明確にし、その達成に必要不可欠な対策のみを検討、実装することが肝要です。
今回の内容がデータベースセキュリティ対策を考える際の一助となれば幸いです。
【2018/12/27】2018年時点の状況に合わせて、内容を追記更新しました
【2009/08/26】初版公開
株式会社アシスト データベース技術本部所属。Oracle Databaseのサポートエンジニア、フィールドエンジニアを経てOracle Databaseやインサイトテクノロジー製品のプロダクト担当。日々酒を求め彷徨う初老の男。主な生息地は浅草橋、京成立石。
株式会社アシスト データ基盤ソフトウェア事業部所属(当時)。Oracle Databaseやインサイトテクノロジー社製品のフィールドエンジニアとして営業同行、構築、DB診断、トラブル対応、PISOなどを担当。お客様のお力になることを喜びとし、日夜奮闘中。趣味はサーフィンとキックボクシング。
Copyright © ITmedia, Inc. All Rights Reserved.