保護、検知、復元。それが、NISTサイバーセキュリティフレームワークに沿って、バックアップベンダーに期待される3本の重要な柱です。そのリストの最優先事項が、データを保護することです。オンプレミスとプライベートクラウドまたはパブリッククラウド両方でのセキュアなバックアップがあれば、非常に強力な保護が実現し、バックアップサーバーやバックアップリポジトリにアクセスするハッカーからデータを保護できます。2つ目に、迅速な復元が極めて重要です。企業が素早く復元できなければ、策定したランサムウェア防御計画の全てが無駄になってしまいます。この要求に対応するためには、ランサムウェアをディザスタリカバリと同じ観点で見ることが重要です。最後に、マルウェアとランサムウェア検知の機能を提供することはバックアップベンダーにとって極めて重要ですが、その機能は、ランサムウェアを検知する他の専用ツールを利用している企業の最後の手段と見なすべきです。
Veeamによるマルウェアとランサムウェアの検知
そうは言っても、バックアップファイルをスキャンしてその正常性と復元力を評価することは重要であり、Gartnerは、これを隔離されたリカバリ環境の一環としてバックアップベンダーに推奨しています。バックアップを検証し、リストア中に既知の脆弱性が本番環境に再挿入されないようにすることは、多大な時間の節約になります。VeeamはSureBackupを通じてこれを自動的に実現します。その名前が示すとおり、SureBackupは、バックアップコンテンツにマルウェアやランサムウェアが含まれないかスキャンし、CRCテストによりバックアップの整合性をチェックすることで、バックアップが使用可能であることをユーザー検証できるようにします。CLIを備えていれば、どのスキャンツールでも使用できます。たとえば、Trend Micro、Bitdefender、Windows Defenderなどがあります。ここからXMLファイルを編集できます。私はESETを使用しています。
SureBackupジョブを日次バックアップポリシーに関連付けると、バックアップが毎日実行されるだけでなく、コンテンツが検査されます。下に示すように、SureBackupにはほかにも多数のオプションがあります。この記事では、特にバックアップコンテンツのスキャンツールを利用しますが、リストア内のネットワークにVMが接続されていることを確認し、カスタムスクリプトを挿入することで、小さなDRテストを作成することもできます。
SureBackupジョブの結果は、UIまたはメール送信されたレポートのタスクログで確認できます。UIのスクリーンショットを下に示します。AVスキャンに12分と少しかかっており、CRCテストは1分以内に終了していることがわかります。これは、バックアップの定期的なテストを証明するコンプライアンス上の目的に役立つだけでなく、安心感をもたらします。
SureBackupで通知を送信するように設定している場合は、以下のようなレポートがメールで届きます。メールはグループや複数のアドレスに送信できます。
良い方法ですが、大規模組織で使用する場合の方法は?
大規模な企業でこれを実際にセットアップする場合、各バックアップポリシーで、少数の重要なVMに対するSureBackupを週次で実行することをお勧めします。たとえば、バックアップジョブごとに1つのSureBackupを作成し、それらを1週間を通じてずらして実行します。これにより、ファイルをマウントするサーバーの負荷分散を維持できます。また、複数のサーバーにバックアップファイルをマウントできるコンピューティングリソースがある場合は、より高いパフォーマンスを実現できます。この場合、複数のバックアップを並行してスキャンできます。
おわりに
最近では、ほとんどの会議でランサムウェアからの防御戦略が話し合われています。しかし、このような会話では誰も、「ランサムウェアを検知しているのがバックアップベンダーなら、おそらくCoinbaseのアカウントを作ることになる」という重要な懸念に触れようとしません。誤解のないように言うと、バックアップソリューションがランサムウェアの検知手段を提供すべきなのは間違いありません。ただ、企業側には包括的な防御アプローチが必要です。ランサムウェアの検知だけに特化している業界があるくらいです。企業がバックアップソリューションにおいて最優先すべきは、素早く復元できるセキュアなコピーを保持することです。結局のところ、迅速に安全なコピーを復元できなければ何を検知しても意味はありません。
UIではなくスクリプトを使用する場合
スクリプトの方が好みである場合は、下のスクリプトを実行し、バックアップポリシーのポストスクリプトオプションで関連付けます。
Veeamバックアップサーバーに接続します。
Add-PSSnapin VeeamPSSnapin -ErrorAction SilentlyContinue
Connect-VBRServer -Server "servername"
スキャンするVMに合わせて変数を作成します。検査とクレンジングに使用するVMおよびターゲットサーバーの名前を変更してください。
$restorepoint = Get-VBRRestorePoint -Name "VMname" | Sort-Object -Property CreationTime -Descending | Select-Object -First 1
$targetServerName = "servername"
$targetAdminCredentials = Get-VBRCredentials -name "credentials" | where {$_.description -eq "description"}
$restorepoint = Get-VBRRestorePoint -Name "ATLNIMBLE_WIN" | Sort-Object -Property CreationTime -Descending | Select-Object -First 1
変数の設定が完了したので、VMをサーバーにマウントする準備ができました。
$session = Publish-VBRBackupContent -RestorePoint $restorepoint -TargetServerName $targetServerName -TargetServerCredentials $targetAdminCredentials
以下の例では、マウントされたディスクの内容をESETを使用してスキャンし、スクリプトの出力を「ecls.txt」に書き出します。PSコマンドの最初に「&」を付けると、PSでCLIコマンドを実行できます。マウント先は常に、C:\VeeamFLR\になります。
& "C:\Program Files\ESET\ESET Security\ecls.exe" /base-dir="C:\Program Files\ESET\ESET Security\Modules" /subdir "C:\VeeamFLR\" /log-file=c:\ecls.txt /aind /unsafe /unwanted /suspicious /clean-mode=standard
サーバーのマウントを解除し、スクリプトを完了としてマークします。
Unpublish-VBRBackupContent -Session $session
全てを一度で実行する場合は、以下を使用します。
$restorepoint = Get-VBRRestorePoint -Name "VM-name" | Sort-Object -Property CreationTime -Descending | Select-Object -First 1
$targetServerName = "servername"
$targetAdminCredentials = Get-VBRCredentials -name "creds" | where {$_.description -eq "description"}
$session = Publish-VBRBackupContent -RestorePoint $restorepoint -TargetServerName $targetServerName -TargetServerCredentials $targetAdminCredentials
& "C:\Program Files\ESET\ESET Security\ecls.exe" /base-dir="C:\Program Files\ESET\ESET Security\Modules" /subdir "C:\VeeamFLR\" /log-file=c:\ecls.txt /aind /unsafe /unwanted /suspicious /clean-mode=standard
Unpublish-VBRBackupContent -Session $session