マルウェア スキャンの概要

Microsoft Defender for Storage のマルウェア スキャンでは、マルウェアの脅威を検出して軽減することで、Azure Storage アカウントのセキュリティが向上します。 Microsoft Defender ウイルス対策 (MDAV) を使用してストレージ コンテンツをスキャンし、データのセキュリティとコンプライアンスを確保します。

Defender for Storage では、次の 2 種類のマルウェア スキャンが提供されます。

  • アップロード時のマルウェア スキャン: BLOB がアップロードまたは変更されたときに自動的にスキャンされ、高速検出が提供されます。 この種類のスキャンは、Web アプリケーションやコラボレーション プラットフォームなど、ユーザーが頻繁にアップロードを行うアプリケーションに最適です。 アップロード時にコンテンツをスキャンすると、悪意のあるファイルがストレージ環境に入ってダウンストリームに伝達されるリスクを軽減できます。

  • オンデマンドマルウェアスキャン:必要なときに既存のブロブやファイルをスキャンできます。 ストレージアカウント全体や、単一のブロブ、特定のコンテナ、パスプレフィックスに合致するオブジェクトなどのターゲットアイテムをスキャンできます。 このスキャンタイプを用いて、保存データのセキュリティベースラインを設定し、インシデント対応時のセキュリティアラートに対応し、コンプライアンス要件をサポートし、ターゲットを絞ったセキュリティ調査を実施できます。

これらのスキャン モードは、ストレージ アカウントを保護し、コンプライアンスのニーズを満たし、データの整合性を維持するのに役立ちます。

注

スキャン期間は、ファイル サイズ、ファイルの種類、サービスの読み込み、ストレージ アカウントの読み取り待機時間によって異なる場合があります。 スキャン結果に依存するアプリケーションは、スキャン時間の変動の可能性を考慮する必要があります。

マルウェア スキャンが重要な理由

クラウド ストレージにアップロードされたコンテンツは、マルウェアを発生させ、セキュリティ リスクを生み出す可能性があります。 マルウェア スキャンは、悪意のあるファイルが環境内に侵入または拡散するのを防ぐのに役立ちます。

主な利点は次のとおりです。

  • 悪意のあるコンテンツの検出: マルウェアを識別して軽減します。
  • セキュリティ体制の強化: マルウェアの拡散を防ぐためのレイヤーを追加します。
  • コンプライアンスのサポート: 規制要件を満たします。
  • セキュリティ管理の簡素化: 大規模に構成可能なクラウドネイティブの低メンテナンス ソリューションを提供します。

主要な機能

マルウェアスキャンには以下の主要な機能が含まれます:

  • 組み込みのSaaSソリューション:インフラメンテナンスなしで簡単に有効化できます。
  • 高度なアンチマルウェア機能:MDAVを使用して、すべてのファイル形式に対してポリモーフィックおよびメタモルフィックマルウェアを検出します。
  • 包括的な検出: ZIP ファイルや RAR ファイルなどのアーカイブを含め、BLOB とファイルあたり最大 50 GB のすべてのファイルの種類をスキャンします。
  • 柔軟なスキャンオプション:オンアップロードとオンデマンドの両方のスキャンを提供します。
  • セキュリティアラート:Microsoft Defender for Cloudで詳細なアラートを生成します。
  • 自動化サポート:Logic Apps、Function Apps、Azure Event Gridと連携し、スキャン結果に対する自動応答を作成できます。
  • コンプライアンスと監査:ログは監査およびコンプライアンス要件のために結果をスキャンします。
  • プライベートエンドポイントサポート: プライベートエンドポイントをサポートし、公共のインターネットへの露出を減らします。
  • マルウェアの自動修復: アップロード時とオンデマンドのマルウェア スキャンによって検出された悪意のある BLOB を論理的に削除します。

適切なスキャン オプションを選択する

悪意のあるアップロードに対する保護が必要な場合は、 アップロード時のマルウェア スキャンを 使用します。Web アプリケーション、ユーザー生成コンテンツ、パートナー統合、共有コンテンツ パイプラインに最適です。 詳しくは、「アップロード時のマルウェア スキャン」をご覧ください。

