ナビゲーションをスキップ

プロダクション環境のセキュリティ

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

プロダクション環境のセキュリティの確保

BEA では、使用しているプロダクション環境のセキュリティを確保するために、次のアクションを実装することをお勧めします。

 


WebLogic Server ホストのセキュリティ

WebLogic Server プロダクション環境のセキュリティは、動作しているマシンのセキュリティと同程度でしかありません。このため、物理マシン、オペレーティング システム、およびホスト マシンにインストールされたその他のすべてのソフトウェアをロックダウンすることが重要です。プロダクション環境での WebLogic Server ホストのロックダウンについてのヒントを次に示します。また、マシンおよびオペレーティング システムのメーカーに、適切なセキュリティ対策について確認してください。

表 2-1 WebLogic Server ホストのセキュリティ

セキュリティ アクション

説明

ハードウェアを物理的に保護する

権限のないユーザが、デプロイメント マシンまたはそのネットワーク接続を変更できないように、ハードウェアを安全な場所に置く。

オペレーティング システムが提供するネットワーク サービスを保護する

悪意のある攻撃者がオペレーティング システムにアクセスしたり、システム レベルのコマンドを実行することがないように、電子メール プログラムまたはディレクトリ サービスなどのネットワーク サービスについて専門家に確認してもらう。

ファイル システムを企業ネットワーク内の他のマシンと共有することを避ける。

不正アクセスを防ぐことのできるファイル システムを使用する

各 WebLogic Server ホスト上のファイル システムで、保護されているリソースへの不正アクセスが防止されていることを確認する。たとえば、Windows コンピュータでは、NTFS のみを使用する。

ホスト マシンのユーザ アカウント数を制限する

WebLogic Server ホストに必要以上のユーザ アカウントを作成せず、各アカウントに付与するファイル アクセス特権を制限する。ホスト マシンにシステム管理者特権を持つユーザ アカウントを 2 つ、WebLogic Server を実行する特権を持つユーザ アカウントを 1 つ作成するのが理想的。

アクティブなユーザ アカウントを定期的に再検討する。退職者があった場合にも見直す。

Background Information:
WebLogic Server コンフィグレーション データの一部と Java Server Pages (JSP) および HTML ページを含む URL (Web) リソースの一部は、ファイル システム上にクリア テキストで保存される。ファイルおよびディレクトリへの読み込み特権を持つユーザまたは侵入者が、WebLogic Server の認証計画および認可計画で確立するセキュリティ メカニズムを破る可能性がある。

システム管理者特権を持つユーザ アカウントを少なくとも 2 つ作成する

システム管理者ユーザ アカウントの 1 つは、ドメインの作成時に作成される。それ以外のユーザ アカウントを作成する。

少なくとも 2 つのシステム管理者ユーザ アカウントを作成することにより、辞書攻撃によって一方のユーザがロックアウトされた場合でも、もう一方のユーザがアカウント アクセスを保持できる。

システム管理者ユーザ アカウントの名前は、簡単に推測されないものにする

安全性を高めるために、「system」、「admin」、「administrator」などのすぐに分かるような名前をシステム管理者ユーザ アカウントに使用することは避ける。

パスワードを保護する

プロダクション マシンのユーザ アカウントのパスワードは、推測が難しいものに設定し、注意して守る必要がある。

パスワードの有効期限が定期的に切れるように、ポリシーを設定する。

クライアント アプリケーションでパスワードをコーディングすることは避ける。

各ホスト コンピュータで、1 つのユーザ アカウントにのみ WebLogic リソースへのアクセス権を付与する

各 WebLogic Server ホスト コンピュータでは、オペレーティング システムを使用して、WebLogic Server の実行用に特別なユーザ アカウント (wls_owner など) を設定する。

このオペレーティング システム (operating-system: OS) のユーザ アカウントには、以下の特権を付与する。

  • BEA ホーム ディレクトリ、WebLogic Server 製品ディレクトリ ツリー、およびドメイン ディレクトリのみに対するアクセス特権。

BEA ホーム ディレクトリとは共通ファイル用のリポジトリのことで、同じマシンにインストールされる複数の BEA Products が使用する。WebLogic Server 製品インストール ディレクトリには、プログラム ファイルを含む、システムにインストールする WebLogic Server ソフトウェア コンポーネントがすべて含まれる。ドメイン ディレクトリには、コンフィグレーション ファイル、セキュリティ ファイル、ログ ファイル、J2EE アプリケーション、および単一の WebLogic ドメイン用のその他の J2EE リソースが含まれる。WebLogic Server ホスト コンピュータに複数のドメインをインストールする場合、各ドメイン ディレクトリを保護する必要がある。

