ヘッダーをスキップ
Oracle® Database 2日でセキュリティ・ガイド
11g リリース2(11.2)
B56296-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

2 データベースのインストール環境と構成の保護

この章の内容は次のとおりです。

データベースのインストール環境と構成の保護について

Oracle Databaseのインストール後、データベースのインストールおよび構成を保護する必要があります。この章のメソッドは、これを行うために一般的に使用される方法(すべてがデータベース・ファイルの特定の領域に対する権限の制限に関連)を示しています。

Oracle Databaseは、いくつかのオペレーティング・システムで使用できます。Oracle Databaseに関する詳細なプラットフォーム固有情報は、次のマニュアルを参照してください。

  • 『Oracle Databaseプラットフォーム・ガイドfor Microsoft Windows』

  • 『Oracle Database管理者リファレンス for Linux and UNIX-Based Operating Systems』

  • 使用しているプラットフォームの『Oracle Databaseインストレーション・ガイド』

デフォルトのセキュリティ設定の使用

新しいデータベースを作成した場合、Oracle Databaseは次のデフォルトのセキュリティ設定を提供します。

  • デフォルトの監査設定を有効にします。詳細は、「セキュリティ関連のSQL文および権限に対するデフォルト監査の使用」を参照してください。

  • 新しいパスワードまたは変更したパスワードの厳しい制約を作成します。新しいパスワードの要件については、「パスワードの作成要件」を参照してください。

  • PUBLICロールからCREATE EXTERNAL JOB権限を削除します。よりセキュリティを強化するために、CREATE EXTERNAL JOB権限をSYS、データベース管理者、およびこの権限が必要な信頼できるユーザーにのみ付与します。

  • セキュリティ関連の初期化パラメータおよびプロファイル・パラメータを設定します。表2-1に、変更されたパラメータ設定を示します。

    表2-1 初期化パラメータとプロファイル・パラメータのデフォルトのセキュリティ設定

    設定 10g のデフォルト 11g のデフォルト

    AUDIT_TRAIL

    NONE

    DB

    O7_DICTIONARY_ACCESSIBILITY

    FALSE

    FALSE

    PASSWORD_GRACE_TIME

    UNLIMITED

    7

    PASSWORD_LOCK_TIME

    UNLIMITED

    1

    FAILED_LOGIN_ATTEMPTS

    10

    10

    PASSWORD_LIFE_TIME

    UNLIMITED

    180

    PASSWORD_REUSE_MAX

    UNLIMITED

    UNLIMITED

    PASSWORD_REUSE_TIME

    UNLIMITED

    UNLIMITED

    REMOTE_OS_ROLES

    FALSE

    FALSE



    注意:

    アプリケーションがOracle Database 10g リリース2(10.2)のデフォルトのパスワード・セキュリティ設定を使用している場合、リリース11g のパスワード・セキュリティ設定を使用するようにアプリケーションを変更するまで、Oracle Database 10.2のパスワード・セキュリティ設定に戻すことができます。これには、undopwd.sqlスクリプトを実行します。

    リリース 11g のパスワード・セキュリティ設定を使用するようにアプリケーションを変更した後、データベースを手動で更新してビジネスのニーズに適したパスワード・セキュリティ構成にするか、secconf.sqlスクリプトを実行してリリース11gのデフォルトのパスワード設定を適用できます。

    undopwd.sqlおよびsecconf.sqlスクリプトは、$ORACLE_HOME/rdbms/adminディレクトリに格納されています。undopwd.sqlスクリプトはパスワード設定にのみ影響し、secconf.sqlスクリプトはパスワード設定と監査設定の両方に影響します。これらのスクリプトは、他のセキュリティ設定には影響しません。


Oracleデータ・ディクショナリの保護

ここでは、データ・ディクショナリを保護する方法を説明します。データ・ディクショナリは、スキーマ定義やデフォルト値など、データベースに関する情報を提供する一連のデータベース表です。

この項の内容は次のとおりです。

Oracleデータ・ディクショナリについて

Oracleデータ・ディクショナリは、データベースに関する情報を提供するデータベース表のセットです。データ・ディクショナリの内容は次のとおりです。

  • Oracle Databaseユーザーの名前

  • 各ユーザーに付与されている権限とロール

  • データベース内のすべてのスキーマ・オブジェクトの定義(表、ビュー、索引、クラスタ、シノニム、順序、プロシージャ、ファンクション、パッケージ、トリガーなど)

  • スキーマ・オブジェクトに割り当てられている容量と現在使用されている容量

  • 列のデフォルト値

  • 整合性制約情報

  • 様々なスキーマ・オブジェクトをアクセスまたは更新した人物などの監査情報

  • その他の一般的なデータベース情報

