前文
Elastic Security Labsは、複数の悪意のあるモジュールを組み込み、脆弱なドライバーを利用して暗号マイニングの既知のセキュリティソリューション(EDR)を無効にする侵入セットを特定しました。 さらに、チームは永続性を確立し、これまで文書化されていなかったバックドアをインストールし、暗号マイナーを実行する機能を発見しました。 この侵入セットを REF4578 U と呼び、プライマリ ペイロードを GHOSTENGINE と呼んでいます (Antiy のチームによる接線研究では、この侵入セットの一部を HIDDENSHOVEL と名付けています)。
重要なポイント
- マルウェアの作成者は、多くの不測の事態と重複のメカニズムを組み込んでいました
- GHOSTENGINEは、脆弱なドライバーを活用して、デプロイされた有名なコインマイナーに干渉する可能性のある既知のEDRエージェントを終了および削除します
- このキャンペーンには、XMRIGマイナーのインストールと永続性の両方を確保するために、非常に複雑な量が含まれていました
コード分析
On May 6, 2024, at 14:08:33 UTC, the execution of a PE file named Tiworker.exe
(masquerading as the legitimate Windows TiWorker.exe
file) signified the beginning of the REF4578 intrusion. The following alerts were captured in telemetry, indicating a known vulnerable driver was deployed.
実行すると、このファイルは、侵入の実行フロー全体を調整する PowerShell スクリプトをダウンロードして実行します。 分析の結果、このバイナリはハードコードされたPowerShellコマンドラインを実行して難読化されたスクリプトを取得し、 get.png,
、以下のスクリーンショットに示すように、攻撃者C2からさらにツール、モジュール、および構成をダウンロードするために使用されることが明らかになりました。
GHOSTENGINE
GHOSTENGINEは、マシン上のモジュールを取得して実行する責任があります。 主に HTTP を使用して、構成されたドメインからファイルをダウンロードし、ドメインが利用できない場合のバックアップ IP を使用します。 さらに、資格情報が埋め込まれたセカンダリプロトコルとしてFTPを採用しています。 以下は、実行フローの概要です。
このスクリプトは、 clearn.png
をダウンロードして実行します。これは、同じファミリーで異なるキャンペーンに属する以前の感染の残骸をシステムからパージするように設計されたコンポーネントです。 C:\Program Files\Common Files\System\ado
と C:\PROGRA~1\COMMON~1\System\ado\
の下にある悪意のあるファイルを削除し、次のスケジュールされたタスクを名前で削除します。
Microsoft Assist Job
System Help Center Job
SystemFlushDns
SystemFlashDnsSrv
これらのスケジュールされたタスクアーティファクトの証拠は、以前の感染の指標である可能性があります。
実行中に、Windows Defender を無効にし、次の Windows イベント ログ チャネルを消去しようとします。
Application
Security
Setup
System
Forwarded Events
Microsoft-Windows-Diagnostics-Performance
Microsoft-Windows-AppModel-Runtime/Operational
Microsoft-Windows-Winlogon/Operational
get.png
Windows Defender を無効にし、リモート サービスを有効にし、次の内容をクリアします。
C:\Windows\Temp\
C:\Windows\Logs\
C:\$Recycle.Bin\
C:\windows\ZAM.krnl.trace
get.png
また、 C:\
ボリュームにファイルをダウンロードするための少なくとも 10 MB の空き領域があることを確認し、ファイルを C:\Windows\Fonts
. そうでない場合は、十分なスペースを持つ別の適切なボリュームを探して、 $RECYCLE.BIN\Fonts
の下にフォルダを作成する前に、システムから大きなファイルを削除しようとします。
C2ドメイン名の現在のDNS解決を取得するために、GHOSTENGINEはDNSサーバー、 1.1.1.1
、および 8.8.8.8
のハードコードされたリストを使用します。
次に、永続性を確立するために、 get.png
は次のスケジュールされたタスクを次のように作成します SYSTEM
。
- OneDriveCloudSync が
msdtc
を使用して悪意のあるサービス DLLC:\Windows\System32\oci.dll
を 20 分ごとに実行する (後述) - DefaultBrowserUpdate を実行して
C:\Users\Public\run.bat,
を実行すると、get.png
スクリプトをダウンロードして 60 分ごとに実行します。 - OneDriveCloudBackup は 40 分ごとに
C:\Windows\Fonts\smartsscreen.exe
を実行します
get.png
すべての curl.exe
プロセスと、コマンド ラインに *get.png*
が含まれるすべての PowerShell プロセス (現在のプロセスを除く) を終了します。 これは、マルウェアの同時に実行中のインスタンスを終了する方法です。
次に、このスクリプトは、取得した PE ファイルのハッシュを含む JSON ファイルを config.txt
にダウンロードします。 このファイルは、過去の感染から以前にダウンロードされたファイルのハッシュをチェックすることにより、更新されたバイナリをダウンロードするかどうかを確認します。
最後に、 get.png
はすべてのモジュールとさまざまな PE ファイルをダウンロードします。 次の表に、ダウンロードした各ファイルの説明を示します。
パス | タイプ | 説明 |
---|---|---|
C:\Windows\System32\drivers\aswArPots.sys | カーネルドライバー | アバストの脆弱なドライバー |
C:\Windows\System32\drivers\IObitUnlockers.sys | カーネルドライバー | IObitの脆弱なドライバー |
C:\Windows\Fonts\curl.exe | PE 実行可能ファイル | cURL経由でファイルをダウンロードするために使用されます |
C:\Windows\Fonts\smartsscreen.exe | PE 実行可能ファイル | コアペイロード(GHOSTENGINE)は、その主な目的は、セキュリティ機器を非アクティブ化し、初期感染を完了し、マイナーを実行することです。 |
C:\Windows\System32\oci.dll | サービス DLL | Persistence/updates module |
backup.png | Powershell スクリプト | Backdoor module |
kill.png | Powershell スクリプト | セキュリティ センサーの強制終了を担当する PE ファイルを挿入して実行する PowerShell スクリプト |
GHOSTENGINEモジュール
GHOSTENGINEは、セキュリティツールを改ざんしたり、バックドアを作成したり、ソフトウェアの更新をチェックしたりできるいくつかのモジュールをデプロイします。
EDRエージェントコントローラおよびマイナーモジュール:smartsscreen.exe
このモジュールは、主に、クリプトマイナーをダウンロードしてインストールする前に、アクティブなEDRエージェントプロセスを終了します。
このマルウェアは、実行中のすべてのプロセスをスキャンして、既知のEDRエージェントのハードコードされたリストと比較します。 一致するものがある場合は、まず IOCTL 0x7299C004
と共にaswArPots.sys
されたアバスト アンチルートキット ドライバー ファイルを利用してセキュリティ エージェントを終了し、PID によってプロセスを終了します。
smartscreen.exe
次に、IObit から iobitunlockers.sys
された別の脆弱なドライバーを含むセキュリティ エージェント バイナリを削除するために使用されます。IOCTL 0x222124
.
smartscreen.exe
次に、XMRigクライアントマイニングプログラム(WinRing0x64.png
)をC2サーバーからダウンロードします taskhostw.png
。 最後に、XMRig、そのドライバー、および構成ファイル config.json
を実行し、マイニングプロセスを開始します。
Update/Persistence module: oci.dll
PowerShell スクリプトは、msdtc
によって読み込まれたファントム DLL であるサービス DLL (oci.dll
) を作成します。DLL のアーキテクチャはマシンによって異なります。32 ビットまたは 64 ビットにすることができます。 その主な機能は、C2から get.png
スクリプトをダウンロードして実行することにより、システムの永続性を作成し、C2サーバーから更新をダウンロードすることです。
msdtc
サービスが開始されるたびに、oci.dll
が読み込まれ、get.png
を実行する PowerShell ワンライナーが生成されます。
EDRエージェント終了モジュール: kill.png
kill.png
は、現在のプロセスにシェルコードを挿入し、PEファイルを復号化してメモリにロードするPowerShellスクリプトです。
このモジュールは C++ で書かれており、著者はその操作に冗長性を統合しています。 この冗長性は、 smartsscreen.exe
でEDRエージェントバイナリを終了および削除するために使用された手法の複製で明らかです。新しいプロセスを継続的にスキャンします。
Powershellバックドアモジュール: backup.png
PowerShellスクリプトはバックドアのように機能し、システム上でのリモートコマンド実行を可能にします。 Base64 でエンコードされたコマンドを待っている間、現在の時刻とコンピューター名から派生した一意の ID を含む Base64 でエンコードされた JSON オブジェクトを継続的に送信します。 これらのコマンドの結果は、その後送り返されます。
この例では、Base64 でエンコードされた JSON オブジェクトが eyJpZCI6IjE3MTU2ODYyNDA3MjYyNiIsImhvc3QiOiJhbmFseXNpcyJ9
です。
$ echo "eyJpZCI6IjE3MTU2ODYyNDA3MjYyNiIsImhvc3QiOiJhbmFseXNpcyJ9" | base64 -D
{"id":"171568624072626","host":"analysis"}
マイナーの構成
XMRigは正当な暗号マイナーであり、構成ファイルの使用方法と要素を ここに文書化しています。 本書の冒頭で述べたように、REF4578侵入セットの最終的な目標は、環境にアクセスし、永続的なMonero暗号マイナーであるXMRigをデプロイすることでした。
マイナーから設定ファイルを抽出したところ、Monero Payment IDのレポートを作成し、ワーカーとプールの統計、マイニングされた暗号通貨、トランザクションID、出金を追跡することができ、非常に価値がありました。
以下は、REF4578 XMRig 設定ファイルからの抜粋です。
{
"autosave": false,
"background": true,
"colors": true,
...truncated...
"donate-level": 0,
"donate-over-proxy": 0,
"pools": [
{
"algo": "rx/0",
"coin": "monero",
"url": "pool.supportxmr[.]com:443",
"user": "468ED2Qcchk4shLbD8bhbC3qz2GFXqjAUWPY3VGbmSM2jfJw8JpSDDXP5xpkMAHG98FHLmgvSM6ZfUqa9gvArUWP59tEd3f",
"keepalive": true,
"tls": true
...truncated...
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36",
"verbose": 0,
"watch": true,
"pause-on-battery": false,
"pause-on-active": false
}
Monero支払いID
Moneroは、匿名性とプライバシーを確保するために難読化と代替可能性に焦点を当てたブロックチェーン暗号通貨です。 Payment IDは、 32 バイト(64桁の16進数)または 8 バイト(統合アドレスの場合)で構成される任意のオプションのトランザクションアタッチメントです。
上記の構成の抜粋(468ED2Qcchk4shLbD8bhbC3qz2GFXqjAUWPY3VGbmSM2jfJw8JpSDDXP5xpkMAHG98FHLmgvSM6ZfUqa9gvArUWP59tEd3f
)の支払いIDを使用して、構成にリストされている Moneroマイニングプールサイトの1つのワーカーとプールの統計を表示できます。
さらに、トランザクションハッシュを見ることができ、Moneroブロックチェーンエクスプローラーで調べることができます。 取引は4か月前にさかのぼりますが、これはこの特定の労働者とアカウントによる 潜在的な 金銭的利益を示しているだけであることに注意してください。
Blockchain ExplorerとPayment IDから取得した トランザクションハッシュ の1つを使用して、公開鍵、引き出しられた金額、およびいつ引き出されたかを確認できます。 これらの公開鍵は、ワンタイムアドレス、または敵対者が資金のロックを解除するために秘密鍵を使用するステルスアドレスで使用されることに注意してください。
In the above example for transaction 7c106041de7cc4c86cb9412a43cb7fc0a6ad2c76cfdb0e03a8ef98dd9e744442
we can see that there was a withdrawal of 0.109900000000
XMR (the abbreviation for Monero) totaling $14.86 USD. The Monerao Mining Pool site shows four transactions of approximately the same amount of XMR, totaling approximately $60.70 USD (January - March 2024).
この調査の公開時点では、REF4578 Payment IDに接続されたアクティブなマイナーがまだいます。
この特定の支払いIDは大きな稼ぎ手ではないように見えますが、REF4578この侵入セットをうまく操作できることは明らかです。 このキャンペーンの他の被害者は、侵入を追跡するために異なる支払いIDを使用している可能性があり、それらを組み合わせることで、全体的な収集量を増やすことができます。
マルウェアと MITRE ATT&CK
Elasticは、 MITRE ATT&CK フレームワークを使用して、脅威がエンタープライズネットワークに対して使用する一般的な戦術、手法、手順を文書化します。
戦術(Tactics)
戦術は、テクニックまたはサブテクニックの理由を表します。 それは敵の戦術的な目標であり、行動を実行する理由です。
手法
手法は、敵対者がアクションを実行することによって戦術的な目標を達成する方法を表します。
- コマンドとスクリプト インタープリター: PowerShell
- コマンドおよびスクリプト インタープリター: Windows コマンド シェル
- スケジュールされたタスク/ジョブ: スケジュールされたタスク
- インジケーターの削除: Windows イベント ログのクリア
- マスカレード
- プロセスインジェクション
- プロセスディスカバリー
- C2チャネルを介した流出
- データエンコーディング
- リソースハイジャック
- サービス停止
GHOSTENGINE の軽減
検知
GHOSTENGINEマルウェアの最初の目的は、エンドポイントセキュリティソリューションを無力化し、プロセスの作成とサービス登録を記録するセキュリティログやシステムログなどの特定のWindowsイベントログを無効にすることです。 したがって、これらの初期アクションの検出と防止に優先順位を付けることが重要です。
- 不審なPowerShell実行
- 通常とは異なるディレクトリからの実行
- システム整合性への特権の昇格
- 脆弱なドライバーをデプロイし、関連するカーネル モード サービスを確立します。
脆弱なドライバーがロードされると、検出の機会は大幅に減少し、組織はSIEMへのログの送信を停止する侵害されたエンドポイントを見つける必要があります。
DNS レコードの検索が HTTP (80
) や HTTPS (443
) などの既知のポートを介して既知のマイニング プール ドメインを指している場合、ネットワーク トラフィックが生成され、識別可能になる可能性があります。Stratum は、デフォルトでポート 4444
を介して、マイナー向けの別の一般的なネットワーク プロトコルでもあります。
この侵入セットの分析により、次の検出ルールと動作防止イベントが明らかになりました。
- 疑わしいPowerShellのダウンロード
- スクリプトインタープリタを介して生成されるサービスコントロール
- ローカルのスケジュールされたタスクの作成
- 通常とは異なるディレクトリからのプロセス実行
- Svchost スポーン Cmd
- 異常な親子関係
- Windows イベント ログのクリア
- Microsoft Windows Defenderの改ざん
- DLLの欠落による潜在的な権限昇格
- 信頼できないパスによるバイナリマスカレード
予防
悪意のあるファイルの防止:
シェルコードインジェクションの防止:
脆弱なドライバーファイル作成防止(Windows.VulnDriver.ArPot および Windows.VulnDriver.IoBitUnlocker )
ヤラ
Elasticセキュリティは、このアクティビティを識別するためのYARAルールを作成しました。
観測
すべてのオブザーバブルは、ECS形式とSTIX形式の両方で ダウンロード することもできます。
この研究では、次の観測量について議論しました。
Observable | タイプ | 名前 | 参考 |
---|---|---|---|
2fe78941d74d35f721556697491a438bf3573094d7ac091b42e4f59ecbd25753 | SHA-256の | C:\Windows\Fonts\smartsscreen.exe | GHOSTENGINE EDRコントローラーモジュール |
4b5229b3250c8c08b98cb710d6c056144271de099a57ae09f5d2097fc41bd4f1 | SHA-256の | C:\Windows\System32\drivers\aswArPots.sys | アバストの脆弱なドライバー |
2b33df9aff7cb99a782b252e8eb65ca49874a112986a1c49cd9971210597a8ae | SHA-256の | C:\Windows\System32\drivers\IObitUnlockers.sys | Iobit の脆弱なドライバー |
3ced0552b9ecf3dfecd14cbcc3a0d246b10595d5048d7f0d4690e26ecccc1150 | SHA-256の | C:\Windows\System32\oci.dll | アップデート/永続化モジュール (64 ビット) |
3b2724f3350cb5f017db361bd7aae49a8dbc6faa7506de6a4b8992ef3fd9d7ab | SHA-256の | C:\Windows\System32\oci.dll | アップデート/永続化モジュール (32 ビット) |
35eb368c14ad25e3b1c58579ebaeae71bdd8ef7f9ccecfc00474aa066b32a03f | SHA-256の | C:\Windows\Fonts\taskhostw.exe | マイナークライアント |
786591953336594473d171e269c3617d7449876993b508daa9b96eedc12ea1ca | SHA-256の | C:\Windows\Fonts\config.json | マイナー設定ファイル |
11bd2c9f9e2397c9a16e0990e4ed2cf0679498fe0fd418a3dfdac60b5c160ee5 | SHA-256の | C:\Windows\Fonts\WinRing0x64.sys | マイナードライバー |
aac7f8e174ba66d62620bd07613bac1947f996bb96b9627b42910a1db3d3e22b | SHA-256の | C:\ProgramData\Microsoft\DeviceSync\SystemSync\Tiworker.exe | 初期ステージャー |
6f3e913c93887a58e64da5070d96dc34d3265f456034446be89167584a0b347e | SHA-256の | backup.png | GHOSTENGINEバックドアモジュール |
7c242a08ee2dfd5da8a4c6bc86231985e2c26c7b9931ad0b3ea4723e49ceb1c1 | SHA-256の | get.png | GHOSTENGINEローダー |
cc4384510576131c126db3caca027c5d159d032d33ef90ef30db0daa2a0c4104 | SHA-256の | kill.png | GHOSTENGINE EDRターミネーションモジュール |
download.yrnvtklot[.]com | ドメイン | C2サーバー | |
111.90.158[.]40 | IPv4-アドレス | C2サーバー | |
ftp.yrnvtklot[.]com | ドメイン | C2サーバー | |
93.95.225[.]137 | IPv4-アドレス | C2サーバー | |
online.yrnvtklot[.]com | ドメイン | C2サーバー |
参照資料
上記の研究を通じて、以下のことが参照されました。