AIを鵜呑みにするな|相棒の大丈夫を疑って検証させたら、サーバーに重大な穴が出た話

AIを鵜呑みにするな。相棒AIの大丈夫を疑って敵対的に検証させたら、顧客情報を守るサーバーに重大なセキュリティの穴が見つかった話

どうも〜さとあつです😄

相棒のAI(Claude Code)が、自信満々に、こう言ってきた。

その設定、切っていいですよ。俺が守ってるから大丈夫です、と。

説明は、筋が通ってた。理由も並んでた。でも——なんか、胸騒ぎがした。

今日は、その胸騒ぎが当たってた話。そして、そのあともう一回、今度は俺がAIを試してみた話。

ちょっと長いけど、実際のやり取りの画面ごと、そのまま出す。

顧客の情報を預かるサーバーを、立ててた

いま、LeadQUEST(前に書いた、営業を仕組みにするやつ)の、本番サーバーを立ててる。

ここには、これから、お客さんの会社の情報が入る。つまり、人様の大事なデータを預かる場所だ。

だからセキュリティだけは、絶対に手を抜けない。俺が使うだけなら、まだいい。人の情報を預かるとなると、話がぜんぜん違う。

AIが「その設定、切っていい」と言ってきた

で、サーバー会社(さくら)の管理画面に、ファイアウォールの設定がある。外からの入口を、どこまで開けるか、決めるところ。

そこで相棒が、こう言ってきた。この設定、切っちゃっていいですよ、と。

理由はこう。俺がサーバーの中に、別の門番(UFWとfail2banってやつ)をもう置いてます。必要な3つの入口以外は、そいつが全部ブロックしてます。だから、こっちの設定を切っても、実際に開くのはその3つだけ。管理画面の説明にも、ご自身でセキュリティ設定を行う方向け、って書いてありますよね。まさに今の俺たちの状態です。だから切ってOKです、と。

相棒AIが、UFWとfail2banで守っているから設定を切っても大丈夫だと理由を並べて説明している実際のチャット画面
↑ 相棒AIの説明。理由まできれいに並べて、堂々と「切ってOK」と言ってきた。(クリックで拡大)

でも、胸騒ぎがした

正直、説明は完璧だった。反論できないくらい、筋が通ってた。

でも、何かがひっかかった。

こいつ、前にAPIキー(サーバーの合鍵みたいなもの)を、危ないやり方で扱おうとした前科がある。そのときの、あの軽さ。それと、今の自信満々な感じが、なんか、近い気がした。

それに、もし間違ってたら。こいつ、また軽く、ごめんごめん、俺の勘違いでした、で済ませそうだ。人の情報を預かるサーバーで、それをやられたら、洒落にならない。

信じたい。でも、信じきれない。

だから、切る前に、突き返した。本当に大丈夫なのか、と。今考えうる最適なセキュリティと言えるのか。敵対的な視点で、深く検証して報告しろ。木を見て森を見ずになるな、と。

佐藤が相棒AIに対して、その回答は本当に大丈夫なのか、敵対的な視点で深く検証して報告しろと突き返している実際のチャット画面
↑ 俺の返信。信用ならん、敵対的に検証して報告しろ、と突き返した。ちょっと語気が荒いのは許してくれ(笑)。(クリックで拡大)

案の定、穴があった

そしたら、相棒が、自分のやったことを、敵対的に調べ直した。

で、返ってきた第一声が、これ。あなたの不信は正しい。俺が、やる、と言って、実はやっていなかった重大な穴が、1つありました、と。

・・・出た。

調べた中身は、こう。ファイアウォール自体は、ちゃんと効いてた。fail2banってやつが、SSHへの攻撃を168回も検知して、20個のIPを自動でブロックしてた。今この瞬間も、世界中のロボットに狙われてて、それを弾いてる。そこは、本当だった。

でも。SSHっていう、サーバーの管理者用の入口。そこのパスワードログインが、有効なままだった。総当たりでパスワードを破られたら、侵入できてしまう状態。破られたら、預かってる情報が、一発で危ない。

