後編
Oracleセキュリティと性能劣化のトレードオフは?
アシスト伊藤 佳
2006/7/26
暗号化実装時のパフォーマンスへの影響 |
では、これら暗号化の機能を実装することによって、Oracleではどの程度パフォーマンスに影響を与えるのか、各暗号化方式を比較しながら検証結果を見てみます(図2)。
図2 暗号化方式ごとの秒間スループット N :暗号化しない DES :DBMS_OBFUSCATION_TOOLKITのTriple-DES 3key TDE_DES:TDEのTriple-DES TDE_AES:TDEのAdvanced Encryption Standard 100 :同時接続セッション数:100 200 :同時接続セッション数:200 |
図2の暗号化方式ごとの秒間スループットを比較すると、DBMS_OBFUSCATION_TOOLKITパッケージを利用した場合には、スループットが低下していることを確認できます。しかし、TDEを利用した場合にはスループットにあまり影響を与えていないことが分かりました。また同じTDEでも、暗号化アルゴリズムをDESからAESにした場合には、より効率よく暗号化/復号処理を実施できていることが分かります。同時ユーザー数が増加した場合には、パッケージを利用した実装とTDEによる実装で、その差がより顕著になりました(図3)。
図3 暗号化方式ごとのユーザーCPUリソースの使用率 |
図3の暗号化方式ごとのCPUリソース使用率でも、TDEで暗号化アルゴリズムをAESにした場合に、最もCPUリソースに影響を与えないことを確認できました。また、複数ノードのCPUで処理を分散できるReal Application Clusters(RAC)構成の方がシングルインスタンスと比べ、暗号化による影響が現れにくいという結果となりました。
パッケージを利用した実装の場合、暗号化/復号の処理において毎回パッケージを呼び出す動作が行われるため、CPUやスループットに大きな影響があることが分かります。一方のTDEを利用する場合は、パッケージによる実装時ほどのスループットやCPUへの影響は見られません。サーバプロセスが暗号化/復号の処理を行うため、データベースに対する負荷は低い動作であることが分かりました。TDEが登場したことによって暗号化の実装に対する敷居は低くなり、格納データの暗号化はより現実味を帯びてきたのではないかと思われます。
Oracleの監査機能 |
次に、データベースの監査機能を確認してみましょう。アプリケーション経由でアクセスするアプリケーション・ユーザーはアプリケーション側でログを取得することで監視することはできますが、アプリケーション開発、データベース管理、システム管理などの権限を持ったユーザーはアプリケーションを介さないでデータベースにアクセスすることができます。データベースには価値の高いデータが格納されており、情報漏えいの多くが内部の悪意のあるユーザーによる犯行であることを考えると、データベースにアクセスする「誰が」「どの」データに対して、「いつ」「どのような」アクセスを、「どこ」の端末から行ったのかをアクセスログとして管理することが重要であると思われます。
Oracleでは、以下のような監査機能が用意されています。
- 必須監査
管理者権限によるインスタンスへの接続や起動・停止を監査
- DBA監査
SYSユーザーでのセッションを監査
- 標準監査
特定の監査に対して取得される監査
- ファイングレイン監査
標準監査よりも細かな監査、イベントハンドラにより独自ルールでの監査を実装
- イベントトリガー
DML実行時にプロシージャが起動し監査を実施
- LogMiner
データベースに対する変更履歴をSQLに変換し、事後監査を行う
Oracle 10gから標準監査でSQLを取得できるようになり、ユーザーの操作をより細かく監査ログとして保持できるようになりました。Oracle9iから提供されたファイングレイン監査(FGA)では、標準監査よりもより細かな行や列レベルでの監査条件を設定できます。さらにイベントハンドラの機能により、指定した条件の監査が行われたときに任意の処理を実行できるため、独自の監査証跡への監査情報の出力や、管理者への警告メールの送信機能を実装することができます。
では、各監査の実装時のスループットやCPUへの影響度合いを検証結果から見ていきます(図4、図5)。
図4 監査方式ごとの秒間スループット NORMAL:監査なし AUDIT DB:標準監査 全表の全アクションに対する監査 AUDIT EXT:標準監査 AUDIT_TRAIL:DB_EXTENDED 全表の全アクションに対する監査 FGA ALL:ファイングレイン監査 全表の全アクションに対する監査 FGA SELECT:ファイングレイン監査 監査する表を限定しSELECTのみ監査 FGA EVENT:ファイングレイン監査 FGA SELECTに加え、イベントプロシージャで 独自表に監査ログを保存 FGA TRIGGER FGA SELECTに加え、DMLトリガーでDML監査を実施 |
図5 監査方式ごとの平均CPU使用率 |
図4および図5から各監査機能の影響度合いを見てみると、SQLの情報を取得する監査の方がSQLの情報を取得しない監査と比べ、秒間スループット、CPU使用率ともに影響を与えることが分かりました。また、監査証跡に監査情報を格納するための再帰SQLが増加したり、SQL文の収集で一時表領域が利用されるなど、SQLを取得しない場合と比べより多くのリソースを必要とします。
不正アクセスや情報漏えいの監査に備え、SQL文のレベルまで特定できる監査を実施することを考えると、より多くの情報を取得できることが望ましいといえますが、より多くのリソースが必要となるため既存のシステムに設定することは困難な場合が多く、また、監査証跡の保管方法や分析方法、あるいは複数バージョン、エディションが混在する環境で効果的に監査を行う場合には、Oracleの監査機能だけで監査を実施することに限界も感じられます。そこで、サードベンダ製の監査ソフトを導入し、バージョンやエディションの違いを吸収することも検討します。
2/3 |
Index | |
特集:日本版SOX法時代のOracleセキュリティ(後編) Oracleセキュリティと性能劣化のトレードオフは? |
|
Page
1 ・Oracleとセキュリティの守備範囲 ・格納データの暗号化 |
|
Page 2 ・暗号化実装時のパフォーマンスへの影響 ・Oracleの監査機能 |
|
Page 3 ・可及的な監査を行うには? |
日本版SOX法時代のOracleセキュリティ |
- Oracleライセンス「SE2」検証 CPUスレッド数制限はどんな仕組みで制御されるのか (2017/7/26)
データベース管理システムの運用でトラブルが発生したらどうするか。DBサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は、Oracle SE2の「CPUスレッド数制限」がどんな仕組みで行われるのかを検証します - ドメイン参加後、SQL Serverが起動しなくなった (2017/7/24)
本連載では、「SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します - さらに高度なSQL実行計画の取得」のために理解しておくべきこと (2017/7/21)
日本オラクルのデータベーススペシャリストが「DBAがすぐ実践できる即効テクニック」を紹介する本連載。今回は「より高度なSQL実行計画を取得するために、理解しておいてほしいこと」を解説します - データベースセキュリティが「各種ガイドライン」に記載され始めている事実 (2017/7/20)
本連載では、「データベースセキュリティに必要な対策」を学び、DBMSでの「具体的な実装方法」や「Tips」などを紹介していきます。今回は、「各種ガイドラインが示すコンプライアンス要件に、データベースのセキュリティはどのように記載されているのか」を解説します
|
|