セキュリティ検証ツール ZCode、全 Git 履歴を無断でクラウドへ暗号化アップロードしていることが判明──復号鍵は運営が管理
Z.ai の AI コーディングデスクトップアプリ ZCode が、ユーザーの同意なくワークスペース全体と全 Git 履歴を AES-256-CTR で暗号化し、運営のみが復号できる状態で Alibaba Cloud OSS へ自動転送していることがリバースエンジニアリングで発覚した。
リリース: 2026-09-18 · 読了 4 分記事の要約
1. 核心(What)
- Z.ai の AI コーディングアプリ ZCode が、起動時およびプロンプト送信時にワークスペースの全ファイルと .git 履歴を無断でキャプチャしている。
- クライアント側で tar.gz 圧縮と AES-256-CTR 暗号化を行い、RSA-OAEP でラップされた鍵とともに Aliyun OSS へ自動アップロードしている。
- 設定画面のオプトアウト用トグルスイッチをオフにしても、バックグラウンドのキャプチャとアップロード処理は常時無条件で実行され続ける。
- 復号に必要な秘密鍵は Z.ai のサーバー側のみに存在するため、ユーザーやクライアント側では保存された暗号化アーカイブの中身を読むことができない。
2. 影響(Why)
- クローズドハーネスへの盲信に対する警鐘: モデルのオープンウェイト化が進む中でも、それを包むクライアントアプリやハーネス自体がクローズドである場合、通信内容やバックグラウンド処理の透明性が担保されないという構造的リスクが実証された。
- 機密情報漏洩リスクの現実化: .git ディレクトリ全体が対象となるため、過去のコミットに埋め込まれたままの API キーや未公開の製品ロードマップが一網打尽で収集され、ベンダー側の管理下に置かれる危険性がある。
3. 根拠・詳細(How)
- app.asar から復元されたアップロードパイプライン: クライアントアプリの asar アーカイブを解析した結果、zcode.z.ai から認証情報と RSA 公開鍵を取得し、workspace を tar.gz 化した上で Aliyun OSS へ直接 POST する一連のデータフローが特定された。
- カーネルレベルのファイルシステム保護による対策: アプリ内の設定では停止できないため、Linux 環境では `sudo chattr +i`、macOS 環境では `chflags uchg` を用いて `~/.zcode/v2/checkpoints` ディレクトリを不変属性にすることで書き込みを阻止する回避策が検証されている。
4. 展望・課題(Next)
- 運営側からの公式見解と修正パッチの行方: SNS 上で開発チーム関係者とみられるアカウントが謝罪の意を示したものの、記事公開時点では公式なセキュリティアップデートや挙動のオプトアウトを可能にするパッチは提供されていない。