エンドポイントの検出と対応 (EDR) ソリューションが Windows システムでのマルウェア検出の有効性を向上させるにつれて、特定の国が支援する攻撃者は、ネットワーク アプライアンス、SAN アレイ、VMware ESXi サーバーなど、一般に EDR をサポートしないシステム上でのマルウェアの開発と展開に移行しています。 .
今年初め、Mandiant は、VMware ESXi、Linux vCenter サーバー、および Windows 仮想マシンに影響を与える新しいマルウェア エコシステムを特定しました。これにより、攻撃者は次のアクションを実行できます。
- ハイパーバイザーへの永続的な管理アクセスを維持する
- 実行のためにゲスト VM にルーティングされるハイパーバイザーにコマンドを送信します。
- ESXi ハイパーバイザーとその下で実行されているゲスト マシンの間でファイルを転送する
- ハイパーバイザーのロギング サービスの改ざん
- あるゲスト VM から同じハイパーバイザー上で実行されている別のゲスト VM に対して任意のコマンドを実行する
このマルウェア エコシステムが最初に検出されたのは、 Mandiant Managed Defenseが、VMware ESXi ハイパーバイザーでホストされている Windows 仮想マシン上の正規の VMware Tools プロセスであるvmtoolsd.exe
から発信された攻撃者のコマンドを特定したときでした。 Mandiant は ESXi ハイパーバイザーの起動プロファイルを分析し、攻撃者が悪意のあるvSphere インストール バンドル(「VIB」) を利用して複数のバックドアを ESXi ハイパーバイザーにインストールする、これまでにない手法を特定しました。私たちは、これらのバックドアを VIRTUALPITA および VIRTUALPIE と呼んでいます (図 1 )。
これが外部のリモート コード実行の脆弱性ではないことを強調することが重要です。攻撃者がマルウェアを展開するには、ESXi ハイパーバイザーに対する管理者レベルの権限が必要です。 Mandiant には、この投稿の執筆時点で、初期アクセスの取得や悪意のある VIB の展開にゼロデイ脆弱性が使用されたという証拠はありません。
悪意のあるまたは異常な VIB が現在 ESXi 環境にインストールされているかどうかを手動で検出する方法の詳細については、強化ブログの投稿で概説されています。 VMware は、vSphere の保護に関する追加情報をリリースしました。
vSphere インストール バンドル (VIB)
Mandiant は、悪意のある vSphere インストール バンドル (VIB) を介してインストールされた 2 つの新しいマルウェア ファミリを特定しました。これを VIRTUALPITA および VIRTUALPIE と名付けました。
VMware VIB は、ソフトウェアの配布と仮想システムの管理を容易にするために設計されたファイルのコレクションです。 ESXi はメモリ内ファイル システムを使用するため、ファイルの編集内容は再起動後に保存されません。 VIB パッケージを使用して、スタートアップ タスク、カスタム ファイアウォール ルールを作成したり、ESXi マシンの再起動時にカスタム バイナリを展開したりできます。これらのパッケージは、通常、管理者が更新を展開してシステムを維持するために使用します。ただし、この攻撃者は、ESXi ハイパーバイザー間のアクセスを維持するための永続化メカニズムとしてパッケージを利用していることが確認されました。
VIB は、次の 3 つのコンポーネントに分けることができます。
- XML 記述子ファイル
- 「VIB ペイロード」(.vgz アーカイブ)
- 署名ファイル – VIB のホスト受け入れレベルを検証するために使用されるデジタル署名
XML 記述子ファイルは、次への参照を含む構成です。
- インストールするペイロード
- 名前やインストール日などの VIB メタデータ
- VIB に属する署名ファイル
VIB ペイロードは、VIB を介して ESXi マシン上に作成されるディレクトリとファイルを含む .vgz アーカイブです。これらのファイルは、VIB がロードされたときに起動時に実行するように呼び出すことができます。
署名ファイルは、VIB のホスト受け入れレベルを確認するために使用されます。許容レベルは、VMware が使用するデジタル署名システムであり、VIB が公開される前に VMware またはパートナーが行ったテストを指定します。受け入れレベルは、ホスト、イメージ プロファイル、および個々の VIB に対して設定されます。 4 つの許容レベルとその XML 記述子の短い名前を以下に示します。
- VMWareCertified (認定済み)
- VMwareAccepted (承認済み)
- PartnerSupported (パートナー)
- CommunitySupported (コミュニティ)
VMware のドキュメントによると、VIB を ESXi ホストにインストールする必要があるデフォルトの最小許容レベルはPartnerSupported
です。この許容レベルは、VMware が信頼するパートナーによって VIB が公開されていることを示します。これはデフォルトの許容レベルですが、ESXi 管理アカウントによって手動で変更できます。 VIB のインストールに使用されるコマンドesxcli software vib install
は、通常、最小許容レベル未満のインストールを許可しませんが、 –force フラグを使用して、VIB のインストール時にシステムの許容レベル要件を無視することができます。
観察された悪意のある VIB には、 PartnerSupported
というラベルが付けられました。 Mandiant による署名ファイルのレビューでは、署名ファイルが空であり、攻撃者が XML 記述子ファイルを変更して、 acceptance-level
フィールドをcommunity
からpartner
に変更したことが判明しました。 CommunitySupported
承認レベルは、VIB が VMware またはその信頼できるパートナーによってレビューも署名もされていないサード パーティによって作成されたことを示します。これは、 CommunitySupported
VIBの要件のみを満たしているにもかかわらず、攻撃者がこれらの VIB ファイルをPartnerSupported
として偽装したことを示しています。これは、VIB が VMware パートナー プログラム外の個人または企業によって作成され、VMware が承認したテスト プログラムを経ていないことも示しています。図 2には、特定された変更済み XML 記述子ファイルの抜粋が含まれています。
acceptance-level
フィールドは攻撃者によって記述子 XML で変更されましたが、ESXi システムは依然として、偽造された VIB ファイルが最小設定許容レベル未満でインストールされることを許可しませんでした。これを回避するために、攻撃者は--force
フラグを悪用して、悪意のあるCommunitySupported
VIB をインストールしました。
テストでは、XML 記述子ファイルの変更されたフィールドが、VIB の一覧表示と検証に使用されるコマンドの出力で行われた変更を反映していることが確認されました。これには、コマンドesxcli software vib list
をだまして、インストールされている VIB の誤った許容レベルを表示させる<acceptance-level>
フィールドの変更が含まれていました。 VMware コマンドesxcli software vib signature verify
は、インストールされている VIB パッケージの署名を検証し、次のフィールドを表示します。
- VIB 名
- バージョン
- ベンダー
- 合格レベル
- VIB の署名検証の結果
Mandiant は、これらの許容レベルが改ざんされたときにこのコマンドが検出され、悪意のある VIB を特定したことを確認しました。このコマンドは、XML 記述子ファイルによって指定された許容レベルを表示しますが、 Signature Verification
列は、署名ファイルがそれぞれの記述子 XML と一致しなかったかどうかを明確にします。署名を検証できない場合、[ Signature Verification
] 列に[署名が利用できSignature Not Available: Host may have been upgraded from an older ESXi version
ます] という値が含まれます。この例を図 3に示します。
仮想ピタ (VMware ESXi)
VIRTUALPITA は、VMware ESXi サーバーのハードコードされたポート番号にリスナーを作成する 64 ビットのパッシブ バックドアです。バックドアは、多くの場合、VMware のサービス名とポートを利用して、正当なサービスになりすます。任意のコマンドの実行、ファイルのアップロードとダウンロード、およびvmsyslogd
を開始および停止する機能をサポートしています。任意のコマンドの実行中、マルウェアは環境変数HISTFILE
を0
に設定して、マシン上で発生したアクティビティをさらに隠します。このマルウェアの亜種は、仮想マシン通信インターフェイス(VMCI) をリッスンし、このアクティビティをファイルsysclog
に記録することが判明しました。
バーチャルピー (VMware ESXi)
VIRTUALPIE は Python で書かれた軽量のバックドアで、VMware ESXi サーバーのハードコードされたポートでデーモン化された IPv6 リスナーを生成します。任意のコマンド ラインの実行、ファイル転送機能、およびリバース シェル機能をサポートしています。通信はカスタム プロトコルを使用し、RC4 を使用して暗号化されます。
lsu-lsi-lsi-mrarpid-plugin
という名前の最初の悪意のある VIB は、ペイロードlsu_lsi_.v05
(MD5: 2716c60c28cf7f7568f55ac33313468b) を参照しました。これには、次の 3 つのファイルが含まれていました。詳細を表 1 に示します。
- /etc/rc.local.d/vmware_local.sh (MD5: bd6e38b6ff85ab02c1a4325e8af29ce4)
- /bin/rdt (MD5: 8e80b40b1298f022c7f3a96599806c43)
- /bin/vmsyslog.py (MD5: 61ab3f6401d60ec36cd3ac980a8deb75)
ファイル名 |
説明 |
vmware_local.sh |
bash インストール スクリプトを |
rdt |
ハードコーディングされた TCP ポート 2233 でリスナーを作成する ELF バックドア (VIRTUALPITA)。任意のコマンドの実行、ファイル転送機能、および |
vmsyslog.py |
ハードコーディングされたポート 546 でデーモン化された IPv6 リスナーを生成する、Python で記述された軽量バックドア (VIRTUALPIE)。任意のコマンド ライン実行、ファイル転送機能、およびリバース シェル機能が可能です。通信はカスタム プロトコルを使用し、RC4 を使用して暗号化されます。 |
ata-pata-pdc20211
という名前の 2 番目の悪意のある VIB は、表 2 で詳細を確認できる次の 2 つのファイルを含むペイロードpayload1.v00
(MD5: 9ea86dccd5bbde47f8641b62a1eeff07) を参照しました。
- /etc/rc.local.d/vmware_rhttpio.sh (MD5: 9d5cc1ee99ccb1ec4d20be1cee10173e)
- /usr/lib/vmware/weasel/consoleui/rhttpproxy-io (MD5: 2c28ec2d541f555b2838099ca849f965)
ファイル名 |
説明 |
vmware_rhttpio.sh |
bash インストール スクリプトを |
rhttpproxy-io |
ハードコードされた VMCI ソケット ポート 18098 でリスナーを作成する ELF バックドア (VIRTUALPITA)。任意のコマンドの実行、ファイル転送機能、および vmsyslogd の開始/停止機能が可能です。次のサンプルは、システム コンテキスト ID (CID) をフェッチする他のサンプルには見られない追加のログを生成します。 |
仮想ピタ (Linux)
Mandiant は、TCP ポート 7475 でリッスンしている 2 つの追加の VIRTUALPITA サンプルを発見しました。これらは Linux vCenter システムのinit.d
スタートアップ サービスとして永続的でした。偽装するために、これらのバイナリは正規のバイナリksmd
の名前を共有していました。 KSMD (Kernel Same-Page Merging Daemon) は通常、Linux でメモリを節約する重複排除を担当し、このポートでリッスンしません。サンプルは次のディレクトリにあります。
- /usr/libexec/setconf/ksmd (MD5: 744e2a4c1da48869776827d461c2b2ec)
- /usr/bin/ksmd (MD5: 93d50025b81d3dbcb2e25d15cae03428)
これらのバックドアは、任意のコマンドの実行、ファイル転送機能、および vmsyslogd の開始/停止機能を備えていました。
仮想ゲート (Windows)
感染したハイパーバイザーによってホストされていた Windows ゲスト仮想マシンには、 C:WindowsTempavp.exe
にある固有のマルウェア サンプルも含まれていました。 VIRTUALGATE と呼ばれるこのマルウェアは、C で記述されたユーティリティ プログラムであり、ドロッパーとペイロードの 2 つの部分で構成されています。メモリのみのドロッパーは、VMware の仮想マシン通信インターフェイス (VMCI) ソケットを使用してハイパーバイザー ホストからゲスト仮想マシンで、または同じホスト上のゲスト仮想マシン間でコマンドを実行する第 2 段階の DLL ペイロードの難読化を解除します。
vmtoolsd.exe によるコマンドの実行
Mandiant は、アクティブな攻撃者イベント中に ESXi ハイパーバイザーを確認したところ、攻撃者がプロセス/bin/rdt
(VIRTUALPITA)を介してゲスト マシンに対してコマンドを実行したことを特定しました。親プロセス/bin/rdt
は、ターゲットのゲスト マシンと実行するコマンドを指定する Python スクリプトを呼び出す bash シェルを生成しました (図 4参照) 。
|
引数としてe.pyに渡されたコマンドは、ターゲットの Windows ゲスト マシンによって実行され、 vmtoolsd.exe
の下で子プロセスとして実行されていることも確認されました。この実行チェーンを図 5に示します。親バイナリの/bin/rdt
はディスク上に存在しませんでしたが、ESXi ハイパーバイザーのプロセス メモリをダンプすることで回復できました。ゲスト マシンにコマンドを送信した Python スクリプトe.py
を復元できませんでした。
攻撃者がゲスト仮想マシンでvmtoolsd.exe
を介して実行したコマンドは、ネイティブ ツールの「dir」と「makecab」を利用して、システムと接続されたファイル共有の両方でファイルの列挙と圧縮に重点を置いていました。これらの編集されたコマンドのサンプルを図 6に示します。
|
Mandiant はまた、攻撃者が資格情報収集のために仮想化システムを標的にしていることを特定しました。攻撃者は、MiniDump を使用してプロセス メモリをダンプし、平文の資格情報を検索しました。図 7 は、これらのコマンドの抜粋を示しています。
|
プロセス メモリがダンプされると、PowerShell スクリプトを使用して結果のファイルを解析し、クリアテキストの資格情報を取得しました。図 8は、資格情報の収集に使用されるスクリプトの内容を示しています。攻撃者は、KeyPass パスワード データベース ファイルも標的にしました。
|
攻撃者はほとんどのアクティビティに続いてC:WindowsTemp
ディレクトリをクリアしましたが、小さなエラーが発生し、トレース アーティファクトが残りました。図 9に示すように、攻撃者はdir
リストの出力を.tmp
ファイルに送信しました。攻撃者は Windows 構文 (2>nul) ではなく Linux 構文 (2>null) を使用してエラーを抑制したため、すべてのエラーは作業ディレクトリC:WindowsSystem32null
のファイル null に転送されました。このファイルは、 dir
コマンドで列挙されたファイルのディレクトリ パスが長すぎて表示できない場合にのみ作成されました。
|
帰属
Mandiant は、このアクティビティを UNC3886 として追跡し始めました。この侵入の高度に的を絞った回避的な性質を考えると、UNC3886 の動機はサイバースパイ活動に関連していると思われます。さらに、UNC3886 が中国に関連しているとの確信度は低いと評価しています。 Mandiant が実施する各調査には、Mandiant が対応する何千もの調査で観察された活動を関連付ける作業を行う Advanced Practices チームのアナリストが含まれます。場合によっては、侵入活動を既知のグループに直接帰属させるためのデータが入手できないことがあります。このような場合、監視したアクティビティを追跡するために新しい UNC グループを作成します。 UNC グループは、関連するサイバー侵入活動のクラスターであり、敵対者のインフラストラクチャ、ツール、トレード クラフトなどの観察可能なアーティファクトが含まれますが、APT や FIN などの分類を提供する準備がまだ整っていません。 Mandiant が UNC グループを使用する方法の詳細については、ブログ投稿を参照してください: DebUNCing Attribution: How Mandiant Tracks Uncategorized Threat Actors .
結論
UNC3886 で使用される手法には、ESXi オペレーティング システムと VMWare の仮想化プラットフォームに関するより深いレベルの理解が必要であることに注意しましたが、他のさまざまな攻撃者がこの調査で概説した情報を使用して、同様の機能の構築を開始すると予想されます。 Mandiant は、ESXi および VMware インフラストラクチャ スイートを使用している組織が、このブログ投稿で概説されている強化手順に従って、 ESXi ホストの攻撃面を最小限に抑えることを推奨しています。
MITRE ATT&CK テクニック
コレクション
- T1560: 収集されたデータのアーカイブ
- T1560.001: ユーティリティによるアーカイブ
実行
- T1059: コマンドおよびスクリプト インタープリター
- T1059.001: PowerShell
- T1059.003: Windows コマンド シェル
- T1059.004: Unix シェル
- T1059.006: パイソン
- T1129: 共有モジュール
コマンドと制御
- T1105: Ingress ツール転送
- T1573.001: 対称暗号
防御回避
- T1027: 難読化されたファイルまたは情報
- T1070: ホストでのインジケータの削除
- T1070.003: コマンド履歴のクリア
- T1070.004: ファイルの削除
- T1140: ファイルまたは情報の難読化解除/デコード
- T1202: 間接コマンド実行
- T1218.011:Rundll32
- T1497: 仮想化/サンドボックスの回避
- T1497.001: システムチェック
- T1620: リフレクティブ コードの読み込み
発見
- T1016: システム ネットワーク構成の検出
- T1083: ファイルとディレクトリの検出
横移動
- T1021: リモート サービス
- T1021.004: SSH
資格情報へのアクセス
- T1003: OS 資格情報のダンプ
- T1003.001: LSASS メモリ
持続性
- T1547: ブートまたはログオンの自動開始の実行
侵害の痕跡
タイプ |
価値 |
説明 |
MD5 SHA1 SHA256 |
2716c60c28cf7f7568f55ac33313468b 5ffa6d539a4d7bf5aacc4d32e198cc1607d4a522 2be5f4520846bf493b4694789841907d058fe08d59fff6bad7abe1db8ed96e7d |
悪意のある VIB .vgz ペイロード |
MD5 SHA1 SHA256 |
bd6e38b6ff85ab02c1a4325e8af29ce4 17fb90d01403cb3d1566c91560f8f4b7dd139aa8 e68872c49aaedeb3bde3ff5fd2ad6f70658687dc02d04f12ebc7cb28e821cc88 |
悪意のある VIB 展開スクリプト |
MD5 SHA1 SHA256 |
8e80b40b1298f022c7f3a96599806c43 e9cbac1f64587ce1dc5b92cde9637affb3b58577 c2ef08af063f6d416233a4b2b2e991c177fc72d70a76c24bca9080521d41040f |
バーチャルピタ |
MD5 SHA1 SHA256 |
61ab3f6401d60ec36cd3ac980a8deb75 93d5c4ebec2aa45dcbd6ddbaad5d80614af82f84 4cf3e0b60e880e6a6ba9f45187ac5454813ae8c2031966d8b264ae0d1e15e70d |
バーチャルピー |
MD5 SHA1 SHA256 |
9ea86dccd5bbde47f8641b62a1eeff07 b90b19781fde2c35963eb3eac4ce2acc6f5019fb 23eb8d056f18e7c69ec3568f2833c9d09e91df98d11b11de235331ef42756fe5 |
悪意のある VIB ペイロード |
MD5 SHA1 SHA256 |
9d5cc1ee99ccb1ec4d20be1cee10173e 9d191849d6c57bc8a052ec3dac2aa9f57c3fe0cd 4d995eb87b0685124b7f1640d1ab431f5a1ab991ade02750b876ed5c523234bb |
悪意のある VIB 導入スクリプト |
MD5 SHA1 SHA256 |
2c28ec2d541f555b2838099ca849f965 e35733db8061b57b8fcdb83ab51a90d0a8ba618c 505eb3b90cd107cf7e2c20189889afdff813b2fbb98bbdeab65cde520893b168 |
バーチャルピタ |
MD5 SHA1 SHA256 |
744e2a4c1da48869776827d461c2b2ec a3cc666e0764e856e65275bd4f32a56d76e51420 4a6f559426493abc0d056665f23457e2779abd3482434623e1f61f4cd5b41843 |
バーチャルピタ |
MD5 SHA1 SHA256 |
93d50025b81d3dbcb2e25d15cae03428 abff003edf67e77667f56bbcfc391e2175cb0f8a 13f11c81331bdce711139f985e6c525915a72dc5443fbbfe99c8ec1dd7ad2209 |
バーチャルピタ |
MD5 SHA1 SHA256 |
fe34b7c071d96dac498b72a4a07cb246 0962e10dc34256c6b31509a5ced498f8f6a3d6b6 5731d988781c9a1d2941f7333615f6292fb359f6d48498f32c29878b5bedf00f |
バーチャルピタ |
記述子 XML 名 |
lsu-lsi-lsi-mrarpid-plugin |
VIB 名 |
ファイル名 |
lsu_lsi_.v05 |
VIB .vgz ペイロード |
フルパス |
/etc/rc.local.d/vmware_local.sh |
VIB 導入スクリプト |
フルパス |
/bin/rdt |
バーチャルピタ |
フルパス |
/bin/vmsyslog.py |
|
記述子 XML 名 |
ata-pata-pdc20211 |
VIB 名 |
ファイル名 |
ペイロード1.v00 |
VIB .vgz ペイロード |
フルパス |
/etc/rc.local.d/vmware_rhttpio.sh |
VIB 導入スクリプト |
フルパス |
/usr/lib/vmware/weasel/consoleui/rhttpproxy-io |
バーチャルピタ |
フルパス |
/usr/libexec/setconf/ksmd |
仮想ピタ (Linux) |
フルパス |
/usr/bin/ksmd |
仮想化 (Linux) |
フルパス |
C:WindowsTempavp.exe |
バーチャルゲート |
フルパスとハッシュ (MD5) | C:WindowsTempSilverlightwmpd.exe 76df41ee75d5077f2c5bec70747b3c99 |
vmtoolsd.exe によって作成され、vmtoolsd.exe 子プロセスによって実行される削除されたファイル |
ヤラ検出
|
|
|
|
|
|
謝辞
Brad Slaybaugh、Joshua Kim、Zachary Smith、Kirstie Failey、Nick Simonian、Charles Carmakal の各氏には、このブログ投稿で説明したマルウェア ファミリの調査、技術レビュー、および検出の作成を支援していただき、特に感謝しています。さらに、この調査に協力してくれた VMware にも感謝します。
参照: https://www.mandiant.com/resources/blog/esxi-hypervisors-malware-persistence
Comments