.NETエンタープライズ
Webアプリケーション開発技術大全

Webアプリケーションのセキュリティデザイン基礎

マイクロソフト コンサルティング本部 赤間 信幸
2004/09/16
Page1 Page2 Page3 Page4

1.5 Webサーバにおけるセキュリティデザインの構成要素

 さて、実際のシステムでは、WebサーバやDBサーバだけでなく、WebサービスやLDAPサーバ、レジストリ、ファイルサーバなど、多数のサーバやリソースが関連しあって1つのシステムを構成することになる。このため、RBSセキュリティデザインの検討手順も自ずと複雑になる。例えば、図1-15のようなWebシステムを考えてみよう。

図1-15 実際のWebシステムにおけるセキュリティの検討要素
(クリックすると拡大します)

1.5.1 RBS適用時のセキュリティデザインの4要素

 図1-15のような複雑なWebシステムへのRBSの適用を考える際に、すべてを一度に考えようとするのは無理がある。このような場合には、まずシステムを構成要素に分解し、各構成要素について以下の4点を順番に考えていけばよい

・ クライアントの認証方式(Authentication)
  ・ そのサーバと対話しているクライアントが本物であることをどのような方法で確認するのか?
 
・ 内部における許可制御方式(Authorization)
  ・ ある処理の実施可否をどうやって確認・制御するのか?
 
・ クライアントからの通信のセキュア化(Secure Communication)
  ・ ネットワークアクセス時のリスクを低減するため、どのように通信を暗号化するのか?
 
・ 他リソースへのアクセス方法(Resource Access Strategy)
  ・ 他のサーバへアクセスする際、どのようなユーザとしてアクセスするのか?

 この4点がなぜ重要なのかは、図1-16を見れば一目瞭然である。図1-16のような点線の括りで見てみると、システムを構成するどの要素についても、

  1. アクセスしてきたクライアントを認証する。
  2. 内部において「やってよいこと」と「やってはいけないこと」を判断する。
  3. 必要に応じてクライアントとの通信を暗号化する。
  4. (さらに他のサーバにアクセスする場合には)どのようなユーザ名とパスワードを使ってアクセスするのかを決める。

の4つを必ず持っていることが分かる。

図1-16 アプリケーションセキュリティデザインの検討単位
(クリックすると拡大します)

1.5.2 アプリケーションセキュリティデザインのかなめ

 さらに、図1-17のような論理3階層・物理2階層型の典型的なWebシステムの場合に話を絞ると、話はより簡単になる。

図1-17 論理3階層・物理2階層型Webシステムにおけるアプリケーションセキュリティデザイン

 このようなシステムにおけるアプリケーションセキュリティデザインのかなめとなるのは、中央に存在しているWebサーバである。なぜならこのWebサーバは、ベースクライアントからのアクセスを受け、リソースへのアクセスを行う、一種の「ハブ」として機能しているからである。

 よって、この「ハブ」となるWebサーバへの出入りに関するセキュリティ制御方式(4点)を押さえれば、システム全体のセキュリティデザインの概要が自ずと定まってくる(図1-18)。

図1-18 ハブとなるWebサーバにおけるセキュリティ制御方式の4つの検討要素

 よって本書における解説も、まず「第2章 ASP.NET Webアプリケーションセキュリティ基礎」において、Webアプリケーションに関する認証・許可制御・通信のセキュア化ならびにリソースアクセスについて解説し、そののち、「第3章 SQL Serverデータベースセキュリティ基礎」において、SQL Serverに関する認証・許可制御・通信のセキュア化について解説を行う。やや長い道のりとなるが、図1-18の全体像を意識して読み進めて頂くとよいだろう。

1.6 Webアプリケーションのセキュリティデザインの基礎のまとめ

 本章で解説したキーポイントをまとめると、以下の通りである。

・ アプリケーションアーキテクトは、業務的なセキュリティ制御を行うためのロールベースセキュリティ(RBS)の効率的な実装方法を検討しなければならない
 
・ システム全体のアプリケーションセキュリティデザインを固めるためには、システムを構成する各構成要素に対して、以下の4点を定めればよい
  ・ 認証(Authentication)
    ◇ エンドユーザが本人であることをパスワードなどによって確認すること。
  ・ 許可制御(Authorization)
    ◇ 認証されたユーザが、ある作業を行ってよいのか否かを確認すること。
    ◇ 通常は、エンドユーザをグループ化したロールを基にして実施可否を判断する。
  ・ 通信のセキュア化(Secure Communication)
    ◇ 適宜、クライアントとの通信を暗号化すること。
  ・ リソースアクセスストラテジ(Resource Access Strategy)
    ◇ どのようなユーザアカウントとして他リソースにアクセスするのかを決めること。
    ◇ 基本的にはサーバ信頼セキュリティモデルを利用する。
 
・ 特に、論理3階層・物理2階層型Webシステムの場合には、中央に位置するWebアプリケーションに関して、上記4点を定めることが重要になる
 
.NETエンタープライズWebアプリケーション開発技術大全
Vol.4 セキュアアプリケーション設計編
定価 3,800円

赤間 信幸(マイクロソフト株式会社コンサルティング本部) 著
B5変型判/388p
ISBN 4-89100-430-4
日経BPソフトプレス発行


日経BPソフトプレスの書籍紹介ページへ
マイクロソフトプレスの書籍紹介ページへ
 
 

 INDEX
  .NETエンタープライズWebアプリケーション 開発技術大全
  Webアプリケーションのセキュリティデザイン基礎
    1.Webアプリケーションのセキュリティデザイン基礎
    2.認証(Authentication)と許可制御(Authorization)
    3.ロールベースセキュリティ(RBS)/リソースアクセスストラテジ
  4.Webサーバにおけるセキュリティデザインの構成要素
 
インデックス・ページヘ  「.NETエンタープライズWebアプリケーション開発技術大全」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間