Microsoft Defender for Storage のマルウェア スキャンは、マルウェアの脅威を検出して軽減し、Azure Storage アカウントのセキュリティを強化します。 Microsoft Defender ウイルス対策 (MDAV) を使用してストレージ コンテンツをスキャンし、データのセキュリティとコンプライアンスを確保します。
Defender for Storage では、次の 2 種類のマルウェア スキャンが提供されます。
アップロード時のマルウェア スキャン: BLOB がアップロードまたは変更されたときに自動的にスキャンされ、高速検出が提供されます。 この種類のスキャンは、Web アプリケーションやコラボレーション プラットフォームなど、ユーザーが頻繁にアップロードを行うアプリケーションに最適です。 アップロード時にコンテンツをスキャンすると、悪意のあるファイルがストレージ環境に入ってダウンストリームに伝達されるリスクを軽減できます。
オンデマンドマルウェアスキャン:必要に応じて既存の BLOB を手動でスキャンできます。 このスキャンの種類は、保存されたデータのセキュリティ ベースラインを確立し、インシデント対応中にセキュリティ アラートに応答し、コンプライアンス要件をサポートし、環境全体でプロアクティブなセキュリティ チェックを実行するために使用されます。
これらのスキャン モードは、ストレージ アカウントを保護し、コンプライアンスのニーズを満たし、データの整合性を維持するのに役立ちます。
Note
スキャン期間は、ファイル サイズ、ファイルの種類、サービスの読み込み、ストレージ アカウントの読み取り待機時間によって異なる場合があります。 スキャン結果に依存するアプリケーションは、スキャン時間の変動の可能性を考慮する必要があります。
マルウェア スキャンが重要な理由
クラウド ストレージにアップロードされたコンテンツは、マルウェアを発生させ、セキュリティ リスクを生み出す可能性があります。 マルウェア スキャンは、悪意のあるファイルが環境内に侵入または拡散するのを防ぐのに役立ちます。
主な利点は次のとおりです。
- 悪意のあるコンテンツの検出: マルウェアを識別して軽減します。
- セキュリティ体制の強化: マルウェアの拡散を防ぐためのレイヤーを追加します。
- コンプライアンスのサポート: 規制要件を満たします。
- セキュリティ管理の簡素化: 大規模に構成可能なクラウドネイティブの低メンテナンス ソリューションを提供します。
主な機能
- 組み込みの SaaS ソリューション: インフラストラクチャのメンテナンスが不要で、簡単に有効にできます。
- 高度なマルウェア対策機能: MDAV を使用して、すべての種類のファイルでポリモーフィックおよびメタモーフィックなマルウェアを検出します。
- 包括的な検出: ZIP ファイルや RAR ファイルなどのアーカイブを含め、BLOB あたり最大 50 GB のすべてのファイルの種類をスキャンします。
- 柔軟なスキャン オプション: アップロード時とオンデマンドスキャンの両方を提供します。
- セキュリティ アラート: Microsoft Defender for Cloud で詳細なアラートを生成します。
- Automation のサポート: Logic Apps、Function Apps、Event Grid と統合して、結果をスキャンするための自動応答を作成します。
- コンプライアンスと監査: 監査とコンプライアンスの要件のスキャン結果をログに記録します。
- プライベート エンドポイントのサポート:プライベート エンドポイントをサポートし、パブリック インターネットの露出を減らします。
- マルウェアの自動修復: アップロード時とオンデマンドのマルウェア スキャンによって検出された悪意のある BLOB を論理的に削除します。
適切なスキャン オプションを選択する
悪意のあるアップロードに対する保護が必要な場合は、 アップロード時のマルウェア スキャンを 使用します。Web アプリケーション、ユーザー生成コンテンツ、パートナー統合、共有コンテンツ パイプラインに最適です。 詳しくは、「アップロード時のマルウェア スキャン」をご覧ください。
セキュリティ ベースラインの確立、アラートへの対応、監査の準備、アーカイブまたは交換前の保存データの検証など、スキャンの柔軟性が必要な場合は、 オンデマンドマルウェア スキャン を使用します。 詳細については、「オンデマンド マルウェア スキャン」を参照してください。
マルウェア スキャンの結果
マルウェア スキャンの結果は、4 つの方法で利用できます。 セットアップ後、スキャン結果は、スキャンされたすべてのファイルの BLOB インデックス タグ として、およびファイルが悪意のあるファイルとして識別されたときに Microsoft Defender for Cloud セキュリティ アラート として表示されます。 Azure portal または REST API を使用して、BLOB インデックス タグの使用を無効にすることができます。 Event Grid や Log Analytics など、追加の構成が必要な追加のスキャン結果メソッドを構成することもできます。 次のセクションでは、各スキャン結果の方法について詳しく説明します。
BLOB インデックス タグ
BLOB インデックス タグ は、BLOB で検索可能なキー値属性を提供します。 既定では、Defender for Storage は、スキャンされたすべての BLOB の 2 つのインデックス タグにマルウェア スキャン結果を書き込みます。
-
スキャン結果:
No threats found、Malicious、Error、またはNot scanned - スキャン時間 (UTC)
Azure portal または REST API を使用して、BLOB インデックス タグの使用を無効にすることができます。
BLOB インデックス タグは、迅速なフィルター処理と自動化のシナリオに対して簡潔なスキャン結果を提供するように設計されています。 ただし、インデックス タグは改ざんに対して耐性がありません。 タグを変更するアクセス許可を持つユーザーは、タグを変更できるため、唯一のセキュリティ制御として使用しないでください。 セキュリティに依存するワークフローの場合は、代わりにアラート、Event Grid イベント、または Log Analytics を使用します。
Note
インデックス タグへのアクセスには、適切なアクセス許可が必要です。 詳細については、「 BLOB インデックス タグの取得、設定、更新」を参照してください。
Defender for Cloud のセキュリティ アラート
悪意のあるファイルが検出されると、Microsoft Defender for Cloud によって セキュリティ アラートが生成されます。 これらのアラートには、ファイルに関する詳細、検出されたマルウェアの種類、推奨される調査と修復の手順が含まれます。
Defender for Cloud のセキュリティ アラートは、調査と自動応答に役立ちます。 次のようにすることができます。
- Azure portal で Microsoft Defender for Cloud の > に移動して、。
- アラートが生成されたときに修復アクションをトリガーするようにワークフロー自動化を構成します。
- セキュリティ アラートを セキュリティ情報イベント管理 (SIEM) システムにエクスポートします。 Microsoft Sentinel コネクタを使用して、または任意の別の SIEM にアラートを継続的にエクスポートできます。
セキュリティ アラートへの応答に関する詳細を確認してください。
Event Grid のイベント
Event Grid では、イベント ドリブンの自動化のために、マルウェア スキャン結果をほぼリアルタイムで配信できます。 この方法は省略可能であり、追加の構成が必要ですが、スキャン結果に基づいて自動応答をトリガーする最速の方法が提供されます。
Event Grid では、次のようなイベントを処理するためのエンドポイントの種類がいくつかサポートされています。
Function Apps – サーバーレス コードを実行して、スキャンされたファイルを移動、削除、検疫、または処理します。
Webhook – 外部アプリケーションまたはサービスに通知します。
Event Hubs キューと Service Bus キュー – スキャン結果イベントをダウンストリーム コンシューマーまたは処理パイプラインに転送します。
Event Grid は、マルウェア スキャンの結果にすぐに対応する、待ち時間の短い自動化されたワークフローが必要な場合に推奨されます。 詳細については、「マルウェア スキャンの Event Grid を設定する」を参照してください。
Log Analytics
Log Analytics には、マルウェア スキャン結果用に一元化されたクエリ可能なリポジトリが用意されています。 この方法は省略可能であり、追加の構成が必要ですが、スキャン結果の詳細なレコードが必要なコンプライアンス、監査、履歴調査に最適です。
Log Analytics を有効にすると、すべてのマルウェア スキャン結果が、構成された Log Analytics ワークスペースの StorageMalwareScanningResults テーブルに書き込まれます。 このテーブルに対してクエリを実行して、スキャン結果の確認、パターンの調査、コンプライアンス レポートの生成を行うことができます。
Log Analytics は、監査証跡を作成したり、詳細な分析を実行したりするために推奨されます。 待機時間の短い自動化では、代わりに BLOB インデックス タグまたは Event Grid を使用します。 詳細については、「マルウェア スキャンのログ記録を設定する」を参照してください。
Tip
Defender for Cloud Ninja トレーニングの Defender for Storage ハンズオン ラボを通じて、マルウェアスキャンをエンド ツー エンドで探索します。
マルウェアの自動修復
マルウェア スキャンでは自動応答がサポートされるため、すぐに一貫してスキャン結果に対応できます。 ワークフローの要件に応じて、BLOB インデックス タグ、Defender for Cloud セキュリティ アラート、または Event Grid イベントに基づいて自動化を構築できます。
一般的な応答パターンは次のとおりです。
悪意のあるファイルに対して組み込みの論理的な削除を有効にすると、検出されたマルウェアは、カスタム ワークフローを必要とせずに自動的に移動または削除されます。
Attribute-Based アクセス制御 (ABAC) を使用して、アンスキャンまたは悪意のあるファイルへのアクセスをブロックする。
セキュリティ アラートによってトリガーされる Logic Apps または Event Grid イベントによってトリガーされる Function Apps を使用して、悪意のあるファイルを削除または検疫場所に移動する。
Function Apps で Event Grid を使用して、クリーン ファイルを別のストレージの場所に転送する。
マルウェア スキャンの応答アクションの設定の詳細について説明します。
マルウェア スキャンによってデプロイされたリソース
マルウェア スキャンが有効になっている場合、Defender for Storage では、スキャン操作に必要ないくつかの Azure リソースが自動的にデプロイされます。
Event Grid システムトピック: ストレージ アカウントと同じリソース グループに作成されます。 このシステム トピックでは、BLOB アップロード イベントをリッスンし、アップロード時のマルウェア スキャンをトリガーします。 このリソースを削除すると、マルウェアスキャンが機能しなくなります。
StorageDataScannerリソース: システム割り当てマネージド ID を使用してサブスクリプションに作成されたマネージド サービス リソース。 この ID は ストレージ BLOB データ所有者 ロールを受け取るので、マルウェアスキャンと機密データ検出のために BLOB データを読み取ることができます。 また、パブリック ネットワーク アクセスが制限されている場合のスキャンを許可するために、ストレージ アカウントのネットワーク アクセス制御リスト (ACL) 規則にも追加されます。DefenderForStorageSecurityOperatorリソース (サブスクリプション レベルの有効化): マルウェア スキャンがサブスクリプション レベルで有効になっているときに作成されます。 この ID は、既存のストレージ アカウントと新しく作成されたストレージ アカウント全体でマルウェア スキャン設定を構成、修復、および維持します。 これには、これらの操作を実行するために必要なロールの割り当てが含まれます。
これらのリソースは、マルウェア スキャンが機能するために必要です。 いずれかのファイルが削除または変更されると、マルウェアスキャンが機能しなくなる可能性があります。
Note
リソースまたはアクセス許可が不足しているためにマルウェア スキャンが機能しなくなった場合は、機能を無効にして再度有効にして、必要なコンポーネントを再作成して復元します。
サポートされているコンテンツと制限事項
サポートされているコンテンツ
ファイルの種類: ZIP ファイルや RAR ファイルなどの圧縮アーカイブを含め、すべてのファイルの種類がサポートされています。
ファイル サイズ: 最大 50 GB の BLOB をスキャンできます。
Limitations
サポートされていないストレージ アカウント: レガシ 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 トピック (プライベート エンドポイントを使用するトピックなど) は、スキャン結果の配信ではサポートされていません。
メタデータ更新のタイミング: アップロード後すぐに BLOB のメタデータが更新されると、アップロード時のスキャンが失敗する可能性があります。 これを回避するには、
BlobOpenWriteOptionsでメタデータを指定するか、スキャンが完了するまでメタデータの更新を遅延することをお勧めします。スキャン時間の制限: 大規模または複雑な BLOB は、Defender のスキャン タイムアウト 期間を超える可能性があります (BLOB のサイズと構造によっては、30 分から 3 時間)。 たとえば、入れ子になったエントリが多い ZIP ファイルは、通常、スキャンに時間がかかります。 スキャンが割り当てられた時間を超えた場合、結果は スキャンタイムアウトとしてマークされます。
パフォーマンスとコストに関する考慮事項
BLOB のスキャンと IOPS への影響
各マルウェア スキャンでは、追加の読み取り操作が実行され、BLOB インデックス タグが更新されます。 これらの操作では追加の I/O が生成されますが、通常はストレージ パフォーマンス (IOPS) への影響は最小限です。 スキャンされたデータへのアクセスはスキャン中も影響を受けず、アプリケーションは中断することなく BLOB への読み取りまたは書き込みを続行できます。
スキャン結果ストレージの BLOB インデックス タグを無効にすると、IOPS への影響を軽減できます。
追加コスト
マルウェアスキャンでは、依存する Azure サービスから追加のコストが発生する可能性があります。これには、次のようなコストが発生する場合があります。
- Azure Storage の読み取り操作
- Azure Storage BLOB のインデックス作成 (インデックス タグが使用されている場合)
- Azure Event Grid のイベント
Microsoft Defender for Storage の価格見積もりダッシュボードを使用して、エンドツーエンドのコストを見積もります。
マルウェア スキャンの効果が得られないシナリオ
マルウェア スキャンでは広範な検出機能が提供されますが、特定のデータ パターンやアップロード シナリオでは、サービスがマルウェアを正確に識別できなくなります。 ストレージ アカウントでマルウェア スキャンを有効にする前に、次のケースを考慮してください。
チャンク されたデータ: ファイルがフラグメントにアップロードされると、検出が失敗する可能性があります。 ヘッダーのみのフラグメントは破損としてマークされますが、末尾のみのフラグメントは無害に見える可能性があります。 データをチャンクに分割する前または再構築後にスキャンして、網羅性を確保します。
暗号化されたデータ: マルウェア スキャンでは、クライアント側の暗号化されたデータはサポートされません。 サービスはこのデータを復号化できないため、これらの暗号化された BLOB 内のマルウェアは検出されません。 暗号化が必要な場合は、暗号化する前にデータをスキャンするか、カスタマー マネージド キー (CMK) などのサポートされている保存時の暗号化方法を使用します。この方法では、Azure Storage がアクセスの復号化を処理します。
バックアップ データ: バックアップ ファイルには、以前にスキャンされたコンテンツや悪意のあるコンテンツのフラグメントが含まれている可能性があります。 スキャナーは元のファイル コンテキストではなくフラグメント自体を評価するため、バックアップ ファイル全体が悪意のあるものではなく、バックアップによってアラートが生成される可能性があります。
特に、信頼されていないコンテンツまたはユーザーが生成したコンテンツをストレージ アカウントにアップロードできる場合は、これらのシナリオを脅威モデルの一部として評価します。
ストレージ環境とエンドポイント環境の検出の違い
Defender for Storage では、Defender for Endpoint と同じマルウェア対策エンジンと署名の更新プログラムが使用されます。 ただし、Azure Storage でファイルがスキャンされると、エンドポイントで使用できる特定のコンテキスト メタデータが存在しません。 このコンテキストが不足すると、エンドポイントでのスキャンと比較して、検出ミス (偽陰性) の可能性が高くなる可能性があります。
不足しているコンテキストや使用できないコンテキストの例を次に示します。
Web のマーク (MOTW): MOTW はインターネットから送信されたファイルを識別しますが、ファイルが Azure Storage にアップロードされるときに、このメタデータは保持されません。
ファイル パス コンテキスト: エンドポイント スキャンは、ファイル パスを評価して、ファイルが機密性の高いシステムの場所 (
C:\Windows\System32など) と対話しているかどうかを判断します。 BLOB ストレージでは、同等のパスベースのコンテキストは提供されません。行動データ: Defender for Storage は静的分析と制限付きエミュレーションを実行しますが、実行時の動作は観察しません。 一部のマルウェアでは、実行中に悪意のある動作のみが表示され、静的検査だけでは検出されない場合があります。
アクセスとデータのプライバシー
データ アクセスの要件
マルウェアのデータをスキャンするには、サービスがストレージ アカウント内の BLOB にアクセスする必要があります。 マルウェア スキャンが有効になっている場合、Azure はサブスクリプションに StorageDataScanner という名前のリソースを自動的にデプロイします。 このリソースでは、システム割り当てマネージド ID が使用され、データの読み取りとスキャンを行う ストレージ BLOB データ所有者 ロールが付与されます。
ストレージ アカウントが、選択した仮想ネットワークまたは IP アドレスからのパブリック ネットワーク アクセスのみを許可するように構成されている場合、 StorageDataScanner リソースはストレージ アカウント ネットワーク構成の [リソース インスタンス] セクションに追加されます。 これにより、パブリック ネットワーク アクセスが制限されている場合でも、スキャナーがデータにアクセスできるようになります。
データのプライバシーとリージョンの処理
リージョン処理: マルウェア スキャンは、データ所在地とコンプライアンスの要件をサポートするために、ストレージ アカウントと同じ Azure リージョンで実行されます。
データ処理: スキャンされたファイルはサービスによって格納されません。 限られたケースでは、SHA-256 ハッシュなどのファイル メタデータが Microsoft Defender for Endpoint と共有され、詳細な分析が行われる場合があります。
誤検知と偽陰性の処理
誤検知
誤検知は、無害なファイルが悪意のあるファイルとして誤って識別された場合に発生します。 ファイルのフラグが正しくないと思われる場合は、次のアクションを実行できます。
再分析のためにファイルを送信する
サンプル提出ポータルを使用して、誤検知を報告します。
送信時に、ソースとして Microsoft Defender for Storage を選択します。繰り返し発生するアラートを抑制する
Defender for Cloud で アラート抑制ルール を作成して、環境内で繰り返し発生する誤検知アラートからのノイズを減らします。
検出されないマルウェアに対処する (検知漏れ)
悪意のあるファイルが検出されない場合、偽の否定が発生します。 マルウェアが見落とされたと思われる場合は、 サンプル提出ポータルから分析用のファイルを送信します。 ファイルが悪意があると思われる理由をサポートするために、できるだけ多くのコンテキストを提供します。
Note
誤検知と偽陰性を報告すると、時間の経過と伴う検出精度の向上に役立ちます。