ランサムウェア感染後の復旧術:VSSスナップショットから暗号化ファイルを復元する方法
ランサムウェア対策に関する記事シリーズの続編です。前回は、FSRMを活用したWindowsファイルサーバー向けの暗号化ランサムウェア対策のシンプルな手法をご紹介しました。今回は、ランサムウェアに感染してしまいユーザーのドキュメントが暗号化された場合に、ファイルを簡単に復旧する方法について解説します。
暗号化ランサムウェアに感染した後に元のファイルを取り戻す最も簡単な方法は、バックアップからの復元です。ファイルサーバーであれば一元的なバックアップを構成できますが、ユーザーのPCのデータをバックアップするのは難易度が高いものです。幸い、WindowsにはVolume Shadow Copy Service(VSS)によって作成されるシャドウコピーという統合バックアップ機構が標準で備わっています。
VSSスナップショットからファイルの以前のバージョンを復元できるようにするには、以下の要件を満たす必要があります。
- 保護対象のボリュームでVSSが有効になっていること
- スナップショットを保存するためのディスク空き容量が十分にあること(最低10〜20%)
- ユーザーにコンピューターのローカル管理者権限を与えないこと(最近の暗号化マルウェアの多くは、昇格された権限で実行されると利用可能なVSSスナップショットをすべて削除します)。さらに、ユーザーアカウント制御(UAC)を有効にしておくこと
以下では、Active Directoryドメイン環境でスナップショット作成ポリシーを一元的に管理し、暗号化ランサムウェア攻撃後に元のファイルを簡単に復元できるようにする仕組みを解説します。
目次:
- GPOを使ってドメインコンピューターでVSSを有効化する方法
- GPOを使ってvshadow.exeをユーザーコンピューターに配布する方法
- すべてのボリュームのシャドウコピーを作成するPowerShellスクリプト
- VSSスナップショットを作成するスケジュールタスク
- VSSスナップショットから元のファイルを復元する方法
- まとめ
GPOを使ってドメインコンピューターでVSSを有効化する方法
まず、ドメインコンピューターでVolume Shadow Copy(VSS)サービスを有効にするグループポリシーを作成します。GPMC.mscコンソールでVSSPolicyという名前の新しいGPOオブジェクトを作成し、ユーザーコンピューターが含まれるOUに割り当てます。
次にGPOを編集します。コンピューターの構成→Windowsの設定→セキュリティの設定→システムサービスのサービス一覧からVolume Shadow Copyを探し、スタートアップの種類を自動に設定します。

GPOを使ってvshadow.exeをユーザーコンピューターに配布する方法
ユーザーコンピューター上でシャドウコピーを作成・管理するには、Windows SDKに含まれるvshadow.exeツールが必要です。この例では、Windows 7 x64用SDKのvshadowを使用します(筆者の環境ではWindows 7とWindows 10 x64の両方で正常に動作しました)。GPPを使用して、vshadow.exeをすべてのコンピューターの%windir%\system32にコピーします。
ヒント: vshadow.exeは以下のリンクからダウンロードできます:vshadow_exe_win7x64.zip
次に、コンピューターの構成→設定→Windowsの設定→ファイルで、\\domain.loc\SYSVOL\domain.loc\scripts\vshadow.exe(事前にこの場所へファイルをコピーしておく必要があります)から%windir%\system32\vshadow.exeへコピーする新しいポリシーを作成します。このポリシーは「1 回適用し、再適用しない」に設定することで、一度だけ実行されるようにできます。

すべてのボリュームのシャドウコピーを作成するPowerShellスクリプト
次に、システム内のドライブ一覧を検出し、シャドウコピーを有効にして新しいVSSスナップショットを作成するスクリプトを用意します。以下のようなスクリプトを使用します。
$HDDs = GET-WMIOBJECT –query "SELECT * from win32_logicaldisk where DriveType = 3"
foreach ($HDD in $HDDs) {
$Drive = $HDD.DeviceID
$vssadminEnable ="vssadmin.exe Resize ShadowStorage /For=$Drive /On=$Drive /MaxSize=10%"
$vsscreatess = "vshadow.exe -p $Drive"
cmd /c $vssadminEnable
cmd /c $vsscreatess
}

