macOSを狙うClickLock Stealerの情報窃取
目次
Group-IBの2026年7月16日の報告によると、macOSを狙う情報窃取マルウェアClickLock Stealerは、利用者がターミナルに貼り付けたコマンドから動き、パスワードの入力を拒まれると次のログインからアプリを210ミリ秒ごとに終了させ続ける[1]。その活動は33か国の少なくとも100の被害者を狙った[1]。Group-IBは、コードの構造などからマルウェアはまだ開発中と推定した[1]。
報告の内容
Group-IBは、攻撃にClickFixと「locker」の手法を使うことから、このマルウェアをClickLock Stealerと名付けた[1]。侵害されたWordPressのドメインとTelegramの基盤に頼るモジュール型のスティーラーで、実行に昇格した権限も脆弱性の悪用も要らないとした[1]。構成要素の1つに、オープンソースのツールGSocketを少し改変した版を使っている[1]。Global Socketの公式ページによると、GSocketは別々のプライベートネットワークにある2台の端末を、ファイアウォールやNATを越えて通信させるツールである[6]。
最初に動くオーケストレーター
Group-IBの報告によると、利用者がターミナルにコマンドを貼り付けたとき、script.shが直ちに行うのはキーボードの割り込みの無効化である[1]。続いて偽のCloudflareの進捗表示を出しながら、4つの構成要素を裏でダウンロードし始める[1]。
| ファイル | 役割 | 実行の仕方 | 資料 |
|---|---|---|---|
| zsh.txt | 認証情報のスティーラー | 隠しディレクトリ$HOME/.cacheb/に保存し、ログイン時にLaunchAgentで動かす | [1] |
| chromer.txt | キーチェーンのスティーラー | 隠しディレクトリ$HOME/.cacheb/に保存し、ログイン時にLaunchAgentで動かす | [1] |
| finderv2.jpg | 暗号資産のスティーラー | ディスクに保存せずbashに直接渡す | [1] |
| goyim | GSocketを使うバックドアのインストーラー | ディスクに保存せずbashに直接渡す | [1] |
script.shが出す偽の「CLOUDFLARE CAPTCHA ACCESS CONTROL」の表示と、最初の引数で受け取るRAY_IDは、マルウェアの機能に関係しない[1]。Group-IBは、これらはコマンドを貼り付けた利用者を安心させるためにあると説明した[1]。
偽の進捗バーは12のメッセージを10秒かけて表示する[1]。ダウンロードのコマンドは、証明書のデータに似せた数百行の無作為な英数字の中に埋め込まれている[1]。背景のループはmacOSのNotificationCenterを約6時間終了させ続け、Gatekeeperなどの警告を出させない[1]。
認証情報を盗んだ後、script.shは$HOME/Library/Messagesの一覧を試して、ターミナルにフルディスクアクセスがあるかを確かめる[1]。無ければシステム設定のフルディスクアクセスの画面を開き、ターミナルを加える手順を示す[1]。最後に出すのは、「Access granted. Verification complete.」で始まる偽の成功の表示である[1]。
パスワードを入力させるループ
script.shはまず、osascriptで作った偽のmacOSのパスワードの画面を出す[1]。画面には被害者の実際のユーザー名と、ダウンロードしたAppleのアイコンが使われている[1]。入力されたパスワードはdscl /Local/Default -authonlyでローカルのディレクトリサービスに照らし、送るのは正しいものだけである[1]。
検証に通ったパスワードは平文・16進・base64で記録し、攻撃者のTelegramのボットに送る[1]。一緒に送る情報は、ユーザー名・macOSの版・CPU・RAM・ディスクの容量・公開IPアドレスである[1]。誤っていれば「Incorrect password」の警告を出し、画面を繰り返す[1]。
画面をキャンセルされると、script.shは~/Library/LaunchAgents/にcom.authirity.plistとcom.chromer.plistを作って終了する[1]。RunAtLoadの設定により、利用者がターミナルを閉じても再起動しても、次のログインでzsh.txtとchromer.txtが動く[1]。
Group-IBの説明では、zsh.txtはcom.authirity.plistで起動し、別の侵害されたドメインからAppleのアイコンを取る[1]。その後のループでは、Finder・Dock・ターミナル・アクティビティモニタ・コンソール・システム設定・Spotlight・NotificationCenter・SystemUIServer・一般的なブラウザ・fishを終了させ、画面にパスワードの入力画面だけを残す[1]。ループは約83時間(300000秒)か、パスワードを得るまで続く[1]。
有効なパスワードを得るとTelegramのボットに送り、30秒の間隔で最大1000回まで再送する[1]。zsh.txtはファイルの更新時刻を~/Moviesから写して偽装し、この偽装をパスワードの試行と状態の変化のたびに行っている[1]。
キーチェーンを狙うモジュール
chromer.txtが狙うのはChrome Safe Storageの鍵で、Chromium系のブラウザがCookie・パスワード・自動入力のデータを暗号化するAESの鍵である[1]。この鍵があれば、Login DataとCookiesのデータベースをオフラインで復号できる[1]。鍵はmacOSのキーチェーンに問い合わせて取り出し、問い合わせはシステムの許可の画面を出させる[1]。
許可を待つあいだ、Finder・Dock・SystemUIServer・Spotlight・主要なブラウザ・ターミナル・fish・アクティビティモニタなどを0.2秒ごとに終了させ、キーチェーンの許可の画面だけを残す[1]。Group-IBは、アクティビティモニタとターミナルは調査と停止を妨げるために狙うと説明した[1]。このループは最長3,000,000秒(約34.7日間)続く設定になっている[1]。
鍵とシステムの情報は、TelegramのボットのsendDocumentで送る[1]。Group-IBは、Telegramは攻撃者の基盤を要さない軽量のC2の経路になると説明した[1]。
LevelDBの走査とアドレスの抽出
finderv2.jpg(finder.sh)は、macOSとLinuxの暗号資産ウォレット、ブラウザの認証情報、システムのデータを狙う[1]。Chromium系(Chrome・Brave・Edge・Opera・Vivaldi・Arc・Chromium)とFirefoxを調べ、入っている拡張をウォレットの拡張のIDの一覧と照らす[1]。
Chromiumのウォレットでは、plyvelでLevelDBを開いてMetaMask型の暗号化された保管庫を探す[1]。plyvelが使えなければ、.ldbと.logのファイルを正規表現で走査する[1]。ウォレットが暗号化せずに持つ表示用のアドレスを取り出すのに、復号は要らない[1]。データはTelegramのボットで送り、40MBを超えるファイルは分割している[1]。
逆接続のシェルと永続化
goyimは、GitHubで公開されているGSocketの展開用スクリプトdeploy.shを少し改変した写しで、主なバックドアのインストーラーである[1]。Group-IBの比較では、元のdeploy.shのコードの約80%を攻撃者が再利用していた[1]。
実行すると、システムの情報を侵害されたWordPressのドメインに送り、Telegramのボットでも通知する[1]。攻撃者の中継につながる逆接続のシェルには、gsocket.ioから取ったgs-netcatのバイナリを使う[1]。macOSでは、バイナリを~/Library/Application Support/iCloudsyncにiCloudの名前で置き、プロセスはSystemUIServerlを名乗っている[1]。永続化にはcrontab・シェルのRCファイル・LaunchAgentを使い、接続の秘密の値はHTTPのwebhook・Telegram・DNSの3経路で送る[1]。
Group-IBによると、各モジュールは目的を果たすとタイムスタンプを偽装し、永続化の仕組みを外して自身を消すが、goyimのバックドアだけは残る[1]。攻撃者が得るのは、macOSのログインパスワード、Chromeの暗号化の鍵、窃取したデータのアーカイブ、永続的なバックドアである[1]。
時系列
根拠と範囲
Group-IBは、配布に使ったフィッシングのページを直接は観測していないが、スクリプトの振る舞いと内部の構造がClickFixでの配布を強く示すとした[1]。マルウェアがClickFixの手法を使うフィッシングのページで配布されている、または配布されるとみられることを、Group-IBは高い確度で評価した[1]。
Group-IBの観測では、活動は約2か月続いており、特定した被害者の50%超が欧州にいる[1]。観測した接続は欧州と北米に最も多く、中東・アフリカが続く[1]。Group-IBは、この地理的な分布は高所得の地域の利用者を狙う金銭目的の活動と整合するとした[1]。
暗号資産のウォレットへの集中から、Group-IBは暗号資産の保有者が主な標的と推定した[1]。価値のあるオンラインのアカウントを持つmacOSの利用者も、標的になりうるとした[1]。
| 区分 | 数と例 | 資料 |
|---|---|---|
| ブラウザ | 8種(Chromium系のLogin Data・Cookiesなど、Firefoxのlogins.json・key4.dbなど) | [1] |
| 暗号資産ウォレットのブラウザ拡張 | 31種(MetaMask・Phantom・Coinbase Walletほか) | [1] |
| パスワードマネージャーの拡張 | 7種(Bitwarden・LastPass・1Password・NordPass・Keeper・Dashlaneほか) | [1] |
| デスクトップのウォレット | 8種(Exodus・Electrum・Atomic Wallet・Bitcoin Coreほか) | [1] |
| ブロックチェーンのアドレス | 6つのチェーン | [1] |
| システムの認証情報 | macOSのログインパスワード、macOSのキーチェーン、Chrome Safe StorageのAES鍵 | [1] |
| その他 | シェルの履歴、FTPの認証情報(FileZillaの設定ファイル)、オフラインの総当たり用の暗号化された保管庫のデータ | [1] |
Group-IBによると、マルウェアの通信先は侵害されたドメイン、IPアドレスを調べる正規のサービスifconfig.me、窃取に使う3つのTelegramのボットで、専用のC2の基盤は観測されなかった[1]。IoCに挙げた侵害されたドメインは、panalobet[.]ph、store.grafsynergy[.]com、cottonbox[.]co[.]ilである[1]。Group-IBは、ペイロードが評判の良い侵害された正規のドメインにあり、発見時のVirusTotalの検出が0で、全構成要素が実行後に自身を消すため、検知の機会は狭いとした[1]。
別の活動では、Microsoftが5月6日の報告で、ClickFixで配られるmacOSのスティーラー(MacSync・SHub Stealer・AMOS)を扱った[3]。そのうちSHub Stealerは、入力させたパスワードをdscl . -authonly <username>で検証する[3]。The Hacker Newsは、Microsoftが5月にSHub Stealerで同じdsclによる検証を報告していたと報じた[2]。
Malwarebytesは、macOS Tahoe 26.4以降の利用者にはClickFixの攻撃の可能性の警告が出ると書いた[7]。Appleのサポート文書によると、「Possible malware, Paste blocked」は、ターミナルを日常的に使わない利用者がWebサイト、チャットエージェント、メッセージやメールのアプリなどからコマンドをコピーしたときの警告である[5]。出所を確信できれば「Paste Anyway」を押せ、既知のマルウェアを含むコマンドやスクリプトは「Malware Detected, Paste Blocked」「Malicious Script Blocked」で止める[5]。Jamf Threat Labsは4月8日に、applescriptのURLスキームでスクリプトエディタを開き、ターミナルを使わずにAtomic Stealerを配るClickFix型の攻撃を報告した[4]。
関係者の対応
Group-IBは利用者に、Webサイトの指示でターミナルにコマンドを貼り付けないよう求めた[1]。Macが突然すべてのアプリを終了させ、自分で始めていないパスワードの入力画面を出したときは、入力せずに電源ボタンで強制的に終了し、セーフモード(起動時にShiftを押す)で起動して調べるよう勧めた[1]。
The Hacker Newsは、起動時にShiftを押す手順はIntelのMacの手順だと報じた[2]。Appleシリコンでは「Loading startup options」が出るまで電源ボタンを押し、ボリュームを選んでShiftを押しながら「セーフモードで続ける」を押すと書いた[2]。
実行した疑いがあれば、ブラウザのセッションを失効させ、保存したパスワード・Cookie・ウォレットの鍵がすべて漏れたとみなしてパスワードを変えるよう、Group-IBは求めた[1]。~/Library/LaunchAgents/の見慣れないplistと~/.cacheb/の痕跡があれば、侵害が確定するとした[1]。
防御側に向けては、1秒未満の間隔でFinder・Dock・SystemUIServer・NotificationCenterを繰り返し終了させるpkill・killallに、警告を出すよう勧めた[1]。この振る舞いは操作を強制するマルウェアに特有で、正当な用途は無いとした[1]。ほかに監視するよう勧めたのは、シェルからのsecurity find-generic-passwordの呼び出し、ブラウザのプロファイルの一括読み出しとapi.telegram.orgへの通信、curlからbashへの直接の受け渡し、シェルによるLaunchAgentの作成である[1]。
組織には、貼り付け型のソーシャルエンジニアリングの教育と、振る舞いを分析する端末の検知を勧めた[1]。ターミナルを要しない利用者のターミナルの制限と、TCCの監視(ターミナルへの予期しないフルディスクアクセスの付与)も挙げた[1]。Malwarebytesは、自社の製品がClickLockをMacOS.Stealer.ClickLockとして検出・遮断すると書いた[7]。
未公表の事項
出典
調査・観測
- [1]Group-IB『ClickLock Stealer: Paste Once, Lose Everything』(2026年7月16日公開)
- [7]Malwarebytes Inc.『New ClickLock Stealer locks your Mac until you hand over your password』(2026年7月21日公開)
報道機関
- [2]The Hacker News『New ClickLock macOS Stealer Kills Apps Every 210ms Until Victims Type Their Password』(2026年7月16日公開)
背景資料
- [3]Microsoft Corporation『ClickFix campaign uses fake macOS utilities lures to deliver infostealers』(2026年5月6日公開)
- [4]Jamf Software, LLC『ClickFix Malware Uses macOS Script Editor to Deliver Atomic Stealer』(2026年4月8日公開)
- [5]Apple Inc.『If your Mac blocks a Terminal command paste or script』(2026年6月15日公開)
- [6]The Hacker's Choice『Global Socket | Connect like there is no firewall. Securely.』(公開日不明、2026年11月4日閲覧)
更新記録
- 2026年8月6日:公開した。
