Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

WindowsファイルサーバーでFSRMを活用してランサムウェアを検知・ブロックする方法

本記事では、Windows Server 2012 R2で稼働するファイルサーバー上で、ファイルサーバーリソースマネージャー(FSRM)の機能を利用してランサムウェアを検知・遮断する方法を解説します。具体的には、ファイルサーバーへのFSRMサービスのインストール、ファイルスクリーンの設定、そしてランサムウェアを検知した際にユーザーの共有フォルダーへのアクセスをブロックする手順までを紹介します。

FSRMを使ったランサムウェアの検出方法

ファイルサーバーにFSRM機能がインストールされていない場合は、サーバーマネージャーのGUIコンソールから追加するか、PowerShellで以下のコマンドを実行してインストールしてください。

Install-WindowsFeature FS-Resource-Manager -IncludeManagementTools

役割が正しくインストールされたかどうかは、次のコマンドで確認できます。

Get-WindowsFeature -Name FS-Resource-Manager

機能のインストール完了後は、サーバーを再起動しておきましょう。

メール通知のためのFSRMのSMTP設定

次に、管理者へメール通知を送信できるよう、FSRMのSMTP設定を行います。fsrm.mscを起動し、File Server Resource Managerコンソールのルートを右クリックして[Configure Options](オプションの構成)を選択します。

SMTPサーバーの名前またはIPアドレス、管理者のメールアドレス、送信者メールアドレスを指定してください。

ヒント: 社内にメールサーバーがない場合は、SMTPリレーを使ってメール送信を構成することも可能です。

SMTPサーバーが正しく設定されているかを確認するには、[Send Test E-mail](テストメール送信)ボタンでテストメールを送ってみましょう。

FSRMのSMTP設定は、PowerShellからも行えます。

Set-FsrmSetting -AdminEmailAddress "FileServerAdmins@adatum.com" –smtpserver smtp.adatum.com –FromEmailAddress "FSRM@LON-FS02.adatum.com"

ランサムウェア用のファイル拡張子グループの作成

続いて、暗号化型マルウェアが生成することで知られる拡張子やファイル名をまとめた「ファイルグループ」を作成します。

FSRMコンソールで作成するには、[File Screening Management](ファイル スクリーン管理)→ [File Groups](ファイル グループ)を展開し、[Create File Group](ファイル グループの作成)を選択します。

グループ名(例:Crypto-files)を指定し、[Files to include](含めるファイル)欄に既知の拡張子をすべて入力します。

ランサムウェアが生成する既知の拡張子リストは非常に長いため、PowerShellで作成する方が効率的です。Windows Server 2012では、以下のようにPowerShellでファイルグループを作成できます。

New-FsrmFileGroup -Name "Crypto-files" –IncludePattern @("_Locky_recover_instructions.txt","DECRYPT_INSTRUCTIONS.TXT", "DECRYPT_INSTRUCTION.TXT", "HELP_DECRYPT.TXT", "HELP_DECRYPT.HTML", "DecryptAllFiles.txt", "enc_files.txt", "HowDecrypt.txt", "How_Decrypt.txt", "How_Decrypt.html", "HELP_RESTORE_FILES.txt", "restore_files*.txt", "restore_files.txt", "RECOVERY_KEY.TXT", "how to decrypt aes files.lnk", "HELP_DECRYPT.PNG", "HELP_DECRYPT.lnk", "DecryptAllFiles*.txt", "Decrypt.exe", "AllFilesAreLocked*.bmp", "MESSAGE.txt","*.locky","*.ezz", "*.ecc", "*.exx", "*.7z.encrypted", "*.ctbl", "*.encrypted", "*.aaa", "*.xtbl", "*.abc", "*.JUST", "*.EnCiPhErEd", "*.cryptolocker","*.micro","*.vvv")

Windows Server 2008 R2の場合は、filescrn.exeを使用する必要があります。