ある特定のデータベースのデータ・ディクショナリ表およびビューは、そのデータベースのSYSTEM表領域に格納されます。ある特定のデータベースのデータ・ディクショナリ表およびビューは、すべてユーザーSYSによって所有されます。SYSDBA権限を使用してデータベースに接続すると、データ・ディクショナリに対する完全なアクセス権が許可されます。SYSDBA権限へのアクセスは、パッチ適用やその他の管理操作などの必要な操作のみに限定することをお薦めします。データ・ディクショナリは、すべてのOracle Databaseの中心です。

データ・ディクショナリの内容は、データ・ディクショナリ・ビューを問い合せることで参照できます(各ビューの説明はOracle Databaseリファレンスを参照)。ただし、データ・ディクショナリのすべてのオブジェクトがユーザーに公開されるわけではありません。なお、データ・ディクショナリ・オブジェクトのサブセット(USER_%で始まるオブジェクトなど)は、読取り専用としてすべてのデータベース・ユーザーに公開されます。

例2-1に、DICTIONARYビューを問い合せることでデータ・ディクショナリに固有のデータベース・ビューのリストを検索する方法を示します。

例2-1 データ・ディクショナリに関連するビューの検索

sqlplus system
Enter password: password

SQL> SELECT TABLE_NAME FROM DICTIONARY;

データ・ディクショナリ保護の有効化

O7_DICTIONARY_ACCESSIBILITY初期化パラメータをFALSEに設定することで、データ・ディクショナリを保護できます。このパラメータにより、ANYシステム権限を持つユーザーがデータ・ディクショナリ(SYSスキーマ内のオブジェクト)に対してこれらの権限を使用することを防ぎます。

Oracle Databaseでは非常に細かく権限を設定できます。通常ANY権限と呼ばれる権限は、このような権限の1つであり、一般的にアプリケーション所有者や各データベース管理者にのみ付与されます。たとえば、アプリケーション所有者にDROP ANY TABLE権限を付与する場合があります。07_DICTIONARY_ACCESSIBILITY初期化パラメータを有効または無効に設定することで、ANY権限が偶発的または故意に使用されないように、Oracleデータ・ディクショナリを保護できます。

データ・ディクショナリ保護を有効にするには、次のようにします。

  1. Oracle Enterprise Manager Database Control(Database Control)を起動します。

    Database Controlを起動する手順については、『Oracle Database 2日でデータベース管理者』を参照してください。

  2. SYSとしてログインし、SYSDBA権限で接続します。

    • ユーザー名: 管理権限を持つユーザーの名前を入力します。この場合は、SYSと入力します。

    • パスワード: SYSユーザーのパスワードを入力します。

    • 接続モード: リストから「SYSDBA」を選択します。

    Oracle Enterprise Managerのデータベースのホームページ(データベースのホームページ)が表示されます。

  3. 「サーバー」をクリックして、「サーバー」サブページを表示します。

  4. 「データベース構成」セクションで「初期化パラメータ」をクリックします。

    「初期化パラメータ」ページが表示されます。

  5. リストで、O7_DICTIONARY_ACCESSIBILITYを検索します。

    「名前」フィールドでO7_(Oの文字)を入力し、「実行」をクリックします。パラメータ名の最初の数文字を入力できます。この場合、O7_によってO7_DICTIONARY_ACCESSIBILTYパラメータが表示されます。

    パラメータによっては、「SPFile」サブページの値を変更する必要があります。「SPFile」タブをクリックし、「SPFile」サブページを表示します。

  6. O7_DICTIONARY_ACCESSIBILTYの値をFALSEに設定します。

  7. 「適用」をクリックします。

  8. Oracle Databaseインスタンスを再起動します。

    1. 「データベース・インスタンス」リンクをクリックします。

    2. 「ホーム」をクリックしてDatabase Controlのホームページを表示します。

    3. 「一般」で「停止」をクリックします。

    4. 資格証明の起動/停止ページでは、資格証明を入力します。

      詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。

    5. 完全に停止した後に、「起動」をクリックします。


注意:

  • デフォルトのインストールでは、O7_DICTIONARY_ACCESSIBILITYパラメータはFALSEに設定されます。

  • SELECT ANY DICTIONARY権限は、GRANT ALL PRIVILEGES文には含まれませんが、ロールを使用して付与できます。ロールについては、「ユーザーへのロール付与のガイドライン」および 『Oracle Database 2日でデータベース管理者』を参照してください。


Oracle Databaseへのオペレーティング・システム・アクセスの保護のガイドライン

