AWS JAPAN APN ブログ

Amazon S3 オブジェクトロックと Veeam Backup を使用した SIOS LifeKeerper で構成されるクラスターシステムのランサムウェア対策

本記事は、Veeam Software でシニアシステムズエンジニアを務める高澤 雅史氏とサイオステクノロジー株式会社でプリセールスエンジニアを務める宇野 岳之氏、アマゾン ウェブ サービス ジャパン合同会社でパートナーソリューションアーキテクトを務める河原 哲也による共著です。

最近のマルウェア被害の中で最も多くなっているのがランサムウェアによる被害です。ランサムウェアとは、偽サイトやシステムの脆弱性を利用してコンピュータに侵入し、一部サービスに制限をかけたり、貴重なデータを暗号化したりし、これらの復旧と引き換えに高額な金銭を要求する脅迫を行う悪意あるソフトウェアです。高額な金銭を払ったからといってシステムが復旧される保証もありません。

以前は偽サイトや偽造広告から脆弱性をつくようなソフトウェアが一般的でしたが、最近は普及したリモートワークのシステムを狙ったものや、VPN 機器などの脆弱性を狙った被害が増えています。ランサムウェアの侵入方法を理解し、事前にシステムの脆弱性を減らす対策を打ち、被害を免れるようにする必要があります。また、万が一ランサムウェアの被害を受けた場合の対策についても、事前に検討する必要があります。そのため、「感染を防ぐ対策 (予防)」と「被害を受けた場合のリカバリー対策 (回復)」による多面的な対策が必要です。

本記事では、被害を受けた場合のリカバリー対策として、AWS 上でのバックアップソフトウェアを活用したソリューションを紹介します。

Amazon S3 オブジェクトロック

ランサムウェアの被害を受けた場合、システムは一時的にサービスの提供が出来なくなります。そのため早急にリカバリーする必要があります。リカバリー対策としては、信頼のおけるバックアップデータを使用してリカバリーを行うことが一般的です。

信頼のおけるバックアップデータを保存する方法として、バックアップ保存先のバケットで Amazon S3 オブジェクトロックを有効化する方法があります。S3 オブジェクトロックは Write Once Read Many (WORM) モデルを使用してオブジェクトを保存できます。この機能により、一度保存したオブジェクトが削除または上書きされることを、一定期間または無期限に防止することができます。

図 1 – S3 オブジェクトロックの WORM 機能

S3 オブジェクトロックは、バケット作成時の詳細設定で有効化できます。また、ガバナンスモードとコンプライアンスモードの 2 つの保持モードを選択できます。ガバナンスモードでは、ほとんどのユーザーからのオブジェクトの削除を防止しますが、必要に応じて特別なユーザーに保持設定の変更、またはオブジェクトの削除を許可することができます。コンプライアンスモードでは、AWS アカウントの root ユーザーを含め、保護されたオブジェクトのバージョンを上書きまたは削除することはできません。検証時にはガバナンスモードを使用しましょう。

図 2 – AWS マネジメントコンソール: S3 バケット作成時にオブジェクトロックを有効化

Veeam Backup for AWS

S3 オブジェクトロックをバックアップ保存先として利用可能なバックアップソフトウェアの一つに、Veeam Software が提供するデータ保護ソリューション Veeam Backup for AWS があります。Veeam Software は、AWS ストレージコンピテンシーを保有する AWS ソフトウェアパートナーです。

Veeam Backup for AWS を利用したリカバリー対策とは、事前にデータ改ざんが不可能な状態のバックアップをスケジュールして日々の差分バックアップを保存することです。万が一ランサムウェアの被害を受けても、安全な被害を受ける前の状態に戻すことができます。

Veeam Backup for AWS は、AWS Marketplace から Veeam Backup for AWS FREE Trial & BYOL Edition を選択してインスタンスを起動するだけで利用可能です。

図 3 – AWS Marketplace から利用できる Veeam Backup for AWS

Veeam Backup for AWS では、バックアップデータの保存先としてオブジェクトロックが有効な S3 バケットを使用できます。Veeam Backup for AWS コンソールから Repository 登録時に作成した S3 バケットをバックアップデータ保存先として選択します。

図 4 – Veeam Backup for AWS コンソール: バックアップデータを保存する Location として S3 バケットを選択

Veeam Backup for AWS で Repository を作成する際、S3 オブジェクトロックを有効にしたバケットは S3 Versioning と S3 Object Lock 列が “Enabled” として表示されます。