デフォルトでは、BEA インストール プログラムはすべての BEA ファイルとドメイン ディレクトリを単一のディレクトリ ツリーに格納する。このツリーの最上位ディレクトリの名前は bea である。WebLogic Server ファイルはすべてこのディレクトリ ツリーのサブディレクトリ (bea\weblogic810) に入り、ドメイン ファイルは別のサブディレクトリ (bea\user_projects\domains\domain1bea\user_projects\domains\domain2、...) に入る。

ただし、WebLogic Server 製品インストール ディレクトリおよびドメイン ディレクトリを BEA ホーム ディレクトリの外部に配置することもできる。詳細については、『インストール ガイド』の「WebLogic Platform インストールのためのディレクトリの選択」を参照してください。

  • BEA ホーム ディレクトリ、WebLogic Server 製品ディレクトリ ツリー、およびドメイン ディレクトリ内での読み込み、書き込み、および実行特権。

その他の OS ユーザには、BEA ファイルおよびドメイン ファイルへの読み込み特権、書き込み特権、または実行特権を付与しない。

これにより、WebLogic Server と同じマシンで実行されている他のアプリケーションの BEA ファイルおよびドメイン ファイルへのアクセスが制限される。このように保護しないと、その他のアプリケーションの一部は書き込み特権を得て、動的コンテンツを提供する JSP およびその他のファイルに悪意のある実行コードを挿入する可能性がある。そのファイルが次にクライアントに提供されると、挿入されたコードが実行される。

特別な OS ユーザ アカウント下で WebLogic Server の Windows サービスを実行する

Windows プラットフォーム上で、WebLogic Server インスタンスを Windows サービスとして実行できる。これにより、サーバ インスタンスは Windows コンピュータを起動するたびに自動的に起動するようになる。

WebLobic Server インスタンスを Windows サービスとして実行するように設定するには、Windows レジストリを修正する特権を持つユーザ アカウントで Windows コンピュータにログインする必要がある。詳細については、『WebLogic Server のコンフィグレーションと管理』の「WebLogic Server インスタンスの Windows サービスとしての設定」を参照。

WebLogic Server インスタンスを Windows サービスとして実行するのに、これらの管理者レベルの特権は不要である。その代わり、Windows サービスは WebLogic Server を実行するために作成した特別な OS ユーザ アカウント下で実行する必要がある。

WebLogic Server インスタンスが確実に特別な OS ユーザ アカウント下で実行されるように、Windows サービスの [プロパティ] ページでユーザ名とパスワードを指定する。詳細については、『WebLogic Server のコンフィグレーションと管理』の「サービスが実行されるユーザ アカウントの検証」を参照。

UNIX 上で保護されているポートにバインドするには、ユーザ ID を切り替える、またはネットワーク アドレス変換 (NAT) ソフトウェアを使用するよう、WebLogic Server をコンフィグレーションする

UNIX システムでは、特権を付与されたユーザ アカウント (大概の場合は root) 下で実行されるプロセスのみが、1024 未満のポートにバインドできる。

ただし、WebLogic Server のような長期にわたって実行されるプロセスは、これらの特権を付与されたアカウント下で実行してはならない。その代わり、以下の処理のいずれかを行うことができる。

  • 特権を付与されたポートにアクセスする必要のある各 WebLogic Server インスタンスについて、特権を付与されたユーザ アカウント下で起動し、特権を付与されたポートにバインドしてから、ユーザ ID を特権のないアカウントに変更するようサーバをコンフィグレーションする。

サーバ インスタンスの起動にノード マネージャを使用する場合は、セキュア ポート上でのみ、また単一の既知のホストのみから、リクエストを受け入れるようにノード マネージャをコンフィグレーションする。

Administration Console オンライン ヘルプの「UNIX での保護されたポートへのバインド」を参照。

  • WebLogic Server インスタンスを特権を持たないアカウントから起動し、ネットワーク アドレス変換 (NAT) ソフトウェアを使用して、保護されているポートを保護されないポートにマップするよう、ファイアウォールをコンフィグレーションする。BEA では、NAT ソフトウェアは提供していない。

プロダクション マシンで開発しない

まず開発マシンで開発し、開発が終わりテストが終了したら、コードをプロダクション マシンに移行する。これにより、開発環境でのバグが、プロダクション環境のセキュリティに影響を及ぼすことを防止できる。

開発ソフトウェアおよびサンプル ソフトウェアをプロダクション マシンにインストールしない

プロダクション マシンに開発ツールをインストールしない。開発ツールをプロダクション マシンにインストールしないことにより、侵入者が WebLogic Server プロダクション マシンに部分的にアクセスできても、影響を減らすことができる。