次のガイドラインに従うことにより、オペレーティング・システム・レベルでOracle Databaseへのアクセスを保護できます。

  • オペレーティング・システム・ユーザーの数を制限します。

  • Oracle Databaseホスト(物理コンピュータ)上のオペレーティング・システム・アカウントの権限(管理、root権限またはDBA)を制限します。ユーザーには、そのタスクの実行に必要な、最低限の権限のみを付与します。

  • Oracle Databaseホーム(インストール)・ディレクトリおよびそのコンテンツの、デフォルトのファイルおよびディレクトリの権限を変更する権限を制限します。認可されたオペレーティング・システム・ユーザーやOracle所有者でも、オラクル社からの指示がないかぎり、これらの権限を変更してはいけません。

  • シンボリック・リンクを制限します。データベースへのパスやファイルを作成するときに、ファイルおよびパスのいずれの部分も、信頼できないユーザーにより変更可能ではないことを確認します。ファイルおよびパスのすべてのコンポーネントは、データベース管理者またはrootなどの信頼できるアカウントにより所有されている必要があります。

    この推奨は、データ・ファイル、ログ・ファイル、トレース・ファイル、外部表、BFILEなど、すべてのタイプファイルに適用されます。

ランタイム機能への権限付与のガイドライン

多くのOracle Database製品は、Oracle Java Virtual Machine(OJVM)などのランタイム機能を使用します。データベース・ランタイム機能には、すべての権限を割り当てないでください。かわりに、データベースの外部でファイルおよびパッケージを実行する可能性のある機能の明示的なドキュメント・ルート・ファイル・パスに特定の権限を付与します。

次に、個々のファイル(太字)を指定した脆弱なランタイム・コールの例を示します。

call dbms_java.grant_permission('wsmith',
 'SYS:java.io.FilePermission','filename','read');

次に、ディレクトリ・パス(太字)を指定して、ディレクトリ内のすべてのファイルを保護する、より適切な(よりセキュアな)ランタイム・コールの例を示します。

call dbms_java.grant_permission('wsmith', 
 'SYS:java.io.FilePermission','directory_path','read');

インストール環境と構成のセキュリティに使用される初期化パラメータ

表2-2 に、Oracle Databaseのインストール環境と構成を保護するために設定する初期化パラメータを示します。

表2-2 インストール環境と構成のセキュリティに使用される初期化パラメータ

初期化パラメータ デフォルト設定 説明

SEC_RETURN_SERVER_RELEASE_BANNER

FALSE

リリース番号など、クライアント接続での製品バージョン情報の表示を制御します。侵入者は、データベース・リリース番号を使用して、データベース・ソフトウェアに存在するセキュリティ脆弱性に関する情報を検索できる場合があります。このパラメータを設定することで、詳細な製品バージョンの表示を有効または無効にできます。

このパラメータおよび類似パラメータの詳細は、『Oracle Databaseセキュリティ・ガイド』を参照してください。このパラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。

O7_DICTIONARY_ACCESSIBILITY

FALSE

SYSTEM権限に対する制限を制御します。このパラメータの詳細は、「データ・ディクショナリ保護の有効化」を参照してください。Oracle Databaseリファレンスでは、このパラメータについて詳細に説明しています。



関連項目:

初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。

初期化パラメータ値の変更

ここでは、Database Controlを使用して初期化パラメータの値を変更する方法を説明します。使用可能な初期化パラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。

初期化パラメータ値を変更するには、次のようにします。

  1. Database Controlを起動します。

  2. SYSDBA権限を持つユーザーSYSとしてログインします。

    • ユーザー名: SYS

    • パスワード: パスワードを入力します。

    • 接続モード: SYSDBA

  3. 「サーバー」をクリックして、「サーバー」サブページを表示します。

  4. 「データベース構成」セクションで「初期化パラメータ」をクリックします。

    「初期化パラメータ」ページが表示されます。

  5. 「名前」フィールドに、変更するパラメータの名前を入力し、「実行」をクリックします。

    たとえば、SEC_RETURN_SERVER_RELEASE_NUMBERパラメータを検索する場合は、SEC_RETURNと入力します。または、パラメータのリストを下にスクロールして、変更するパラメータを検索できます。

    パラメータによっては、「SPFile」サブページの値を変更する必要があります。「SPFile」タブをクリックし、「SPFile」サブページを表示します。

  6. 「値」フィールドで、新しい値を入力するか、リストが存在する場合はリストから選択します。

  7. 「適用」をクリックします。

  8. パラメータが静的な場合は、Oracle Databaseインスタンスを再起動します。

    初期化パラメータが静的かどうかを調べるには、『Oracle Databaseリファレンス』の説明を確認してください。サマリー表の変更可能設定が「いいえ」の場合は、データベース・インスタンスを再起動する必要があります。

    1. 「データベース・インスタンス」リンクをクリックします。

    2. 「ホーム」をクリックしてDatabase Controlのホームページを表示します。

    3. 「一般」で「停止」をクリックします。

    4. 資格証明の起動/停止ページでは、資格証明を入力します。

      詳細は、『Oracle Database 2日でデータベース管理者』を参照してください。

    5. 完全に停止した後に、「起動」をクリックします。