3.8 セキュリティー対策について
Application Serverを使用したシステムのセキュリティー対策とは、暗号化やユーザー認証などの機能で、データの改ざんやハッキングなどの脅威からデータやシステムを守ることです。Application Serverの機能としてのセキュリティー対策のほか、システムの運用方法を規定して脅威からデータやシステムを守るセキュリティー対策も必要です。
セキュリティー対策の方針
Application Serverを利用した標準的なシステム構成を基に、そこで想定される脅威を挙げ、その脅威への対応方針と対策を示します。 なお、Application Server上で動作するアプリケーションのセキュリティーについては、アプリケーションの開発元が考慮する内容のため、ここでは説明の対象外とします。
Application Serverを利用した標準的なシステム構成と想定される脅威
Application Serverを利用した標準的なシステム構成を例に、運用シナリオと想定される脅威を次に示します。
- Application Serverを利用した標準的なシステム構成
-
Application Serverを利用した標準的なシステム構成を次の図に示します。
- システムの構成要素
-
Application Serverを利用した標準的なシステムの構成要素を次の表に示します。
表3‒3 システムの構成要素 項番
要素
説明
1
社内
社内ユーザーおよびシステム運用者が作業するエリアです。このエリアは、社内LANおよび管理LANが敷設されていて、管理LANと社内LANは物理的に分離されています。社内の管理LANと社内LANは、どちらも社外からは物理的に分離されていることを想定しています。
2
マシン室
システム構築者 が作業するエリアです。セキュリティーを確保するため、運用管理サーバマシン、アプリケーション実行環境マシン、データベースサーバマシンなどを配置しています。
このエリアは、入退室管理などが厳格に行われているため、社内で一番セキュリティーレベルが高いことを想定しています。
3
社内LAN
社内ユーザーが使うPCとアプリケーションとの間で、業務用データをやりとりするためのLANです。
4
管理LAN
システム運用者が使うPCとドメイン管理サーバとの間で、管理用データをやりとりするためのLANです。
5
DMZ
社内LANとWWWの間に設置された隔離されたネットワーク領域です。
6
ドメイン管理サーバ
Application Serverがインストールされた複数のアプリケーション実行環境マシンを、ドメイン単位にグループ化して運用を管理するサーバです。
7
運用管理サーバマシン
ドメイン管理サーバがインストールされているマシンです。アプリケーション実行環境マシンの運用を管理します。
8
アプリケーション実行環境マシン
Application Serverがインストールされているマシンです。アプリケーションを管理します。
9
データベースサーバマシン
DBMSが動作するサーバです。アプリケーションが使用することを想定しています。
なお、データベースのセキュリティー機能は、Application Serverの管理対象外です。
10
スイッチ
IPアドレスによるルーティングの制御をします。
11
ファイアウォール
IPアドレスとポート番号などによるアクセス制御ができます。
12
ハードウェアロードバランサー/SSL
アプリケーション実行環境マシンへのリクエストを分散させることができます。SSL通信をサポートしているため、暗号化した通信もできます。
- システムの運用シナリオ
-
Application Serverを利用した標準的なシステム構成図を基にした運用シナリオを次に示します。
-
社外ユーザーは、PC にインストールされたWeb ブラウザーを使用してHTTPやWebSocketでアプリケーションにアクセスし、インターネット経由でシステムを利用します。
なお、社外ユーザーは、Webサービス(JAX-WS、JAX-RS)やRMI/RMI-IIOPを使用したアクセスはしないと想定します。
-
社内ユーザーは、社内から業務用のPC にインストールされたWeb ブラウザーまたはアプリケーションのクライアントを利用してアプリケーションにHTTP(SOAP/REST含む)やWebSocketでアクセスし、社内LAN 経由で業務を行います。
なお、社内ユーザーは、RMI/RMI-IIOPを使用したアクセスはしないと想定します。
-
システム運用者は、社内から管理用のPC にインストールされたWeb ブラウザーまたはApplication Serverの管理コマンドを使用してドメイン管理サーバ にアクセスし、管理LAN 経由で運用時の管理をします。
-
システム構築者 は、運用管理サーバマシン、アプリケーション実行環境マシンおよびデータベースサーバマシンに直接アクセスし、セットアップおよび設定変更をします。
-
システム構築者 は、マシン室から、管理用のPC にインストールされたWeb ブラウザーまたはApplication Serverの管理コマンドを使用してドメイン管理サーバ にアクセスし、複数のアプリケーション実行環境マシンの管理をします。
-
ドメイン管理サーバ はシステム運用者あるいはシステム構築者 から受けた指示を各アプリケーション実行環境マシンに送信し、アプリケーション実行環境マシン上のApplication Serverプロセスの起動、停止、および設定変更をします。
-
- 想定されるシステムへの攻撃
-
Application Serverを利用したシステムに対する攻撃者による脅威を次に示します。
-
攻撃者Aは、インターネット上からアプリケーション実行環境マシンを直接攻撃します。
-
攻撃者Bは、社内LAN に接続している業務用のPC から、不正にアプリケーションへアクセスし、攻撃します。
-
攻撃者Cは、システム運用者になりすまして、管理LANに接続している業務用PCから不正にシステムへアクセスし、ドメイン管理サーバやアプリケーション実行環境マシンを攻撃します。
-
システム上で想定される脅威に対するセキュリティーポリシー
Application Serverを利用したシステムのセキュリティーポリシーの想定を示します。
- ネットワークのセキュリティーポリシーの想定
-
-
レイヤー3までのネットワークに関するセキュリティーでは、次の内容を考慮して設計します。
社外からのパケットは、ハードウェアロードバランサー/ファイアウォールによって通常使用されるポートに限定したアクセスに制限する。
社内LANおよび社外からのパケットは管理用のLANに送信されないようにする。
-
レイヤー4以上のネットワークに関するセキュリティーでは、次の内容を考慮して設計します。
Java EEの標準仕様の範囲内で対応し、そのほかについてはアプリケーション開発者の責任にする。
-
管理LANのネットワークに関するセキュリティーでは、次の内容を考慮して設計します。
管理LANは社内LANとは独立しているが、悪意の有無に関係なく、攻撃者に接続させないようにする。
-
- 物理的操作のセキュリティーポリシーの想定
-
-
社外は、次の内容を考慮して設計します。
悪意のある人物がいる可能性があるため、社外からは、社内LANおよび管理LANに物理的に接続させないようにする。
-
社内は、次の内容を考慮して設計します。
悪意のある攻撃者がいるため、Application Serverへの物理的アクセスはネットワーク経由に限定する。
-
マシン室エリアは、次の内容を考慮して設計します。
悪意の有無に関係なく、攻撃者がエリアに入れないようにする。
-
- 開発環境のセキュリティーポリシーの想定
-
-
社内LAN上のマシンでアプリケーションを開発します。
-
開発者が悪意のあるコードをアプリケーションに混入させる恐れがないか確認します。
-
開発したアプリケーションに対して、有識者がレビューを実施します。
開発したアプリケーションがウイルスに感染していないことを確認する。
-
社内LAN上で開発したアプリケーションは、システム構築者が管理LANを経由してアプリケーション実行環境マシンにデプロイします。
管理LAN上のアプリケーション実行環境マシンに、アプリケーション開発者がアプリケーションを直接デプロイさせない。
-
- Application Serverのセキュリティーポリシー
-
想定する脅威に対するApplication Serverのセキュリティーポリシーを次に示します。
-
社内LANからのアプリケーションに対するアクセスでは、システム構築者が指定した権限の範囲内で運用します。
社内LANからのアプリケーションに対するアクセスでは、システム構築者が指定した権限を逸脱しないようにします。
指定したファイルアクセス権限を逸脱しないようにします。
-
社内LANからのアプリケーションに対するアクセスは盗聴・改ざん防止のための暗号化をサポートします。
-
社内LANからのアプリケーションに対するアクセスは、アプリケーションのログとApplication Serverのログをそれぞれ取得します。
-
社内LANからのアプリケーションに対するアクセスは認証機能をJava EEの標準仕様の範囲内で提供します。
-
運用管理機能に使用されるポートのセキュリティーは保証しないようにします。
-
Application Serverのファイルおよびメモリの耐タンパ性は保証しないようにします。
-
Application Serverのファイルおよびメモリで保護すべきデータの出力は制限しないようにします。
-
Application Serverからのネットワークを超えた出力については、セキュリティーに関連した設定データ(Java EEサーバの設定ファイルのdomain.xml、パスワード管理ファイルなど)は保護します。
-
システムに対する脅威と対策
Application Serverを利用した標準的なシステム構成図を基に、システムで発生するおそれがあるセキュリティー上の脅威について説明します。
図中の丸付き数字は脅威が想定される個所を示しています。
システムに対する脅威への対策を次の表に示します。なお、図中の丸付き数字と表の項番が対応しています。
項番 |
システムに対する脅威 |
脅威の概要 |
Application Serverの機能、および運用面での対策 |
セキュリティー機能の設定 |
---|---|---|---|---|
1 |
通信データののぞき見、および改ざん |
ネットワークに流れるパケットを不正に取得して業務データや管理データを不正に閲覧したり、パケット自体を改変してデータを不正に変更したりすることです。 |
|
Webサーバの動作環境を設定するファイル(httpsd.conf)で、SSL認証の暗号機能を指定します。 |
2 |
指令の改ざん |
ネットワークに流れるパケットを改変して、システム構築者や運用者が発行した指令を改変することです。 |
|
-- |
3 |
権限がないユーザーのアプリケーションへのアクセス |
攻撃者が、アクセス権限のないアプリケーションにリクエストを送信し、不正に業務を行うことです。 |
|
create-auth-realmサブコマンドで、名前付き認証レルムを作成し、アプリケーションのDDでセキュリティーロールを定義します。 |
4 |
権限がないユーザーの指令の実行 |
アクセス権がない攻撃者が、運用管理機能にアクセスし、不正に指令を実行することです。 |
|
create-domainサブコマンドでドメインを作成する際に、管理ユーザーのパスワードを指定します。管理ユーザーのパスワードは、change-admin-passwordサブコマンドで変更できます。 |
5 |
アプリケーションの脆弱性が連鎖的にJava EEサーバ全体に及ぼす影響 |
特定のアプリケーションが受信した想定外の電文によって脆弱性が発現し、それが連鎖的にJava EEサーバ全体へ影響することです。 |
|
Java SE が提供するシステムプロパティー(server.policyファイル)のロケーションを指定します 。 |
6 |
不正アクセスの否認 |
攻撃者が不正アクセスをしたにもかかわらず、攻撃者が不正アクセスの事実を否認することです。 |
|
Webサーバの動作環境を設定するファイル(httpsd.conf)で、Webサーバのアクセスログを設定します。 |
7 |
ショルダーハッキング |
攻撃者がシステム構築者やシステム運用者の肩越しにパスワードなどの情報を盗み見ることです。 |
|
-- |
8 |
サービス拒否攻撃 |
攻撃をしてサービスの提供ができない状態にすることです。 |
|
Webサーバの動作環境を設定するファイル(httpsd.conf)で、タイムアウト制御やパケットサイズの制限を指定します。 |