SQL Server の脆弱性評価

適用対象:SQL Server

SQL 脆弱性評価は使いやすいツールで、データベースに潜在する脆弱性を検出、追跡、修復するのに役立ちます。 これを使用すると、事前の対策としてデータベースのセキュリティを向上させることができます。

Note

脆弱性評価ツールは、SQL Server 2012 (11.x) 以降のバージョンで、19.1 より前の SQL Server Management Studio (SSMS) で使用できます。

SQL Server Management Studio 19.1 での SQL 脆弱性評価の削除

SSMS の SQL 脆弱性評価に関して、SQL Server 2012 (11.x) 以降のバージョンでは、SQL Server データベースのセキュリティ構成ミスの可能性をスキャンして報告する方法が用意されています。 この機能は、Microsoft Defender for SQL と呼ばれる包括的なデータベース セキュリティ パッケージに統合されています。これにより、脆弱性評価スキャンを実行し、クラウドとオンプレミスのリソース全体でデータベースに対するリアルタイム攻撃を大規模に特定できます。 Defender for SQL は、最新のスキャン ルールと更新された脅威保護アルゴリズムを提供します。

逆に、SSMS の SQL 脆弱性評価では、Defender for Cloud からの結果は使用されません。また、ローカル スキャンからの結果をアップロードすることもできません。 さらに、SSMS の SQL 脆弱性評価はリアルタイムで更新プログラムを受信しないため、Defender for Cloud からの更新された結果と比較して不整合が発生する可能性があります。 データベース セキュリティ エクスペリエンスの混乱や不整合を防ぐために、バージョン 19.1 以降、SSMS から SQL 脆弱性評価を削除しました。 SQL 脆弱性評価は以前の SSMS バージョンで引き続き使用できます。ただし、SSMS または SQL のバージョンに関係なく、Microsoft Defender for SQL を使用して環境のセキュリティ構成を評価することをお勧めします。

詳細情報は、「コンピューターで Microsoft Defender for SQL Servers を有効化する」および「SQL Server の脆弱性スキャン」を参照してください。

Azure SQL Database、Azure Synapse Analytics、SQL Managed Instance では、Microsoft Defender for SQL Database を使用します。

脆弱性評価の機能

SQL 脆弱性評価 (VA) は自分のセキュリティ保護状態を把握できるサービスです。セキュリティ上の問題を解決するために実践できる手順が含まれており、データベースのセキュリティを強化できます。 以下のことに役立ちます。

  • データベース スキャン レポートが必要なコンプライアンス要件を満たす
  • データのプライバシー基準を満たす
  • 変更の追跡が困難である動的データベース環境を監視する

VA サービスは、お使いのデータベース上で直接スキャンを実行します。 このサービスでは、セキュリティの脆弱性にフラグを付けベスト プラクティスからの逸脱 (構成の不備、過剰な権限、保護されていない機密データなど) に焦点を当てたルールのナレッジ ベースを採用しています。 このルールは Microsoft が推奨するベスト プラクティスに基づいており、お使いのデータベースとその貴重なデータにとって大きなリスクとなるセキュリティの問題に焦点を当てています。 これらのルールでは、さまざまな規制機関の数多くのコンプライアンス基準を満たすための要件も示しています。

スキャンの結果には、各々の問題を解決するために実践できる手順が含まれ、カスタマイズした修復スクリプトが適宜提供されます。 アクセス許可の構成、機能の構成、データベースの設定の許容されるベースラインを設定することで、環境に合わせて評価レポートをカスタマイズできます。

前提条件

この機能は、SQL Server Management Studio (SSMS) バージョン 17.4 以降でのみ使用できます。 最新バージョンはこちらで入手できます。

作業の開始

データベースで脆弱性スキャンを実行するには、次の手順に従います。

  1. SQL Server Management Studio を開きます。

  2. SQL Server Database Engine または localhost のインスタンスに接続します。

  3. [データベース] を展開してデータベースを右クリックし、[タスク] をポイントして [脆弱性評価] を選択してから、[脆弱性のスキャン] を選択します。

  4. システム データベースの 1 つをスキャンすることで、サーバー レベルの問題をチェックするスキャンを実行できます。 [システム データベース] を展開し、 master データベースを右クリックし、[タスク] をポイントし、 [脆弱性評価] を選択し、その後[脆弱性のスキャン] をクリックします...

