TL;DR
2026年4月9-10日、CPU-ZとHWMonitorの公式サイト(CPUID)が約6時間ハイジャックされ、ダウンロードリンクがマルウェアに差し替えられていた。ソースコードは無傷。配布層だけが乗っ取られた。
この事件は「公式サイトだから安全」という前提が崩壊したことを意味する。そしてこの問題は、npmパッケージやAI生成コードの依存関係にも直結している。
何が起きたのか
CPUIDのバックエンドAPIの脆弱性を突かれ、約6時間にわたりダウンロードリンクが動的に差し替えられた。
攻撃の特徴:
- 正規の署名済みファイルは一切改ざんされていない — 配布層のみの攻撃
-
64bit版HWMonitorユーザーが標的 — 偽の
CRYPTBASE.dllが配布された - PowerShellを使いメモリ上で動作 — ディスクへの痕跡を最小化
- Chromeの保存済みパスワードを窃取 — IElevation COMインターフェース経由
- C2サーバーから追加ペイロードをダウンロード
セキュリティ研究者(vx-underground)の分析では、FileZillaユーザーを狙った過去のキャンペーンとの関連が指摘されている。単発の実験ではなく、組織的な攻撃の一部だ。
なぜ開発者にとって他人事じゃないのか
信頼チェーンの脆弱性
私たちの日常のワークフローを考えてみてほしい:
npm install → npmがパッケージ作者を信頼 → 作者が依存先を信頼
VS Code → 拡張機能を信頼 → 拡張機能がCDNを信頼
brew/apt → リポジトリがメンテナを信頼 → メンテナがインフラを信頼
CPU-Zの事件は、ソースコードを1行も改ざんせずに、信頼されたソフトウェアを武器化できることを証明した。
AI生成コードが問題を悪化させている
ここからが本題。私はAI生成コードのセキュリティスキャナー(CodeHeal)を開発しているが、AI コードアシスタントが推奨するパッケージには「信頼」の概念がない。
CopilotやChatGPTが npm install some-package を提案するとき、以下を一切考慮していない:
- そのパッケージが3年間更新されていないこと
- メンテナのアカウントが最近侵害されたこと
- パッケージ名が人気ライブラリのタイポスクワットであること
- post-installスクリプトが不審なコマンドを実行すること
実際にAI生成プロジェクト50件以上をスキャンしたところ、73%に依存関係関連のセキュリティ懸念があった。
検証すべき3つのレイヤー
CPU-Zの事件から学べる教訓を整理する。
1. ソースの完全性
実行しているコードは、本当に書かれたコードか?
# ダウンロード時は必ずチェックサムを検証
sha256sum downloaded-file
# 公式に公開されているハッシュと比較
2. 配布の完全性
配布チャネルは今この瞬間信頼できるか?
CPUIDのサイトは何年も正規だった。その実績は、あの6時間の間、何の意味もなかった。
3. 依存関係の完全性
コードがimportしているパッケージは、本当にそのパッケージか?
静的解析で自動チェックできる項目:
- タイポスクワッティング — 人気パッケージに酷似した名前
- ファントム依存 — 実在しないパッケージへの参照
-
不審なpost-installスクリプト —
npm install時にコード実行 - 既知の脆弱性パターン — 古い暗号化、ハードコードされた秘密鍵、unsafe eval
今すぐやるべきこと
CPU-Z/HWMonitorをダウンロードした人
- ダウンロード日時を確認(2026年4月9-10日が該当期間)
- アンチウイルスでスキャン(
CRYPTBASE.dllを検索) - Chromeの保存済みパスワードを確認
- 侵害の可能性がある認証情報をローテーション
開発者全般
- 依存関係の棚卸し — 最後にpackage.jsonを精査したのはいつ?
- パッケージ名の検証 — タイポスクワッティングは想像以上に多い
- 不審なパターンの確認 — ハードコードされた秘密鍵、外部入力を使ったeval()
- スキャンの自動化 — 手動レビューはスケールしない
不都合な真実
「公式サイトからダウンロードすれば安全」「npm installすれば大丈夫」「AIが推奨したパッケージだから問題ない」
CPU-Zは、公式サイトが数時間で武器化されうることを証明した。
コードのセキュリティは、サプライチェーン全体の最も弱いリンクで決まる — そしてそのチェーンは、あなたが思っているより長い。
コードを信頼するな、スキャンせよ
CodeHealは、タイポスクワッティング・不審な依存関係・ハードコードされた秘密鍵など90以上の脆弱性パターンを静的解析でチェックする。LLM不使用、API費用ゼロ、毎回同じ結果。
CPU-Zの攻撃は「信頼」を悪用した。あなたのコードで同じ過ちを繰り返さないために。