公開日: 2004年9月7日 | 最終更新日:
2004年9月7日
トピック
チェックリストの使用方法
これは、モジュール 11「セキュリティ保護されたサービス コンポーネントを構築する」およびモジュール 17「アプリケーション
サーバーをセキュリティ保護する」に対応するチェックリストです。このチェックリストは、セキュリティ保護された Web
サーバーの実装に役立てることもできます。また対応するモジュールを迅速に評価するためのスナップショットとしても使用できます。
このチェックリストは、Web サーバーがセキュリティ保護されていることを確認する手順を元に作成されています。
開発者のチェック
サービスを受けるコンポーネントを構築する場合は、次のチェックを使用します。
認証
| .gif)
| 匿名アクセスを禁止するために、少なくとも呼び出しレベルの認証を使用しています。サービスを受けるコンポーネントのアセンブリに、次の内容が含まれています。 [assembly:ApplicationAccessControl(
Authentication = AuthenticationOption.Call)] |
承認
| .gif)
| ロール ベースのセキュリティを有効にしています。サービスを受けるコンポーネントのアセンブリに、次の内容が含まれています。 [assembly:ApplicationAccessControl(true)] |
| .gif)
| コンポーネント レベル、インターフェイス レベル、およびメソッド レベルの役割チェックをサポートするために、コンポーネント
レベルのアクセス確認を有効にしています。サービスを受けるコンポーネントのアセンブリに、次の内容が含まれています。 [assembly:ApplicationAccessControl(AccessChecksLevel=
AccessChecksLevelOption.ApplicationComponent)] |
| .gif)
| コンポーネント
レベルのアクセス確認は、サービスを受けるすべてのコンポーネントに対して実施されます。クラスには、次のように記述されています。 [ComponentAccessControl(true)] |
| .gif)
| メソッド レベルのセキュリティ保護をサポートするために、クラスまたはメソッドの実装に
SecurityMethod 属性を使用するか、またはメソッドの実装に SecurityRole
属性を使用しています。 |
構成管理
| .gif)
| サーバー
アプリケーションは、最小権限アカウントを使用して実行するように構成されています。 |
| .gif)
| サーバー アプリケーションは、開発中のみ対話ユーザー
アカウントを使用して実行します。 |
| .gif)
| オブジェクト
コンストラクタの文字列にテキスト形式の機密情報は含まれていません。 |
機密性の高いデータ
| .gif)
| IPSec 暗号化を使用しない場合、IPSec Infrastructure
がないネットワーク上にある機密性の高いデータをセキュリティ保護するために RPC 暗号化を使用しています。RPC
暗号化を使用する、サービスを受けるコンポーネントのアセンブリに、次の内容が含まれています。 [assembly:ApplicationAccessControl(
Authentication = AuthenticationOption.Privacy)] |
監査とログ記録
| .gif)
| ユーザー トランザクションは、イベント
ログに記録されます。監査レコードには、SecurityCallContext.OriginalCaller からの呼び出し元 ID
が含まれています。 |
展開に関する考慮事項
| .gif)
| 動的なポート範囲を割り当てる場合はポート範囲を定義し、割り当てない場合は静的なエンドポイント
マッピングを構成しています。 |
| .gif)
| オブジェクト
コンストラクタの文字列に機密情報は保存されていません。データベース接続文字列などの機密情報は、保存する前に暗号化されます。 |
| .gif)
| サーバー アプリケーションの実行ユーザー
アカウントは、最小権限アカウントで構成されています。 |
偽装
| .gif)
| 偽装レベルは正しく構成されています。ASP.NET
クライアントの偽装レベルは、Machine.config の <processModel>
要素で構成されています。 Enterprise Services のクライアント アプリケーションの偽装レベルは、COM+
カタログで構成されています。 |
| .gif)
| サービスを受けるコンポーネントのアセンブリは、次のように ApplicationAccessControl
属性を使用して必要な偽装レベルを定義しています。 [assembly:ApplicationAccessControl(
ImpersonationLevel=ImpersonationLevelOption.Identify)]
|
管理者のチェックリスト
| .gif)
| 最新の COM+ の更新と修正プログラムをインストールしています。 |
| .gif)
| オブジェクト
コンストラクタの文字列にテキスト形式の機密情報は含まれていません。 |
| .gif)
| COM+ 管理コンポーネントは制限されています。 |
| .gif)
| アプリケーションの偽装レベルは正しく設定されています。 |
| .gif)
| サーバー
アプリケーションは、最小権限アカウントを使用して実行するように構成されています。サーバー
アプリケーションは、対話的にログオンしたユーザーの ID を使用して実行することはできません。 |
| .gif)
| 不要な DTC サービスは無効にしています。 |