セキュリティを意識したネットワークシステム設計、5つのポイント(3/4 ページ)

» 2005年07月21日 13時34分 公開
[松浦孝康(JPRS),ITmedia]

 なお、ここではWebサーバの背後に、データを保存するサーバを設置した場合について書いたが、さらにもう一段、Webサーバとデータベースサーバの間でデータのやりとりを仲介するアプリケーションサーバを設置することで、よりセキュリティを高めることが可能である。

 データベースへのアクセスでよく使われるSQL言語は、言語そのものが複雑ということと、インジェクション攻撃に対して弱い性質がある。このため、Webアプリケーション側でのサニタイズ処理が複雑になるほか、データベースにパッチを当てることによって動作が変化するときには、Webアプリケーションにも修正が必要となるため、パッチ当てが遅れる、あるいは適用できないなどの問題が起こる。

 そこで、Webアプリケーションとデータベースへの橋渡しの役目を持つアプリケーションサーバを用意する(図4)。このサーバは、データベースへのアクセスをAPIを通して仮想化、単純化する。これにより、各サーバのソフトウェアがよりシンプル化されることによって、パッチ当てや修正が容易となる。またアプリケーション層では、冗長化や負荷分散の機能も併せ持つことが多いのでスケーラビリティの確保にもつながる。

 もちろんこの場合も、アプリケーションサーバ自体に対するパッチ適用やサニタイズをはじめとするWebアプリケーションのセキュリティ対策は欠かせない(関連記事参照)

図4 図4●アプリケーションサーバによるシステムの多段構成化

3:監視/検知が機能していること

 ここまで説明してきた方法で、システムを構築しても、監視/検知が機能していなければ、インシデント発生時に対応が遅れて、被害の拡大につながりかねない。そこで、実際に攻撃を受けたときに、発生したことをいち早く気づくことと、何が起きたかを把握することが重要となる。

 設計という観点では、まず、アクセス制限を実施するファイアウォールなどにおいてそれ自身が監視/検知の機能を持たせることができる。監視/検知を専用のサーバから集中して管理することもよく使われる構成だが、システムのさまざまな情報にアクセスできる必要があり、セキュリティ的には何でもできるシステムとなりやすい。そのため、監視/検知を行うサーバは、厳重なアクセス制限がかけられているネットワークに配置する。

 実際に監視/検知を行うためには、SNMP、SNMPTRAP、SYSLOGなどを利用してシステムの状態に関する情報を収集し、MRTG、NMS(Network Management System)などを利用して、システムの状態をグラフなどで可視化したり、システムのログを監視して、アラートを上げられるようなシステムを構成する。

4:管理/運用が容易であること

 ここまでの説明でところどころに、管理/運用を容易にするための設計ポイントについて説明したのでおさらいする。

  • 必要なサービスを限定することによる運用負荷の低減
  • データを分離することによってフロントエンドサーバを単機能化し、構成管理をシンプルにする
  • ファイアウォールなどによるアクセス制限の一元管理

 上記以外に、管理/運用を容易にするためのポイントとしては、ソフトウェアやハードウェアの選定が挙げられる。セキュリティを意識するという意味で、ソフトウェアやハードウェアを選定する際に検討すべき項目は、次の3つが挙げられる。

  1. 実績があるもの
  2. 使われている技術や製品そのものが十分「枯れている」こと
  3. 自信を持って運用できるもの

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