アップロード時マルウェア スキャン

Microsoft Defenderでのアップロード中のマルウェアスキャン(ストレージ用)

Microsoft Defender for Storage でのマルウェアのアップロード時スキャンでは、BLOB がアップロードまたは変更されたときに自動的にスキャンされ、悪意のあるコンテンツをすばやく検出できます。 このクラウドベースの SaaS ベース ソリューションは、Microsoft Defender ウイルス対策を使用して包括的なマルウェア スキャンを実行し、追加のインフラストラクチャやメンテナンスを必要とせずにストレージ アカウントのセキュリティの維持を確保します。

アップロード時のスキャンをストレージ アカウントに統合すると、次のことができるようになります。

  • 悪意のあるアップロードを防ぐ: マルウェアがアップロード時点でストレージ環境に侵入するのを防ぎます。
  • セキュリティ管理を簡素化する: エージェントをデプロイしたり管理したりすることなく、自動スキャンを利用できます。
  • コンプライアンスを強化する: アップロードされたすべてのデータのマルウェアを確実にスキャンして、規制要件を満たします。

悪意のあるファイルがクラウド ストレージ サービスを通じて組織内に侵入して拡散するおそれがあるため、マルウェアのアップロードはクラウド ストレージにとって最大の脅威となります。 Microsoft Defender for Storage には、包括的なマルウェア対策機能を使用してこのリスクを軽減する組み込みのソリューションが用意されています。

マルウェア スキャンによって悪意のあるコードからデータを保護する方法を示す図。

アップロード時のマルウェア スキャンの一般的なユース ケース

アップロード時マルウェアスキャンは、以下のような様々なシナリオに対応しています:

  • Web アプリケーション: 税関連アプリ、履歴書アップロード サイト、領収書アップロードなどの Web アプリケーションでユーザー作成コンテンツのアップロードをセキュリティで保護します。

  • コンテンツ配布: 一般的なマルウェア配布ポイントになり得るコンテンツ ハブまたは CDN (コンテンツ配信ネットワーク) を通じて大規模に共有される画像や動画などの資産を保護します。

  • コンプライアンス要件: 特に規制業界向けに、信頼できないコンテンツをスキャンすることで、 NIST(用語集定義)、SWIFT、HIPAA、DORAなどの規制基準を満たしましょう。

  • サードパーティの統合: セキュリティ リスクを防ぐために、ビジネス パートナーや契約業者のコンテンツなどのサードパーティのデータがスキャンされていることを確認します。

  • コラボレーション プラットフォーム: 共有コンテンツをスキャンして、チームや組織間の安全なコラボレーションを確保します。

  • データ パイプライン: 複数のデータ ソースからのマルウェアの侵入を防ぎ、ETL (抽出、変換、読み込み) プロセスでデータ整合性を維持します。

  • 機械学習トレーニング データ: データセットにユーザー作成コンテンツが含まれている場合は特に、データ セットがクリーンで安全であることを確保し、トレーニング データの品質を保護します。

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

アップロード時マルウェア スキャンを有効にする

アップロード時のマルウェアスキャンは、Azureポータル、PowerShell、Infrastructure as Codeテンプレート、またはREST APIを使って有効化できます。 始める前に、以下の前提条件を確認してください。

前提条件

アップロード時マルウェアスキャンを有効にする前に、以下の前提条件が満たされているか確認してください:

  • 許可事項:サブスクリプションやストレージアカウントのオーナーまたはコントリビューターの役割、またはDefender for Storageに必要な権限を持つ特定の役割。

  • Defender for Storage: サブスクリプションまたは個々のストレージ アカウントで有効にする必要があります。

  • Microsoft。EventGrid プロバイダー: Azure サブスクリプションに登録する必要があります。

個々のストレージ アカウントの詳細な制御を維持しながら、サブスクリプション全体でマルウェア スキャンを有効にして構成するには、次のいずれかの方法を使用します。

マルウェア スキャンが有効になっている場合、Event Grid システム トピック リソースはストレージ アカウントと同じリソース グループに自動的に作成されます。 このイベントグリッドシステムトピックリソースは、マルウェアスキャンサービスがブロブアップロードトリガーを受信するために利用しています。

詳細な手順については、「Microsoft Defender for Storage のデプロイ」を参照してください。

アップロード時のマルウェア スキャンのコスト管理

マルウェア スキャンは、スキャンされる GB ごとに課金されます。 コストの予測可能性を提供するために、マルウェア スキャンでは、ストレージ アカウントあたりの 1 か月でスキャンされる GB の量に上限を設定できます。

カプセル化メカニズムにより、ストレージ アカウントごとに、測定される月単位のスキャン制限がギガバイト (GB) 単位で設定されます。 この月間スキャン制限は効果的なコスト管理手段として機能します。 1 か月以内にストレージ アカウントの定義済みのスキャン制限に達すると、スキャン操作は自動的に停止します。 スキャニング停止は閾値に達した時点で発生し、最大20GBの偏差があります。 月間スキャン制限に達した後はマルウェアのスキャンは行われません。 上限は毎月末の午前 0 時 (UTC) にリセットされます。 上限を更新すると、通常、有効になるまでに最大 1 時間かかります。

既定では、特定の上限メカニズムが定義されていない場合、10 TB (10,000 GB) の制限が確立されます。

ヒント

キャッピング メカニズムは、個々のストレージ アカウントに対して、またはサブスクリプション全体に対して (サブスクリプションのすべてのストレージ アカウントに、サブスクリプション レベルで定義されている上限が割り当てられます) 設定できます。

カスタマイズ可能なアップロード時マルウェア スキャン フィルター