プロダクション マシンに、WebLogic Server のサンプル アプリケーションをインストールしない。BEA インストール プログラム上で、標準インストールにするかカスタム インストールにするかを尋ねられた場合は、以下の操作を実行する。

    1. [カスタム インストール] を選択する。[次へ] をクリックする。

    2. [コンポーネントを選択] ページで、[Server Examples] チェック ボックスからチェック マークをはずす。[次へ] をクリックする。

BEA インストール プログラムの残りのページの操作を完了する。

セキュリティ監査を有効にする

WebLogic Server が動作するオペレーティング システムが、ファイルおよびディレクトリ アクセスのセキュリティ監査をサポートする場合は、監査ログを使用して、拒否されたディレクトリまたはファイル アクセス違反をトラッキングすることを推奨する。管理者は、監査ログ用に十分なディスク スペースを確保する必要がある。

オペレーティング システムを保護する追加ソフトウェアの使用を検討する

多くのオペレーティング システムでは、プロダクション環境を保護するために、追加ソフトウェアを実行することができる。たとえば、侵入検知システム (Intrusion Detection System: IDS) を使用すると、プロダクション環境を変更しようとしたときに、検出できる。

使用可能なソフトウェアの情報については、使用しているオペレーティング システムのベンダに問い合わせる。

オペレーティング システムのサービス パックおよびセキュリティ パッチを適用する

推奨されているサービス パックおよびセキュリティ関連のパッチのリストについては、オペレーティング システムのベンダに問い合わせる。

最新の BEA のサービス パックを適用し、最新のセキュリティ勧告を実装する

サイトのセキュリティ問題を担当されている方は、新しいセキュリティ勧告についての通知を受け取るために、http://dev2dev.bea.com/advisories の「BEA Advisories & Notifications」ページで登録すること。

セキュリティ勧告で推奨されている対策は、「Advisories & Notifications」ページに掲載される。

また、各サービス パックがリリースされたら適用すること。サービス パックには、製品の各バージョンおよび以前にリリースされた各サービス パックのすべてのバグの修正が含まれている。サービス パックは、http://commerce.bea.com/downloads からダウンロードできる。

BEA Products でセキュリティ問題が発生した場合は secalert@bea.com に報告すること。

プロダクション環境で開発モードの WebLogic Server を実行しない

プロダクション モードでは、プロダクション環境向けにより適切でセキュアな設定で実行されるようにサーバを設定する。

Java Transaction API (JTA) トランザクション ログを保護する

トランザクションのモニタ」で説明しているように、トランザクション ログは複数のファイルで構成されている。これらのファイルは、改ざんされないようにオペレーティング システム固有の方法を用いて保護する必要がある。改ざんされた場合、トランザクションの回復が行えなくなる可能性がある。

JTA の移行を行うには、同じクラスタに属するすべてのサーバに、トランザクション ログ ファイルに対する書き込み、削除、および読み込みのパーミッションが必要になるが、別のドメインまたはクラスタに属するユーザによるアクセスは禁止する必要がある。


 

 


ネットワーク接続のセキュリティ

ネットワーク接続を設計するときには、管理が容易なセキュリティ ソリューションのニーズと、戦略上重要な WebLogic リソースを保護するためのニーズのバランスを取ります。次の表で、ネットワーク接続を保護するためのオプションを示します。

表 2-2 ネットワーク接続のセキュリティ

セキュリティ アクション

説明

ハードウェアおよびソフトウェアを使用して、ファイアウォールを作成する

ファイアウォールとは、2 つのネットワーク間のトラフィックを制限する機能のこと。ファイアウォールは、ソフトウェアとルータや専用ゲートウェイ マシンなどのハードウェアを組み合わせることができる。ファイアウォールでは、プロトコル、要求されたサービス、ルーティング情報、パケット内容、および送信元や送信先のホストやネットワークに基づいて、トラフィックの通過を許可したり否認したりするフィルタが使用される。また、アクセス権を認証されたユーザのみに限定できる。

WebLogic セキュリティ サービスでは、境界ベースの認証 (Web サーバ、ファイアウォール、VPN) を実行し、複数のセキュリティ トークン タイプおよびプロトコル (SOAP、IIOP-CSIv2) を扱う、サード パーティの ID アサーション プロバイダを使用できる。詳細については、『WebLogic Security の紹介』の「境界認証」を参照。

WebLogic Server でファイアウォールを使用する場合の詳細については、『WebLogic Server クラスタ ユーザーズ ガイド』の「クラスタ アーキテクチャのセキュリティ オプション」を参照。

WebLogic Server の接続フィルタを使用する

ハードウェアおよびサード パーティのソフトウェアを使用してファイアウォールを作成するだけでなく、WebLogic Server の接続フィルタを使用し、プロトコル、IP アドレス、および DNS ノード名に基づいてネットワーク トラフィックを制限することを検討する。