スキャンの柔軟性が必要な場合、セキュリティベースラインの設定、アラートへの対応、監査準備、特定の怪しいブロブやファイルの調査、アーカイブや交換前の保存データの検証などにオン デマンドマルウェアスキャン を活用しましょう。 ストレージアカウント全体をスキャンしたり、フィルターを使って特定のアイテムをターゲットにすることもできます。 詳細については、「オンデマンド マルウェア スキャン」を参照してください。

マルウェア スキャンの結果

マルウェアスキャン結果には4つの方法でアクセスできます。 設定後は、スキャンしたファイルごとにブロブインデックスタグとしてスキャン結果が表示され、ファイルが悪意あると特定された際にはMicrosoft Defender for Cloudのセキュリティアラートが表示されます。 Azure ポータルまたは REST API を使用して、BLOB インデックス タグの使用を無効にすることができます。 Event GridやLog Analyticsなど、追加の設定が必要なスキャン結果メソッドも設定できます。

マルウェア スキャン結果の表示および使用のフローを示す図。

以降のセクションでは、各メソッドについて詳しく説明します。

BLOB インデックスタグ

BLOB インデックス タグ は、BLOB で検索可能なキー値属性を提供します。 既定では、Defender for Storage は、スキャンされたすべての BLOB の 2 つのインデックス タグにマルウェア スキャン結果を書き込みます。

  • スキャン結果: No threats found、 Malicious、 Error、または Not scanned
  • スキャン時間 (UTC)

Azure ポータルまたは REST API を使用して、BLOB インデックス タグの使用を無効にすることができます。

BLOB インデックス タグは、迅速なフィルター処理と自動化のシナリオに対して簡潔なスキャン結果を提供するように設計されています。 インデックスタグは改ざん防止ではありません。 タグを改変する権限を持つユーザーはタグを変更できるので、それだけをセキュリティコントロールとして使うべきではありません。 セキュリティに依存するワークフローの場合は、代わりにアラート、Event Grid イベント、または Log Analytics を使用します。

BLOB インデックス タグの例を示すスクリーンショット。

注

インデックス タグへのアクセスには、適切なアクセス許可が必要です。 詳細については、「 BLOB インデックス タグの取得、設定、更新」を参照してください。

Defender for Cloud のセキュリティ アラート

悪意のあるファイルが検出されると、Defender for Cloud によって セキュリティ アラートが生成されます。 これらのアラートには、ファイルに関する詳細、検出されたマルウェアの種類、推奨される調査と修復の手順が含まれます。

Defender for Cloud のセキュリティ アラートは、調査と自動応答に役立ちます。 次のようにすることができます。

セキュリティアラートへの対応についての詳細は、「 カスタムトピックの購読」をご覧ください。

Event Grid のイベント

Event Grid では、イベント ドリブンの自動化のために、マルウェア スキャン結果をほぼリアルタイムで配信できます。 この方法は省略可能であり、より多くの構成が必要ですが、スキャン結果に基づいて自動応答をトリガーする最速の方法が提供されます。

Event Grid では、次のようなイベントを処理するためのエンドポイントの種類がいくつかサポートされています。

  • ファンクションアプリ:サーバーレスコードを実行して、スキャンされたファイルの移動、削除、隔離、処理を行います。

  • ウェブフック:外部アプリケーションやサービスに通知します。

  • イベントハブおよびService Busキュー:結果イベントを下流の消費者や処理パイプラインにフォワードスキャンします。

低遅延で自動化されたワークフローが必要なときは、マルウェアスキャン結果に即座に反応するイベントグリッドを活用しましょう。 詳細については、「マルウェア スキャンの Event Grid を設定する」を参照してください。

Log Analytics

Log Analytics には、マルウェア スキャン結果用に一元化されたクエリ可能なリポジトリが用意されています。 この方法は省略可能であり、より多くの構成が必要ですが、スキャン結果の詳細なレコードが必要なコンプライアンス、監査、履歴調査に最適です。