filescrn.exe filegroup add /filegroup:"Crypto-files" /members:"DECRYPT_INSTRUCTIONS.TXT|DECRYPT_INSTRUCTION.TXT| DecryptAllFiles.txt|enc_files.txt|HowDecrypt.txt|How_Decrypt.txt| How_Decrypt.html|HELP_TO_DECRYPT_YOUR_FILES.txt|HELP_RESTORE_FILES.txt| HELP_TO_SAVE_FILES.txt|restore_files*.txt| restore_files.txt|RECOVERY_KEY.TXT|HELP_DECRYPT.PNG|HELP_DECRYPT.lnk| DecryptAllFiles*.txt|Decrypt.exe|ATTENTION!!!.txt|AllFilesAreLocked*.bmp| MESSAGE.txt|*.locky|*.ezz|*.ecc|*.exx|*.7z.encrypted|*.ctbl| *.encrypted|*.aaa|*.xtbl|*.EnCiPhErEd|*.cryptolocker|*.micro|*.vvv| *.ecc|*.ezz|*.exx|*.zzz|*.xyz|*.aaa|*.abc|*.ccc|*.vvv|*.xxx| *.ttt|*.micro|*.encrypted|*.locked|*.crypto|*_crypt|*.crinf| *.r5a|*.XRNT|*.XTBL|*.crypt|*.R16M01D05|*.pzdc|*.good| *.LOL!|*.OMG!|*.RDM|*.RRK|*.encryptedRSA|*.crjoker| *.LeChiffre|*.keybtc@inbox_com|*.0x0|*.bleep|*.1999| *.vault|*.HA3|*.toxcrypt|*.magic|*.SUPERCRYPT|*.CTBL|*.CTB2|*.locky"

ヒント: 拡張子リストは自分で作成してもよいですが、以下のサイトで公開されている定期的に更新されるリストを利用すると便利です。

  • https://www.bleib-virenfrei.de/ransomware/
  • https://fsrm.experiant.ca/api/v1/combined

後者のサイトでは、Invoke-WebRequestを使って最新の拡張子リストをWebサーバーから直接取得し、FSRMのファイルグループを作成できます。

new-FsrmFileGroup -name "Anti-Ransomware File Groups" -IncludePattern @((Invoke-WebRequest -Uri "https://fsrm.experiant.ca/api/v1/combined").content | convertfrom-json | % {$_.filters})

また、crypto_extensions.txtのような既存のリストファイルを利用する方法もあります。このファイルをディスクに保存しておき、作成済みのFSRMファイルグループを更新できます。

$ext_list = Get-Content .\ransomware_extensions.txt
Set-FsrmFileGroup -Name "Crypto-files" -IncludePattern ($ext_list)

ファイルスクリーンテンプレートの構成

次に、これらのファイルを検知した際にFSRMが実行すべき動作を定義する、新しいファイルスクリーンテンプレートを作成します。FSRMコンソールで[File Screening Management]→[File Screen Templates](ファイル スクリーン テンプレート)に移動し、[Create File Screen Template](ファイル スクリーン テンプレートの作成)を選択して新しいテンプレートを作成します。

[Settings](設定)タブでは、テンプレート名を「Block_crypto_files」とし、スクリーンの種類として[Active screening](アクティブ スクリーニング)(該当する種類のファイルの保存を許可しない)を選択し、ファイルグループの一覧から「Crypto-Files」を選びます。

[E-mail Message](電子メール メッセージ)タブでは、メール通知を有効にし、件名と本文のテキストを指定します。

[Event Log](イベント ログ)タブでは、システムログへの記録を有効にします。その際、ユーザー名のみを記録するよう[Source Io Owner]を指定しておきます。

[Command](コマンド)タブでは、該当する種類のファイルが検出された場合に実行する処理を指定できます。詳細は後述します。

変更を保存すると、テンプレート一覧に新しいテンプレートが表示されます。

ファイルスクリーンテンプレートをディスクまたはフォルダーに適用する方法

最後に、作成したテンプレートをサーバーのディスクまたはネットワーク共有に割り当てます。FSRMコンソールで[Create File Screen](ファイル スクリーンの作成)により新しいルールを作成します。

[File screen path](ファイル スクリーン パス)欄に、ランサムウェアから保護したいローカルディスクまたはディレクトリのパスを指定し、テンプレートの一覧から先ほど作成した「Block_crypto_files」を選択します。

ランサムウェアに感染したユーザーの自動ブロック

