公開前にAIへセキュリティレビューを頼んだら、AIが3本に分けて並列で走らせ、2本が同じ1点を指しました

転職用のポートフォリオとして、個人でWebアプリ「Hubpin」を作っています。
制作の経緯は「Hubpin 開発記録」に時系列でまとめています。
設計と判断は自分で行い、実装も原則自分で書いています。AIには手順書・レビュー・調査を任せています。

自分のドメインで公開する直前に、AIにレビューを頼みました。
「作業に問題がないか見てほしい。セキュリティ上の問題がないかも確かめてほしい」と伝えました。

AI側が組んだのは、読み取り専用のレビューを3本、互いの結果を見せずに並列で走らせる形でした。

見た範囲
1本目 サーバー設定の変更した差分だけ
2本目 公開サーバーを外から叩いただけ。コードは見ていない
3本目 アプリのコードと履歴だけ。外からは叩いていない

返ってきた3本のうち、2本が独立に同じ1点を指していました。

目次

2本が言ったこと

言ったこと
外から見た2本目 「今すぐ対処すべき項目はゼロ。ただし外からは見えない1点がある。そこは中で見てほしい」
中から見た3本目 「その1点が、実際に開いている」

片方が「ここが見えない」と言い、もう片方が「そこが開いている」と言っていました。

指された中身は、ここでは「1点」のままにしておきます。
中身は別の記事に書きます。

1本だけなら、どちらも半分だった

もし外から見た2本目だけが走っていたら、「問題なし」で終わっていました。
見えないものを「見えない」と書いただけで、それが開いているかどうかまでは分からないからです。

中から見た3本目だけなら、見つかりはします。
でも「外からどう見えるか」が分からないので、優先度を決められません。
たくさんある指摘のひとつとして、並んでいたと思います。

重なっていたから、「実害あり。すぐ直す」まで一息で決められました。
決めたのは自分です。
別の課題として切り出し、その日のうちに直しました。

面白かったのは、死角の申告のほうだった

外から見た2本目で効いたのは、自分が見つけられない場所を名指ししたことです。
穴を見つけたことより、そちらでした。

「最も価値のある確認は、外部からは見えない1点です」

「調べた範囲」だけの報告は、そこで終わります。
「調べられなかった範囲」が書いてある報告は、次の一手を作ります。

この申告が無ければ、3本目の指摘は埋もれていました。

頼み方を1つ覚えた

自分がやったのは「レビューして」と頼んだことと、結果を読んで直すと決めたことです。
3本に分けて向きを変える設計は、AI側から出てきました。

でも、なぜ効いたかは分かりました。
同じ方向から3本走らせても、たぶん同じものしか出てきません。
差分を見る、外から見る、中から見る、と向きが違ったから、それぞれの死角が別の1本で埋まりました。

そして死角を教えてくれたのは、埋めた側ではなく、埋められなかった側でした。

次に頼むときは、自分から「向きを変えて複数本」と頼めます。
並列で走らせたので、3本まとめても20分ほどでした。
公開前に一度だけやる確認としては、安かったと思います。

目次