図 5 – Veeam Backup for AWS コンソール: S3 バケットを読み込んだ際のステータス

オブジェクトロックが有効な S3 バケットを選択した Repository の作成が完了すると、Immutability 列が “Enabled” となります。

図 6 – Veeam Backup for AWS コンソール: Repository 一覧

作成した Repository はバックアップポリシーを設定する際にバックアップデータの保存先として選択可能になります。バックアップデータは追加のみが可能な S3 オブジェクトロックに書き込まれます。

HA クラスターシステムのバックアップ

クラスターシステムで冗長化されたシステムであっても、Veeam Backup for AWS により簡潔なバックアップ/リストアが可能です。

S3 オブジェクトロック対応のバックアップ/リストアについて、今回は高可用性を実現する構成例として、AWS 上で稼働するクラスターシステムを対象とした動作検証を試みました。クラスターソフトウェアにはサイオステクノロジーが提供する Windows 版の LifeKeeper と DataKeeper を使用し、Microsoft SQL Server を保護対象としました。サイオステクノロジー株式会社は、AWS ISV Accelerate プログラムに加入する AWS ソフトウェアパートナーであり、HA クラスター製品の LifeKeeper が AWS ファンデーショナルテクニカルレビュー (FTR) の認定を受けています。LifeKeeper については、APN ブログ記事「SIOS LifeKeeper と AWS Transit Gateway によるシンプルなクラスター構成」もご参照ください。また、データの整合性が担保されるよう、VSS スナップショット (※) を有効化して Veeam Backup for AWS からバックアップの取得を行いました。

※ VSS スナップショットは、バックアップデータの瞬間的なイメージの snapshot を取得することでデータの正確性を保つ Windows OS の機能です。

システム構成図、および Veeam Backup for AWS と SIOS LifeKeeper の設定内容は以下です。Veeam Backup for AWS には、バックアップデータを DR サイトにレプリケーションする機能もあります。今回の検証では、この機能を有効にし、東京リージョンから大阪リージョンにレプリケーションしています。

図 7 – Veeam Backup for AWS の動作検証を行ったシステム構成

Veeam Backup for AWS 構成
リージョン アジアパシフィック (東京)
アベイラビリティゾーン ap-northeast-1a
VPC Name VPC-Veeam
AMI veeam-aws-cloud-backup-byol-v6-0-0-335-de89d163-440b-40fb-9b4c-f91fb0e18e29
クラスターシステム構成 (2 ノードで共通)
リージョン アジアパシフィック (東京)
アベイラビリティゾーン ap-northeast-1c, ap-northeast-1d
VPC Name VPC-SIOS
AMI Windows_Server-2019-Japanese-Full-Base-2023.03.15
EC2 インスタンスタイプ t2.medium
OS Windows Server 2019
保護対象アプリケーション Microsoft SQL Server 2019
クラスターソフトウェア LifeKeeper for Windows 8.9.1
EC2 インスタンス名 veeamclient1, veeamclient2
クラスターサイトの S3 バケット構成
リージョン アジアパシフィック (東京)
S3 バケット名 veeam1-immuable
S3 オブジェクトロック 有効
DR サイトの S3 バケット構成
リージョン アジアパシフィック (大阪)
S3 バケット名 veeam1backup-osaka
S3 オブジェクトロック 無効

LifeKeeper for Windows 8.9.1 によるクラスター構成は、LifeKeeper GUI で確認できます。

図 8 – LifeKeeper GUI: バックアップ対象システムのクラスター構成

Veeam Backup for AWS で上記構成のクラスターノード 2 台分を対象としたバックアップポリシーを以下のように作成して実行しました。

バックアップポリシーの設定内容
IAM Role Default Backup Restore (Default Backup Restore)
Region Asia Pacific (Tokyo)
Resources
(バックアップ対象 EC2 インスタンス)
veeamclient1, veeamclient2
Enable application-aware snapshots
(VSS スナップショット)
On
Replicas On – Target: Asia Pacific (Osaka)
Backups On
Backups will be stored in
(バックアップ用 S3 バケット)
veeam1-immuable

Veeam Backup for AWS コンソールからバックアップポリシーの実行が成功したことを確認できます。

図 9 – Veeam Backup for AWS コンソール: バックアップ実行結果

スナップショットのステータスが Warning になっているのは、クラスターノードのスタンバイノードではレプリケーション対象となるボリューム ($S) にアクセスできず VSS スナップショットの作成に失敗しているからです。スタンバイノードのレプリケーション対象のボリュームはロックされるためアクセスできないことは想定済みなので、この Warning も想定内です。

