Shikata Ga Nai

Private? There is no such things.

LLMはバグを見つけてくれない

Hello there, ('ω')ノ

はじめに

最近よく見かけるようになった質問があります。

「ChatGPTを使えばバグバウンティって簡単になるんですか?」

「URLを投げれば脆弱性を教えてくれますか?」

結論から言います。

LLMは、何もないところから脆弱性を見つけてはくれません。

しかし一方で、 使い方を間違えなければ、ハッカーの思考を何倍にも加速させる強力な武器になります。

今回は 「Context Augmentation(文脈拡張)」という考え方を軸に、 なぜLLMはそのままでは使えず、どう使えば“相棒”になるのか を、バグバウンティ初心者でも理解できるように解説します。


大前提:LLMに“観察”はできない

まず、最も重要な事実から。

LLM(ChatGPTなど)は、

  • Webサイトを操作できない
  • レスポンスの変化を見られない
  • 失敗から学習できない

つまり、

「試す → 失敗する → 気づく」というハッカーの核心行動ができません。

だから、 「このサイトにXSSある?」 「このURL怪しくない?」 と聞いても、返ってくるのは 推測の寄せ集め になります。

これはLLMが悪いのではなく、役割が違うだけです。


ハッカーが最初にやっていることは“地味”

では実際のハッカーは何をしているのか。

答えは驚くほどシンプルです。

  • 入力欄に文字を入れる
  • HTMLを入れる
  • JavaScriptを書いてみる
  • 送信する
  • 結果を見る

これだけです。

重要なのは 「成功したか」ではなく「何が起きたか」

  • scriptタグは消えた
  • onerror属性は削除された
  • formタグは残った

この 事実の積み重ね が、すべて次の一手の材料になります。


Context Augmentation とは何か

ここで登場するのが Context Augmentation です。

難しく聞こえますが、意味は単純。

「自分が観察した事実を、そのままLLMに渡す」

ダメな使い方

  • 「XSSありますか?」
  • 「このコード安全ですか?」

→ 情報が少なすぎて、LLMは妄想するしかありません。

良い使い方

  • scriptタグは削除された
  • イベント属性は除去される
  • しかし特定のタグはDOMに残る

こうした 生の観察結果 を渡します。


LLMに“正解”を聞いてはいけない

記事の中で一貫している姿勢があります。

それは、

LLMに「答え」を求めていない

代わりに聞いているのは、

  • この挙動から考えられる攻撃パターンは?
  • どんな回避手法があり得る?

つまり 可能性を“広げる”ために使っている のです。


人間がやる仕事、LLMがやる仕事

ここで役割分担を整理します。

人間の仕事

  • サイトを触る
  • 変化を観察する
  • 成功/失敗を判断する

LLMの仕事

  • 観察結果を整理する
  • 既存の攻撃手法と照合する
  • 次に試せる選択肢を増やす

LLMは「考える主体」ではなく「思考の補助輪」

この認識がないと、必ず行き詰まります。


なぜDOM Clobberingのような発想に辿り着けるのか

たとえば、

  • 属性だけが消える
  • タグ自体は残る

という観察があった場合、人間はこう考えます。

「属性チェックに依存したフィルターかもしれない」

この 仮説 をLLMに渡すことで、

  • DOM Clobbering
  • 名前衝突
  • 内部参照の破壊

といった 攻撃アイデアの候補 が返ってきます。

そこから 一番試すコストが低いもの 失敗しても情報が増えるもの を選んで、人間が試す。

このループが回り始めたとき、 LLMは初めて“使える存在”になります。


ここから学ぶ最大の教訓

最後に、ここで教えてくれる本質をまとめます。

LLM時代でも、ハッカーの仕事は変わっていない

  • 観察する
  • 仮説を立てる
  • 試す
  • 結果を見る
  • 調整する

変わったのは、 仮説を広げるスピードだけ です。


おわりに

LLMは魔法ではありません。 しかし、正しく使えば、

  • 思考の幅が広がり
  • 見落としが減り
  • 学習速度が上がる

最高の相棒になります。

大切なのは、

「考えさせる前に、自分がちゃんと見ること」

この姿勢を身につけたとき、 Context Augmentation は バグバウンティスキルを確実に一段引き上げてくれます。

Best regards, (^^ゞ