最初の行でシステム内のすべてのドライブを検出し、その後vshadowが各ディスクのシャドウコピーを有効にして新しいコピーを作成します。コピーが占める容量は10%以内に制限されます。
このスクリプトをvss-script.ps1というファイル名で保存し、GPPを使用してユーザーコンピューターにコピーします。

VSSスナップショットを作成するスケジュールタスク
最後に、vss-script.ps1を定期的に実行してすべてのドライブの新しいスナップショットを作成するスケジュールタスクを、すべてのコンピューターに作成します。このタスクはGPPを使って作成するのが簡単です。GPOのコンピューターの構成→設定→スケジュールされたタスクセクションで、create vssnapshotという名前の新しいスケジュールタスク(新規→スケジュールされたタスク(Windows 7以降))を作成し、NT AUTHORITY\Systemとして昇格して実行されるように設定します。

ここでは、タスクを毎日午後1時20分に実行するものとします(スナップショットの作成頻度については、実際の運用に合わせて検討してください)。

実行するプログラム:%windir%\System32\WindowsPowerShell\v1.0\powershell.exe
引数:%windir%\system32\vss-script.ps1

ヒント: また、古いVSSスナップショットを削除する週次のスケジュールタスクも設定しておきましょう。そのためには、以下のコードを含む同様のスクリプトを実行する新しいスケジュールタスクを作成します。
$vssadminDeleteOld = "vshadow.exe -do=%$Drive"
cmd /c $vssadminDeleteOld
VSSスナップショットから元のファイルを復元する方法
ユーザーのコンピューターがランサムウェアに感染した場合、管理者やテクニカルサポート担当者はスナップショットから暗号化されたドキュメントを復元できます。
利用可能なすべてのスナップショットの一覧は、次のコマンドで表示できます。
vssadmin.exe list shadows

この例では、最新のスナップショットは2016年10月6日午前1時33分35秒に作成されており、Shadow Copy IDは{6db666ac-4d42-4734-8fbb-fad64825c66c}です。
このIDを指定して、スナップショットを読み取り専用モードで独立したドライブとしてマウントします。
vshadow -el={6db666ac-4d42-4734-8fbb-fad64825c66c},Z:

次に、エクスプローラーやその他のファイルマネージャーを使用して、Z:ドライブから元のファイルをコピーします。
スナップショットのドライブをアンマウントするには、次のコマンドを使用します。
mountvol Z:\ /D
まとめ
もちろん、VSSは暗号化ランサムウェアに対する保護手段そのものではなく、包括的なコンピューターセキュリティ対策(アンチウイルスソフト、SRP/AppLockerポリシー、レピュテーションフィルター、SmartScreenなど)に代わるものではありません。しかし、ボリュームシャドウコピーのシンプルさと手軽さは、暗号化されたデータを復旧するこの方法の大きな利点です。マルウェアがユーザーのコンピューターに侵入してしまった場合に、この復旧手段が役立つ可能性は十分にあるでしょう。
-
Redlランサムウェアとその他のマルウェアをシステムから完全に削除する方法
Redlランサムウェアとは? Redlランサムウェアは、感染したコンピュータ上のすべてのファイルを暗号化またはロックし、ユーザーがファイルにアクセスできないようにするコンピュータウイルスの一種です。サイバー犯罪者は、ユーザーが自分のファイルへのアクセスを取り戻すために身代金(ランサム)を要求します。身代金は一般的に追跡困難な暗号通貨で要求されます。しかし、たとえ身代金を支払ったとしても、ファイルのロックが解除される保証は一切ありません。 恐ろしく聞こえるかもしれませんが、事実として、インターネットに接続しているコンピュータは、アドウェア、スパイウェア、トロイの木馬、ウイルス、そして近年急増して
-
ごみ箱を空にした後に削除されたファイルを復元する方法【Windows対応】
ごみ箱は、すべてのバージョンのWindowsに標準搭載されている基本ツールのひとつです。キーボードのDeleteキーでファイルを削除すると、そのファイルはごみ箱へ移動します。ごみ箱を空にしない限り、データはそこに残り続けます。この記事では、ごみ箱を空にしてしまった場合やファイルを完全に削除してしまった場合に備えて、手動での復元方法と、サードパーティ製ソフトウェアを使った復元方法の両方をご紹介します。 ごみ箱を空にした後に削除ファイルを復元する方法 Shiftキーを押しながらDeleteキーでファイルを削除した場合、またはごみ箱を空にした場合は、手動での復元は不可能です。こうしたケースでは、サー