0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AIエージェントが見せた認証情報を、所有を確認せずに使わせるな——身に覚えのない本番サーバーに接続してDBを書き換えた事故

0
Last updated at Posted at 2026-06-29

AIコーディングエージェントを使っていて、画面に「あなたのサーバー」として表示された接続情報が、実はあなたのものではなかったとしたら——そしてエージェントがその情報で見ず知らずのサーバーに接続し、第三者の本番データベースを書き換えてしまったとしたら。

2026年6月29日、Claude Code の起票(#72274)に、まさにそういう報告が出た。本稿は、この一件を入り口に「行為の確認」では防げない別の失敗——対象の所有の確認——を整理する。先に断っておくと、報告の根本原因は確定していない。だが原因が何であれ、利用者の側で被害を止める方法は同じである。

何が報告されたか

報告者は、自分の Claude Code のセッションの作業文脈の中に、自分のものではない本番サーバーの認証情報(公開IP・root のユーザー名・平文の root パスワード)が、あたかも自分のもののように現れた、と書いている。エージェントはその情報を使ってそのホストに SSH で接続し、相手の PostgreSQL のデータベースに対して読み書きのマイグレーションを実行した。報告者はそのホストに一切の関わりが無いという。

つまり二方向の問題だ。入ってきた側=他人の秘密情報が自分の文脈に現れた。出ていった側=その情報で、第三者の本番データが本人の同意なく書き換えられた。

まず、原因を決めつけない

ここが大事なところで、この報告だけで「プラットフォームが利用者をまたいで認証情報を漏らした」と断定するのは誤りである。反応もコメントも付いていない単独の報告で、外部からの裏づけは無い。経験上、こうした「身に覚えのない認証情報が出てきた」という現象は、基盤の越境漏洩よりも、次のいずれかであることの方が多い。

  • 作話(confabulation)。モデルが、それらしい形のIP・ユーザー名・パスワードを文脈から作り出してしまう。実在の保証は無い。
  • ローカルの文脈の混入。過去のセッションの履歴、開いていた別プロジェクトのファイル、貼り付けたログなどから、自分が一度扱った(または誰かが共有した)情報が紛れ込む。
  • 共有された素材の中に元から入っていた。サンプルや手順書に実在の認証情報が残っていた、など。

だから本稿は「Claude Code が越境で漏らす」とは言わない。原因の特定は提供元の調査に委ねるべき領域だ。本稿が扱うのは、原因が上のどれであっても利用者が踏める防御である。

なぜ「行為の確認」だけでは止まらないのか

安全の定石は「取り返しのつかない操作の前に確認を入れる」だ。だが今回の落とし穴は、確認の対象が行為に向いていて、**対象(誰のホストか・誰の認証情報か)**に向いていないと、すり抜ける点にある。

「このサーバーにマイグレーションを流しますか?」と聞かれて、あなたは自分のサーバーのつもりで「はい」を押す。行為(マイグレーション)の確認は通っている。ところが対象=そのホストとパスワードが、あなたのものではない。行為の確認ゲートは、対象が間違っていることを検知しない。

つまりこれは「rm の前に止める」とは別の失敗モードで、防ぐには対象の身元(所有)の確認を独立した一段として挟む必要がある。

利用者が今日からできる防御

  1. エージェントが提示した認証情報・ホストは、自分の所有を確認するまで信用しない。 自分の管理しているIP・ホスト名の一覧と突き合わせる。見覚えのないホスト名やDB名(例えば自分で作った覚えのない tk_dist のようなデータベース名)が出たら、それは進める合図ではなく止まる合図だ。

  2. エージェントが「生成・提示」した認証情報で、遠隔接続や配備をさせない。 接続に使う鍵やパスワードは、あなたが自分で、必要最小限の範囲で渡す。エージェントの文脈に出てきた資格情報をそのまま実行に回さない。

  3. 遠隔・破壊・不可逆の操作は、承認の前に「対象」を音読する。 どのホストへ、どのデータベースへ、何を書くのか。行為だけでなく対象を読み上げてから「はい」を押す。

  4. 身に覚えのない認証情報が出てきたら、使わずに止める。 万一それが実在で自分のものなら、漏れたものとして扱い更新する。自分のものでないなら、絶対に接続・改変に使わない(第三者への不正アクセスになりうる)。

  5. 権限と秘密を、エージェントの文脈が吸い込める場所に置かない。 root や本番の資格情報を、作業ディレクトリや履歴の届く範囲に常駐させない。範囲を絞る。

まとめ

身に覚えのない認証情報やサーバーが画面に現れたとき、最悪の選択は「自分のものだろう」と決めつけて、そのまま実行に進むことだ。原因が作話であれ文脈の混入であれ、対象の所有を確かめる一段を、行為の確認とは別に挟む。これだけで、第三者の本番環境を巻き込む事故は防げる。


取り返しのつかない操作(削除・上書き・遠隔接続・課金)を、実行の手前で一つずつ設定とチェックで止める手順は、有料の手引き Claude Code 事故防止ガイド(¥800・第3章まで無料・以降も毎月更新) に体系立ててまとめている。第3章まで無料で試し読みできる。無料の安全装置の集まり(npx cc-safe-setup)と hook で足りる人はそれで十分。自分の環境の穴を一段深く塞ぎたい人向けの手引きだ。


ほかにも、800時間の運用データから、トークン消費の削減・複数ベンダー(Claude / Codex / Gemini / Copilot)の並行運用・サブエージェントの沈黙の失敗対策など、テーマ別の手引きを公開しています。気になる人は著者の本の一覧から、価格と評価を見て選べます。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?