Log Analyticsを有効にすると、ソリューションはすべてのマルウェアスキャン結果を設定済みのLog AnalyticsワークスペースのStorageMalwareScanningResultsテーブルに書き込みます。 このテーブルに対してクエリを実行して、スキャン結果の確認、パターンの調査、コンプライアンス レポートの生成を行うことができます。

監査記録の作成や詳細な分析にはLog Analyticsを活用してください。 待機時間の短い自動化では、代わりに BLOB インデックス タグまたは Event Grid を使用します。 詳細については、「マルウェア スキャンのログ記録を設定する」を参照してください。

マルウェアの自動修復

マルウェア スキャンでは自動応答がサポートされるため、すぐに一貫してスキャン結果に対応できます。 ワークフローの要件に応じて、BLOB インデックス タグ、Defender for Cloud セキュリティ アラート、または Event Grid イベントに基づいて自動化を構築できます。

一般的な応答パターンは次のとおりです。

  • 悪意のあるファイルに対して組み込みの論理的な削除を有効にすると、検出されたマルウェアは、カスタム ワークフローを必要とせずに自動的に移動または削除されます。

  • Attribute-Based Access Control(ABAC)を使って未スキャンまたは悪意のあるファイルへのアクセスをブロックすること。

  • セキュリティアラートでトリガーされるAzure Logic AppsやイベントグリッドイベントでトリガーされるFunction Appsを使って、悪意のあるファイルを隔離場所へ削除または移動すること。

  • Event GridとFunction Appsを使ってクリーンファイルを別のストレージに転送する方法。

マルウェア スキャンの応答アクションの設定の詳細について説明します。

マルウェア スキャンによってデプロイされたリソース

マルウェアスキャンを有効にすると、Defender for Storageはスキャン操作に必要な複数のAzureリソースを自動的に展開します:

  • イベントグリッドシステムのトピック:ストレージアカウントと同じリソースグループ内で作成。 このシステム トピックでは、BLOB アップロード イベントをリッスンし、アップロード時のマルウェア スキャンをトリガーします。 このリソースを削除すると、マルウェアスキャンが機能しなくなります。

  • StorageDataScannerリソース:Defender for Storageは、システムに割り当てられたマネージドIDでサブスクリプション内にこのマネージドサービスリソースを作成します。 アイデンティティはストレージブロ ブデータ所有者 の役割を受け取り、マルウェアスキャンや機密データ発見のためにブロブデータを読み取ることができます。 Defender for Storageはまた、公共ネットワークアクセスが制限されている場合にスキャンを可能にするために、ストレージアカウントのネットワークアクセス制御リスト(ACL)ルールにIDを追加します。

  • DefenderForStorageSecurityOperatorリソース(サブスクリプションレベルの有効化):Defender for Storageは、サブスクリプションレベルでマルウェアスキャンを有効にするとこのリソースを作成します。 このIDは、既存および新たに作成されたストレージアカウントのマルウェアスキャン設定を設定、修復、維持します。 これには、これらの操作を実行するために必要なロールの割り当てが含まれます。

これらのリソースは、マルウェア スキャンが機能するために必要です。 いずれかのファイルが削除または変更されると、マルウェアスキャンが機能しなくなる可能性があります。

注

リソースや権限が欠落してマルウェアスキャンが機能しなくなった場合は、必要なコンポーネントを再作成・復元するために機能を無効化・再有効にしてください。

サポートされているコンテンツと制限事項

サポートされているコンテンツ

マルウェアスキャンは以下のコンテンツタイプとサイズをサポートします:

  • ファイル形式:ZIPやRARファイルなどの圧縮アーカイブを含むすべてのファイル形式に対応しています。

  • ファイルサイズ:ブロブやファイルを最大50GBまでスキャンできます。

制限事項

