Microsoft Defender for Storage のマルウェア スキャンは、マルウェアの脅威を検出して軽減し、Azure Storage アカウントのセキュリティを強化します。 このツールでは、Microsoft Defender Antivirus を使用してストレージ コンテンツをスキャンし、データのセキュリティとコンプライアンスを確保します。
Defender for Storage では、次の 2 種類のマルウェア スキャンが提供されます。
アップロード時のマルウェア スキャン: BLOB はアップロードまたは変更された時点で自動的にスキャンされ、準リアルタイムの検出が提供されます。 この種類のスキャンは、Web アプリケーションやコラボレーション プラットフォームなど、ユーザーが頻繁にアップロードを行うアプリケーションに最適です。 アップロード時にコンテンツをスキャンすると、悪意のあるファイルがストレージ環境に入ってダウンストリームに伝達されるのを防ぐことができます。
オンデマンド マルウェア スキャン: 必要なときにいつでも既存の BLOB をスキャンできるため、インシデント対応、コンプライアンス、プロアクティブ セキュリティに最適です。 このスキャンの種類は、既存のすべてのデータのスキャン、セキュリティ アラートへの対応、監査の準備などを行って、セキュリティ ベースラインを確立するのに最適です。
これらのオプションは、ストレージ アカウントを保護し、コンプライアンスのニーズを満たし、データの整合性を確保するために役立ちます。
マルウェア スキャンが重要な理由
クラウド ストレージにアップロードされたコンテンツはマルウェアを持ち込み、組織にリスクを与える可能性があります。 マルウェアのスキャンは、悪意のあるファイルが環境内に侵入または拡散するのを防ぐのに役立ちます。
Defender for Storage でのマルウェア スキャンには、次の利点があります。
- 悪意のあるコンテンツの検出: マルウェアを識別して軽減します。
- セキュリティ体制の強化: マルウェアの拡散を防ぐためのレイヤーを追加します。
- コンプライアンスのサポート: 規制要件を満たします。
- セキュリティ管理の簡素化: 大規模に構成可能なクラウドネイティブの低メンテナンス ソリューションを提供します。
主要な機能
- 組み込みの SaaS ソリューション: メンテナンス不要で大規模な有効化を簡単に行うことができます。
- 包括的なマルウェア対策機能: Microsoft Defender ウイルス対策 (MDAV) を使用してスキャンし、ポリモーフィックおよびメタモーフィックなマルウェアをキャッチします。
- 包括的な検出: ZIP や RAR ファイルなどのアーカイブを含むすべてのファイルの種類を、BLOB あたり最大 50 GB までスキャンします。
- 柔軟なスキャン オプション: ニーズに基づいて、アップロード時とオンデマンドのスキャンを提供します。
- セキュリティ アラートとの統合: Microsoft Defender for Cloud で詳細なアラートを生成します。
- 自動化のサポート: Logic Apps や Function Apps などの Azure サービスを使って自動的に応答できます。
- コンプライアンスと監査: コンプライアンスと監査のためにスキャン結果をログします。
- プライベート エンドポイントのサポート: プライベート エンドポイントをサポートし、パブリック インターネットの露出を排除することでデータのプライバシーを確保します。
ニーズに合ったマルウェア スキャンの種類
頻繁に行われるアップロードをすぐに保護したい場合は、アップロード時のマルウェア スキャンが適切な選択肢です。 Web アプリでユーザーがアップロードしたコンテンツのスキャン、共有マルチメディア資産の保護、規制対象セクターでのコンプライアンスの確保に最適です。 また、パートナー データの統合、コラボレーション プラットフォームの保護、データ パイプラインと機械学習データセットのセキュリティ保護が必要な場合は、アップロード時のスキャンも有効です。 詳しくは、「アップロード時のマルウェア スキャン」をご覧ください。
セキュリティ ベースラインを確立する場合は、オンデマンド マルウェアスキャンが最適な選択肢です。 また、特定のニーズに基づいてスキャンを柔軟に実行することもできます。 オンデマンド スキャンは、インシデント対応、コンプライアンス、予防的なセキュリティ プラクティスに組み込むのに適しています。 それを使って、セキュリティ トリガーへの応答でのスキャンの自動化、スケジュールされたスキャンによる監査への準備、格納されているデータでのマルウェアの事前チェックなどを行うことができます。 さらに、オンデマンド スキャンは、顧客に保証を提供し、アーカイブまたは交換の前にデータを検証するのにも役立ちます。 詳細については、「オンデマンド マルウェア スキャン」を参照してください。
スキャンの結果を提供する
マルウェア スキャンの結果は、4 つの方法で入手できます。 セットアップの後、スキャン結果は、ストレージ アカウントでスキャンされたすべてのファイルについては BLOB インデックス タグとして、ファイルが有害として識別されたときは Microsoft Defender for Cloud セキュリティ アラートとして示されます。 Azure Portal と REST API を使用して、BLOB インデックス タグの使用を無効にすることができます。 Event Grid や Log Analytics など、スキャン結果の使用方法を追加で構成することもできます。これらの方法のために、さらに構成が必要です。 次のセクションでは、さまざまなスキャン結果方法について説明します。
スキャン結果
BLOB インデックス タグ
BLOB インデックス タグは、BLOB のメタデータ フィールドです。 それらによって、キーと値のタグ属性を使用して、ストレージ アカウント内のデータが分類されます。 これらのタグには自動的にインデックスが付けられ、検索可能な多次元インデックスとして公開されるため、データを簡単に見つけることができます。 ユーザーは、インデックス タグを使用してマルウェア スキャンの結果を格納するかどうかを選択できます (既定の動作では、インデックス タグを使用します)。 スキャン結果は簡潔で、マルウェア スキャンのスキャン結果 (脅威が見つからない、悪意のある、エラー、スキャンされていない) と、BLOB メタデータのマルウェア スキャンスキャン時間 UTC が 2 つの別個のインデックス タグとして表示されます。 その他の結果の種類 (アラート、イベント、ログ) では、詳細情報が提供されます。
アプリケーションでは BLOB インデックス タグを使ってワークフローを自動化できますが、改ざん防止機能はありません。 応答の設定に関する詳細を参照してください。
注
インデックス タグへのアクセスにはアクセス許可が必要です。 詳しくは、「BLOB インデックス タグを取得、設定、および更新する」をご覧ください。
Defender for Cloud のセキュリティ アラート
悪意のあるファイルが検出されると、Microsoft Defender for Cloud によって、Microsoft Defender for Cloud セキュリティ アラートが生成されます。 アラートを表示するには、Microsoft Defender for Cloud セキュリティ アラートに移動します。 セキュリティ アラートには、ファイルの詳細とコンテキスト、マルウェアの種類、推奨される調査と修復の手順が含まれます。 修復にこれらのアラートを使用するには、次のことができます。
- Azure portal で [Microsoft Defender for Cloud]> と移動して、セキュリティ アラートを表示します。
- これらのアラートに基づいて、自動化を構成します。
- セキュリティ情報 およびイベント管理 (SIEM) にセキュリティ アラートをエクスポートします。 Microsoft Sentinel コネクタを使用して Microsoft Sentinel (Microsoft の SIEM) に、または任意の他の SIEM にセキュリティ アラートを継続的にエクスポートできます。
セキュリティ アラートへの応答に関する詳細を確認してください。
Event Grid イベント
Event Grid は、イベント ドリブンの自動化に役立ちます。 これは、応答の自動化に使用できるイベントの形式で、最短の待ち時間で結果を取得する最速の方法です。
Event Grid カスタム トピックのイベントは、複数のエンドポイントタイプで使用できます。 マルウェア スキャン シナリオに最も役立つエンドポイントは次のとおりです。
- 関数アプリ (以前の Azure 関数) - サーバーレス関数を使って、移動、削除、検疫などの自動応答用コードを実行します。
- Webhook - アプリケーションを接続する場合。
- Event Hubs と Service Bus キュー - ダウンストリーム コンシューマーに通知する場合。 自動化のためにすべてのスキャン結果が Event Grid トピックに自動的に送信されるようにマルウェア スキャンを構成する方法を確認してください。
ログ分析
コンプライアンスの証拠やスキャン結果の調査のために、スキャン結果をログに記録したい場合があります。 Log Analytics ワークスペースの宛先を設定することで、すべてのスキャン結果を、クエリを簡単に実行できる一元化されたログ リポジトリに格納できます。 結果を表示するには、Log Analytics の宛先ワークスペースに移動し、StorageMalwareScanningResults
テーブルを検索します。
スキャン結果に基づいてアクションを自動化するには、インデックス タグまたは Event Grid 通知を使用することをお勧めします。 スキャン結果の監査証跡を作成する目的で、Log Analytics が推奨されるソリューションです。
詳細については、「マルウェア スキャンのログ記録を設定する」を参照してください。
ヒント
Defender for Storage のマルウェア スキャン機能については、ハンズオン ラボを参照してください。 Ninja のトレーニング手順に従って、マルウェア スキャンをエンド ツー エンドでセットアップし、テストする方法に関する詳細なステップ バイ ステップ ガイドに従ってください。 スキャン結果への応答を構成します。 これは 'ラボ' プロジェクトの一環で、お客様が Microsoft Defender for Cloud を活用し、その機能に関するハンズオンの実践的なエクスペリエンスを提供するのに役立ちます。
応答の自動化
マルウェア スキャンは、疑わしいファイルの削除や検疫などの自動応答に対応しています。 BLOB のインデックス タグを使用してこれを管理するか、自動化のために Event Grid イベントを設定します。 次の方法で応答を自動化します。
- ABAC (属性ベースのアクセス制御) を使って、未スキャンのファイルや有害なファイルへのアクセスをブロックします。
- Logic Apps (セキュリティ アラートに基づく) または Event Grid と Function Apps (スキャン結果に基づく) を使って、悪意のあるファイルを自動的に削除したり検疫に移動したりします。
- Event Grid と Function Apps を使って、別の場所にクリーンなファイルを転送します。
マルウェア スキャンの結果に対する応答の設定についての詳細を確認してください。
マルウェア スキャンのセットアップ
マルウェア スキャンが有効になっている場合、環境内で以下のアクションが自動的に行われます。
- マルウェア スキャンを有効にしたストレージ アカウントごとに、そのストレージ アカウントの同じリソース グループ内に Event Grid システム トピック リソースが作成されます。これは、BLOB アップロード トリガーをリッスンするためにマルウェア スキャン サービスによって使用されます。 このリソースを削除すると、マルウェア スキャン機能が動作しなくなります。
- データをスキャンするには、マルウェア スキャン サービスがデータにアクセスする必要があります。 サービスの有効化時に、
StorageDataScanner
という新しいデータ スキャナー リソースが Azure サブスクリプション内に作成され、システム割り当てマネージド ID が割り当てられます。 このリソースには、マルウェア スキャンと機密データ検出の目的でデータへのアクセスが許可される、ストレージ BLOB データ所有者ロールの割り当てが行われています。
-
StorageDataScanner
リソースは、ストレージ アカウントのネットワーク ACL リソース アクセス規則にも追加されます。 これにより、Defender は、ストレージ アカウントへのパブリック ネットワーク アクセスが制限されているときでもデータをスキャンできます。 - サブスクリプション レベルでマルウェア スキャンを有効にする場合は、
StorageAccounts/securityOperators/DefenderForStorageSecurityOperator
という新しいリソースが Azure サブスクリプション内に作成されます。 このリソースには、システムマネージド ID が割り当てられます。 これは、既存のストレージ アカウントで Defender for Storage とマルウェア スキャンの構成を有効にして修復するために使われます。 さらに、それによってサブスクリプションに作成された新しいストレージ アカウントがチェックされて、マルウェア スキャンが有効にされます。 このリソースには、マルウェア スキャンを有効にするために必要なアクセス許可を持つ特定のロールが割り当てられています。
注
マルウェアスキャンは、適切に機能するための特定のリソース、ID、ネットワーク設定に依存します。 これらのいずれかを変更または削除すると、マルウェアスキャンは動作を停止します。 通常の操作を元に戻すには、オンとオフを切り替えます。
サポートされているコンテンツと制限事項
サポートされているコンテンツ
ファイルの種類: ZIP ファイルなどのアーカイブを含むすべてのファイルの種類。
ファイルのサイズ: 最大 50 GB までのサイズの BLOB。
制限事項
サポートされていないストレージ アカウント: レガシの v1 ストレージ アカウントはサポートされていません。
サポートされていないサービス: マルウェア スキャンでは、Azure Files はサポートされていません。
サポートされていない BLOB の種類:追加 BLOB とページ BLOB はサポートされていません。
サポートされていない暗号化: クライアント側で暗号化された BLOB は、サービスで解読できないため、スキャンできません。 カスタマー マネージド キー (CMK) を使って保存時に暗号化された BLOB はサポートされます。
サポートされていないプロトコル: ネットワーク ファイル システム (NFS) 3.0 プロトコルを使ってアップロードされた BLOB はスキャンされません。
BLOB インデックス タグ: 階層型名前空間が有効になっているストレージ アカウントでは、インデックス タグはサポートされません (Azure Data Lake Storage Gen2)。
サポートされていないリージョン: 一部のリージョンでは、マルウェア スキャンはまだサポートされていません。 このサービスは、新しいリージョンに継続的に拡大されています。 サポートされているリージョンの最新の一覧については、Defender for Cloud の提供状況に関するページをご覧ください。
Event Grid: パブリック ネットワーク アクセスが有効になっていない Event Grid トピック (プライベート エンドポイント接続など) は、Defender for Storage でのマルウェア スキャンではサポートされていません。
メタデータの更新後に BLOB がスキャンされない可能性があります**:** アップロード後すぐに BLOB のメタデータが更新された場合、アップロード時のスキャンが BLOB のスキャンに失敗する可能性があります。 この問題を回避するには、 BlobOpenWriteOptions で BLOB メタデータを指定するか、BLOB がスキャンされるまで BLOB メタデータの更新を延期することをお勧めします。
スキャン時間の制限: サイズと複雑さによっては、一部の BLOB のスキャンに時間がかかる場合があります。 たとえば、多くのエントリを含む zip ファイルは、通常、スキャンに長い時間がかかります。 Defender では、1 つの BLOB のスキャンに割り当てられる時間の上限が適用されます。 この時間の範囲は、BLOB のサイズに応じて 30 分から 3 時間です。 BLOB のスキャンに割り当てられた時間よりも長い時間がかかる場合、スキャン結果は "スキャンタイムアウト" とマークされます。
その他のコスト
Azure サービス: マルウェア スキャンでは他の Azure サービスが使われ、それによってさらにコストが発生する可能性があります。
Azure Storage の読み取り操作
Azure Storage BLOB インデックス作成 (BLOB インデックス タグを使用して発生するコストを削減するために、Azure Portal または REST API からマルウェア スキャン結果を格納するためのインデックス タグの使用を無効にすることができます)
Azure Event Grid のイベント
Microsoft Defender for Storage の価格見積もりダッシュボードは、Defender for Storage の予想コストの合計を見積もるのに役立ちます。
BLOB のスキャンと IOPS への影響
マルウェア スキャン サービスは、ファイルをスキャンするたびに、別の読み取り操作をトリガーして、インデックス タグを更新します。 これは、BLOB がアップロードまたは変更された後で行われるアップロード時スキャンと、オンデマンド スキャンの両方に適用されます。 このような操作は行われますが、スキャン対象のデータへのアクセスは影響を受けません。 ストレージの 1 秒あたりの入出力操作 (IOPS) への影響は最小限であり、通常、これらの操作で大きな負荷が発生しないことが保証されます。 IOPS への影響を軽減するために、マルウェア スキャンの結果を格納するためのインデックス タグの使用を無効にすることができます。
マルウェア スキャンの効果が得られないシナリオ
マルウェア スキャンは包括的な検出機能を提供しますが、特定のシナリオでは固有の制限により効果が得られません。 ストレージ アカウントでマルウェア スキャンを有効にすることを決定する前に、これらのシナリオを慎重に評価してください。
チャンク されたデータ: マルウェアスキャンは、小さな部分に分割された BLOB の脅威を検出する際に効果的ではありません。 ファイル ヘッダーが含まれているが、ファイルの残りの部分が見つからない BLOB は破損しているとマークされます。 元のファイルの末尾を含むが、ファイル ヘッダーがない BLOB の場合、マルウェア対策エンジンは存在するマルウェアを検出できません。 このリスクを軽減するには、チャンクの前や完全に再構築された後のデータのスキャンなど、追加のセキュリティ対策を検討してください。
暗号化されたデータ: マルウェア スキャンでは、クライアント側で暗号化されたデータはサポートされません。 サービスはこのデータを復号化できないため、これらの暗号化された BLOB 内のマルウェアは検出されません。 暗号化が必要な場合は、暗号化プロセスの前にデータをスキャンするか、カスタマー マネージド キー (CMK) などのサポートされている暗号化方法を使用して保存時の暗号化を行います。
バックアップ データ: バックアップは、さまざまなファイルのフラグメントで構成されます。 悪意のあるファイルがバックアップされると、バックアップ ファイルに対する誤検知の検出がトリガーされる可能性があり、それ自体は悪意のあるものではありません。
マルウェア スキャンの有効化を決定するときは、他のサポートされているファイルがストレージ アカウントにアップロードされているかどうかを検討します。 また、攻撃者がこのアップロード ストリームを悪用してマルウェアを持ち込む可能性があるかどうかを評価します。
Azure Storage とエンドポイント環境でのマルウェア検出の違い
Defender for Storage では、Defender for Endpoint と同じマルウェア対策エンジンと up-to-date 署名を使用してマルウェアをスキャンします。 ただし、ファイルが Azure Storage にアップロードされると、マルウェア対策エンジンが依存する特定のメタデータがありません。 メタデータが不足すると、Defender for Endpoint によって識別される検出と比較して、Azure Storage での検出ミスの割合が高くなる可能性があります ("false negatives" と呼ばれます)。
以下に示すのは、いくつかの不足しているメタデータの例です。
Web のマーク (MOTW): MOTW は、インターネットからダウンロードされたファイルを追跡する Windows のセキュリティ機能です。 ただし、ファイルが Azure Storage にアップロードされるとき、このメタデータは保持されません。
ファイル パス コンテキスト: 標準的なオペレーティング システムでは、ファイル パスによって脅威検出のためのコンテキストをさらに提供できます。 たとえば、システムの場所 (
C:\Windows\System32
など) を変更しようとするファイルは、疑わしいというフラグが立てられ、さらなる分析の対象になります。 Azure Storage では、BLOB 内の特定のファイル パスのコンテキストを、同じ方法で利用することはできません。ビヘイビアー データ: Defender for Storage は、ファイルを実行せずに、その内容を分析します。 ファイルを検査し、実行をエミュレートしてマルウェアをチェックする場合があります。 ただし、このアプローチでは、実行中にのみ有害性が判明する、特定の種類のマルウェアが検出されない可能性があります。
アクセスとデータのプライバシー
データ アクセスの要件
マルウェア スキャン サービスは、マルウェアをスキャンするためにデータにアクセスする必要があります。 サービスの有効化の間に、StorageDataScanner
という名前の新しいデータ スキャナー リソースが Azure サブスクリプションに作成されます。 このリソースには、システム割り当てマネージド ID が割り当てられ、データにアクセスしてスキャンするためのストレージ BLOB データ所有者ロールの割り当てが付与されます。
ストレージ アカウントのネットワーク構成が、選択した仮想ネットワークと IP アドレスからのパブリック ネットワーク アクセスを有効にするように設定されている場合は、ストレージ アカウントのネットワーク構成の [リソース インスタンス] セクションに StorageDataScanner
リソースが追加されて、スキャンのアクセスが許可されます。
データのプライバシーとリージョンの処理
リージョンの処理: データ所在地の要件に準拠するため、スキャンはストレージ アカウントと同じ Azure リージョン内で実行されます。
データの処理: スキャンされたファイルは格納されません。 場合によっては、ファイルのメタデータ (SHA-256 ハッシュなど) が、詳細な分析のために Microsoft Defender for Endpoint と共有されることがあります。
可能性のある誤検知と検知漏れを処理する
誤検知
誤検知は、システムが無害なファイルを誤って有害と識別した場合に発生します。 これらの問題に対処するには、次のようにします。
分析のために送信する
サンプル提出ポータルを使って、誤検知を報告します。
提出するときは、ソースとして "Microsoft Defender for Storage" を選びます。
Suppress alerts (アラートの抑制)
- Defender for Cloud で抑制ルールを作成して、繰り返し発生する特定の誤検知アラートを防ぎます。
検出されないマルウェアに対処する (検知漏れ)
システムが悪意のあるファイルの検出に失敗すると、検知漏れが発生します。 これが発生したと思われる場合は、サンプル提出ポータルを使って分析のためにファイルを送信して、検出されなかったマルウェアを報告できます。 ファイルが有害であると信じる理由を説明するため、できる限り多くのコンテキストを含めるようにしてください。
注
誤検知と検知漏れが定期的に報告されると、時間と共にマルウェア検出システムの正確性が向上します。