接続フィルタは、WebLogic Server ドメイン内のマシンがお互いにファイアウォールを通過せずにアクセスできる場合に最も適している。たとえば、ネットワークの外からのトラフィックの制限にはファイアウォールを使用し、ファイアウォールの後ろでのトラフィックの制限には WebLogic Server の接続フィルタを使用できる。

『WebLogic Security の管理』の「接続フィルタのコンフィグレーション」を参照。

管理トラフィックにドメイン全体の管理ポートを使用する

管理ポートにより、WebLogic Server ドメインのサーバ インスタンス間のすべての管理トラフィックが 1 つのポートに制限される。管理ポートを使用せずにサーバを実行した場合、アプリケーションが誤って機密のサーバ コンフィグレーションをネットワーク上でクリアテキストで送信するおそれがある。管理ポートを使用してサーバを実行することで、こうしたハプニングの発生する可能性を大幅に減らすことができる。さらに、管理ポートをコンフィグレーションしておくと、サービス拒否攻撃が発生した場合に便利 (管理ポート リクエストに対する制限により、リクエストを処理するためのリソースがサーバのそれ以外のリソースから切り離されているため)。

接続フィルタと組み合わせて使用すると、WebLogic Server インスタンスが、既知のマシンまたはサブセットからのみ、かつ単一のポートでのみ管理要求を受け入れるように指定できる。

管理ポートを有効にすると、クライアントは SSL を使用して Administration Console と対話しなければならなくなる。これにより、機密データを攻撃者によるネットワーク上の盗聴や一部のクロスサイト スクリプティング攻撃から保護できる。

ドメイン全体の管理ポートは、Administration Console の [DomainName|コンフィグレーション|全般] タブで有効にする。

Administration Console オンライン ヘルプの「ドメイン全体の管理ポートの有効化」を参照。


管理チャネルを有効にする

サーバ間の管理通信のセキュリティを確保するためには、管理チャネルを有効にする必要がある。管理チャネルがないと、一部の重要な管理メッセージがクリアテキストで渡され、メッセージの捕獲、修正、削除、および再送が可能となる。

『WebLogic Server のコンフィグレーションと管理』の「管理ポートと管理チャネル」を参照。

組み込み LDAP ポートを保護する

組み込み LDAP ポートを総当たり攻撃から保護するには、単一サーバ コンフィグレーションでは接続フィルタを使用して組み込み LDAP リスン ポートを閉じる。

この方法では複数サーバ コンフィグレーションにおける組み込み LDAP ポートは保護されないが、組み込み実装によって、ドメイン内のサーバからのアクセスのみを許可するのに使用される、ソース IP アドレスに基づくフィルタ処理がサポートされる。そのため、ドメイン内のマシンのみが LDAP ポートにアクセスできる。接続フィルタの使用の詳細については、『WebLogic Security プログラマーズ ガイド』の「ネットワーク接続フィルタの使い方」を参照。


 


 


 

 


データベースのセキュリティ

多くの Web アプリケーションでは、データの格納にデータベースが使用されます。WebLogic Server で使用されるデータベースとしては、Oracle、Microsoft SQL Server、および Informix が一般的です。これらのデータベースには、顧客リスト、顧客の連絡先情報、クレジット カード情報、およびその他の顧客データなど、Web アプリケーションの重要なデータが保存されることがよくあります。Web アプリケーションを作成するときは、どのデータをデータベースに保存し、そのデータを作成するためにどのようなセキュリティが必要なのかを考慮する必要があります。また、データベース メーカーが提供するセキュリティ メカニズムを理解し、それがセキュリティ ニーズを満たすうえで十分かどうかを判断する必要があります。提供されたセキュリティ メカニズムで不十分な場合は、重要なデータをデータベースに書き込む前に暗号化するなど、その他のセキュリティ技術を使用して、データベースのセキュリティを改善することができます。たとえば、クレジット カード情報は暗号化し、それ以外のすべての顧客データはプレーン テキスト形式でデータベースに保存します。

 


WebLogic セキュリティ サービスのセキュリティ

WebLogic セキュリティ サービスには、多彩で柔軟なソフトウェア ツールがあり、サーバ インスタンスで実行するサブシステムおよびアプリケーションの保護に使用できます。次の表は、使用しているプロダクション環境を保護するために推奨される基本機能のチェックリストです。

表 2-3 WebLogic セキュリティ サービスのセキュリティ

セキュリティ アクション

説明

最新の BEA のサービス パックを適用し、最新のセキュリティ勧告を実装する

サイトのセキュリティ問題を担当されている方は、新しいセキュリティ勧告についての通知を受け取るために、http://dev2dev.bea.com/advisories の「BEA Advisories & Notifications」ページで登録すること。

セキュリティ勧告で推奨されている対策は、「Advisories & Notifications」ページに掲載される。