ここで、暗号化型マルウェアによるファイルが検出された場合にFSRMが実行するアクションを構成します。今回は、既存のスクリプト「Protect your File Server against Ransomware by using FSRM and Powershell」(https://gallery.technet.microsoft.com/scriptcenter/Protect-your-File-Server-f3722fce)を利用します。このスクリプトは何をするのでしょうか?禁止された種類のファイルをネットワーク共有に書き込もうとした時点でFSRMがこのスクリプトを実行し、スクリプトがイベントログを解析して、そのユーザーによる共有フォルダーへのファイル書き込みを禁止します。これにより、感染したユーザーのネットワーク共有へのアクセスがブロックされる仕組みです。

スクリプトをダウンロードし、ファイルサーバーのC:\ドライブのルートに展開してください。同じディレクトリに、ネットワーク共有のアクセス権を変更できるツールであるSubInACLもコピーします。ディレクトリには以下のファイルが配置されている必要があります。

  • RansomwareBlockSmb.ps1
  • StartRansomwareBlockSmb.cmd
  • subinacl.exe

注意: 筆者の環境では、PSスクリプト内の以下の文字列を変更する必要がありました。

$SubinaclCmd = "C:\subinacl /verbose=1 /share \\127.0.0.1\" + "$SharePart" + " /deny=" + "$BadUser"

および

if ($Rule -match "Crypto-Files")

「Block crypto files」テンプレートの設定にある[Command]タブで、引数付きのStartRansomwareBlockSmb.cmdを含むコマンドプロンプトが起動されるように指定します。

実行するコマンドまたはスクリプト: c:\windows\system32\cmd.exe

コマンド引数: /c "c:\StartRansomwareBlockSmb.cmd"

このコマンドはLocal Systemアカウントとして実行される必要があります。

FSRM保護のテスト

それでは、FSRMによるランサムウェア対策が実際に機能するかテストしてみましょう。保護対象のディレクトリに任意の拡張子を持つファイルを作成し、その拡張子を禁止されている「.locky」に変更してみてください。

禁止されたファイルを保存しようとすると、FSRMがログにエントリを記録します。

Event ID: 8215
Source: SRMSVC

RansomwareBlockSmb.ps1スクリプトは、このログのデータに基づき、共有アクセス権限を変更することで、現在のユーザーによる該当ディレクトリへのアクセスを禁止します。

保護が正常に機能しています!ディスクのルートにあるログには、ランサムウェアの実行が試みられたディレクトリとユーザーアカウントが記録されています。

より高い保護レベルが必要な場合は、ファイルのブラックリスト方式からホワイトリスト方式に切り替えることもできます。そうすれば、許可された種類のファイルのみ保存できるようになります。

以上、ランサムウェアに感染したユーザーのコンピューターからのネットワーク共有アクセスを自動的にブロックする方法を解説しました。もちろん、このようなFSRMの使い方だけですべてのランサムウェアからサーバー上のファイルを完全に守れるわけではありませんが、多層防御の一つとして十分に有効です。今後の記事では、暗号化型ランサムウェアに対する別の保護手法についても取り上げる予定です。

  • ランサムウェア感染後にVSSスナップショットからユーザーファイルを復旧する方法
  • ソフトウェア制限ポリシーによるランサムウェアの防止
  1. 【Windows 10/11】コマンドプロンプト(cmd)でファイル・フォルダーを削除する方法

    Windowsで不要なファイルやフォルダーを削除するのはとても簡単です。対象のファイルやフォルダーを右クリックして「削除」を選択するだけです。しかし、何らかの理由でGUI操作ではなくコマンドプロンプトを使って作業したい場合もあるでしょう。この記事では、コマンドプロンプトからファイルやフォルダーを削除する方法をわかりやすく解説します。 以下の手順に従えば、Windows上の特定のファイルやフォルダーを簡単に削除できるようになります。 コマンドプロンプトでファイルを削除する方法 コマンドプロンプトには、重要なタスクのほとんどに対応する専用コマンドが用意されています。特定のファイルを削除するに

  2. Windows 10のPowerShellでファイルを圧縮・解凍する方法【コマンド実例付き】

    ZIP機能を使うと、ファイルとその関連設定を1つのファイルにまとめて、容量を小さく圧縮できます。こうして作成したZIPファイルは、メールやその他のファイル共有サービスを通じて、簡単に他の人へ送信できるのが大きなメリットです。 ZIP圧縮といえば、WinRARや7-Zipといった専用ソフトを使うのが一般的ですが、実はWindowsに標準搭載されているPowerShellでも、追加ソフトなしでファイルの圧縮・解凍が可能です。この記事では、その具体的な手順をわかりやすく解説します。 関連記事:WindowsとMacでファイルを圧縮する方法 PowerShellでファイルをZIP圧縮する方法 まずは、