20.1.3 インスタンス・セキュリティの管理

Oracle Application Expressインスタンスを管理する場合のセキュリティに関するベスト・プラクティスについて学習します。

注意:

開発環境のセキュリティとパフォーマンスを確保するために、この機能はOracle Cloudで実行されているApplication Expressインスタンスでは使用できません。

関連項目:

Oracle Application Express管理ガイドセキュリティの構成

20.1.3.1 ログイン制御の作成について

管理者は、インスタンス全体に対して、または個々のワークスペースにログイン制御を構成できます。

ワークスペースの管理者および開発者は、Oracle Application Expressの開発環境にログインし、ワークスペース内で開発されたアプリケーションに対するエンド・ユーザーの認証を行うためのユーザー・アカウントを作成できます。

管理者は、インスタンス・レベルまたはワークスペースレベルでログイン制御を構成できます。たとえば、インスタンス管理者がOracle Application Express管理サービスでアカウント・ログイン制御を構成した場合、その構成は開発インスタンス全体ですべてのワークスペースの全Application Expressアカウントに適用されます。

インスタンス管理者がインスタンス全体でログイン制御を有効にしない場合は、各ワークスペース管理者がワークスペースごとに次の制御を有効にできます。

  • エンド・ユーザーのアカウント有効期限およびロック。

  • エンド・ユーザー・アカウントへのログイン試行失敗の最大回数。

  • パスワード存続期間(つまりエンド・ユーザー・アカウントのパスワードを使用できる期限が切れるまでの残りの日数)。

20.1.3.2 パブリック・ファイルのアップロードの有効化について

管理者は、「パブリック・ファイルのアップロードを許可」属性を使用して、認証されていないユーザーがファイルのアップロード機能を提供するアプリケーションでファイルをアップロードできるかどうかを制御できます

関連項目:

Oracle Application Express管理ガイドパブリック・ファイルのアップロードの制御に関する項

20.1.3.3 IPアドレスによるユーザー・アクセスの制限について

管理者は、インスタンスの管理、セキュリティ・ページで「IPアドレス別にアクセスを制限」属性の許容されるIPアドレスのカンマ区切りリストを入力して、Oracle Application Expressインスタンスへのユーザー・アクセスを制限できます。

関連項目:

Oracle Application Express管理ガイドIPアドレス別のユーザー・アクセスの制限に関する項

20.1.3.4 インスタンス・プロキシの指定について

管理者は、「インスタンス・プロキシ」属性を使用して、すべてのアウトバウンドHTTPトラフィックにプロキシを使用するようにOracle Application Expressインスタンス全体を構成できます。

インスタンス・レベルでのプロキシの設定は、アプリケーション・レベルまたはWebサービス参照で定義されているすべてのプロキシより優先されます。プロキシが指定されている場合、URLタイプのリージョン、Webサービスおよびレポート出力で、そのプロキシが使用されます。

関連項目:

Oracle Application Express管理ガイドインスタンス用のプロキシ・サーバーの構成に関する項

20.1.3.5 Secure Sockets Layerの使用について

Secure Sockets Layer(SSL)は、インターネット上に転送されるデータのセキュリティを管理するためのプロトコルです。SSLは、HTTPSプロトコルを使用してWebアプリケーションに実装されます。機密データが暗号化されていない(クリアテキストの)通信チャネルに送信されないように、SSL (HTTPSプロトコル)を使用してOracle Application Expressアプリケーションを実行することをお薦めします。

管理者は、「HTTPSが必要」属性および「アウトバウンドHTTPSが必要」属性を構成することで、Oracle Application Expressインスタンスとすべての関連アプリケーションでHTTPSを必要とするように構成できます。これらの属性を構成すると、アプリケーション・ビルダー内の認証済ページでは、ネットワーク通信を暗号化するHTTPSを要求することが強制されます。「HTTPSが必要」オプションを変更しても、Webサーバーにはまったく影響しません。これらのオプションが意味を持つためには、HTTPSに対してWebサーバーを有効化する必要があります。HTTPSの有効化についてさらに学習するには、使用する特定のWebサーバーのドキュメントを参照してください。