また、各サービス パックがリリースされたら適用すること。サービス パックには、製品の各バージョンおよび以前にリリースされた各サービス パックのすべてのバグの修正が含まれている。サービス パックは、http://commerce.bea.com/downloads からダウンロードできる。

BEA Products でセキュリティ問題が発生した場合は secalert@bea.com に報告すること。

プロダクション対応のセキュリティ プロバイダをセキュリティ レルムにデプロイする

WebLogic セキュリティ サービスでは、複数のセキュリティ プロバイダをデプロイでき、各プロバイダでは特定のセキュリティ分野に対応するプラグイン可能なアーキテクチャが使用される。

WebLogic Server には、デフォルトで完全なセキュリティ ソリューションを提供する独自のセキュリティ プロバイダがある。ユーザ独自のセキュリティ プロバイダを購入、または記述した場合は、次の操作を実行する。

  • 正しくデプロイし、コンフィグレーションしていることを確認する。Administration Console の [セキュリティ|レルム|RealmName|プロバイダ] フォルダで、現在どのセキュリティ プロバイダがデプロイされているのかを確認できる。

  • セキュリティ プロバイダをデプロイしたレルムがデフォルトの (アクティブ) レルムであることを確認する。左ペインでセキュリティ レルム フォルダの名前をクリックし、右ペインでドメインのセキュリティ設定を指定して、Administration Console でレルムをアクティブにする。

プロダクション環境では SSL を使用し、デモ用のデジタル証明書を使用しない

重要なデータを危険から守るには、HTTP プロトコルではなく、SSL および HTTPS プロトコル (セキュア ソケット レイヤ (Secure Sockets Layer: SSL) での HTTP) を使用してデータの転送を保護する。

WebLogic Server には、開発のみの目的で、デモ用のプライベート キー、デジタル証明書、および信頼された認証局が用意されている。WebLogic Server をダウンロードするユーザは、これらのデジタル証明書に対してプライベート キーが付属する。デモ用の ID および信頼を使用しないこと。

Administration Console オンライン ヘルプの「キーストアおよび SSL のコンフィグレーション」を参照。

最も強力な暗号を有効にする

ダウンロードする WebLogic Server のバージョンでは、512 ビット キーおよび 40 ビット バルク暗号をサポートしている。

最強の暗号化 (1024 ビット キーと 128 ビット バルク暗号) を使用する場合は、BEA の販売代理店に問い合わせる。輸出規制があるため、このバージョンの WebLogic Server は、特定国でのみ利用可能である。

WebLogic Server で、デジタル証明書にセキュリティ制約が設定されていることを確認する

SSL を使用して通信するとき、デフォルトでは WebLogic Server は、認証局によって定義された Basic Constraint エクステンションを持たない証明書チェーンのデジタル証明書を拒否する。これにより、デジタル証明書のなりすましから Web サイトを保護する。

この設定を無効にする次のオプションを含むサーバ起動コマンドがないことを確認する。

-Dweblogic.security.SSL.enforceConstraints=false

このオプションは、起動スクリプトにある可能性がある。また、管理対象サーバの起動にノード マネージャを使用する場合は、Administration Console の [サーバ|ServerName|コンフィグレーション|リモート スタート] タブにある可能性がある。

開発環境では、7.0 (Service Pack 2) 以前のリリースで WebLogic Server が提供したデモ用のデジタル証明書との非互換性に対処するために、セキュリティ制約の設定を無効にしている可能性がある。プロダクション環境では、この機能を有効にする。

介在者の攻撃を避けるために、ホスト名検証が有効になっていることを確認する

WebLogic SSL はデフォルトで、接続が確立したホストが対象のパーティまたは認可されたパーティであることを検証する。ただし、サイトで WebLogic Server を実装するときに、ホスト名検証が無効になっている場合がある。

Administration Console の [サーバ|ServerName|コンフィグレーション|キーストア & SSL] タブに移動し、[詳細オプション] の [表示] をクリックして、ホスト名検証を有効化できる。

『WebLogic Security の管理』の「ホスト名検証の使い方」を参照。

Background Information:
ネットワークに配置されたマシンによって、無防備なパーティへのメッセージが取り込まれたり、変更されたり、再送信されると、介在者の攻撃が発生する。接続が確立したホストが対象のパーティまたは認可されたパーティであることを検証すると、介在者の攻撃を避けることができる。SSL クライアントは、SSL サーバのデジタル証明書を使用して、SSL サーバのホスト名を比較することで、接続を検証することができる。WebLogic Server のホスト名検証は、介在者の攻撃から SSL 接続を保護する。

サービス拒否攻撃を防ぐために外部チャネルでのリクエストのサイズおよび時間を制限する

