📁

Azure Files ファイル共有に対してウイルススキャンは可能か?

2025/02/07に公開

はじめに

前回 Azure Files と オンプレAD DS の連携(Microsoft Entra ID とは同期しない) をアップしましたが、今回は Azure Files に対するウイルススキャンの方法について纏めたいと思います

そもそも、セキュリティ対策としてどんな方法がある?

まず一番初めに思い浮かべるのが Microsoft Defender for Storage を利用してセキュリティ対策を行うという方法ですが、Azure files でサポートされているのは「アクティビティ監視」のみとなります。その他の機能として「マルウェアスキャン」や「機密データの脅威検出」などが存在していますが、現時点ではこの2つの機能は Azure Files ではサポートされていません

となると、考えられる方法としては以下2つになるかと思います

  1. クライアント側での保護(MDEを利用)
  2. クライアント側での保護(MDEを利用)+ Microsoft Defender for Storage(アクティビティ監視)

アクティビティ監視では、悪意のある IP アドレスや Tor 出口ノードからのアクセス、潜在的に危険なアプリケーションなど、疑わしいシグネチャや異常なアクティビティを検知し、ストレージ アカウントに対する不審な動作を監視します。これにより、悪意のある行動が発生している可能性のあるアクティビティに対し、リアルタイムでセキュリティ アラートを受け取ることができます。

詳細は以下リンクにてご確認ください

Azure Files のファイル共有に対してウイルススキャンはできないの?

唯一の希望である Defender for Storage での「マルウェアスキャン」は Azure Files では利用できなさそうなので、他の方法が無いか考えてみました。力業ですが Azure 上の VM (Windows server) から Azure Files のファイル共有をマウントして Microsoft Defender ウイルス対策 (MDAV) を利用して定期的にスキャンさせれば実装できるのでは? と考えて試してみました。

検証環境の構成図

作業の流れ

  1. ファイル共有をマウント (AD Server)
  2. MDAVの設定 (AD Server)
  3. 動作確認 (AD Server)

1. ファイル共有のマウント (AD Server)

MDAV でネットワークドライブをスキャンするためには以下に記載されている通り システムレベルでマップされている 必要があります

どの OS でも、システム レベルでマップされているネットワーク ドライブのみがスキャンされます。ユーザー レベルのマップされたネットワーク ドライブはスキャンされません。ユーザー レベルのマップされたネットワーク ドライブは、ユーザーが自分のセッションで手動でマップし、独自の資格情報を使用するドライブです。

本検証環境で利用している AD Server は Windows server 2022 となるため New-SmbGlobalMapping コマンドを利用してマウントを実施します(本コマンドは Windows Server 2019 / Windows 10 以降の OS で利用可)

1-1. ファイル共有のマウント

powershell にて以下コマンドを実行する

powershell
# ストレージアカウントの情報を変数に設定
$User = "localhost\<ストレージアカウント名>"
$PW = ConvertTo-SecureString -String "<ストレージアカウントキー>" -AsPlainText -Force
$Credential = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $User, $PW
$RemotePath = "\\<ストレージアカウント名>.file.core.windows.net\<ファイル共有名>"
$LocalDriveLetter = "<マッピングするドライブレター(例 Z:)>"

# Azure Files のネットワーク共有をグローバルにマウント
New-SmbGlobalMapping -RemotePath $RemotePath -Credential $Credential -LocalPath $LocalDriveLetter -Persistent $True

1-2. マウントされたことを確認する

[補足] タスクスケジューラを利用する場合

Windows Server 2019 以前のバージョンの場合は New-SmbGlobalMapping が利用できないため、タスクスケジューラを利用する必要があります。手順は折りたたんでおきますので、必要に応じてご確認ください

システムレベルでのマップ(タスクスケジューラの利用)

※補足※
本作業を実施する前にストレージアカウントキーを利用してマウントを行い、作業ユーザーにアクセス権を付与しておく(作業用ユーザーでログインした際に、ファイル共有へアクセスできるようにするため)

補足1-1. タスクスケジューラの起動

補足1-2. タスクの作成

