このチェックリストでは、SQL Server データベース エンジンへの接続時に使用する重要なオプションを確認します。このチェックリストを使用して、ビジネス ニーズに応じて安全にデータベース エンジンに接続できるように、使用している環境を確認してください。
データベース エンジンの構成
|
- データベース エンジンは必要なプロトコルのみでリッスンするように構成されていますか。
ヒント: TCP/IP または名前付きパイプは、クライアントで必要な場合のみ、SQL Server 構成マネージャーを使用して有効にします。詳細については、「ネットワーク プロトコルの選択」および「サーバー ネットワーク プロトコルを有効または無効にする方法 (SQL Server 構成マネージャー)」を参照してください。
|
|
- Service Broker、HTTP、およびデータベース ミラーリングのエンドポイントは、必要な場合にのみ作成されますか。
ヒント: 詳細については、「ネットワーク プロトコルと TDS エンドポイント」を参照してください。
|
|
- 可能な場合は、Windows 認証を使用して接続が確立されていますか。
ヒント: 詳細については、「認証モードの選択」を参照してください。
|
|
- 通信をセキュリティで保護するために、データベース エンジンは信頼されている証明機関が発行した証明書を使用するように構成されていますか。
ヒント: 自己署名証明書を使用する既定の構成では、セキュリティが低くなります。証明書をインストールするには、Windows 証明書ツール (certmgr.msc) を使用して SQL Server 構成マネージャーを使用します。詳細については、「データベース エンジンへの暗号化接続を有効にする方法 (SQL Server 構成マネージャ)」を参照してください。
|
|
- SQL Server は、ネットワーク経由のセキュリティで保護された接続のみを許可するように構成されていますか。
ヒント: SQL Server 構成マネージャーで、[強制的に暗号化] サーバー設定を使用します。詳細については、「データベース エンジンへの暗号化接続を有効にする方法 (SQL Server 構成マネージャ)」を参照してください。
|
|
- 可能な場合、SQL Server は Windows 認証クライアントに対して Kerberos 認証を使用していますか。
ヒント: 詳細については、「Kerberos 認証と SQL Server」を参照してください。
|
|
- Windows Server 2003 および Windows XP では、データベース エンジンが、その他のサービスで使用されているドメイン アカウントで実行されていますか。
ヒント: サービスごとに個別のアカウントを使用すると、いずれかのサービスが他のサービスにアクセスすることを防止できます。
|
|
- データベース エンジンがドメイン アカウントで実行されている場合は、そのアカウントのパスワードが定期的に変更されていますか。
ヒント: Windows 7 および Windows Server 2008 R2 では、ドメインでパスワードが管理されるように、管理されたサービス アカウントでデータベース エンジンを実行することを検討してください。Network Service で実行することをお勧めします。管理されたサービス アカウントの詳細については、「サービス アカウントのステップ バイ ステップ ガイド」を参照してください。
|
|
- データベース エンジンの名前付きインスタンスは固定ポートでリッスンするように構成されていますか。
ヒント: 固定ポートを使用すると、ファイアウォールで正しいポートだけを開くことができます。固定ポートを構成するには、SQL Server 構成マネージャーを使用します。詳細については、「Configuring a Fixed Port」を参照してください。
|
|
- 失敗したログインのレコードを保持するようにログインの監査を構成しましたか。
ヒント: SQL Server Management Studio の [サーバーのプロパティ] ([セキュリティ] ページ) を使用して構成します。
|
|
- 失敗したログインを監査するように SQL Server Audit を構成しましたか。
ヒント: 詳細については、「SQL Server 監査について」を参照してください。
|
|
- データベース エンジンから不要なログインや現在使用されていないログインを削除しましたか。
ヒント: この確認項目は、定期的に手動で確認することが必要になる場合があります。最初に Windows グループを使用してアクセスを有効にすると、この作業は容易になります。
|
クライアントの設定
|
- クライアントは SSL (Secure Sockets Layer) のみを使用して接続するように構成されていますか。
ヒント: SQL Server 構成マネージャーで、[プロトコルの暗号化を設定する] クライアント設定を使用します。詳細については、「データベース エンジンへの暗号化接続を有効にする方法 (SQL Server 構成マネージャ)」を参照してください。
|
|
- クライアントはビジネス ニーズに必要な最小限の特権が付与されたアカウントを使用して接続するように構成されていますか。
ヒント: アプリケーションへの接続には、sysadmin 固定サーバー ロールのメンバーまたは dbo_owner データベース ロールのメンバーであるアカウントを使用しないでください。特権が制限されたアカウントを使用して接続するようにアプリケーションを構成すると、SQL インジェクションなどのアプリケーションに関する問題によるリスクを軽減できます。
|
|
- 管理者は sa アカウントではなく Windows ログインを使用して接続していますか。
ヒント:sysadmin 固定サーバー ロールのメンバーである Windows アカウントには、sa アカウントと同じ特権が付与されます。Windows ログインを使用する場合でも、管理者は個別に識別されるため、管理者を監査できます。sa アカウントを使用すると、アクションを実行した管理者が不明になる場合があります。混合モード認証を使用する場合は、sa アカウントを無効にすることを検討してください。
|
|
- 管理者は管理操作を実行しないときに、特権レベルの低いアカウントを使用して接続していますか。
ヒント: 管理者接続数を減らすと、エラーおよび悪意のあるアクションのリスクを軽減できます。管理アクセスをほとんど必要としないユーザーに対しては、特権レベルの低いアカウントを作成することを検討してください。
|