図 10 – Veeam Backup for AWS コンソール: バックアップ実行時の Warning の詳細

HA クラスターシステムのリストア

リストアについては、ランサムウェア対策を考慮しました。稼働中のインスタンスを削除し、Veeam Backup for AWS の Instance Restore を実施しました。また、リストアを行う直前に SQL Server のコマンドラインで新たにデータベースを追加して、リストア後には追加したデータベースが無くなっていることを確認しています。

  1. Windows OS の PowerShell から SQL Server にログインして、データベース “ransomwaredb” を追加します。

    図 11 – リストア前のデータベース追加と一覧

  2. AWS マネジメントコンソールから感染対象 (リストア対象) となるクラスターノードの EC2 インスタンスを両方終了します。

    図 12 – AWS マネジメントコンソール: EC2 インスタンスの終了

  3. Veeam Backup for AWS にログインし、S3 オブジェクトロックが有効なバケットに保存されたバックアップデータを使用して Instance Restore を実施します。以下は、Veeam Backup for AWS のリストア処理を開始する直前の画面です。

    図 13 – Veeam Backup for AWS コンソール: Instance Restore の確認画面

  4. リストアが完了します。AWS マネジメントコンソールから EC2 インスタンスの復旧を確認できます。インスタンス ID は変更となりますが、システムがバックアップデータ取得時の状態で復元されます。

    図 14 – AWS マネジメントコンソール: Instance Restore 後の EC2 インスタンス

  5. AWS 上にクラスターシステムを導入した場合、共有ディスクの代替えとしてミラーボリュームが利用されることがあります。今回の検証環境でも、SQL Server のデータベースは DataKeeper によるミラーボリュームに格納されています。バックアップイメージをリストアした場合、ミラーボリュームで利用する bitmap ファイルの整合性が合わなくなりますので、bitmap ファイル再作成のためミラーボリュームの完全同期を行う必要があります。完全同期は以下のコマンドラインで実行します。
    C:\> cd %extmirrbase%
    
    C:\> EMCMD . BREAKMIRROR S
    C:\> EMCMD . RESYNCMIRROR S
    

    ※ 上記はボリューム S を全同期する場合のコマンドです。任意のドライブレターに置き換えて実施してください。詳細は、ドキュメント BREAKMIRRORRESYNCMIRROR をご確認ください。 

    リストア後、上記の手順で完全同期が完了することで、クラスターシステムのリストアは完了となります。

  6. SQL Server にログインしてデータベースを確認したところ、“ransomwaredb” は消えています。このことから無事に前回のバックアップ取得時点にリストアされたことが確認できました。

    図 15 – リストア後のデータベース一覧

以上が、Veeam Backup for AWS を使用したバックアップ、およびリストアの手順です。S3 オブジェクトロックにより改ざん不可の適切な時点のバックアップデータからリストアすることで、ランサムウェアに対して有効なリカバリー対策となります。

まとめ

AWS Marketplace から簡単に起動できる Veeam Backup for AWS を使用することで、SIOS LifeKeeper で構成されたクラスターシステムが万が一ランサムウェアに感染しても、S3 オブジェクトロックで保護された信頼できるバックアップデータから速やかにリカバリーでき、被害を抑えることが出来ます。ランサムウェア対策に有効な S3 オブジェクトロックと Veeam Backup for AWS についての詳細は、以下をご確認ください。

.


Veeam Software – AWS パートナースポットライト

Veeam Software は 2022 年下半期にデータ保護・レプリケーション市場で No.1 を獲得した AWS ソフトウェアパートナーであり、ハイブリッドやマルチクラウドプラットフォームに対し、セキュアでフレキシブルなデータ管理機能を提供します。

Veeam Software の問い合わせ先 | パートナーの概要

サイオステクノロジー – AWS パートナースポットライト

サイオステクノロジーは AWS ソフトウェアパートナーで、Amazon EC2 上で利用される SAP などの基幹系システムやデータベースの高可用性を実現する HA クラスター製品 LifeKeeper と DataKeeper を提供するソフトウェア企業です。

サイオステクノロジーの問い合わせ先 | パートナーの概要

Tetsuya Kawahara

Tetsuya Kawahara

Senior Manager, Partner Solutions Architecture, AWS Technology Partnerships, Amazon Web Services Japan G.K.