Screenshot showing how to get started.

チュートリアル

お使いのデータベースで脆弱性評価の実行と管理を行うには、次の手順に従います。

1. スキャンを実行します。

[脆弱性のスキャン] ダイアログでは、スキャンを保存する場所を指定することができます。 既定の場所のままにすることも、[参照...] をクリックしてスキャン結果を別の場所に保存することもできます。

スキャンの準備ができたら、[OK] を選択してデータベースの脆弱性をスキャンします。

Note

このスキャンは軽量で安全です。 実行にかかるのは数秒で、完全に読み取り専用です。 データベースが変更されることはありません。

Screenshot showing how to save a scan file.

2 レポートを表示します。

スキャンが完了したら、スキャン レポートが SSMS の主ウィンドウに自動的に表示されます。 レポートは、セキュリティ状態の概要 (見つかった問題の数とそれぞれの重大度) を示します。 結果には、セキュリティ関連の設定のスナップショットとともに、ベスト プラクティスからの逸脱に関する警告が含まれます。 これらの設定には、データベース プリンシパルとロール、および関連するアクセス許可が含まれます。 スキャン レポートにはさらに、データベースで検出された機密データのマップがあり、保護に使用できる組み込みメソッドの推奨が含まれています。

Screenshot showing scan results.

3. 結果を分析して問題を解決します。

結果をレビューして、自分の環境にとってレポートのどの項目がセキュリティ上の真の問題かを判断します。 問題となった各結果をドリルダウンして、問題の影響と、各セキュリティ チェックが不合格になった理由を理解します。 レポートが提供する実践可能な修復情報を使用し、問題を解決します。

Screenshot showing results details.

4. ベースラインを設定します。

評価の結果を確認しながら、環境において許容されるベースラインとして特定の結果をマークできます。 このベースラインは本来、結果のレポート方法をカスタマイズするものです。 ベースラインに一致する結果は、それ以降のスキャンで合格と見なされます。

自分のベースラインとなるセキュリティ状態を確立すると、VA はベースラインから逸脱したものだけをレポートするため、関連する問題に注意を集中することができます。

Screenshot showing how to set a baseline.

5. 新しいスキャンを実行してカスタマイズした追跡レポートを表示します。

規則のベースラインの設定が済んだら、新しいスキャンを実行して、カスタマイズしたレポートを表示します。 VA は、承認したベースラインの状態から逸脱した、不合格となるセキュリティ上の問題のみをレポートするようになります。

Screenshot showing pass per baseline.

6. 以前実行したスキャンを開く

既存のスキャンを開くと、以前実行した脆弱性評価の結果をいつでも表示できます。 これを行うには、データベースを右クリックし [タスク] をポイントして、[脆弱性評価] を選択し [既存のスキャンを開く] を選択します。表示するスキャン結果ファイルを選択し、[開く] を選択します。

既存のスキャン結果は、[ファイル] > [開く] メニューから開くこともできます。 [脆弱性評価...] を選択して scans ディレクトリを開き、表示するスキャン結果を検索します。

Screenshot showing how to open an existing scan.

これで、VA を使用して、お使いのデータベースが常に高いセキュリティ保護を維持し、組織のポリシーに適合することを監視できるようになりました。 コンプライアンスのレポートが必要な場合、VA レポートはコンプライアンス プロセスを促進するのに役立ちます。

PowerShell を使用して脆弱性評価を管理する

PowerShell コマンドレットを使用して、SQL Server インスタンスの脆弱性評価をプログラムで管理できます。 これらのコマンドレットは、プログラムによる評価の実行、結果のエクスポート、およびベースラインの管理に使用できます。 最初に、PowerShell ギャラリー サイトから最新の SqlServer PowerShell モジュールをダウンロードします。 詳細については、ここを参照してください。

次のステップ