サービス拒否攻撃を防ぐために、WebLogic Server ではメッセージのサイズ、およびメッセージの到着にかかる最大時間を制限できる。デフォルトの設定では、メッセージの最大サイズは 10MB に、メッセージのタイムアウトは 480 秒に制限される。

以下の対策を推奨。

  • 管理対象サーバが管理サーバからのメッセージを受信できるように、内部チャネルでのリクエストのサイズ制限を設定する。

  • 外部チャネルでのリクエストのサイズおよび時間を制限する。

  • 外部からではなく内部からのみアクセスできるように内部チャネルをコンフィグレーションする。

上記の対策を行うには、HTTP、T3、および IIOP プロトコルの場合、これらの設定を Administration Console の [サーバ|ServerName|プロトコル] タブでコンフィグレーションする。

Administration Console オンライン ヘルプで次のタスクを参照。

Background Information:
サービス拒否攻撃が実行されると、Web サイトは動作しているが、実行できない。ハッカーは、1 つまたは複数の重要な Web サイト リソースを使い果たしたり、削除したりする。

WebLogic Server インスタンスでサービス拒否攻撃を行うとき、侵入者は、サイズが非常に大きいリクエスト、実行に時間がかかるリクエスト、完了しないリクエストを多数使用してサーバを攻撃することにより、リクエストが完了する前にクライアントによるデータの送信を停止させる。

サーバに対して許可されるソケットの数を設定する

サービス拒否攻撃を防ぐために、サーバに対して許可されるソケットの数を制限する。これにより、オペレーティング システムの制限によって許可されたファイル記述子の数が超過しなくなる。

この設定は MaxOpenSockCount フラグを使用してコンフィグレーションできる。

Administration Console オンライン ヘルプで次のタスクを参照。

[サーバ] --> [コンフィグレーション] --> [チューニング]

ユーザ アカウントの攻撃を防ぐために、ユーザのロックアウトおよびログイン時間制限をコンフィグレーションする

デフォルトでは、WebLogic セキュリティ サービスでは、ユーザ アカウントの辞書攻撃に対して、最高度のセキュリティが提供されている。アカウントがロックされるまでの無効なログイン試行回数、アカウントがロックされるまでの無効なログイン試行期間、またはユーザ アカウントのロック時間を開発時に変更した場合は、設定内容を確認して、その設定がプロダクション環境に適しているかどうかを検証する必要がある。

これらの設定は、Administration Console の [セキュリティ|レルム|RealmName|ユーザ ロックアウト] タブで検証、または変更できる。

Administration Console オンライン ヘルプの「ユーザ アカウントの保護」を参照。

Background Information:
辞書攻撃では、ハッカーはスクリプトを作成し、「辞書」に登録されているパスワードを使用してログインを試みる。WebLogic Server のユーザ ロックアウトおよびログイン設定により、辞書攻撃からユーザ アカウントを保護することができる。

複数の認証プロバイダを使用する場合は、JASS 制御フラグを設定する

セキュリティ レルムに複数の認証プロバイダがコンフィグレーションされている場合、JAAS 制御フラグを設定して、プロバイダの順序および優先度をコンフィグレーションする。

JAAS 制御フラグは、Administration Console の [セキュリティ|レルム|RealmName|プロバイダ|認証|AuthenticatorName|全般] タブで設定する。

Administration Console オンライン ヘルプの「JAAS 制御フラグの設定」を参照。

セキュリティ監査を有効にする

監査は、主要なセキュリティ イベントを WebLogic Server 環境に記録する処理である。WebLogic セキュリティ サービスが提供する監査プロバイダを有効にすると、イベントが DomainName\DefaultAuditRecorder.log に記録される。

Administration Console の [DomainName|コンフィグレーション|全般] タブで、管理変更の監査を有効に設定できる。

Administration Console オンライン ヘルプの「コンフィグレーション監査」を参照。

Administration Console の [セキュリティ|レルム|RealmName|プロバイダ|監査] ページで、監査プロバイダを有効に設定できる。

Administration Console オンライン ヘルプの「WebLogic 監査プロバイダのコンフィグレーション」を参照。

注意 :監査プロバイダを使用すると、少数のイベントのみが記録される場合でも、WebLogic Server のパフォーマンスが低下する場合がある。

監査レコードを定期的に確認し、セキュリティ違反または違反未遂を検出する。度重なるログインの失敗や、予期しないパターンのセキュリティ イベントに注目することで、重大な問題を防げる可能性がある。

デフォルトの WebLogic Server セキュリティ ロールにユーザおよびグループを正しく割り当てたことを確認する

デフォルトでは、すべての WebLogic リソースは、セキュリティ ロールのデフォルト セットに基づくセキュリティ ポリシーによって保護されている。

