スマートクライアントアーキテクチャ設計ガイド
Chapter 5 - Security Considerations
・認証
・権限
・入力データの妥当性確認
・機密データの取り扱い
・コードアクセスセキュリティ
・まとめ
スマートクライアントは頻繁にいくつかの異なる製品や技術の橋渡しをする配布アプリケーションである。これらのアプリケーションのセキュリティを管理することはとても能力の試されることである。サーバー上では、ネットワーク、サーバー自身、そしてアプリケーションを保護するアプローチを採用する必要がある。クライアント上では、(オペレーティングシステム、Microsoft .NETフレームワークを含む)プラットフォームのセキュリティ機能の利用、クライアントコードが実行できる特権操作(コードアクセスセキュリティ)、サーバープラットフォーム(ドメイン)とサーバーアプリケーションとの連動に専念にしたほうが良い。
効果的なセキュリティは多層防御(defense-in-depth)アプローチに依存する。スマートクライアントのセキュリティが高くなるにつれ、次のような事項を含むセキュリティの全ての側面を考慮することが大切になってくる。
多層防御アプローチとは、攻撃に対して防御を直列に並べて階層的に対処することで、機密情報 (守るべきもの) への被害を最小にするというアプローチ。マイクロソフト製品の基本的な考え方にもなっている。1 つの方法 (層) のみで最高のセキュリティを目指す道では、100% の安全性を確保することは現実的に考えて不可能である。そこで、複数の方法を重ね合わせて多層化することで、1 つが突破されても別の方法で防御しようというのが多層防御アプローチである。
「セキュリティ対策の要点解説 第1回 セキュリティ対策の土台」
http://www.microsoft.com/japan/technet/security/secnews/secpoint/secpoint0001.mspx
* 認証。認証されたユーザーだけがアプリケーションの全て、又は一部にアクセスすることができるように、クライアントアプリケーションのユーザーを一意に識別する。
* 許可制御。一意に識別されたユーザーが実行できる操作を決定する。これらの操作は、認証されたユーザーがアクセスを認められたリソース上のタスクや操作であるかもしれない。
* データの妥当性確認。適切で有効なデータのみがアプリケーションによって受け入れられていることを確認する。もし、最初にデータの妥当性確認を行わずにユーザーの入力を許可するならば、アタッカーは悪意のある入力を入れることによってアプリケーションを危険にさらすことができてしまう。
* 機密データの保護。これは、アプリケーションによって保管され、送信された(パスワードや極秘のビジネスデータのような)機密データの安全を保障することを意味する。機密データの暗号化はプレーンテキスト内のデータが利用不可能であることを保障する。アルゴリズムの選択次第では、整合性を保った状態で情報が改ざんされていないことも保障する。
* 監査とロギング。これにはイベントとユーザーアクションの記録を保持することも含まれている。サーバー上では、主なユーザーのアクションと行動をロギングすることを考慮したほうが良い。さもなければ、クライアント上で安全にロギングする方法について検討したほうが良い。クライアントコンピュータ上のログは改ざんされたりクリアされたりするかもしれないからである。
* 例外管理。適切に例外を処理し、致命的ではない失敗 (failing gracefully)とユーザーフレンドリーなリターンを処理するアプリケーションを保障する。例外の詳細はイベントログ又はアプリケーションログで記録されているだろう。
* 変更設定管理。IT環境の設定履歴と、それを発生させた変更の履歴を保持することを保障する。そうすることで、もし認証されていない変更が発生し、それが安全で認証された変更という意味の決定したとしても、あなたは確認することができる。
本章はスマートクライアントアプリケーションの設計時に直面するであろう主要なセキュリティ課題を詳細に取り上げる。特に、認証、許可制御、データの妥当性確認、機密データの安全性にフォーカスする。また本章は、ユーザーレベルというよりもむしろコードレベルのセキュリティを管理するために、.NET Frameworkの主要な技術であるコードアクセスセキュリティについてもカバーする。
スマートクライアントのセキュリティを検証する際に考慮する必要がある他の重要な側面として、どのようにスマートクライアントをデプロイするかが挙げられる。デプロイに関連するセキュリティ問題についてのより詳細な情報は、7章:スマートクライアントのデプロイと更新を参照。
注記:アプリケーションで利用するどんなコードもFxCopで解析したほうが良い。このツールは、セキュリティコンプライアンスの基礎的なレベルを含む.NET Frameworkの設計ガイドラインに適合させるために、マネージドコードアセンブリを調べることができる。FxCopはGotDotNetサイト、http://www.gotdotnet.com/team/fxcop/よりダウンロードできる。
スマートクライアントアーキテクチャ設計ガイドトップへ戻る