マルウェアスキャンを使用する際は以下の制限にご注意ください。

  • サポートされていないストレージアカウント:レガシーv1ストレージアカウントはサポートされていません。

  • サポートされていないサービス:アップロード時のマルウェアスキャンはAzure Filesではサポートされていません。

  • サポートされていないブロブタイプ: アペンドブロブやページブロブ はサポートされていません。

  • サポートされていないクライアント側暗号化:クライアント側で暗号化されたブロブは、サービス側が復号できないためスキャンできません。 カスタマー マネージド キー (CMK) を使って保存時に暗号化された BLOB はサポートされます。

  • サポートされていないプロトコル:Network File System(NFS) 3.0プロトコルでアップロードされたブロブはスキャンされません。

  • Blobインデックスタグ:階層的な名前空間が有効化されたストレージアカウント(Azure Data Lake Storage Gen2)用のインデックスタグがパブリックプレビューで利用可能です。 この機能を使用するには、階層型名前空間向け Blob タグを有効にします。

  • サポートされていない地域:現在、すべての地域がマルウェアスキャンをサポートしているわけではありません。 最新の一覧については、「 Defender for Cloud の可用性」を参照してください。

  • イベントグリッド:パブリックネットワークアクセスが有効でないイベントグリッドトピック、例えばプライベートエンドポイントを使用しているものは、スキャン結果配信にはサポートされていません。

  • メタデータ更新タイミング:ブロブのメタデータがアップロード直後に更新されると、オンアップロードスキャンが失敗する可能性があります。 この失敗を避けるために、 BlobOpenWriteOptions でメタデータを指定するか、スキャン完了までメタデータの更新を遅らせてください。

  • スキャン時間制限:大型または複雑なブロブは、ブロブのサイズや構造によって30分から3時間の範囲であるDefenderのスキャンタイムアウトウィンドウを超えることがあります。 たとえば、入れ子になったエントリが多い ZIP ファイルは、通常、スキャンに時間がかかります。 スキャンが割り当てられた時間を超えた場合、結果は スキャンタイムアウトとしてマークされます。

パフォーマンスとコストに関する考慮事項

BLOB のスキャンと IOPS への影響

各マルウェアスキャンは追加の読み取り操作を行い、ブロブインデックスタグを更新します。 これらの操作では追加の I/O が生成されますが、通常はストレージ パフォーマンス (IOPS) への影響は最小限です。 スキャンされたデータへのアクセスはスキャン中も影響を受けず、アプリケーションは中断することなく BLOB への読み取りまたは書き込みを続行できます。

スキャン結果の保存でブロブインデックスタグを無効にすることでIOPSへの影響を軽減できます。

追加コスト

マルウェアスキャンは、依存するAzureサービスから追加コストが発生する可能性があります。以下のようなものがあります。

  • Azure Storage の読み取り操作
  • Azure Storage Blob インデックス作成、インデックスタグを使う場合
  • Event Grid のイベント

Microsoft Defender for Storage の価格見積もりダッシュボードを使用して、エンドツーエンドのコストを見積もります。

マルウェア スキャンの効果が得られないシナリオ

マルウェア スキャンでは広範な検出機能が提供されますが、特定のデータ パターンやアップロード シナリオでは、サービスがマルウェアを正確に識別できなくなります。 ストレージ アカウントでマルウェア スキャンを有効にする前に、次のケースを考慮してください。

  • チャンクデータ:ファイルを断片的にアップロードすると検出が失敗することがあります。 サービスはヘッダーのみのフラグメントを破損としてマークし、テールのみのフラグメントは無害に見えることがあります。 データをチャンクに分割する前または再構築後にスキャンして、網羅性を確保します。

  • 暗号化データ:マルウェアスキャンはクライアント側の暗号化データをサポートしていません。 サービスはこのデータを復号化できないため、これらの暗号化された BLOB 内のマルウェアは検出されません。 暗号化が必要な場合は、暗号化する前にデータをスキャンするか、カスタマー マネージド キー (CMK) などのサポートされている保存時の暗号化方法を使用します。この方法では、Azure Storage がアクセスの復号化を処理します。

  • バックアップ データ: バックアップ ファイルには、以前にスキャンされたコンテンツや悪意のあるコンテンツのフラグメントが含まれている可能性があります。 スキャナーは元のファイルのコンテキストではなくフラグメント自体を評価するため、バックアップファイル全体が悪意を持っていなくてもアラートが発生することがあります。

