公開日: 2004年9月7日 | 最終更新日: 2004年9月7日
トピック
チェックリストの使用方法
SQL インジェクションのチェック
認証
承認
構成管理
機密性の高いデータ
例外管理
展開に関する考慮事項
チェックリストの使用方法
これは、モジュール 14「セキュリティ保護されたデータ アクセスを構築する」およびモジュール 18「データベース サーバーをセキュリティ保護する」に対応するチェックリストです。このチェックリストは、安全なデータ アクセスの構築に役立てることもできます。また対応するモジュールを迅速に評価するためのスナップショットとしても使用できます。
このチェックリストは、ソフトウェア開発においてデータ アクセスをセキュリティ保護する手順を基に作成されています。
SQL インジェクションのチェック
| チェック | 説明 |
| .gif) | 現在の信頼境界の外部から発信されたデータ アクセス メソッドに渡された入力は制限されています。 入力の校正は、多層防御の手段としてのみ使用します。 |
| .gif) | パラメータを受け取るストアド プロシージャを、データ アクセス コードで使用しています。ストアド プロシージャを使用しない場合は、タイプ セーフな SQL パラメータを使用して SQL コマンドを構築します。 |
| .gif) | データベースへの接続には、最小権限アカウントを使用しています。 |
認証
| チェック | 説明 |
| .gif) | データベースへの接続には、Windows 認証を使用しています。 |
| .gif) | 強力なパスワードを強制的に使用しています。 |
| .gif) | SQL Server 認証を使用する場合は、ネットワーク経由の資格情報は IPSec または SSL を使用するか、またはデータベース サーバー証明書をインストールしてセキュリティ保護しています。 |
| .gif) | SQL Server 認証を使用する場合は、接続文字列は DPAPI を使用して暗号化し、セキュリティ保護された場所に保存しています。 |
| .gif) | アプリケーションは、最小権限アカウントを使用して接続しています。sa アカウント、あるいは sysadmin ロールまたは db_owner ロールのメンバであるその他の権限を持つアカウントは、アプリケーションのログインに使用していません。 |
承認
| チェック | 説明 |
| .gif) | 呼び出し元のユーザーは、一般にビジネス ロジックによって実行される宣言または強制プリンシパル アクセス許可チェックを使用して制限しています。 |
| .gif) | 呼び出し元のコードを制限する場合、コードの呼び出しは ID アクセス許可の要求を使用して制限しています。 |
| .gif) | アプリケーションのログインはデータベースで制限され、実行できるのは指定されたストアド プロシージャのみです。アプリケーションにログインしても、テーブルに直接アクセスすることはできません。 |
構成管理
| チェック | 説明 |
| .gif) | 資格情報の管理を回避するために Windows 認証を使用しています。 |
| .gif) | 接続文字列は暗号化され、暗号化されたデータは制限されたレジストリ キーなどのセキュリティ保護された場所に保存しています。 |
| .gif) | OLE DB 接続文字列に Persist Security Info="true" または "yes" は含まれていません。 |
| .gif) | UDL ファイルは、制限された ACL によってセキュリティ保護されています。 |
機密性の高いデータ
| チェック | 説明 |
| .gif) | 機密性の高いデータは、3DES などの対称暗号化を使用してデータベース内で暗号化しています。 |
| .gif) | 対称暗号化キーはバックアップし、DPAPI を使用して暗号化し、制限されたレジストリ キーに保存しています。 |
| .gif) | 機密性の高いデータは、SSL または IPSec を使用してネットワーク上でセキュリティ保護されています。 |
| .gif) | パスワードは、カスタム ユーザー ストア データベースには保存していません。パスワード ハッシュは Salt 値で保存しています。 |
例外管理
| チェック | 説明 |
| .gif) | ADO.NET の例外はトラップしてログに記録しています。 |
| .gif) | データベース接続およびその他の制限されたリソースは、例外の発生または操作の完了時に開放しています。 |
| .gif) | ASP.NET は、<customErrors> 要素を使用する一般的なエラー ページを出力するように構成されています。 |
展開に関する考慮事項
| チェック | 説明 |
| .gif) | ファイアウォールの制限によって、データベース サーバーで SQL Server リスン ポートのみを利用可能にしています。 |
| .gif) | 暗号化されたデータベース接続文字列を維持するためのメソッドを定義しています。 |
| .gif) | アプリケーションは、最小権限を与えられたデータベース ログインを使用するように構成されています。 |
| .gif) | SQL サーバー監査は構成されています。少なくとも失敗したログイン試行のログを記録しています。 |
| .gif) | ネットワーク上のデータのプライバシーと整合性は、IPSec または SSL を使用して提供しています。 |