脅威と脆弱性のマトリックス (データベース エンジン)
SQL Server はさまざまなセキュリティ メカニズムを備えていますが、悪用される可能性がある機能はどのシステムにも存在します。データやその他の情報を公開する機能は、適切に実装されていない限りリスクと見なすことができます。
各機能がリスクとなる可能性がありますが、すべてのリスクが同等ではありません。リスクによって、実行方法の変更が必要であったり、設定の変更が必要であったり、コードの変更が必要であったりします。次の表では、リスクの種類と、そのリスクを軽減するために必要な予防的措置について説明します。
プロセスにおける脅威と脆弱性
脅威または脆弱性 |
定義 |
対策 |
---|---|---|
セキュリティ ポリシー |
セキュリティ ポリシーは、セキュリティ上の脅威を防止、追跡、および対処するために組織が従うプロセスと手順を記録したものです。これには、システム、修正プログラム、ファイアウォールへの適切なアクセスに関係するポリシーと、ウイルス対策メカニズムが含まれます。 |
効果的なセキュリティ ポリシーを作成して評価したうえで、配布し、管理します。セキュリティ ポリシーを作成する方法の詳細については、「SQL Server の保護」を参照してください。 |
"最小特権" のプリンシパル |
"最小特権" プリンシパルは、セキュリティ保護可能なオブジェクトに対する必要なレベルのアクセスのみがシステムから許可されることを示します。さらに、直接必要な対象にのみ、指定した時間だけアクセスを許可する必要があります。アプリケーションは、必要以上のアクセスを実行できるようにコーディングされている可能性があり、アカウントには過剰にアクセス権が割り当てられている場合があります。 |
最小特権のプリンシパルに従ってセキュリティを確認し、実装します。最小特権の概念を使用するアプリケーションを開発する方法の詳細については、MSDN の「最小特権が設定された環境での推奨事項」を参照してください。 |
セキュリティ情報 |
Microsoft では、各種プラットフォームで検証とテストが行われたセキュリティ情報を直ちに公開しています。この情報をチェックしていない組織は、適切なセキュリティ ガイドラインを実装できず、自らのシステムを危険にさらすことになります。 |
SQL Server セキュリティ情報を確認し、追跡するようにします。詳細については、TechNet の「Microsoft セキュリティ情報検索」を参照してください。 |
プラットフォームにおける脅威と脆弱性
脅威または脆弱性 |
定義 |
対策 |
---|---|---|
更新されていないシステム (ソフトウェア更新プログラムが適用されていない) |
Microsoft では、SQL Server のセキュリティを強化するソフトウェア更新プログラムをリリースしています。ソフトウェア更新プログラムを確認または適用していないと、攻撃に対するシステムの脆弱性を高めることになります。 |
提供されるすべてのサービス パックと修正プログラムを確認し、適用するようにします。詳細については、SQL Server TechCenter のダウンロード ページを参照してください。 |
ネットワーク ポートの悪用 |
ネットワークは、SQL Server に対する攻撃の主要なアクセス元です。インターネットに対して標準ポートを開いたままにすると、攻撃を招く可能性があります。 |
インターネットに公開されているサーバーではファイアウォールを使用し、SQL Server 構成マネージャでネットワーク構成を設定します。また、セキュリティをさらに強化するために、SSL (Secure Sockets Layer) の使用を検討します。ファイアウォールと SQL Server の詳細については、「データベース エンジン アクセスを有効にするための Windows ファイアウォールの構成方法」を参照してください。ネットワーク設定を構成する方法の詳細については、「SQL Server 構成マネージャ」を参照してください。SQL Server で Secure Sockets Layer を使用する方法の詳細については、「SQL Server への接続の暗号化」を参照してください。 |
不適切なサービス アカウントの設定 |
SQL Server のサービス アカウントには、プラットフォームやネットワークに対して必要以上のアクセスが許可されている場合が少なくありません。 |
SQL Server のサービス アカウントは、最小特権のプリンシパルの下で動作する必要があり、複雑なパスワードを設定する必要があります。サービス アカウントの詳細については、「Windows サービス アカウントの設定」を参照してください。パスワードの詳細については、「強力なパスワード」を参照してください。 |
広すぎる表面積 |
SQL Server の機能が必要時以外も公開されている可能性があります。 |
SQL Server 構成マネージャおよびポリシー ベースの管理を使用して、機能とその他のコンポーネントを制御します。詳細については、「セキュリティ構成について」を参照してください。 |
有効になっている不要なストアド プロシージャ |
拡張ストアド プロシージャには、オペレーティング システムまたはレジストリへのアクセスを許可するものがあります。 |
オペレーティング システムやレジストリへのアクセスを許可するストアド プロシージャは、絶対に必要な場合を除いて無効にします。詳細については、「セキュリティ構成について」を参照してください。 |
認証における脅威と脆弱性
脅威または脆弱性 |
定義 |
対策 |
---|---|---|
脆弱なパスワード |
単純なパスワードは、ブルート フォース攻撃または辞書攻撃のリスクにさらされます。 |
常に強力で複雑なパスワードを使用します。詳細については、「強力なパスワード」を参照してください。また、CREATE LOGIN (Transact-SQL) ステートメントと ALTER LOGIN (Transact-SQL) ステートメントの CHECK_POLICY オプションと CHECK_EXPIRATION オプションも参照してください。 |
監査されていないユーザー アカウント |
ユーザー (プリンシパル) の異動や退職は頻繁に発生します。ユーザー アカウントのアクセス権を変更しないと、以前の権限レベルでシステムにアクセスできることになります。 |
ユーザー アカウントを頻繁に監査して、データベース サーバーおよびオブジェクトに対して適切なアクセスが有効になっていることを確認する必要があります。SQL Server のアクセスを監査する方法の詳細については、「エラー ログの監視」を参照してください。 |
プログラミングにおける脅威と脆弱性
脅威または脆弱性 |
定義 |
対策 |
---|---|---|
SQL インジェクション |
正当なクエリに悪意のあるクエリを埋め込む操作です。 |
SQL インジェクション攻撃への対処の詳細については、「SQL インジェクション」を参照してください。 |
埋め込まれたパスワード |
アプリケーションには、プログラムまたは構成ファイルに接続文字列を保存するものがあります。 |
パスワードや重要な接続情報は、プログラム、レジストリ、または構成ファイルに保存しないようにします。詳細については、「パスワード ポリシー」を参照してください。 |
データ アクセスにおける脅威と脆弱性
脅威または脆弱性 |
定義 |
対策 |
---|---|---|
不適切に適用された暗号化 |
暗号化によって、SQL Server のデータや接続情報は判読不能になります。必要な暗号化を行わなかったり、不要な暗号化を加えたりすると、不必要にリスクや複雑化を招きます。 |
SQL Server の暗号化について理解し、暗号化を正しく実装します。詳細については、「SQL Server の暗号化」を参照してください。 |
不適切に適用された証明書 |
証明書は認証を検証するためのメカニズムです。SQL Server では、接続からデータまでのさまざまな対象に証明書が使用されます。自己証明と拡張検証期間の使い方が不適切であると、全体的なセキュリティが低下します。 |
SQL Server の証明書について理解し、証明書を正しく実装します。詳細については、「SQL Server の証明書と非対称キー」を参照してください。 |
バックアップされていない SQL Server のキー |
SQL Server インスタンスおよびそこに含まれているデータベースでは、さまざまなセキュリティ上の目的でキーが使用される可能性があります。この目的には暗号化も含まれます。 |
サービス キー (サービス マスタ キーとも呼ばれます) およびデータベース キーは、バックアップし、安全に保存する必要があります。また、定期的に変更する必要があります。詳細については、「SQL Server とデータベースの暗号化キー (データベース エンジン)」を参照してください。 |