連載
» 2018年01月17日 05時00分 公開

安全なデータベース運用、設定は具体的にどうすればいいのか(セキュリティ関連の初期化パラメーター一覧付き)今さら? 今こそ! データベースセキュリティ (9)(2/4 ページ)

[福田知彦,日本オラクル株式会社]

[保存版] 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.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。