演習 - セキュリティと Microsoft Defender for Cloud を管理する

完了

この演習では、Microsoft Defender for Cloud が有効になっていることを確認し、前のユニットで説明した機能の一部を調べます。

Microsoft Defender for Cloud を構成する

  1. Azure portal で、ご自分の Azure SQL Database 論理サーバーに移動します。

  2. 左側のペインの [セキュリティ] で、[Microsoft Defender for Cloud] を選択します。 [有効化の状態] の近くにある [構成] リンクを選びます。

  3. Azure SQL Database 論理サーバーに対して行った選択を確認します。 同じウィンドウに、脆弱性評価と Advanced Threat Protection に関する情報が表示されます。

    このストレージ アカウントは、Azure SQL Database のデプロイ スクリプトの一部としてデプロイされました。 オプションを確認し、毎週の定期スキャンの結果を受信したい場合は電子メール アドレスを追加します。 [管理者とサブスクリプションの所有者にもメール通知を送信する] をオフにします。

  4. 脆弱性評価スキャンを誰が受信するのかを構成できるのと同様に、Advanced Threat Protection アラートを誰が受信するのかを構成できます。 お使いのサンドボックス サブスクリプションでは、サブスクリプション レベルのメールの設定を行うアクセス権がないので、[Azure Security Center のサブスクリプションのメール設定に連絡先の詳細を追加します] を行うことができません。

  5. すべての設定を更新したら、[保存] を選択します。

    これらの設定を構成することで、このアクティビティの他のいくつかの手順を完了できるようになります。 脆弱性評価と Advanced Threat Protection については、後でさらに詳しく見ます。

データの検出と分類

  1. Azure portal で AdventureWorks データベースに戻ります。 左側のペインの [セキュリティ] で、[データの検出と分類] を選択します。

  2. データの検出と分類を確認します。ここでは、データベース内の機密データの検出、分類、ラベル付け、およびレポートを行うための高度な機能が提供されています。

    このウィザード形式のビューは、SQL Server Management Studio (SSMS) を通じて現在 SQL Server 内にある [データの検出と分類] ツールと類似していますが、同じものではありません。 SSMS ウィザードの使用は、Azure SQL Database については "サポートされていません"。 Azure portal を使って同様の機能を実現でき、これは Azure SQL Database でサポートされています。

    Transact-SQL をすべてのデプロイ オプションで使用して、列の分類を追加または削除したり、分類を取得したりできます。

  3. [分類] タブを選びます。

  4. データの検出と分類では、テーブル内の列名に基づいて、機密データの特定が試行されます。 提案されたラベルをいくつか確認し、[すべて選択]>[選択した推奨事項を受け入れます] の順に選択します。

  5. メニューの左上にある [保存] を選びます。

  6. 最後に、[概要] タブを選んで概要ダッシュボードを表示し、追加した分類を確認します。

    Screenshot of the Data Discovery & Classification overview.

脆弱性評価

  1. [セキュリティ][Microsoft Defender for Cloud] の設定を選び、AdventureWorks データベースの [Microsoft Defender for Cloud] ダッシュボードを表示します。

  2. 脆弱性評価機能の確認を開始するには、[脆弱性評価の結果] で、[脆弱性評価のその他の結果を表示] を選択します。

  3. [スキャン] を選択して最新の脆弱性評価の結果を取得します。 脆弱性評価によって Azure SQL Database 論理サーバー内のすべてのデータベースがスキャンされるため、このプロセスには少し時間がかかります。

    Screenshot of how to kick off a Vulnerability Assessment scan.

    結果のビューは、厳密に同じというわけではありませんが、次に示すような内容となります。

    Screenshot of the new Vulnerability Assessment dashboard after scan.

  4. すべてのセキュリティ リスクにリスク レベル (高、中、低) と追加情報があります。 実施されている規則は、Center for Internet Security が提供するベンチマークに基づいています。 [検出結果] タブで、脆弱性を選びます。 この例では、セキュリティ チェック ID VA2065 を選んで、次の画像で示されるような詳細ビューを表示します。 状態とその他の利用可能な情報を確認します。

    注意

    VA2065 が失敗しない場合は、発生する失敗のセキュリティ チェックに応じて、同じような演習を後で実行できます。

    Screenshot of the VA2065 security risk.

    この画像では、どのようなファイアウォール ルールが設定されているかというベースラインを構成することが脆弱性評価により推奨されています。 ベースラインを構成したら、変更を監視し、評価することができます。

  5. セキュリティ チェックによっては、代替ビューと推奨事項が表示されます。 提供された情報を確認します。 このセキュリティ チェックでは、[すべての結果をベースラインとして追加] ボタンを選んでから [はい] を選んで、ベースラインを設定できます。 ベースラインが配置されたので、このセキュリティ チェックは、結果がベースラインと異なる将来のスキャンでは失敗します。 右上の [X] を選択して、特定のルールのウィンドウを閉じます。

  6. この例では、[スキャン] を選んで別のスキャンを完了し、VA2065 が "合格した" セキュリティ チェックとして表示されることを確認できます。

    上の合格したセキュリティ チェックを選ぶと、構成したベースラインを確認できます。 今後変更が加えられた場合、それは脆弱性評価スキャンによって検出され、セキュリティ チェックは失敗します。