全般

トリガー

操作

条件

設定

補足1-3. タスクの確認

タスクスケジューラーにてタスクが作成されたことを確認する

補足1-4. マウントの確認

OS再起動を実施し、Azure Files 共有がマウントされていることを確認する

2. MDAVの設定 (AD Server)

2-1. ネットワークドライブに対するスキャンを有効化する

設定を行うパラメーター名と設定値は以下の通り

パラメータ 設定値 備考
DisableScanningMappedNetworkDrivesForFullScan false
DisableScanningNetworkFiles false 既定でfalse
powershell
# ネットワークドライブに対するスキャンの有効化
Set-MpPreference -DisableScanningMappedNetworkDrivesForFullScan $false

# 設定値の確認
Get-MpPreference
(省略)
DisableScanningMappedNetworkDrivesForFullScan         : False
DisableScanningNetworkFiles                           : False

3. 動作確認 (スキャン手動実行)

3-1. EICARテストファイルをAzure Files 共有フォルダへ設置

EICAR テストファイルを Download Anti Malware Testfile からダウンロードし、共有フォルダへファイルを設置する

ファイル名と設置場所は以下の通り

ファイル名 設置場所
eicar20241112-01.txt Z:\user1dir


3-2. カスタムスキャン実施(手動)

AD Server の NVAD にてカスタムスキャンを実施する(フルスキャンの場合は時間が掛かるため、カスタムスキャンで対象のディレクトリを選択してスキャンを実施)

3-3. スキャン結果の確認

Windows セキュリティの画面にて「脅威が見つかりました」と表示されたら、検知されたファイル名を確認する

EICAR テストファイルが検出されていることを確認後、アクション(削除)を実行し、対象のファイルが削除されることを確認する

イベントビューアにてイベントログを確認する(「アプリケーションとサービス ログ」 > 「Microsoft」 > 「Windows」 > 「Windows Defender」 > 「Operational」 を選択)

4. 動作確認 (スキャン定期実行)

4-1. EICARテストファイルをAzure Files 共有フォルダへ設置

手順は項番 3-1 を参照。ファイル名と設置場所は以下の通り

ファイル名 設置場所
eicar20241113-01.txt Z:\user1dir

4-2. カスタムスキャンの設定(定期実行)

4-2.1 タスクスケジューラの起動

4-2.2 タスクの作成

全般

トリガー

操作
設定するコマンドは以下の通り

プログラム/スクリプト 引数の追加
powershell.exe -Command "Start-MpScan -ScanType CustomScan -ScanPath Z:"

条件

設定

4-2.3 タスクの確認

タスクスケジューラーにてタスクが作成されたことを確認する

4-3. スキャン結果の確認

タスクスケジューラーにてタスクが正常に実施されたことを確認する

EICAR テストファイルが削除されていることを確認する

イベントビューアにてイベントログを確認する(「アプリケーションとサービス ログ」 > 「Microsoft」 > 「Windows」 > 「Windows Defender」 > 「Operational」 を選択)

まとめ

今回は Azure Files の領域に対して Azure VM (Windows Server 2022) の MDAV を利用して定期スキャンを実行させる手順を纏めました
本手順はあくまでもウイルススキャンを行う場合の一例で、本方法が推奨というわけではないのでご注意ください

Appendix

公式Docs
https://learn.microsoft.com/ja-jp/azure/defender-for-cloud/defender-for-storage-introduction

https://learn.microsoft.com/ja-jp/defender-endpoint/configure-advanced-scan-types-microsoft-defender-antivirus

https://learn.microsoft.com/en-us/powershell/module/smbshare/new-smbglobalmapping?view=windowsserver2022-ps

https://learn.microsoft.com/en-us/powershell/module/defender/start-mpscan?view=windowsserver2022-ps

サポートブログ
https://jpaztech.github.io/blog/vm/azure-files-user-mount/

Zennの記事
https://zenn.dev/microsoft/articles/zenn-files-onpread-noaad

GitHub
https://github.com/takutsu001/azurefiles-base-env

Microsoft (有志)

Discussion