テック技報最新号へ →
セキュリティ

「1 行コマンドを貼らせる」Mac 向けルアーを端末で調べる(curl と zsh は兄弟プロセス)

偽のインストールページで curl ... | zsh を貼り付けさせる手口は、スクリプトがディスクに残らず、プロセスの親子関係だけ見ても見逃しやすい。調べるときはブラウザー履歴・シェル履歴・コマンドライン・通信記録を組み合わせる。

@MalwareBibleJP · 2026-10-20
#macos#clickfix#curl#incident-response#forensics#infostealer

手口(TradingView を装った事例)

  • 「TradingView — Install」と見せかけたページに macOS 用の 1 行コマンドとコピーボタンがあり、「ターミナルに貼って Return、パスワードを入力」と案内する。
  • コマンドは $(echo '...' | base64 -D) で URL を復元し、curl -kfsSL で取ってきた中身をそのまま zsh に流す。保存先(-o)も署名確認もなく、-k で TLS 検証も切っている。最初の取得は HTTP だった。
  • 過去のアーカイブでは同じページが別の配信ドメインを指しており、配信ドメインを差し替えながら使い回していた。同じサイトからは Windows 向けの情報窃取マルウェア(ZIP 内に 128MiB のゼロ埋めをした Go 製ローダー)も配られていた。

調べ方(防御側)

  1. ブラウザー履歴: ルアーページの URL(末尾スラッシュ違いも)を検索する。
  2. シェル履歴: 配信ドメイン、Base64 化した URL の先頭部分、base64 -D、curl -kfsSL などの文字列で検索する。ただし zsh の履歴はシェル終了まで書かれない・無効化・削除されていることがあり、「履歴にない=安全」ではない。
  3. プロセスの記録: パイプでつないだ curl と zsh は、多くの場合どちらも同じ対話シェルの子(兄弟)になる。「親が curl の zsh」だけを探す検知ルールは取りこぼす。短命な base64 プロセスや、iTerm などターミナル代替アプリが祖先にいるケースも想定する。
  4. DNS・プロキシの記録: 配信ドメインへの問い合わせは「実行を試みた」根拠になる。スクリプト本体を正常に受け取った HTTP 応答があればさらに強い根拠になる。エラー応答や DNS だけでは感染とは言えない。
  5. ディスクにファイルがないことを根拠にしない: 流し込み実行なので、スクリプトは残らないのが普通。

実行していた場合

  • その端末は侵害された前提で扱い、証拠を保全してから調査する。
  • ブラウザーのセッションを失効させ、認証情報は別のきれいな端末から変更する。暗号資産ウォレットの鍵やシードも漏れた前提で扱う。

予防

  • 「ターミナルに貼って実行」と求めるページは、正規の配布元の公式ドメインか必ず確かめる。チームには「インストール手順で 1 行コマンドを求められたら一度止まる」と周知する。
  • Windows の「Win+R に貼らせる」系の検知観点は ClickFix 系 RAT を「共通の挙動」で検知する(カスタム GPT 起点) を参照。
  • IOC で Cloudflare R2 全体や Telegram・Steam 全体を止めるのは巻き添えが大きい。止めるなら特定のオブジェクトやプロフィール単位にする。

出典

X の元の投稿を開く