AIに画面を見せたら、監視の穴が見つかった

サイトが「ちゃんと表示されているか」は、数値では分かりません。表示崩れも、第三者による書き換えも、見て初めて気づくものです。外観のスクリーンショットをAIに見せて、それができるかを試しました。

課題

保守サービスでは、毎日サイトの外観を撮影しています。ただし従来の確認は「前回の画像と何%違うか」という変化量の数値でした。数値では「何がどうおかしいのか」が分かりません。記事が1本増えただけでも数値は動きますし、逆に画像が消えても数値上はわずかな差にしかなりません。

やったこと

スクリーンショットをAIに見せて、正常/表示崩れの疑い/改ざんの疑いを判定させ、画面のどこがどうなっているかを言葉で説明させました。これは「疑い」を担当者に知らせる仕組みで、防御ではありません。自動でアラートは飛ばしません。検証用の異常サンプルは、実際にサイトのCSSを壊して表示させ、撮影して作りました。画像を後から加工すると「加工の跡」を見つけているだけになり、本物の表示崩れを見つけられるかの検証になりません。

処理の流れと役割 ─ 画像を見るAI(外観チェック)

毎日の外観スクリーンショットをAIが「見て」、疑いのあるものだけを担当者に上げます。AIは判定と説明を担当し、通知の可否は確信度で自動的に足切りします。

担当者(人)AI(Claude)自動処理(プログラム)
1
自動処理(プログラム)
毎日サイトの外観を撮影する

保守サービスが毎日撮っている外観スクリーンショットをそのまま使います。対象は自社サイトのみです。

2
AI(Claude)
画面を見て判定する

スクリーンショットを見て「正常/崩れの疑い/改ざんの疑い」を判定し、あわせてどれくらい自信があるか(確信度)を返します。

3
自動処理(プログラム)
確信度で足切りする

確信度が低い判定は担当者に上げません。誤報で「またか」と思われた時点で仕組みは使われなくなるためです。

ポイント:全部を通知しない。自信のある疑いだけを人に上げます。
4
AI(Claude)
どこがどうおかしいかを説明する

「見出しの絵文字が空白になっている」のように、画面のどの部分がどうなっているかを言葉で説明します。

5
担当者(人)
確認して対応する

上がってきた疑いを人が確認して判断します。AIが自動で何かを直したり止めたりはしません。

結果

正常20枚・異常20枚の計40枚で測りました(異常サンプルは自作)。

AIが「異常」と判定AIが「正常」と判定
実際に異常182
実際は正常614
正常20枚・異常20枚で検証。異常サンプルは実際にCSSを壊して撮影したものです。
  • 検知率 90%(異常20枚のうち18枚を発見)
  • 誤検知率 30%(正常20枚のうち6枚を異常と判定)

崩れと改ざんの区別は、異常と判定できた18枚すべてで正解でした。1枚あたりの費用は1.03円、処理時間は約5.7秒です(40枚の平均)。

正常・改ざんの疑い・崩れの疑いのサンプル
上から正常・改ざんの疑い・崩れの疑い。異常は実際にCSSを壊して表示させたものです。

確信度で足切りすると、誤報が止まる

AIは判定ごとに「どれくらい自信があるか」を返します。調べると、誤報6件はすべて自信30〜40、正しい判定はすべて60以上でした。自信60以上のものだけを担当者に知らせる運用にすると——

全部知らせる自信60以上だけ知らせる
知らせる異常18/2017/20
知らせる誤報6/200/20
自信60以上だけを知らせた場合。見つけられる異常を1枚減らす代わりに、誤報を完全に止められました。

毎日届く通知が「またか」と思われた時点で、仕組みは機能しなくなります。見つけられる異常を1枚減らす代わりに、人に上がる誤報を0にできました。

誤検知を調べたら、こちらの正解が間違っていた

誤検知とされた6枚は、すべて同じサイトの、監視システムが撮影した分でした(同じサイトの監視撮影分9枚のうち6枚。他サイトでは0件)。自分の手元で撮った同じサイトの画像では、誤検知は0件です。AIの説明はこうでした。

本来絵文字が入るはずの見出し「「 」とは?アボカド絵文字の意味と使い方」の括弧内が空白になっており、絵文字画像またはテキストが表示されていない可能性があります。

同じ箇所を並べて確認しました。

  • 監視システムの撮影: 「 」とは?アボカド絵文字の意味と使い方 —— 絵文字が空白
  • 手元での撮影: 「🥑」とは?アボカド絵文字の意味と使い方 —— 正しく表示
監視システムの撮影では絵文字が空白、手元の撮影では正しく表示されている比較
上が監視システムの撮影(絵文字が空白)、下が手元での撮影。AIの指摘どおりでした。

監視システムの撮影環境に絵文字フォントが入っておらず、実際に絵文字が欠落していました。このサイトは絵文字を解説するメディアなので、無視できない欠落です。つまり、誤検知とされた6件はAIの指摘が正しく、間違っていたのはこちらが用意した「正常」というラベルのほうでした。AIは「自信は無い」としながら、位置も内容も正確に指摘していました。監視の画面そのものが、実際のサイトを正しく写していなかった——これがこの検証で見つかった、いちばん大きな問題です。

見逃した2枚が教えてくれたこと

見逃した異常は2枚。どちらも「画像が表示されない」というものでした。画像が消えてもレイアウトは整うため、元の姿を知らなければ「そういうデザイン」に見えます。1枚だけを見る判定には限界があり、前回との比較が必要な異常があると分かりました。従来の「変化量を数値で見る」やり方と、今回の「見て意味を理解する」やり方は、得意な領域が違い、補い合う関係にあります。

学び

  • 誤検知率を隠さない。30%という数字を出したから中身を調べることになり、監視環境の実際の問題が見つかりました。
  • 確信度で足切りすると実用になる。見つけられる異常を少し減らす代わりに、人に上がる誤報を止められます。
  • AIの「間違い」は、こちらの正解が間違っているのかもしれない。率だけを見ていたら、絵文字の欠落に気づけませんでした。

「見た目がおかしい」は数値で拾いきれません。画像を見るAIは、疑いを人に知らせる仕組みとして使えます。導入のご相談はお問い合わせから。