NutaNice Xperience

主にNutanix製品を検証したり触ったりした結果をつづっています。※このブログの内容は個人の見識や見解をもとに作成しています。参考にされる場合は自己責任でご活用ください。実際に製品を使用される場合は、メーカードキュメントの手順に従い実施してください。

Nutanixのスナップショットをできる限りスナップショットロック状態にする方法を考えてみる

※このブログの内容は個人の見識や見解をもとに作成しています。参考にされる場合は自己責任でご活用ください。また、このブログで紹介している製品や機能を使用される場合は、メーカードキュメントの手順に従い実施することを推奨します。

この記事は Nutanixアドベントカレンダー2023 の「12/18」の記事です。

adventar.org

ランサムウェア対策の一環として、バックアップ/スナップショット データを一定期間、変更や削除不可(ロック状態)にする機能が搭載されている製品があるかと思います。

Nutanixでは、ネイティブ機能でローカルやリモートサイトにVMのスナップショットを取得し、読み取り専用(変更不可)で保存することができますが、ロック(削除不可に)する機能は提供されていません。(AOS 6.5時点)

そこで今回は、Nutanixの機能を使用して、できるだけ削除不可に近い状態を再現してみました。ただ今回は、セキュリティを定義する範囲や設定内容などを細かく考える時間がなかったので、クリスマス会で使えるNutanixの雑なネタ枠としてご活用ください。

1. 今回の環境

プラットフォーム: NX-1465-G5
AOS: 6.7
AHV: 20230302.207
スナップショット対象VM: Windows Server 2022

※今回はハイパーバイザーをAHVとし、PDベースでスナップショットを取得した場合を想定します。また今回は、Prism Central側の機能であるリカバリーポイントなどは対象としません。スナップショットが削除されてしまうケースを防止する、という観点で雑に解説します。

スナップショットが削除されてしまうケース

Nutanixでは、CVMが物理ドライブに直接接続されており、HCIの分散ストレージプールを作成して、仮想マシンのデータやスナップショットを保管しています。そのため、CVMにアクセスできればスナップショットの削除操作は可能となります。

① CVM に SSH で不正ログインされ CLI で消されてしまう

例えば悪意のある攻撃者が何らかの方法でCVMのアカウント情報を入手した場合、SSHアクセスでCVMにログインし、CLIコマンドでスナップショットを削除してしまうというケースが考えられます。

② AHVにSSHで不正ログインされ CVM 経由で消されてしまう

実は、AHVとCVMはローカルのパスを持っているため、AHVへSSHアクセスでrootログインできれば、そのままCVMにSSHでログインされてしまうケースも考えられます。

③ Prism Element に不正ログインされ、コンソールから消されてしまう

最後に、CVMの「admin」といった権限の強いアカウント情報が盗まれて、Prism Webコンソールにログインされてしまうパターンです。Prism Elementにadmin権限でログインされた場合は、スナップショットも簡単に削除されてしまいます。

この様に、Nutanixでは、ストレージを制御しているCVMからスナップショット削除が可能であるため、これらのケースを踏まえてCVMへの侵入を可能な限りブロックする方法を考えてみます。

CVMへの侵入を防止し、スナップショットロック状態に近づける方法

方法①CVM/AHVのパスワードを強化する

CVMやAHVパスワードのデフォルト最低文字数は8文字ですが、これをクラスターの設定で最低15文字にしたり、複雑性の要件を強化したりできます。最低15文字といった設定内容は、RHEL STIGのガイドラインでも定義されているものです。これまで、パスワードの強化項目は、CVMからのコマンド操作で設定可能でしたが、AOS 6.6/pc.2022.9以降のPrism Centralでは、セキュリティダッシュボードからワンクリックで有効化することができるようになりました。

パスワードの強化というと単純な内容に聞こえるかもしれませんが、より推測されにくいパスワードをきちんと設定して管理すれば、セキュリティの強化につながります。これはケース①②に対する対策として特に有効ですが、とにかくrootやadminといった強権を持つローカルアカウントのパスワードを強化して、絶対に他人に公開しない。また緊急時のアカウントという扱いにして、普段の運用では可能な限り使用しない。というのが大切です。

方法②クラスタロックダウンを使用する

クラスタロックダウンを使用すると、AHVやCVMへのパスワード認証によるSSHアクセスを禁止したり、SSH鍵認証方式のみでのログインを許可したりできます。これは、同様にケース①②への対策となります。

SSHアクセス自体を完全にブロックしてしまうこともできますし、管理者側で作成したSSH公開鍵を登録して、秘密鍵を持っている端末からのみアクセス可能にすることもできます。

クラスタロックダウンを使用して、普段はSSHアクセスを制限しておくといった方法は、CVMやAHVへの不正アクセスを防止するうえで重要ですが、注意点としてはSSHで別途クラスターにアクセスする必要があるバックアップソフトやUPSなどがある場合に、むやみにロックダウンを設定できない場合があるといった事でしょうか。

方法③強い権限のユーザーをPrismなどの運用で利用しない

最後に、普段の運用で「admin」などの強権ユーザーの利用や露出を避けるといった事を紹介しておきます。ローカルユーザーやディレクトリ連携したユーザーなどで、ユーザーロールや RBACを使用して操作できる機能を制限していくという方法です。

例えば、とあるデータセンターの運用監視オペレーターチームでは、クラスターのサマリやパフォーマンス、リソースの使用状況やアラートといった情報を、Prism Elementから確認している、といった作業があるかもしれません。そういった情報の参照のみのオペレーションでクラスターを操作する必要がないのであれば、権限の弱いユーザーロールである「Viewer」でログインするなど、必要最低限のユーザロールに限定することができます。

また、Nutanixではプロジェクトといった仮想マシンやアプリケーションのデプロイ機能なども提供されているため、開発チームなどにおいてもPrism CentralのRBAC機能で必要な仮想マシンやアプリケーションのみに細かく機能制限をかけたりすることで、スナップショットなどに関わるストレージ側を触らせないといった事が可能になります。

ユーザーと RBACでは、設計次第で様々な構成ができるかと思います。ちなみに、インフラの管理者においても、admin権限を持つアカウントの普段使いは避けることをおすすめします。

まとめ

ここまでかなり雑な説明をしてきたわけですが、全部まとめるとこんな感じになります▽

これで、運用でカバー」という名のスナップショットロック状態の完成です。もっとこんなこともできますとかあればぜひ教えて下さい。

今回はこのへんで。