この項で説明するOracle Database 11g リリース1(11.1)のセキュリティ機能と拡張機能には、今回リリースされたOracle Databaseに優れたアクセス制御、プライバシおよびアカウンタビリティを提供するための全体的な取り組みが反映されています。
次の各項では、Oracle Database 11g リリース1(11.1)の新しいセキュリティ機能について説明し、追加情報の参照先を示します。
新しいデータベースの作成時に、Database Configuration Assistant(DBCA)を使用すると、以前のリリースのOracle Databaseより安全性の高い構成を自動的に作成できます。次のような安全性の高い構成の設定を1回の操作で使用可能にできます。
デフォルト・プロファイルのパスワード固有の設定。この機能を使用すると、パスワードの期限切れやその他のパスワード・ポリシーを規定できます。詳細は、「デフォルト・プロファイルのパスワード設定の構成」を参照してください。
監査。この機能によって、データベース接続などの特定イベントの監査が使用可能になります。詳細は、「セキュリティに関連するSQL文および権限に対するデフォルト監査の使用」を参照してください。
セキュリティ強化を目的としたデータベースの構成方法は、第10章「Oracle Databaseの安全性の維持」を参照してください。
Oracle Databaseには、次の新しいパスワード保護が組み込まれています。
デフォルトのパスワードの容易な検索。以前のリリースのOracle Databaseからアップグレードした場合は、デフォルト・パスワードが設定されているユーザー・アカウントが存在していることがあります。セキュリティを向上させるため、これらのパスワードを検索して変更する必要があります。詳細は、「デフォルト・パスワードが設定されているユーザー・アカウントの検索」を参照してください。
パスワードの複雑度の検証。この機能によって、パスワードの設定または再設定時にユーザーが複雑なパスワードを設定することが保証されます。Oracle Databaseで提供されているデフォルト設定を使用してパスワードの複雑度を規定できます。または、カスタム要件を作成して、サイトのパスワードの複雑度に関する要件の安全性を強化できます。
組込みのパスワード検証の説明は、「パスワードの複雑度検証の規定」を参照してください。
大/小文字の区別の規定。詳細は、「パスワードでの大/小文字の区別の有効化または無効化」を参照してください。
パスワード・ハッシュ・アルゴリズムの強化。この拡張により、ユーザーは大/小文字や特殊文字の混在するパスワードを作成できます。詳細は、「パスワードのセキュリティへの脅威からのSHA-1ハッシュ・アルゴリズムによる保護」を参照してください。
SYSDBA
およびSYSOPER
権限のあるユーザーを認証するために、Secure Sockets Layer(SSL)とKerberosの厳密な認証方式を使用できるようになりました。
詳細は、「データベース管理者の厳密認証と集中管理」を参照してください。
自動ストレージ管理(ASM)の管理のみに使用されるSYSASM
システム権限が、Oracle Database 11g リリース1(11.1)に追加されました。ASMインスタンスに対する接続および管理には、SYSDBA
権限のかわりにSYSASM
権限を使用してください。
SYSASM
権限の詳細は、『Oracle Databaseストレージ管理者ガイド』を参照してください。
ここでは、暗号化の拡張機能について説明します。この項の内容は、次のとおりです。
Oracle Databaseでは、SecureFileと呼ばれる、処理速度が向上した新しいスケーラブルなラージ・オブジェクト(LOB)記憶域パラダイムがサポートされています。SecureFileでは、パフォーマンスの向上に加えて、効率的な圧縮、重複除外(重複データの結合)および暗号化がサポートされます。LOBデータをOracle Databaseで暗号化できるようになり、ランダムな読み書きに使用できます。
SecureFileの詳細は、『Oracle Database SecureFilesおよびラージ・オブジェクト開発者ガイド』を参照してください。この機能をサポートするためのCREATE TABLE
およびALTER TABLE
文の更新については、『Oracle Database SQL言語リファレンス』も参照してください。
このリリースでは、Oracle Data Pumpを使用してダンプ・ファイル・セット全体を圧縮および暗号化できます。オプションで、Oracle Data Pumpによるエクスポート時にデータ、メタデータまたは完全なダンプ・ファイル・セットを圧縮および暗号化できます。
詳細は、『Oracle Databaseユーティリティ』を参照してください。
透過的データ暗号化(TDE)では、暗号化されたソフトウェア・ウォレットにマスター鍵が格納され、この鍵を使用して列キーが暗号化され、その列キーを使用して列データが暗号化されます。多くのアプリケーションはこの鍵管理の方法で十分ですが、さらに厳密なセキュリティを必要とする環境では不十分な場合があります。暗号化操作を実行するにはマスター鍵がメモリーに存在している必要があるため、侵入者が様々な論理攻撃を実行してメモリーをダンプし、鍵を取り出す可能性があります。この安全性の低いシステム・メモリーの問題を回避するために、透過的データ暗号化機能は、ハードウェア・セキュリティ・モジュール(HSM)を使用するように拡張されています。この拡張により、マスター鍵の物理的および論理的保護が大幅に強化されています。
このリリースでは、マスター鍵を常にハードウェア・セキュリティ・モジュール内に格納し、ハードウェア・セキュリティ・モジュールを列キーの暗号化と復号化に限定しています。列キーはデータベースに戻されます。HSMデバイスとデータベース間の通信は、Advanced Securityオプションのネットワーク暗号化を使用して暗号化することをお薦めします。この新機能では、マスター鍵は常にHSMデバイスに存在するため、透過的データ暗号化のセキュリティが向上します。さらに、Oracle Real Application Clusters(RAC)環境内の複数のデータベースおよびインスタンス間で同じ鍵を共有できます。
透過的データ暗号化をハードウェア・セキュリティ・モジュールと統合するように構成する方法は、『Oracle Database Advanced Security管理者ガイド』を参照してください。
透過的表領域暗号化を使用すると、表領域全体を暗号化できます。この暗号化では、表領域内のすべてのデータが暗号化されます。アプリケーションが表領域にアクセスすると、アプリケーションに関連するデータ・ブロックが透過的に復号化されます。
表領域暗号化は、透過的データ暗号化の列暗号化の代替の方法を提供します。この方法では、暗号化する列を判別するためにアプリケーションを詳細に分析する必要がありません。特に、社会保障番号や医療レコードなど、個人を特定できる情報(PII)が格納されている列が多数あるアプリケーションに有効です。暗号化するデータが少ない表の場合は、透過的データ暗号化の列暗号化の方法を引き続き使用できます。
透過的暗号化の概要は、『Oracle Database 2日でセキュリティ・ガイド』を参照してください。透過的表領域暗号化の詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。
Oracle Databaseには、UTL_TCP
、UTL_SMTP
、UTL_MAIL
、UTL_HTTP
、UTL_INADDR
など、データベース・ユーザーがデータベースのネットワーク・サービスにアクセスできるように設計されたPL/SQLユーティリティ・パッケージのセットが用意されています。PL/SQLユーティリティ・パッケージの詳細は、『Oracle Database PL/SQLパッケージ・プロシージャおよびタイプ・リファレンス』を参照してください。
デフォルトのデータベース・インストールでは、これらのパッケージは、PUBLIC
ユーザーに付与されるEXECUTE
権限付きで作成されます。このリリースでは、これらのパッケージを使用するデータベース内のアプリケーションへのアクセスをデータベース管理者が制御できるようにして、これらのパッケージのセキュリティを強化しています。
詳細は、「外部ネットワーク・サービスに対するファイングレイン・アクセスの管理」を参照してください。
AUDIT
SQL文のBY SESSION
オプションが、BY ACCESS
句と同じ機能を持つようになりました。つまり、BY SESSION
とBY ACCESS
はどちらも、監査操作ごとに1つ監査レコードを書き込みます。この変更により、BY SESSION
句の動作が、データベース監査証跡とオペレーティング・システム監査証跡の両方に対して確実に同一になります。BY SESSION
オプションでは、BY ACCESS
とは異なる値が引き続き監査証跡に移入されます。どちらのオプションも指定しない場合は、BY ACCESS
がデフォルトです。
この変更は、データ定義言語(DDL)文以外のSQL文を監査する文オプションおよびシステム権限にのみ適用されることに注意してください。データベースでは、DDL文を監査するすべてのSQL文とシステム権限がBY ACCESS
句を使用して常に監査されていました。
詳細は、「文の実行数の監査」を参照してください。
この項の内容は、次のとおりです。
セキュリティ・オブジェクトは、Oracle XML DBリポジトリにXMLTypeオブジェクトとして格納されるようになりました。これらのセキュリティ・オブジェクトには、別の言語で検索または表示できるように、その言語に変換する必要がある文字列を格納できます。開発者は、変換した複数の文字列をXMLTypeで格納し、ユーザーの言語設定に応じてこれらの文字列を取得および操作できます。この機能の利点は、ユーザーのターゲット優先言語に依存しないアプリケーションの開発関連コストが削減されることです。
XMLTypeオブジェクトのセキュリティを構成する方法は、『Oracle XML DB開発者ガイド』を参照してください。
サービス指向アーキテクチャ(SOA)の操作にOracle XML DB HTTPサーバーを使用できるようになりました。この結果、SOA環境でデータベースを単純に別のサービス・プロバイダとして扱うことができます。セキュリティ管理者は、事前定義のロールであるXDB_WEBSERVICES
、XDB_WEBSERVICES_OVER_HTTP
およびXDB_WEBSERVICES_WITH_PUBLIC
を使用して、Oracle Database Webサービスとその関連データベース・オブジェクトへのユーザー・アクセスを制御できます。
Oracle Database Webサービスの構成方法は、『Oracle XML DB開発者ガイド』を参照してください。この機能の事前定義のロールに関する詳細は、表4-3「Oracle Databaseの事前定義ロール」を参照してください。
このリリースでは、管理者は、ディレクトリ内のデータベース・サービス情報への匿名アクセスを禁止し、LDAPディレクトリベースの名前参照の実行時に、クライアントに認証を要求できるようになりました。Microsoft Active Directoryベースの名前参照を使用している場合、Oracle Databaseでは、オペレーティング・システムベースのネイティブ認証が使用されます。Oracle Internet Directory(OID)ベースの名前参照を使用している場合は、ウォレットを使用して認証が実行されます。
ディレクトリのセキュリティの構成方法は、『Oracle Database Net Servicesリファレンス』を参照してください。
Oracle Call Interface(OCI)で使用できるセキュリティ拡張機能は、次のとおりです。
悪意のあるユーザーまたは侵入者が送信元の可能性がある不正なパケットのレポート。
不正なパケット受信時のクライアントまたはサーバー・プロセスの終了または再開。
認証の最大試行回数の構成。
Oracleデータベース・バージョンのバナー表示の制御。これは、バージョンによってデータベース・ソフトウェアに存在するセキュリティ上の脆弱性に関する情報を侵入者が検出できないようにするためです。
サーバー接続に対する「不正なアクセス」や「ユーザー・アクション監査済」などのバナー情報の追加。クライアントでこの情報を表示できます。
データベース管理者は、新しい一連の初期化パラメータを構成することによって、Oracle Call Interface開発者のためにこれらのセキュリティ拡張機能を管理できます。詳細は、「データベース通信のセキュリティを強化するためのパラメータ」を参照してください。Oracle Call Interfaceの詳細は、『Oracle Call Interfaceプログラマーズ・ガイド』も参照してください。