目的のユーザおよびグループをこれらのデフォルト セキュリティ ロールに割り当てる。

『WebLogic リソースのセキュリティ』の「セキュリティ ロール」を参照。

システム管理者特権を持つユーザ アカウントを少なくとも 2 つ作成する

システム管理者ユーザ アカウントの 1 つは、ドメインの作成時に作成される。それ以外のユーザ アカウントを作成し、Admin セキュリティ ロールを割り当てる。システム管理者ユーザ アカウントの作成時には、簡単に推測されないユニークな名前にする。

少なくとも 2 つのシステム管理者ユーザ アカウントを作成することにより、辞書攻撃や総当たり攻撃によって一方のユーザがロックアウトされた場合でも、もう一方のユーザがアカウント アクセスを保持できる。

WebLogic Server が HTTP 応答で名前およびバージョン番号を送信しないように考慮する

デフォルトでは、WebLogic Server のインスタンスが HTTP リクエストに応答するとき、HTTP 応答ヘッダには、サーバ名および WebLogic Server のバージョン番号が含まれる。攻撃者が WebLogic Server の特定のバージョンの脆弱性についての知識がある場合、これによりセキュリティ リスクが発生する可能性がある。

WebLogic Server インスタンスがその名前およびバージョン番号を送信しないようにするには、Administration Console で [Send Server Header を有効化] 属性を無効にする。この属性は、[サーバ|ServerName|コンフィグレーション|プロトコル|HTTP] タブの [詳細オプション] セクションにある。


 


 


 

 


アプリケーションのセキュリティ

WebLogic Server ドメイン内の WebLogic リソースのセキュリティ対策業務のほとんどはサーバに関するものですが、個々のアプリケーションに対して行うセキュリティ業務もあります。一部のセキュリティ オプションについては、WebLogic セキュリティ サービスを使用すると、サーバまたは個々のアプリケーションのいずれの分担であるのかを判断できます。プロダクション環境にデプロイする各アプリケーションについて、次の表の項目を確認して、そのリソースが保護されていることを確認してください。

表 2-4 アプリケーションのセキュリティ

セキュリティ アクション

説明

どの技術が Web アプリケーションおよび EJB を保護しているのかを判断する

デフォルトでは、各 Web アプリケーションおよび EJB はデプロイメント記述子 (XML ファイル) を使用して、保護されたリソースおよびそれにアクセスできるセキュリティ ロールを宣言する。

Web アプリケーションおよび EJB デプロイメント記述子でセキュリティを宣言せずに、Administration Console を使用して、Web アプリケーションおよび EJB へのアクセスを保護するセキュリティ ポリシーを設定することができる。この技術により、すべての Web アプリケーションおよび EJB に対するセキュリティを、1 つの場所から集中管理できる。

これらの 2 つの技術を組み合わせ、URL (Web) または EJB リソースの初期デプロイメントで、既存のデプロイメント記述子からセキュリティ コンフィグレーションをコピーするように WebLogic Server をコンフィグレーションできる。これらのセキュリティ コンフィグレーションをコピーした後は、Administration Console を使用して更新できる。

『WebLogic リソースのセキュリティ』の「セキュリティ ロール」を参照。

HTML コメント タグではなく、JSP コメント タグを使用する

エンド ユーザを対象としていない JSP ファイル内のコメントには、HTML 構文の <!-- ... --> ではなく、JSP 構文の <%/* ... */%> を使用する。JSP コメントは、JSP がコンパイルされると削除され、表示できなくなる。

プロダクション マシンには未コンパイルの JSP およびその他のソース コードをインストールしない

常に、ソース コードをプロダクション マシンに置かないようにする必要がある。ソース コードにアクセスすると、侵入者はセキュリティ ホールを発見できる。

JSP をプリコンパイルし、コンパイルされた JSP のみプロダクション マシンにインストールすることを検討する。JSP のプリコンパイルの詳細については、『WebLogic JSP プログラマーズ ガイド』の「JSP のプリコンパイル」を参照。

SSL を使用するようにアプリケーションをコンフィグレーションする

web.xml ファイルの user-data-constraint 要素で transport-guaranteeCONFIDENTIAL に設定する。

『WebLogic Server Web アプリケーションの開発』の「security-constraint」を参照。

SSL を使用してトランザクション データの整合性を保証する

『WebLogic Security プログラマーズ ガイド』の「SSL を使用するアプリケーションの記述」で説明しているように、BEA WebLogic Server は、WebLogic Server クライアントとサーバ、Java クライアント、Web ブラウザ、および他のサーバの間で転送されるデータを暗号化するためにセキュア ソケット レイヤ (SSL) をサポートしている。RMI 呼び出しによって転送されるトランザクション データの整合性を保証するためには、アプリケーションで SSL を使用する必要がある。