特に、信頼されていないコンテンツまたはユーザーが生成したコンテンツをストレージ アカウントにアップロードできる場合は、これらのシナリオを脅威モデルの一部として評価します。

ストレージ環境とエンドポイント環境の検出の違い

Microsoft Defender for Storageは、Microsoft Defender for Endpointと同じアンチマルウェアエンジンとシグネチャアップデートを使用しています。 しかし、Azure Storageでファイルをスキャンすると、エンドポイントで利用可能な特定のコンテキストメタデータは得られません。 このコンテキストが不足すると、エンドポイントでのスキャンと比較して、検出ミス (偽陰性) の可能性が高くなる可能性があります。

不足しているコンテキストや使用できないコンテキストの例を次に示します。

  • Mark of the Web(MOTW):MOTWはインターネットから発信されたファイルを識別しますが、Azure Storageにアップロードされる際にはこのメタデータは保持されません。

  • ファイルパスコンテキスト:エンドポイントスキャンはファイルパスを評価し、ファイルが C:\Windows\System32などの敏感なシステム位置と相互作用しているかどうかを判断します。 BLOB ストレージでは、同等のパスベースのコンテキストは提供されません。

  • 挙動データ:Defender for Storageは静的解析と限定的なエミュレーションを行いますが、実行時の挙動は観察しません。 一部のマルウェアでは、実行中に悪意のある動作のみが表示され、静的検査だけでは検出されない場合があります。

アクセスとデータのプライバシー

データ アクセスの要件

マルウェアをスキャンするには、ストレージアカウント内のブロブへのアクセスが必要です。 マルウェアスキャンを有効にすると、Azure自動的にサブスクリプション内のリソースStorageDataScannerを展開します。 このリソースでは、システム割り当てマネージド ID が使用され、データの読み取りとスキャンにDefender for Storage Data Scanner ロールが付与されます。

ストレージ アカウントが、選択した仮想ネットワークまたは IP アドレスからのパブリック ネットワーク アクセスのみを許可するように構成されている場合、 StorageDataScanner リソースはストレージ アカウント ネットワーク構成の [リソース インスタンス] セクションに追加されます。 この構成により、公共ネットワークへのアクセスが制限されていてもスキャナーがデータにアクセスできます。

データのプライバシーとリージョンの処理

マルウェアスキャンは、データプライバシーと地域別の処理を以下のように処理します。

  • 地域別処理:マルウェアスキャンはストレージアカウントと同じAzureリージョン内で行われ、データのレジデンシーとコンプライアンス要件をサポートします。

  • データ処理:このサービスはスキャンしたファイルを保存しません。 限定的なケースでは、SHA-256ハッシュなどのファイルメタデータをDefender for Endpointと共有し、さらなる分析を行うこともあります。

誤検知と偽陰性の処理

偽陽性

誤検知は、無害なファイルが悪意のあるファイルとして誤って識別された場合に発生します。 ファイルが誤ってフラグが立てられたと思われる場合は、以下の手順を取ってください。

  • ファイルを再分析のために提出してください。

    サンプル提出ポータルを使用して、誤検知を報告します。

    提出時に「Microsoft Defender for Storage」をソースとして選択してください。

  • 繰り返しの警報を抑制しろ。

    Defender for Cloud で アラート抑制ルール を作成して、環境内で繰り返し発生する誤検知アラートからのノイズを減らします。

検出されないマルウェアに対処する (検知漏れ)

悪意のあるファイルが検出されない場合、偽の否定が発生します。 マルウェアが見落とされたと思われる場合は、 サンプル提出ポータルから分析用のファイルを送信します。 ファイルが悪意があると思われる理由をサポートするために、できるだけ多くのコンテキストを提供します。

注

誤検知と偽陰性を報告すると、時間の経過と伴う検出精度の向上に役立ちます。

マルウェアスキャンの選択肢についての詳細は、以下のリソースをご覧ください。

次のステップ