「HTTPSが必要」オプションは次のとおりです。

  • 常時 - すべてのアプリケーション(Oracle Application Express開発および管理アプリケーションを含む)にHTTPSを要求するように強制します。

  • 開発および管理 - Oracle Application Express内のすべての内部アプリケーション(つまり、アプリケーション・ビルダー、SQLワークショップ、インスタンス管理など)にHTTPSを要求するように強制します。

  • アプリケーション固有 - HTTPSをアプリケーション・レベル設定依存にします。

関連項目:

『Oracle Application Express管理ガイド』の、HTTPプロトコル属性の構成に関する項

20.1.3.6 RESTfulアクセスの有効化について

管理者は、「RESTfulアクセスを許可」属性を使用して、開発者がレポート・リージョンをRESTfulサービスとして公開できるかどうかを制御できます。

関連項目:

Oracle Application Express管理ガイドインスタンスのRESTfulサービスの有効化

20.1.3.7 「セッションを再結合」について

「セッションを再結合」属性を使用して、Oracle Application ExpressでセッションIDを含まないURLをサポートするかどうかを制御します。

ヒント:

セキュリティ上の理由から、管理者は、ワークスペース・レベルまたはインスタンス・レベルで「ホスト名の許可」属性を構成してワークスペース分離を実装する場合を除いて、「セッションを再結合」を無効にすることをお薦めします。ワークスペースの分離についてを参照してください。

セッションの再結合を有効にすると、URLにセッションIDが含まれていない場合、Oracle Application Expressはセッションcookieを使用して既存のセッションを結合しようとします。「セッションを再結合」を使用するには、管理者はアプリケーション・レベルまたはページ・レベルで「セッションを再結合」を有効にする必要があります。「セッションを再結合」にインスタンス・レベルでより制限の多い値が設定されている場合、これによりアプリケーションおよびページ設定が上書きされます。

セッション結合のサポートは便利ですが、複数の重大なセキュリティ・リスクが存在します。

  • セッション・ステートの悪意のある変更または他の変更のトリガー

    攻撃者がユーザーにアプリケーション・リンクをクリックさせた場合に、セッション・ステートの悪意のある変更または他の変更がトリガーされる可能性があります。このリスクのため、Application Expressには、データの変更を伴うリクエスト処理のタイミングを攻撃者が推測できないチェックサムが必要です。

  • アプリケーション間の予期しない変更のトリガー

    ユーザーが同じOracle Application Expressインスタンスの個別のタブで2つのアプリケーションを開いている場合、一方のアプリケーションが他方のアプリケーションで予期しない変更をトリガーする可能性があります。攻撃側のアプリケーションはハッカーによって作成されたか、攻撃者にコードの挿入を可能にするXSS脆弱性がある場合があります。このアプリケーションは、他のアプリケーションとのユーザーの相互作用をシミュレートするAjaxコールを使用することがあります。

20.1.3.8 ワークスペースの分離について

ワークスペースの分離は、ブラウザ攻撃を防ぐ効果的な方法です。

ワークスペースを実際に分離する唯一の方法は、Oracle Application Express管理サービスで「ホスト名の許可」属性を構成して、URLで異なるドメインを強制することです。攻撃者と攻撃を受ける側のURLでドメインとホスト名が異なる場合、ブラウザの同一起点ポリシーによって攻撃が回避されます。

「ホスト名の許可」の構成によるワークスペースの分離は、ワークスペースの境界を越えようとするクライアント側攻撃への対策となります。このセキュリティ対策は、他のフレームワークおよび言語(Oracle Application Development Framework (ADF)やJavaなど)で作成されたアプリケーションを含むインスタンスのホストを使用してアクセスできるすべてのアプリケーションを信頼できる場合は、必要ありません。

20.1.3.9 セッション・タイムアウトの使用について

「セッション・タイムアウト」属性を構成して、アプリケーションの公開を抑制します。