Advanced Threat Protection

  1. 右上の [X] を選んで [脆弱性評価] ペインを閉じ、データベースの [Microsoft Defender for Cloud] ダッシュボードに戻ります。 [セキュリティ インシデントとアラート] には、どの項目も表示されません。 これは、Advanced Threat Protection で問題が検出されていないことを意味します。 データベースにアクセスしたりそれを悪用したりしようとする、通常とは異なる、害を及ぼす可能性のある試行を示す異常なアクティビティは、Advanced Threat Protection によって検出されます。

    この段階では、セキュリティ アラートは表示されません。 次の手順ではアラートをトリガーするテストを実行します。これにより、Advanced Threat Protection で結果を確認できるようになります。

    Advanced Threat Protection を使って、次のいずれかの発生が疑われる場合に、脅威を特定し、アラートを受け取ることができます。

    • SQL インジェクション
    • SQL インジェクションの脆弱性
    • データ窃盗
    • 安全でないアクション
    • ブルート フォース
    • 異常なクライアント ログイン

    このセクションでは、SSMS を使用して SQL インジェクション アラートをトリガーする方法について説明します。 SQL インジェクション アラートは、SSMS などの標準ツール用ではなく、カスタム記述のアプリケーションを対象としています。 そのため、SQL インジェクションのテストとして SSMS を使用してアラートをトリガーするには、アプリケーション名を "設定" する必要があります。これは SQL Server または Azure SQL に接続するクライアントの接続プロパティです。

    このセクションを最後まで進めるには、この演習の最初の部分で Advanced Threat Protection アラート用に指定したメール アドレスにアクセスする必要があります (このサンドボックスで行うことはできません)。 更新する必要がある場合は、先に進む前に更新します。

  2. SSMS で、[ファイル]>[新規]>[データベース エンジン クエリ] の順に選択し、新しい接続を使用してクエリを作成します。

  3. メイン ログイン ウィンドウで、SQL 認証を使用して通常どおりに AdventureWorks にログインします。 接続する前に、[オプション]>>>[接続プロパティ] を選びます。 [データベースへの接続] オプションに「AdventureWorks」と入力します。

    Screenshot of how to connect to a specific database.

  4. [追加の接続パラメーター] タブを選択して、テキスト ボックスに次の接続文字列を挿入します。

    Application Name=webappname
    
  5. [接続] を選択します。

    Screenshot of how to connect with an app name.

  6. 新しいクエリ ウィンドウで、次のクエリを貼り付け、[実行] を選択します。

    SELECT * FROM sys.databases WHERE database_id like '' or 1 = 1 --' and family = 'test1';
    

    メールの設定を構成できた場合は (サンドボックスではできません)、数分以内に、次のようなメール メッセージを受け取ります。

    Screenshot of an Advanced Threat Protection threat detected email.

  7. Azure portal で、AdventureWorks データベースにアクセスします。 左側のペインの [セキュリティ] で、[Microsoft Defender for Cloud] を選択します。

    [セキュリティ インシデントとアラート] で、[Defender for Cloud で他のリソースに関する追加のアラートを表示する] を選択します。

  8. 全体的なセキュリティ アラートが表示されるようになりました。

    Screenshot of the security alerts.

  9. [潜在的な SQL インジェクション] を選択して、より具体的なアラートを表示し、調査手順を受け取ります。

  10. クリーンアップ手順として、次の演習で追加のアラートを誤ってトリガーしないように、SSMS でご利用のすべてのクエリ エディターを閉じ、すべての接続を削除することを検討してください。

このユニットでは、Azure SQL Database のセキュリティ機能の一部を構成して適用する方法について学習しました。 次のユニットでは、エンドツーエンドのシナリオでさまざまなセキュリティ機能を組み合わせることによって学習した内容をさらに発展させます。