今回はWebシステムを構築するにあたり、いくつかポイントを絞り、構成例を示します。システム構築をされる際の参考になればと思います。
このコラムで対象とする「Webシステム」とは、3階層からなる、「3階層アーキテクチャーシステム」を指します
各層はそれぞれ複数のハード・ソフトウェアを用い、システムの可用性、保守性を高めることが可能となり、セキュリティの確保はシステム構築上、最も重要なポイントになります。上記3階層モデルのシステムの場合において、3層全てにセキュリティを確保することが理想的です。
下記の構成例の場合において、セキュリティを確保するための具体的な方法を挙げていきます。
1層は直接外部へ公開する
2層、3層は外部へは公開しない
1-1) 1層は顧客、すなわち不特定多数のユーザがアクセスできることが前提となります。
1層のシステムで望ましいセキュリティ確保例を以下に挙げます。
1-1-a) ファイヤ ウォールを設置、必要なサービス(ポート)のみを公開する
1-1-b) SSLを導入する
プライバシーに関わる情報の漏洩を防ぐことができます
1-1-c) 必要なサービスのみを実行させる
1-1-d) 必要なサービスを実装するソフトウェアのセキュリティアップデートは最新の状態にする
1-1-e) ウィルス対策ソフトウェアを導入する
1-1-f) クロスサイトスクリプティング脆弱性の対策を実施する
この対策が施されていない場合、SSLを通過したあとの暗号化されていない情報が 悪意のあるユーザに取得される恐れがあります
ファイヤウォールは機能としてOS自身が実装している場合もありますし、専用ハードウェアも存在します
ファイヤウォール専用ハードウェア(アプライアンス)を用いる場合は1層のさらに上位(外部)へ設置することで 1層のハードウェアで動作するOSの負担を減らすことができます
但し、OS側での実装はシステムの負荷となる場合がありますし、専用ハードウェアは設定・管理がシステム管理側には負担となります。 ポートベースのアクセス制限が可能等のファイヤウォールサービスを ハウジング事業がサービスとして実施している場合、こうしたサービスを利用することで、 運用コスト、管理負担を同時に削減することも出来ます。
1-2-a) ファイヤ ウォールを設置する
ファイヤ ウォールのポリシーでポートを含むアクセス可能(イン/アウト)なホストを信頼できるホストのみに限定する
1-2-b) 必要なサービスのみを実行させる
1-2-c) 必要なサービスを実装するソフトウェアのセキュリティアップデートは最新の状態にする
1-2-d) ウィルス対策ソフトウェアを導入する
1層と基本的には同じだが1-2-a)のファイヤ ウォールのポリシーを厳しくします
万一1層のセキュリティが破