アプリケーションは、RMI を使用してリモート呼び出しを行い、EJB や JDBC リソースなどのリモート オブジェクトを呼び出すことができる。これらの RMI 呼び出しがトランザクションのスコープ内で行われた場合、そのトランザクション コンテキストは RMI 呼び出しとともに伝播される。

したがって、トランザクションのスコープ内でリモート呼び出しを行うアプリケーションでは、トランザクション コンテキスト、アプリケーション データ、およびセキュリティ コンテキストが改ざんされないように、SSL を使用する必要がある。改ざんされた場合、データの整合性に影響が生じる可能性がある。

Servlet サーブレットを使用しない

プロダクション環境での Servlet サーブレットの使用はお勧めしない。

代わりに、サーブレットを URI に明示的にマップする。プロダクション環境で Web アプリケーションを使用する前に、すべての Web アプリケーションから、WebLogic サーブレットと Servlet サーブレットの間の既存のマッピングをすべて削除する。

サーブレットのマップの詳細については、『WebLogic Server Web アプリケーションの開発』の「サーブレットのコンフィグレーション」を参照。

プロダクション環境で、FileServlet をデフォルト サーブレットとして使用しない

プロダクション環境で FileServlet サーブレットをデフォルト サーブレットとして使用することはお勧めしない。

デフォルト サーブレットの設定の詳細については、『WebLogic Server Web アプリケーションの開発』の「デフォルト サーブレットの設定」を参照。

すべての WebLogic セキュリティ ポリシーを確認する

WebLogic Server 7.0 では、ACL に代わってセキュリティ ポリシーが使用され、WebLogic リソースに誰がアクセスしたのかを判断する。

WebLogic リソースからセキュリティ ポリシーを削除していないこと、およびセキュリティ ロールの割り当てによってユーザに目的のアクセス権を提供していることを確認する。

WebLogic リソースのセキュリティ』を参照。

アプリケーションのセキュリティを検査する

アプリケーションにセキュリティの脆弱性がもたらされるおそれのある典型的な事例がある。これらの事例の多くは、OWASP (Open Web Application Security project) などの第三者組織によって定義されている (よくある問題のリストについては http://www.owasp.org/documentation/topten.html を参照)。

Java ではネイティブ コードが Java セキュリティの範囲外に位置付けられているので、特に問題となるのは Java ネイティブ インタフェース (JNI) を使用するコードである。Java ネイティブ コードが逸脱した動作をしても、それを制約できるのはオペレーティング システムだけである。つまり、Java ネイティブ コードは WebLogic Server が行えることを何でも行える。この脆弱性は、バッファ オーバーフロー エラーがネイティブ コードでよくある問題であり、任意のコードを導入できるという事実によってさらに複雑になる。

アプリケーションに信頼性のないコードが含まれる場合は、Java セキュリティ マネージャを有効にする

Java セキュリティ マネージャはパーミッションを定義し JVM 内で実行するクラスに強制的に付与する。多くの場合、脅威モデルでは悪意のあるコードが JVM で実行されていないため、Java セキュリティ マネージャは必要ない。ただし、サード パーティが WebLogic Server を使用し、未知のクラスが実行されている場合、Java セキュリティ マネージャが役立つ場合がある。

サーバ インスタンスで Java セキュリティ マネージャを有効にするには、サーバを起動するときに次の Java オプションを使用する。

-Djava.security.manager
-Djava.security.policy[=]=
filename

『WebLogic Security プログラマーズ ガイド』の「Java セキュリティ マネージャを使用しての WebLogic リソースの保護」を参照。

サーブレットまたは JSP がユーザの供給によるデータを返した場合に、HTML 特殊文字を置換する

ユーザが入力したデータを返す機能により、クロスサイト スクリプトと呼ばれるセキュリティの脆弱性がもたらされる。これは、ユーザのセキュリティ認可を盗用するために利用される可能性がある。クロスサイト スクリプティングの詳細については、http://www.cert.org/tech_tips/malicious_code_mitigation.html の「Understanding Malicious Content Mitigation for Web Developers」(CERT のセキュリティ勧告) を参照。

セキュリティの脆弱性をなくすには、ユーザが供給したデータを返す前に、そのデータをスキャンして HTML 特殊文字を探す。該当する文字が見つかれば、それらを HTML のエンティティまたは文字参照と置き換える。文字を置換することによって、ブラウザがユーザの供給によるデータを HTML として実行することが回避される。

『WebLogic JSP プログラマーズ ガイド』の「JSP でのユーザ入力データのセキュリティ」および『WebLogic HTTP サーブレット プログラマーズ ガイド』の「サーブレットでのクライアント入力のセキュリティ」を参照。


 


 


 

 

ページの先頭 前 次