安全なデータベース運用、設定は具体的にどうすればいいのか(セキュリティ関連の初期化パラメーター一覧付き):今さら? 今こそ! データベースセキュリティ (9)(2/4 ページ)
本連載では、データベースセキュリティの「考え方」と「必要な対策」をおさらいし、Oracle Databaseを軸にした「具体的な実装方法」や「Tips」を紹介していきます。今回は安全なデータベース運用のための設定について紹介します。後半部分では、Oracle Databaseのセキュリティ関連初期化パラメーター一覧を掲載しました。
[保存版] Oracle Databaseのセキュリティ関連初期化パラメーター一覧
AUDIT_FILE_DEST
監査証跡をファイル出力(OS、XML)に設定している場合の出力ディレクトリを設定します。デフォルト監査、標準監査、ファイングレイン監査、DBA監査(SYS監査)の監査証跡を出力します。また、Data Guardのスタンバイなどデータベースが読み取り専用状態の場合、監査証跡の出力先をデータベースに指定していても、このディレクトリにファイル出力されます。
AUDIT_SYS_OPERATIONS
特権(SYSASM、SYSBACKUP、SYSDBA、SYSDG、SYSKMまたはSYSOPER権限)を利用して接続しているユーザーによって直接発行されたトップレベルSQLを監査し、OSファイルに出力します。DBA監査(SYS監査機能)と呼ばれます。標準監査の出力がXML形式に指定している場合、DBA監査の出力もXML形式となります。
標準監査、ファイングレイン監査ではSYSユーザーの操作は監査対象外なので、SYSユーザーの操作を監査するためにはこのDBA監査機能を利用するか、12c以降の統合監査(Unified Auditing)を利用する必要があります。デフォルト値はTRUEですが、FALSEに変更されているシステムをよく見掛けます。
AUDIT_TRAIL
標準監査の出力先を指定します。標準監査の監査証跡はデータベース内に出力するよりもXMLにファイル出力した方が性能が良い(オーバーヘッドが小さい)という検証結果もあり、またSQL文本文を監査証跡に残せるため推奨値はxml,extendedですが、12c以降では統合監査(Unified Auditing)を利用することを推奨します。デフォルト値はnoneですが、11gR1以降のDatabase Configuration Assistant(DBCA)で作成したデータベースでは初期設定としてdbが設定されます。
DBFIPS_140
12cR1から追加されたパラメーターです。米国標準技術研究所(NIST)による米国連邦情報処理標準(FIPS)の暗号モジュールに関するセキュリティ要件である140-2に合わせ、データベースを構成するためのものです。透過的データ暗号化(TDE:Transparent Data Encryption)、DBMS_CRYPTOパッケージプロシージャ、Oracle Net通信の暗号化利用時に、FIPS 140-2に準拠した暗号化アルゴリズム、ハッシュアルゴリズムしか利用できなくなります。デフォルト値はfalseです。
なお、このパラメーターを変更することにより、以下の影響を受ける可能性がありますのでご注意ください。
1. 性能への影響
FIPS 140-2対応のライブラリは非対応のライブラリに比べてロードに時間がかかります。各プロセスが最初に暗号化処理を実施するときに暗号化ライブラリをロードする際にオーバーヘッドがあります。1つ1つのオーバーヘッドは無視できるレベルかもしれませんが、専用接続(DEDICATED SERVER)構成で大量の接続処理がある場合には、注意が必要です。なお、このオーバーヘッドは最初に暗号化処理を実施するときのみで、一度ライブラリがロードされた後の暗号化処理性能への影響はありませんので、コネクションプールを利用しているシステムへの影響はほとんどありません。
2. 対応アルゴリズムの制限
FIPS 140-2に対応するためのパラメーターです。Oracle Databaseでマニュアルに利用できると記載されている暗号化アルゴリズム、HASHアルゴリズムのうち、非推奨(弱い)とされているものは利用できなくなります。これは暗号化ライブラリにはそのアルゴリズムがそもそも入っていないためです。例えば、ハッシュアルゴリズムのうちMD5は利用できなくなり、利用しようとすると以下のようにエラーとなります。
SQL> declare 2 vText varchar2(16) := 'hoge'; 3 vHashed raw(256); 4 begin 5 vHashed := dbms_crypto.hash(utl_i18n.string_to_raw(vText, 'al32utf8'), 6 dbms_crypto.hash_md5); 7 dbms_output.put_line(vHashed); 8 end; 9 / declare * 行1でエラーが発生しました。: ORA-28817: PL/SQLファンクションからエラーが戻されました。 ORA-06512: "SYS.DBMS_CRYPTO_FFI", 行131 ORA-06512: "SYS.DBMS_CRYPTO", 行72 ORA-06512: 行5
DBFIPS_140パラメーターをtrueに設定すると、既存のシステムやパッケージアプリケーションが動作しなくなる可能性があるため、ご注意ください。非推奨のアルゴリズムを実際に利用していなくても、内部的に非推奨のアルゴリズムを「使ってもよい」ことになっているだけで動作しなくなることもあります。例えばOracleの製品でいうと、APEX(Application Express)でDBFIPS_140パラメーターをtrueに設定できるのはAPEX 5.0以降であることが、My Oracle Support(MOS)のドキュメントID2097020.1「APEX and FIPS 140」として公開されています。
ENCRYPT_NEW_TABLESPACES
12cR2から新しく追加されたパラメーターです。
「新しく作成する表領域をデフォルトで暗号化するかどうか」を指定できます。デフォルト値はCLOUD_ONLYで、これはOracle Cloud環境では暗号化されますが、オンプレミス環境では暗号化されないモードです。オンプレミス環境でも、常に暗号化したい場合にはALWAYSを指定してください。なお暗号化アルゴリズムはAES128で固定となります。
また、暗号化自体はOracle Advanced Securityオプションの透過的データ暗号化(TDE:Transparent Data Encryption)を利用しますので、オンプレミス環境のデータベースでこのパラメーターを利用する場合には、オプションライセンスと事前に透過的データ暗号化機能を利用するための事前準備(暗号鍵)の作成が必要となります。
Oracle Cloud環境では、どのStandardを含むパッケージでも、暗号化機能を利用することができます。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 攻撃者が狙うのはデータベース、それなのに「データベース保護の対策が見落とされがち」ではありませんか?
企業活動において重要なのは何か。セキュリティ対策において「データベースの保護が見落とされがち」と、オラクルは警鐘を鳴らしている。データベースセキュリティの“考え方”をキーパーソンに確認する。 - 実録・4大データベースへの直接攻撃
- オラクルの考える「データベースセキュリティ」とは
日本オラクルは2016年2月10日、Oracle Databaseユーザー向けに、データベースや周辺システムに関するセキュリティ診断を無償で行う「Oracle Database セキュリティ・リスク・アセスメント」サービスの提供を開始すると発表した。 - データベースセキュリティの基本的な考え方
- 「データベースセキュリティ」の視点から見る「ユーザー管理」「監査証跡(ログ)管理」のポイント
システムの開発・運用に携わっているけれど、セキュリティに少し不安がある。そんなシステム担当者の方は多いのではないでしょうか? 本連載「システムインテグレーションとセキュリティ」では、“SI視点”に立って、システム担当者が考慮すべきセキュリティ上のポイントについて、身近な例を取り上げながら分かりやすく解説します。最初のテーマは、「データベースセキュリティ」です。