こんにちは!インサイトテクノロジーの松尾です。
ランサムウェアの脅威が増す中、データの保護は企業の最重要課題の一つです。本記事では、高可用性・災害復旧ソリューションである Dbvisit StandbyMP を、ランサムウェア対策として活用する方法を紹介します。
💡 Dbvisit StandbyMP とは
Dbvisit StandbyMP は、Oracle Database のスタンバイ(災害復旧)データベースを簡単に構築・管理・運用できるソリューションです。プライマリデータベースで発生した変更を、スタンバイデータベースへ継続的に転送・適用することで、災害発生時のダウンタイムを最小限に抑え、ビジネス継続性を確保します。
Dbvisit 社のホワイトペーパーでは、ランサムウェア防御戦略において、Dbvisit StandbyMP を 「データ復旧」 セクションに分類される 多層防御の最終層 として位置づけています。これは、従来のバックアップに頼るよりも、継続的に検証されたスタンバイデータベースを持つことで、ランサムウェアや悪意のある攻撃に対する、信頼性の高い、迅速な復旧を可能にするためです。
🎯 ランサムウェア対策:時間差適用 (Delayed Apply) 戦略
ランサムウェア攻撃は、データを論理的に破壊します。この論理的なデータ破壊から迅速に復旧するためには、暗号化(破壊)される前の クリーンなデータ を保持していることが不可欠です。
時間差適用のメカニズムとメリット
メカニズム
時間差適用 (Delayed Apply) は、以下のメカニズムで動作します。
- ログ転送: プライマリで生成された REDO ログは、Dbvisit StandbyMP によってスタンバイサーバーにあらかじめ設定されたインターバルで転送されます。
- 時間差待機: スタンバイデータベースでは、転送された REDO ログを すぐに適用せず、設定した時間(例:数日~数十日)だけ待機させてから適用します。
メリット
- RTO (目標復旧時間) の削減: スタンバイ DB はすでに「ウォーム」な状態で存在するため、コールドバックアップからのリストアと比較して、復旧の RTO (目標復旧時間)を大幅に短縮できます。
- 復旧ポイントの確保: 攻撃を検知した時点で、スタンバイ側での REDO ログの適用を停止すれば、攻撃前の健全な時点へリカバリし、クリーンなデータベースを迅速にアクティベートできます。
⚠️ DR 対策としての課題と克服法:多重スタンバイ戦略による「ハイブリッドアプローチ」
時間差適用はランサムウェア対策として優れていますが、通常の物理的な災害復旧(DR)戦略においては、RTO(目標復旧時間) に影響を与えるというトレードオフが生じます。
課題:物理障害発生時の RTO の悪化
適用遅延を設定している場合、データセンター障害などの物理的な災害が発生すると、スタンバイには遅延時間分の未適用 REDO ログが残っています。フェイルオーバー(アクティベート)には、この未適用ログをすべて適用しきる時間が必要となるため、結果として RTO が悪化します。
克服法:即時適用と遅延適用の多重構成(ハイブリッドアプローチ)
このトレードオフを克服するために、Dbvisit StandbyMP の複数のスタンバイ環境を構成する機能を活用し、異なる目的を持つ複数のスタンバイ環境を保持する 多重構成(ハイブリッドアプローチ) を取ることが可能です。DR 用の環境、ランサムウェア対策用の環境を別々に持つのです。
| スタンバイ環境 | 目的 | REDO ログ適用設定 | 特徴 |
|---|---|---|---|
| Primary Standby (DR 用) | 物理災害からの迅速な復旧 | 即時適用 (Real-time Apply) | RTO を最小限に抑え、通常の DR に対応。 |
| Secondary Standby (ランサムウェア対策用) | 論理破損からのデータ保全 | 遅延適用 (Delayed Apply: 数日~数十日など) | クリーンな復旧ポイントを保持し、論理的なデータ破壊に対応。 |
この多重構成により、企業は 「物理的な災害時の RTO 最小化」 と 「ランサムウェア攻撃時のデータ保全」 という、相反する要件を同時に満たす 強靭なデータベース保護戦略 を確立できます。
同様のことは、DR 構成とは別にランサムウェア対策用にバックアップ運用をすることに近いものにはなります。Dbvisit StandbyMP をランサム対策用に使用するメリットは、継続的に検証されたスタンバイデータベースを持つことで、もしものときにバックアップが起動できない、ということを避けることにあるのだと思います。
🛠️ Dbvisit Test Drive でランサムウェア対策の設定プロセス(遅延適用)を体験する Step by Step
Dbvisit StandbyMP の機能をオンラインで体験できる検証環境 Test Drive を利用して、ランサムウェア対策の設定(遅延適用)を実際に体験してみましょう。ダウンロードやインストールは不要で、インターネット経由でアクセスできます。環境は2時間で自動的に削除されます。
なお、DR 用の設定体験もこの Test Drive で確認できますが、手順については以下の記事を参考にしてください。本 Test Drive 環境ではデータベースは各種類ごとに1対のみ提供されているため、両方を同時に試すことはできません。順番に試してみてください。また、Test Drive は何回でも申請して利用することができます。
それではやっていきます。
Step 1: Central Console へのアクセスと構成確認
-
Test Drive 発行時提供されるコントロールセンターの URL にアクセスし、Test Drive のセッションを開始します。
-
提供されるブラウザベースのDbvisit StandbyMP Central Console (GUI) にログインします。
-
Oracle についての DR を構成します。
-
今回、テストなので、同期のためのログ転送間隔(自動同期の実行間隔)を短め(2分 ※デフォルトは10分)に変更して DR を構成します。
-
DR が構成されました!
※ なお DR 構成を作成するまでの手順は以下のブログと同様ため、必要に応じて参照ください。
Step 2: 適用遅延
-
スタンバイ構成を選択し、Standby 適用遅延 を開きます。
-
適用遅延を(例:30分)を設定します。
-
提供された接続情報を使用してプライマリデータベースに接続し、適当な操作をして DB に変更を加えます。
以下では、提供された接続情報を使用してプライマリデータベースに接続した後、ユーザーscottを追加して権限を付与し、適当にテーブルを追加する SQL 文を実行しています。oracle@localhost[/home/oracle]: sqlplus / as sysdba SQL> create user scott identified by "tiger"; SQL> GRANT CREATE SESSION, CREATE VIEW, CREATE ANY TABLE, DROP ANY TABLE, UNLIMITED TABLESPACE, SELECT ANY TABLE, INSERT ANY TABLE, DELETE ANY TABLE, UPDATE ANY TABLE to scott; SQL> exitoracle@localhost[/home/oracle]: sqlplus scott/tiger SQL> CREATE TABLE dept (deptno NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY, dname VARCHAR2(14), loc VARCHAR2(13)); SQL> INSERT INTO dept VALUES (10, 'ACCOUNTING', 'NEW YORK'); SQL> INSERT INTO dept VALUES (20, 'RESEARCH' , 'DALLAS'); SQL> INSERT INTO dept VALUES (30, 'SALES' , 'CHICAGO'); SQL> INSERT INTO dept VALUES (40, 'OPERATIONS', 'BOSTON'); SQL> commit; SQL> exit -
適用遅延を設定しているので、ログ転送間隔(自動同期の実行間隔)の2分を超えても同期がされてい ない(即座に適用されていない) ことを確認できます。
Step 3: ランサムウェア攻撃のシミュレーション(データ破壊)
-
提供された接続情報を使用してプライマリデータベースに接続し、データの破壊をシミュレーションする SQL 文を実行します。ここでは、攻撃(データ削除や攻撃としての暗号化などの破壊)として、ユーザー
scottを削除します。このデータ破壊を実施する前に、実施する前の時刻を記憶/メモしておきます。oracle@localhost[/home/oracle]: sqlplus / as sysdba SQL> drop user scott cascade; SQL> exit oracle@localhost[/home/oracle]: sqlplus scott/tiger ERROR: ORA-01017: invalid username/password; logon denied Enter user-name: -
破壊された変更を含む REDO ログが、スタンバイへ転送されることを確認します。(転送間隔に2分を設定しているため2分以上待ちます)
Step 4: 適用プロセスの停止
ランサムウェア攻撃を検知したと仮定し、ログの適用プロセスを停止します。
-
スタンバイデータベース構成を選択し、自動同期設定 を選択し、自動同期を無効にします。
※無効にする際、GUI の問題でエラーメッセージが出る場合がありますが無視してください。
その後、自動同期が無効になっていることを確認してください。
Step 5: クリーンな時点へのリカバリとアクティベート
適用を停止した後、スタンバイデータベースを攻撃を受ける直前のクリーンな時点までリカバリし、アクティベート(フェイルオーバー)を実行して業務を再開します。
-
スタンバイデータベース構成を選択し、Standbyをフェイルオーバー を選択します。
-
クリーンな時点 (
scottを削除する前の時刻)を指定してフェイルオーバーを開始します。 -
ssh コマンドでフェイルオーバー起動した DB サーバーへ接続して
scottユーザーで接続し、無事接続できることを確認します。oracle@localhost[/home/oracle]: . oraenv ORACLE_SID = [oracle] ? SRC oracle@localhost[/home/oracle]: sqlplus scott/tiger SQL> select * from dept; DEPTNO DNAME LOC ---------- -------------- ------------- 10 ACCOUNTING NEW YORK 20 RESEARCH DALLAS 30 SALES CHICAGO 40 OPERATIONS BOSTON
論理的に破壊された REDO ログの適用を避け、健全な状態のデータベースへ切り替える(フェイルオーバーによりクリーンな時点まで戻す)ことで、迅速に業務を再開できることを確認できました。
同期の停止と指定時刻まで戻す操作(フェイルオーバー)も GUI からとても簡単に操作できることを体感いただけたと思います。
📝 まとめ
本投稿では Dbvisit StandbyMP をランサムウェア対策に活用する際に威力を発揮する 時間差適用(適用遅延) 機能について、機能の紹介並びに Test Drive を使って試す手順を紹介しました。
Dbvisit StandbyMP は、直感的な管理、時間差適用(適用遅延)、多重構成 を組み合わせることで、物理障害 と 論理破損(ランサムウェア) の両方に対応できる、柔軟かつ強固なデータベース保護戦略を実現します。本投稿が何かのお役に立てば幸いです。
Dbvisit StandbyMP について、もう少し詳しく知りたい、という方は以下までお問い合わせください。