アップロード時マルウェア スキャンでは、カスタマイズ可能なフィルターがサポートされ、ユーザーは BLOB パスのプレフィックス、サフィックス、BLOB サイズに基づいて除外ルールを設定できます。 ログや一時ファイルなどの特定の BLOB パスと種類を除外することで、不要なスキャンを回避し、コストを削減できます。

フィルターは、Azure portal のストレージ アカウントの [Microsoft Defender for Cloud Settings] タブで、または REST API を使用して構成できます。

重要なポイント:

  • 除外ベースのフィルター: 最大 24 個のフィルター値を使用して、マルウェアスキャンから BLOB を除外できます。

  • OR ロジック: 指定された条件のいずれかを満たす BLOB は除外されます。

フィルターの種類:

  • プレフィックス付きの BLOB (またはコンテナー) を除外する: プレフィックスのコンマ区切りのリストを定義します。

    • 形式: container-name/blob-name (コンテナー名で始まります。ストレージ アカウント名は含めないでください)。

    • コンテナー全体を除外するには、末尾の /を含まないコンテナー名のプレフィックスを使用します。

    • 1 つのコンテナーを除外するには、同様のプレフィックスを持つ他のコンテナーを除外しないように、コンテナー名の後に末尾のスラッシュ / を追加します。

  • サフィックス付きの BLOB を除外する: サフィックスのコンマ区切りのリストを定義します。

    • サフィックスは、BLOB 名の末尾にのみ一致します。

    • ファイル拡張子または BLOB 名の末尾にのみ使用する必要があります。

  • [次の値より大きい BLOB を除外する]: BLOB をスキャンする最大サイズをバイト単位で指定します。 この値より大きい BLOB はスキャンから除外されます。

マルウェアスキャンのしくみ

以下のセクションでは、オンアップロードマルウェアスキャンがどのようにトリガーされ、スキャンパイプラインがブロブをどのように処理するかについて説明します。

アップロード時マルウェア スキャンのフロー

アップロード時スキャンは、BlobCreated で指定されているように、BlobRenamedまたは イベントが発生する操作によってトリガーされます。 記録される操作には次のようなものがあります。

  • 新しい BLOB のアップロード: 新しい BLOB がコンテナーに追加されたとき
  • 既存の BLOB の上書き: 既存の BLOB が新しいコンテンツに置き換えられたとき
  • BLOB への変更の完了:PutBlockListFlushWithClose などの BLOB に変更をコミットする操作

Azure Data Lake Storage Gen2 の AppendFile や Azure BlockBlob の PutBlock などの増分操作では、マルウェア スキャンは個別にトリガーされません。 マルウェア スキャンは、PutBlockListFlushWithClose などのコミット操作によってこれらの追加が完了した場合にのみ発生します。 コミットごとに新しいスキャンを開始できます。増分更新によって同じデータが複数回スキャンされた場合、コストが増加する可能性があります。

スキャン プロセス

ブロブのアップロードや修正が検出された場合、スキャンプロセスは以下の段階で構成されます。

  1. イベント検出:BlobCreatedまたはBlobRenamed イベントが発生すると、マルウェア スキャン サービスによって変更が検出されます。
  2. BLOB の取得: サービスは、ストレージ アカウントと同じリージョン内の BLOB コンテンツを安全に読み取ります。
  3. メモリ内スキャン: Microsoft Defender ウイルス対策と最新のマルウェア定義を使用して、コンテンツがメモリ内でスキャンされます。
  4. 結果の生成: スキャン結果が生成され、結果に基づいて適切なアクションが実行されます。
  5. コンテンツの破棄: スキャンされたコンテンツは保持されず、スキャンの直後に削除されます。

アップロード時のマルウェア スキャンのスループットと容量

アップロード時のマルウェア スキャンには、大規模な運用全体のパフォーマンスと効率を確保するために、特定のスループットと容量の制限があります。 これらの制限は、1 分あたりに処理できるデータの量を制御し、保護とシステム負荷のバランスを確保するのに役立ちます。

  • スキャン スループット レート制限: アップロード時のマルウェア スキャンでは、ストレージ アカウントごとに毎分 50 GB まで処理できます。 BLOB のアップロード率がこのしきい値を一時的に超えた場合、システムはファイルをキューに入れてスキャンを試みます。 ただし、アップロード率が一貫して制限を超えている場合は、一部の BLOB がスキャンされない可能性があります。

オンデマンド スキャンとの共通点

以下のセクションは 、オンデマン ドおよびオンアップロードのマルウェアスキャンの両方に適用されます。

これらのトピックの詳細については、「マルウェア スキャンの概要」ページを参照してください。

ベスト プラクティスとヒント

保護、コスト管理、運用対応を改善するために、以下のベストプラクティスを活用してください:

  • コスト管理の上限をストレージ アカウント (特にアップロード トラフィックの多いアカウント) に設定して、コストを効果的に管理および最適化する。
  • Log Analytics を使用して、コンプライアンスと監査の目的でスキャン履歴を追跡する。
  • ユースケースでマルウェア対策が必要な場合は、組み込みのソフト削除機能による悪意のある BLOB の処理を使用するか、Event Grid と Logic Apps を利用して自動的な対策(例えば、隔離や削除など)を設定することを検討してください。 詳細なセットアップ ガイダンスについては、 マルウェア スキャンでの修復の設定に関するページを参照してください。

ヒント

Microsoft のハンズオン ラボを通じて、Defender for Storage のマルウェア スキャン機能を確認することをお勧めします。 セットアップ、テスト、応答の構成に関する詳細なガイドについては、Ninja トレーニング の手順に従ってください。

次のステップ

Microsoft Defender for Storageにおけるマルウェアスキャンについて詳しく知りたい方は、以下の記事をご覧ください: