通常、ランサムウェアはWindowsおよびmacOSやLinux上で実行されている仮想マシンや物理コンピュータを攻撃します。残念ながら、サイバー犯罪者は新たな脆弱性を利用して他のオペレーティングシステムに感染する新しいバージョンのランサムウェアを開発し続けています。最近の例としては、ESXiの脆弱性を悪用してVMwareハイパーバイザーを攻撃するESXiランサムウェア攻撃が挙げられます。これにより、世界中の組織で大規模な停止時間が発生しました。
このブログ投稿では、ランサムウェア攻撃の危険性、ESXiホストへのランサムウェアの感染方法、およびESXi Argsランサムウェアに対する保護方法について説明します。
ESXiランサムウェアキャンペーンの開始
最初のESXiランサムウェア攻撃のケースは2022年10月に登録され、VMwareがESXi 6.5および6.7の一般サポートを終了した時期と重なります。フランス、ドイツ、アメリカ、カナダ、イギリス、および他の国々で多数のESXiホストが感染しました。 2023年2月には、3,000台以上の感染したESXiホストが暗号化されたデータを持ち、回復手段がありませんでした。ESXiホストを攻撃したランサムウェアの名前には、ESXiArgs、Royal、Cl0pなどがあります。さらに、RansomEXX、Lockbit、BlackBasta、Cheerscrypt、Hive、RedAlert/N13Vなどの新しいESXiランサムウェアファミリーが登場しました。
ESXiホストは、サーバー仮想化がより人気を博しており、多くの組織が仮想マシンをプロダクション環境で使用しているため、攻撃者にとって魅力的になっています。その結果、勒索软件の創造者は、大きな利益を獲得することを期待して、VMware ESXiに対する勒索软件攻撃を開始しています。ESXiホストに感染させると、そのホストにある複数の仮想マシンのデータを暗号化または破壊することができます。この手法は、異なるオペレーティングシステムを运行させているVMに感染することより効果的です。ESXi Args勒索软件攻撃は、Windowsサーバー以外の最大の勒索软件攻撃の1つでした。
どのESXiバージョンがESXi勒索软件に脆弱なのか?
ESXi勒索软件は、CVE-2022-31699、CVE-2021-21995、CVE-2021-21974、CVE-2020-3992、およびCVE-2019-5544などの異なる脆弱性を利用しています。
ESXi Args勒索软件は、CVE-2021-21974を使用してESXiホストに感染する。これは2021年に発見された脆弱性で、ESXiホストがまだ修復されていない/更新されていない場合に発生することがあります。これはESXi上で実行されるOpenSLPサービスのヒープオーバーフロー脆弱性です。CVE-2021-21974の修復プッチは2021年2月21日に発表されました。
以下のESXiバージョンはCVE-2021-21974に脆弱です。
- ESXi 7.xにおいて、ESXi70U1c-17325551以前
- ESXi 6.7.xにおいて、ESXi670-202102401-SG以前
- ESXi 6.5.xにおいて、ESXi650-202102101-SG以前
なぜ、多くの未修补サーバーがあり、それらがインターネットからアクセス可能なのか?修补にはESXiサーバーのダウンタイムが必要で、ホストの数が多いため、一部の管理者はリソースまたは時間を持っていないために、及时に修补することができない。また、ESXiの脆弱性は、ESXiArgs ransomware攻撃の前には幅広く利用されていなかった。これにより、未修补のESXiサーバーが脅威ではない错覚が作られ、サーバーの修补がゆっくりと行われた。
ホスティングプロバイダーに運営されているESXiサーバーもESXiArgs ransomwareに感染した。ホスティングプロバイダーは顧客によるインフラを提供し、顧客はESXiハイバービジョンをインストールして仮想マシンを実行する。これらのESXiサーバーは顧客によってインターネットに exposureされ、これにより攻撃者がアクセスすることができた。攻撃者は被害者が約23,000米ドルのビットコインを支払うことを望んでいた。
ESXi Ransomwareはどのように機能するのか?
サイバー犯罪者は、特にインターネットにexposureされる脆弱なESXiホストを見つける。この攻撃方法は、OpenSLPの脆弱性(可能にはCVE-2021-21974)を利用することが確認されている。OpenSLPにはTCP/UDPのポート427が使用されている。ログでは、dcuiユーザーがこの攻撃プロセスに関与したことが示唆されている。このESXi ransomwareの脆弱性は、攻撃者が远隔地主として任意コードを実行することを許可する。
暗号化プロセスは、マルウェアによって展開された公開鍵を使用し、/tmp/public.pemに配置されます。具体的には、この暗号化プロセスは、ファイルタイプが「.vmdk」、「.vmx」、「.vmxf」、「.vmsd」、「.vmsn」、「.vswp」、「.vmss」、「.nvram」であり、「.vmem」拡張子を持つファイルなど、仮想マシンファイルを対象としています。「.vmdk」ファイルは仮想ディスク記述子ファイルであり、「-flat.vmdk」はVMデータを含む仮想ディスクファイルです。ESXi Argsランサムウェアは、メタデータを持つ各暗号化ファイルに対して「.args」ファイルを作成します(おそらく、ランサムウェアの作成者は「.args」ファイルが復号化に必要とされる可能性があると考えています)。
以下に詳細なシーケンスが示されています:
- サーバーが侵害されると、次のファイルが/tmpディレクトリに配置されます:
- encryptは、ELF形式の実行可能な暗号化プログラムです。
- encrypt.shは攻撃の操作ロジックを提供します。これは、以下で概説される暗号化プログラムを実行する前にさまざまなアクションを実行するシェルスクリプトです。
- public.pemは、ファイル暗号化に責任のあるキーを暗号化するために使用される公開RSA鍵です。
- motdは、テキスト形式の身代金メモです。これはログイン時に表示されるよう/etc/motdに複製されます。サーバー上の元のファイルは/etc/motd1として保存されます。
- index.htmlは、VMware ESXiのホームページを置換するための身代金メモのHTMLバージョンです。初期サーバーファイルは同じディレクトリ内の「index1.html」としてバックアップされる必要があります。
- 暗号化ツールは、コマンドラインパラメータの配列で呼び出されるシェルスクリプトを介して起動されます。これらのパラメータには、公開RSA鍵ファイル、暗号化対象ファイル、変更されないデータのセクション、暗号化ブロックサイズ、および全体のファイルサイズが含まれます。
使用法:encrypt <public_key> <file_to_encrypt> [<enc_step>] [<enc_size>] [<file_size>]
次のようになります:
- enc_stepは、ファイルを暗号化する際にスキップするMB数です
- enc_sizeは、暗号化ブロック内のMB数です
- file_sizeは、バイト単位のファイルサイズです(スパースファイルの場合)
- この暗号化プログラムの開始は、攻撃の基礎的なロジックを提供するencrypt.shシェルスクリプトを介して行われます。開始すると、スクリプトは以下のアクションを実行します。以下にその概要を説明します。
- ESXiランサムウェアスクリプトは、ESXi仮想マシンの構成ファイル(.vmx)を変更するコマンドを実行し、「.vmdk」および「.vswp」の出現をそれぞれ「1.vmdk」および「1.vswp」に置き換えます。
- その後、ランサムウェアスクリプトは、「kill -9」コマンドを発行して「vmx」という単語を含むプロセスを強制的に終了させ、現在アクティブなすべての仮想マシンを終了させます。
- ランサムウェアは、VMXプロセスを終了してロックされたファイルを解放し、それらを変更して仮想マシンをシャットダウンしようとします。ただし、この機能は一貫して期待どおりに動作せず、一部のファイルがロックされたままになることがあります。VMファイルの変更後、VMは使用できなくなります。
- スクリプトは、以下のコマンドを使用してESXiボリュームのリストを取得します:
esxcli storage filesystem list | grep "/vmfs/volumes/" | awk -F' ' '{print $2}
このコマンドにより、ランサムウェアはこれらのボリュームを特定のファイル拡張子を持つファイルでスキャンします。
- 見つかったファイルごとに、スクリプトは同じディレクトリ内に対応する[file_name].argsファイルを生成します。この.argsファイルには、計算されたパラメーターが含まれており、一般的にはステップ(通常は ‘1’)とファイルサイズが含まれます。たとえば、ファイルが「VM01.vmx」である場合、「VM01.vmx.args」という関連するファイルが作成されます。マルウェアは、暗号化されたバイナリに渡された引数を格納するための「argsfile」を生成します。これには、スキップするメガバイト数、暗号化ブロックのサイズ、およびファイルサイズなどの情報が含まれます。
- 次に、スクリプトは計算されたパラメーターに基づいてファイルを暗号化するために「encrypt」実行可能ファイルを使用します。
- 暗号化の後、スクリプトはESXiの「index.html」ファイルとサーバーの「motd」ファイルを先述のランサムメモで置き換えます。
外部へのデータ転送(データの外部への流出)の証拠はありません。特定の場合、ファイルの暗号化が部分的にしか成功せず、被害者が一部のデータを回復する可能性があります。
感染およびデータの変更/暗号化が正常に完了した場合、次のようなランサムウェアのメモがHTMLページに表示されます:
“セキュリティ警告! 当社をハッキングしました。
…
3日以内にお金を送らない場合、いくつかのデータを公開し価格を引き上げます。。”
- その後、スクリプトはログの削除や、/store/packages/vmtools.pyにあるPythonバックドアの削除など、クリーンアップタスクを実行します。また、特定のファイルから特定の行を削除します:
- /bin/hostd-probe.sh
- /var/spool/cron/crontabs/root
- /etc/rc.local.d/local.sh
- /etc/vmware/rhttpproxy/endpoints.conf
重要な注意が発行され、管理者に対して「vmtools.py」ファイルがESXiホストに存在するかどうかを確認するよう促されます。見つかった場合は、直ちに削除することが推奨されます。
- 最後に、スクリプトは「/sbin/auto-backup.sh」を実行して、「/bootbank/state.tgz」ファイルに保存されている構成を更新し、SSHを有効にします。
また、この脆弱性が、ESXiArgs以外のランサムウェアグループによっても積極的に悪用されていることが明らかになりました。
注意: VMware ESXi ランサムウェアの動作は、ランサムウェアの更新されたバージョンや新しいランサムウェアのリリースとともに変わる可能性があります。
ESXi Args ランサムウェアの後のデータ復旧方法
暗号化されたファイルを復号化することができる暗号化メカニズムのバグはありません。ただし、米国サイバーセキュリティおよびインフラストラクチャセキュリティ庁(CISA)が VM の復旧を支援するスクリプトを作成しました。良いことに、仮想ディスク記述子(vmdk)を含む VM ファイルは暗号化されていますが、VM データが格納されている -flat.vmdk ファイルは暗号化されていません。これにより、VM の復旧が可能になります。
CISA は、ESXi Args ランサムウェアによって影響を受けた組織を支援するための復旧スクリプトを導入しました。このランサムウェアは特に ESXi サーバを対象とし、その構成ファイルを暗号化し、仮想マシン(VM)を使用不能にする可能性があります。このツールは VMware と共同で開発されましたが、VMware に直接サポートされていません。このツールを使用している間に問題が発生した場合は、GitHub の以下のアドレスで問題を報告することをお勧めします:https://github.com/cisagov/ESXiArgs-Recover/issues。
CISA は問題を迅速に解決することを約束しています。スクリプトの使用方法の詳細については、このリンクを参照してください。
あなたもPDFドキュメントをダウンロードすることができます。
ESXiホストがESXiランサムウェアに感染している兆候がある場合、以下の対策を検討してください。
- 感染したESXiホストをネットワークから切断します。
- ランサムを支払わないでください。ランサムを支払うことは、サイバー犯罪者に報酬を与え、彼らがより多くのランサムウェアを作成してより多くのお金を得ることを奨励することです。ランサムを支払っても、VMware ESXiランサムウェアで破損したファイルが回復されるという保証はありません。
- ランサムウェア攻撃を報告してください。ランサムウェアの報告は、迅速な対応、法的遵守、データ保護、信頼、脅威緩和、およびサイバー攻撃に対する集団防衛を可能にするため、重要です。ランサムウェア攻撃の報告は、セキュリティインシデント管理の基本的な部分です。個々の組織が攻撃から回復するのに役立つだけでなく、デジタルエコシステムの全体的なセキュリティと回復力にも寄与します。
- 現在のバージョンのランサムウェアに対して回復または復号化ツールが利用可能かどうかを確認してください。
- 暗号化ツールがない場合は、バックアップからデータを復元する(ランサムウェア攻撃前に作成されたバックアップが必要)。時には、バックアップからVMを復元する方が効果的かもしれません。復元されたVMを置くホストにランサムウェアの感染がないことを確認するために、新しいESXiのインストールを検討し、復元されたVMをその新しいESXiホストにコピーしてください。
ESXiをランサムウェアから保護する方法
以下の推奨事項に従って、ESXiをランサムウェアから保護してください。
- 脆弱性(CVE-2021-21974、CVE-2022-31699、CVE-2021-21995、CVE-2020-3992、CVE-2019-5544など)を持つESXiホストをパッチしてください。ESXiのバージョンがサポートされなくなっている場合は、サポートされているメジャーバージョンにアップデートを検討してください。アップデートできない場合は、OpenSLPを無効化(Service Location Protocol)する(脆弱性のあるESXiバージョンのサービスを無効化することも役立ちます)。
- セキュリティパッチをインストール(更新)し、ESXiホストを最新の脅威から保護してください。
- ESXiホストをインターネットに公開しないでください。作業プロセスで従業員やパートナーがインターネットからESXiホストにアクセスできるようにする必要がある場合は、VPNサーバーとファイアウォールを設定してください。ファイアウォールを設定して、信頼されたIPアドレスからのアクセスのみを許可してください。この場合、ESXiホストにアクセスするためにVPN経由でネットワークに接続することは安全です。
- SSHアクセスが必要でない場合は、SSHアクセスを無効にするか、タイムアウトを設定してください。
- SMB v1.0やその他の古いプロトコルを無効にしてください、特に使用されていない場合は。
- ネットワークのセグメンテーションを使用してください、ESXi管理ネットワークを含む。
- 少なくとも8文字、小文字、大文字、数字、特殊文字を含む強力なパスワードを使用してください。
- インフラストラクチャ監視をインストールして設定してくださいインフラストラクチャ監視ネットワークトラフィックやサーバーの負荷を監視します。監視により、不審なまたは悪意のあるアクティビティを時間内に検出できます。
- ランサムウェア保護に関するユーザー教育を行い、ランサムウェア攻撃または攻撃の試みが疑われる場合にユーザーが何をすべきかを理解していることを確認してください。
- ランサムウェア感染のためにコンピューターに悪意のあるリンクやファイルを送信するための一般的な方法であるため、メールのマルウェア保護を設定してください。メールメッセージ内のアクティブなハイパーリンクを無効にしてください。
- ユーザーのコンピューターやサーバーにアンチウイルスをインストールします。アンチウイルスソフトウェアのデータベースを定期的に更新します。
- 仮想マシンを定期的にバックアップし、3-2-1バックアップ戦略を使用してください。ランサムウェア攻撃時にこのバックアップが影響を受けないように、不変バックアップやエアギャップバックアップを持っていることを忘れないでください。ESXiバックアップやvCenterバックアップを持っていると、データやワークロードの復旧に時間を節約できます。
- ESXiランサムウェア攻撃が発生した場合にどう対処するかを皆に知らせるインシデント対応計画を作成してください。
- さまざまなシナリオでデータを復旧し、ワークロードを復元できるように災害復旧計画を作成してください。バックアップテストや災害復旧テストは重要です。
結論
ESXiランサムウェアは、1つのESXiホストが感染した場合でも多くのVMを失うことができるため、壊滅的です。データバックアップは、ランサムウェア攻撃時にデータ損失を回避する最も効果的な戦略です。このブログ投稿で上記に触れたESXiのランサムウェアからの保護方法に関する推奨事項に従ってください。NAKIVO Backup & Replicationを使用して、VMware ESXiホスト上に存在するVMを不変リポジトリにバックアップしてください。この方法で、これらのランサムウェア耐性のあるバックアップを使用して、完全なVMやアプリケーションデータの迅速な回復が可能です。