ユーザーは、長時間コンピュータを操作しなかったり、アプリケーションを終了せずにコンピュータの元を離れることが頻繁にあります。このため、アプリケーションのユーザー・アイデンティティが、権限のないユーザーによって簡単に引き継がれる可能性があります。セッション・タイムアウトおよびアイドル・タイムアウトを設定すると、指定したタイムアウトの後、ユーザーは自動的にアプリケーションからログアウトされます。

「セッション・タイムアウト」属性には、次のものがあります。

  • 最大セッションの長さ

  • 最大セッション・アイドル時間

  • セッション・タイムアウト警告(秒)

  • セッション・タイムアウトURL (アプリケーション・レベル設定)

  • アイドル・タイムアウトURL (アプリケーション・レベル設定)

開発者は特定のアプリケーションのセッション・タイムアウトを構成でき、管理者はワークスペースまたはインスタンス全体のセッション・タイムアウトを構成できます。

関連項目:

20.1.3.10 パスワードの再利用の制限

サイト管理者は、すべての管理者アカウント、開発者アカウントおよびエンド・ユーザー・アカウントに対し、そのアカウントに以前使用されたパスワードの履歴に基づいて、パスワードの再利用を制限することができます。

パスワードの再利用を制限するには:

  1. SQL*Plusを起動して、Oracle Application Expressがインストールされたデータベースに、apex_administrator_roleロールを使用するか、SYSDBAロールを指定するSYSとして接続します。次に例を示します。
    • Windowsの場合:

      SYSTEM_DRIVE:\ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      
    • UNIXおよびLinuxの場合:

      $ sqlplus /nolog
      SQL> CONNECT SYS as SYSDBA
      Enter password: SYS_password
      

    ヒント:

    APEX_ADMINISTRATOR_ROLEは、別のデータベース・ロールを介さずに、ユーザーに直接付与する必要があります。

  2. 次の文を実行します。
    ALTER SESSION SET CURRENT_SCHEMA = APEX_200200;
    
    
  3. 次の文を実行します。
    BEGIN
    APEX_INSTANCE_ADMIN.SET_PARAMETER('PASSWORD_HISTORY_DAYS',365);
    COMMIT;
    END;
    /

    これによって、作成または更新するパスワードは、過去365日間にそのアカウント用として使用されていないものに制限されます。以前に使用されたパスワード(実際は、パスワードのハッシュ表現)は、Oracle Application Expressをインストールしたときから記録されます。

  4. この機能を無効にするには、パラメータ値に0を指定して前述のブロックを実行します。次に例を示します。
    BEGIN
    APEX_INSTANCE_ADMIN.SET_PARAMETER('PASSWORD_HISTORY_DAYS',0);
    COMMIT;
    END;
    /
    

関連項目:

20.1.3.11 WebシートでのSQLの使用について

SQL Webシート属性を許可属性を無効にすると、管理者は、WebシートのユーザーがSQLタグを使用して基盤となるデータベース・オブジェクトにアクセスしたり、SQLレポートを作成することを防ぐことができます。

関連項目:

Oracle Application Express管理ガイドWebシートでのSQLアクセスの有効化と無効化に関する項

20.1.3.12 RESTfulサービスの有効化について

管理者は、ワークスペース・レベルまたはインスタンス・レベルでRESTfulサービスを作成してアクセスする機能を制御できます。

「RESTfulサービスを有効にする」属性を無効にすると、開発者は、Oracle REST Data Services 2.0以上とともに使用されるSQLおよびPL/SQLにマップされるRESTful Webサービスを作成および編集できなくなります。

「RESTfulサービスを有効にする」を構成するには:

  • 「ワークスペース管理」で、Oracle Application Expressにサインインして、「管理」メニューをクリックします。「サービスの管理」「ワークスペース・プリファレンスの設定」「SQLワークショップ」を選択し、「RESTfulサービスを有効にする」属性を検索します。

  • 「インスタンス管理」で、Oracle Application Express管理サービスにサインインします。「インスタンスの設定」で、「機能構成」「機能構成」をクリックします。「REST」タブで、「RESTfulサービスを有効にする」属性を検索します。