💻

AzureFileSyncを試してみる その4

2022/11/17に公開

はじめに

前回まではAzure File Syncの環境を作る部分を試してきましたが、今回はセキュリティ観点でどんな感じの挙動になるのかちょっと試していきたいと思います。

今回試してみること

Azure File Syncの大きなメリットとしてクラウド階層化があるかと思います。クラウド階層化とはざっくり、同期元のWindowsサーバにはファイルのポインタだけおかれ、実体はAzure Filesにあるということです。なお、ポインタとなっているファイルを開くと、Azure Filesにある実体が同期元のWindowsサーバに呼び戻されます。すなわちファイルへのアクセスがあると呼び戻しがされるということは、仮に同期元のWindowsサーバでウイルス対策ソフトによるスキャンとかがあるとちょっとやばそうな気がします。まずはそれを試してみました。
あとはMicrosoft Defender for StorageというAzureネイティブのセキュリティサービスがあるので、Azure File Syncと組み合わせたらどんな感じになるか試してみました。

システム構成

Azure File Syncとしてはこんな感じの構成で作ってあります。

準備(クラウド階層化を有効化する)

Azureポータルからストレージ同期サービス→作成した同期グループ→サーバーエンドポイントと選択していきます。ここで、「クラウドを使った階層化を有効にする」を選択して、「ボリュームの空き容量ポリシー」は0にします。[1]

Windows Denfenderで呼び戻しはあるか

結論、公式サイト[2]に書いてある通り呼び戻しはありませんでした。
以下では試してみたときの様子を書いてます。

同期元のWindowsサーバのフォルダ(今回はFドライブのdataフォルダ)にファイルを配置し、以下コマンドを実行して強制的に階層化します。

Import-Module "C:\Program Files\Azure\StorageSyncAgent\StorageSync.Management.ServerCmdlets.dll"
Invoke-StorageSyncCloudTiering -Path F:\data

エクスプローラから該当フォルダを確認するとこんな感じで階層化されてることが確認できます。

この状態でWindows Defenderでフルスキャンをしてみました。

スキャン完了後に確認しても以下のままで、呼び戻しはありませんでした。

他のウイルス対策ソフトで呼び戻しはあるか

Windows Defenderではあまりに何もなかったので、ちょっと他のウイルス対策ソフトはどうなのか試してみました。昔よく使われてた某対策ソフトでScanNowしてみたところ、以下のように呼び戻されました。やはりちゃんと対応しているやつ使わないとダメそうです。

準備(テストマルウェアファイルを用意する)

ここからはMicrosoft Defender for Storageの挙動を試すため、まずはテストマルウェアファイルを準備します。今回はeicarのテストファイルを使いました。JPCERTのサイト[3]に入手方法が記載されてますので、ご参考まで。

準備(Microsoft Defender for Storageを有効化する)

AzureポータルからAzure File Syncの同期先となるAzure Filesがあるストレージアカウントを開き、メニューからMicrosoft Defender for Cloudを選択します。

そうすると以下のような画面が表示されるので画面内の右上にある×をクリックします。

以下の画面になったら「Microsoft Defender for Storageを有効にする」をクリックします。これでMicrosoft Defender for Storageの有効化が完了です。[4]

Microsoft Defender for Storageを試す

まずは用意したeicarのテストファイルがちゃんと検知されるものなのか同期元Windowsサーバ上で確認しました。配置した瞬間、ちゃんとWindows Denfender[5]で検知されました。

このままだとAzure Filesにファイル同期される前に駆除されてしまうので、一旦Windows Denfenderを無効にして、同期元のフォルダ(F:\data)にテストファイルを置きました。

こちらのファイルがAzure Filesに同期されて、Microsoft Defender for Storageで検知されるというのを期待していたのですが、待てども待てども検知されません。

ちゃんとAzure Filesに同期されている。

でもMicrosoft Defender for Storageで検知されない。

試しに同期元WindowsサーバにAzure Storage Explorerを導入し、そこからeicarテストファイル(eicar2.txt)をAzure Filesにアップロードしてみました。

しばらく待つとMicrosoft Defender for Storageで検知されました。。

以下サイトの「Potential malware uploaded to a storage account」に「適用対象:Azure Blob Storage、Azure Files (REST API によるトランザクションについてのみ)」と書いてあり、
https://learn.microsoft.com/ja-jp/azure/defender-for-cloud/alerts-reference#alerts-azurestorage
また、以下サイトでも監視できない場合があると書いてあるので、Azure File Syncによって同期されたファイルだと、Microsoft Defender for Storageではマルウェア検知が難しいんだろうなと推測してます。
https://learn.microsoft.com/ja-jp/azure/defender-for-cloud/defender-for-storage-introduction#limitations-of-hash-reputation-analysis

まとめ

Azure File Syncの環境(クラウド階層化有効の環境)では同期元Windowsサーバに入っているウイルス対策ソフトの対応状況を確認しておいた方がよさそうです。また、Microsoft Defender for Storageだけだと保護が難しいところもありそうなので、同期元Windowsサーバでの対策を検討しておいた方がよさそうです。

おまけ

Microsoft Defender for Storageをやめるときは無効化します。
Azureポータルからストレージアカウントを開き、メニューからMicrosoft Defender for Cloudを選択した画面で無効化できます。ただし、大分右の方に無効化を選択する部分があるので、見切れてる場合は、ブラウザの拡大率を小さくした方がよいです。無効化のところがなかなか見つからずちょっと焦りました。。

脚注
  1. 0にすると対象フォルダのファイルが全てクラウド階層化されることになります。すなわち同期元Windowsサーバにはファイルのポインタだけがおかれることになります。 ↩︎

  2. https://learn.microsoft.com/ja-jp/azure/storage/file-sync/file-sync-planning#antivirus ↩︎

  3. https://www.jpcert.or.jp/tips/2009/wr093901.html ↩︎

  4. 今回検証目的なので、最小限の有効化とするためこのような手順をとりました。 ↩︎

  5. 現在の名称はMicrosoft Denfenderですかね。ちょっと本文ではMicrosoft Denfender for StorageとごっちゃになるのでWindows Denfenderと書きます。 ↩︎

Discussion