42の武器化されたGitHubリポジトリが隠れたnpm発行者を明らかに
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
高度なキャンペーンとして追跡された testmetest は、資格情報を盗み、悪意のあるパッケージを自動的にリリースするために、悪意のあるnpmパッケージと改ざんされたGitHubリポジトリを使用します。攻撃者は、検知を回避するために多形ラッパー、ネイティブNode.jsアドオン、暗号化されたペイロードに依存しています。このキャンペーンには、cPanelの脆弱性をスキャンおよび攻撃するためのインフラストラクチャも関与しています。
調査
JFrog Securityの研究者たちは、42の武装されたGitHubリポジトリと複数の悪意のあるnpmパッケージを特定しました。彼らは、攻撃者がコンパイルされた .node ファイルがランタイムで隠されたペイロードを復号するという、ネイティブアドオンカモフラージュ技術を使用していることを発見しました。この調査は、活動が shellpanel cPanelシステムをターゲットにしたスキャナとCVE-2026-41940を通じてリンクしていることも示しています。
軽減策
ユーザーは特定された悪意のあるnpmパッケージを削除し、信頼できるソースからシステムを再構築する必要があります。組織は、GitHub、npm、クラウドトークンを含む可能性のあるすべての資格情報を更新する必要があります。また、無許可の設定ファイル(例: .github/init.js )や package.json ファイルやメイクファイルにおける予期しない実行フックの監査も重要です。
対応策
悪意のある活動が検出された場合、公開された秘密を取り消し、すぐに資格情報を更新してください。 net-health-checker or pkg-runtime. などの永続化メカニズムを探し、GitHub Actionsのログを使用して無許可のワークフローを確認し、システムで一時ディレクトリに書き込まれた復号化されたペイロードを監視してください。
攻撃フロー
この部分はまだ更新中です。
検出
Linuxホスト上で隠されたファイルが作成されました(file_event経由)
疑わしいNodeJS子プロセス [Windows] (cmdline経由)
異常なプロセスによって起動された可能性のあるGithubファイルのダウンロード(network_connection経由)
Nohup使用法(cmdline経由)
疑わしいNodeJS子プロセス [Linux] (cmdline経由)
疑わしいディレクトリを指す疑わしいChmod実行(cmdline経由)
疑わしいフォルダへのダウンロード(cmdline経由)
ハッシュSha256に基づくIOC検出: testmetestを超えて: ネイティブアドオンカモフラージュと42の武装GitHubリポジトリが隠れたnpm発行者を明らかにした
SourceIPに基づくIOC検出: testmetestを超えて: ネイティブアドオンカモフラージュと42の武装GitHubリポジトリが隠れたnpm発行者を明らかにした
DestinationIPに基づくIOC検出: testmetestを超えて: ネイティブアドオンカモフラージュと42の武装GitHubリポジトリが隠れたnpm発行者を明らかにした
IsDebuggerPresentまたはCheckRemoteDebuggerPresent を介したデバッガー存在チェック [Windowsセキュリティイベントログ]
疑わしいプロセス作成と一時的なJSファイル実行 [Windowsプロセス作成]
ネイティブNode.jsアドオン実行の検出 [Windows イメージロード]
悪意のあるNodeアドオンプロセスの実行が検出されました [Linuxプロセス作成]
疑わしいネイティブアドオンメモリマップの読み取り [Google Cloud Platform]
シミュレーション実行
-
攻撃の流れとコマンド: 敵対者は、ユーザーの一時ディレクトリに悪意のあるJavaScriptペイロードを正常にドロップし、
.ncという名前を付けて、その目的を曖昧にしたり、単にネットキャット関連のファイルを模倣したりします。これを実行するために、敵対者はローダーを利用してCreateProcessAWin32 APIを使用してWindows Script Host(wscript.exe)を一時ファイルを引数として起動します。この特定のシーケンス—プロセス作成APIのANSIバージョンを使用して%TEMP%からスクリプトを実行する—は、検出ルールがインターセプトするように設計された正確なパターンです。 -
回帰テストスクリプト:
# シミュレーションスクリプト: '疑わしいプロセス作成と一時的なJSファイル実行'のトリガー # 1. パスの定義 $tempPath = $env:TEMP $targetFile = Join-Path $tempPath ".nc" # 2. %TEMP%ディレクトリにダミーの悪意のあるJSファイルを作成します # 注: 検出ロジックの要件に従い.ncと名付けます "WScript.Echo('疑わしい活動をシミュレート');" | Out-File -FilePath $targetFile -Encoding ascii Write-Host "[+] 悪意のあるファイルが作成されました: $targetFile" # 3. wscript.exeを介して実行をシミュレートします # 現実のシナリオでは、'CreateProcessA'を含む'CallTrace'が # マルウェアローダーによって使用される基礎となるWindows API呼び出しによって生成されます。 # これをPowerShell/CMDを介して実行するとプロセス作成イベントが生成されます。 Write-Host "[+] 検出をトリガーするためのスクリプトを実行します..." Start-Process "wscript.exe" -ArgumentList "`"$targetFile`"" Write-Host "[+] シミュレーションコマンドが送信されました。" -
クリーンアップコマンド:
# クリーンアップスクリプト: シミュレーションアーティファクトの削除 $tempPath = $env:TEMP $targetFile = Join-Path $tempPath ".nc" if (Test-Path $targetFile) { Remove-Item -Path $targetFile -Force Write-Host "[+] クリーンアップ成功: $targetFile を削除しました。" } else { Write-Host "[!] クリーンアップ失敗: ファイルが見つかりません。" }