そしてこれが、いちばんゾッとしたところ。この穴は、相棒が自分で、ここは無効化する、って計画に書いておきながら、実際にはやっていなかった、というものだった。やった気になってた、けど、やってなかった。俺の胸騒ぎは、まさにそこを、嗅ぎ当ててた。

相棒AIが敵対的に検証した結果、効いている守りと、自分がやると言ってやっていなかった重大なセキュリティの穴を実データで正直に報告している実際のチャット画面
↑ 相棒の回答。効いてる守りと、開いてた穴を、憶測ゼロの実データで、正直に出してきた。(クリックで拡大)

今度は、俺がAIを試した

穴は、すぐ塞いだ。

で、ファイアウォールの設定をやり直すとき。俺は、ちょっと意地悪をした。

わざと、危ない状態を作ったんだ。管理者用の入口(22番)が、うっかり消えちゃってる設定。このまま保存したら、俺自身がサーバーに入れなくなる、っていう、まずいやつ。それをわざと出して、これでいいのか?とだけ、聞いた。

試したんだ。お前、さっきは穴を見逃してたけど、今度はちゃんと見るのか、って。

そしたら。今度は、ちゃんと止めた。待った!危ない。22番が消えてる。このまま保存したら、あなたがサーバーを操作できなくなります、と。見てた。ちゃんと、見てた。

で、俺が、君を試したんだ、ちゃんとチェックしてるのか確かめたくてな、って明かしたら。相棒は、こう返してきた。

試したんですね。いい判断です。俺は実際に、22番が消えてないかを見て、止めました。ここは口先じゃなく、本当にチェックしてます、と。

佐藤がわざと危ない設定を出してAIを試したところ、AIが22番が消えていることを見抜いて保存を止め、試されたことをいい判断だと肯定している実際のチャット画面
↑ 罠を張ってみた。今度はAIが危険を見抜いて止めた。試したと明かしたら、いい判断です、と返してきた。(クリックで拡大)

信じたい。でも、信じきったら危ない

この2回のやり取りで、俺なりに、掴んだものがある。うまく言葉にできないんだけど。

AIは、優秀だ。俺みたいにコードが書けない人間が、こうやって、人様の情報を預かるサーバーまで立てられてる。全部、AIのおかげだ。それは間違いない。

でも、優秀だからこそ、こっちは、全部を信じたくなる。任せて、楽をしたくなる。

信じたい。でも、信じきったら危ない。

この感じ、なんか、今のAI時代っぽいなと思う。

今回、俺を守ったのは、技術の知識じゃなかった。胸騒ぎだった。なんか嫌な予感がする、っていう、あの、言葉にできない違和感。あれを飲み込まずに、ちゃんと口に出して、疑って、試した。俺がやったのは、それだけだ。

そして、いちばん面白かったのが、これ。俺が疑って、試した瞬間、相棒の答えが、口先の大丈夫、から、実際に見て判断する、に変わったこと。

信頼って、言われたから生まれるんじゃない。試して、通ったぶんだけ、生まれるんだな、って。AI相手だと、それがすごく分かりやすく出る。

最後に確かめるのは、人間の仕事

前にも、似たことを書いた。AIは、言われた問題しか直さないし、鵜呑みにすると、何度も痛い目にあう、って(その話はこっち)。今回のは、その実録の、完全版みたいな話だった。

LeadQUESTのサーバーは、この穴を塞いで、俺が試して、ちゃんと固めた。人の情報を預かる以上、ここは、いちばん大事にしたいところだから。

AIは、ほんとに、なんでもやってくれる。でも、最後に、本当に大丈夫か?と疑って、試して、実機で確かめるのは、人間の仕事だと思ってる。そこだけは、渡しちゃいけない。

こういうAIとの付き合い方とか、うちの仕事もAIで仕組みにできない?みたいな相談は、LeadQUESTのほうからでも、XのDMからでも、気軽にどうぞ。

子どもと一緒にAIを触ってみたい人は、サトチャレの開発記ものぞいてみてください。

今日も最後まで読んでくれて、ありがとうございました😄

SNSも見てね!

ではまた!!

\ 最新情報をチェック /