Shikata Ga Nai

Private? There is no such things.

AIの死角を撃ち抜く——OSINTと手動診断で見つける「ビジネスロジックの脆弱性」

Hello there, ('ω')ノ

今回は、AIがスルーしてしまう脆弱性を、OSINT(公開情報調査)と手動診断を組み合わせてどう炙り出すか。その実践的なアプローチについて考えてみたいと思います。

1. OSINTで「AIの守備範囲外」を特定する

一般的なAIスキャナーは、あらかじめ指定されたスコープ(URLやIP)の中でしか動きません。しかし、本当の脆弱性は「管理者が忘れている、あるいは公開されているとは思っていない場所」に潜んでいることが多いです。

  • GitHubでの「AI生成コード」の露出: 最近では開発者がAIを使ってコードを書くことが増えていますが、その過程で誤ってAPIキーや内部用URLがコミットされてしまうケースが散見されます。shhgitなどのツールを使ってこれらを特定するのは、AIスキャナーにはできない「外側からの調査」です。
  • 「隠れサブドメイン」の探索: メインサイトはAIで厳重に守られていても、dev-test.example.com のような開発用環境が無防備なまま放置されていることがあります。subfinder などのOSINTツールを駆使して、AIの検知ログに残らない形でターゲットを絞り込みます。

2. 「ビジネスロジック」の矛盾を突く

AIが最も苦手とするのが「この操作は、このユーザーに許可されるべきか?」という論理的な判断です。

例えば、IDOR(認可制御の不備)。 AIは GET /api/user/100 が正常にレスポンスを返せば、それを「正しい挙動」としてパスしてしまいます。

ここで手動診断の出番です。 「ユーザーAのセッションを使って、ユーザーBのID(101)を指定したらどうなるか?」 「決済フローの途中で、パラメータの金額を書き換えたらどうなるか?」

こうした「システムの仕様(ビジネスロジック)を逆手に取った攻撃」は、依然として人間のホワイトハッカーの独壇場と言えます。

3. 脆弱性を「チェイン(連鎖)」させる思考

AIは単体のバグを指摘するのは得意ですが、複数の小さな不備を組み合わせて「致命的な攻撃」に昇華させるのは苦手です。

  1. OSINT で開発者の技術スタック(使用ライブラリ等)を特定する。
  2. 手動診断 で、AIが「低リスク」と見なしたエラーメッセージの露出を確認する。
  3. それらを組み合わせて、サーバーの内部構造を推測し、管理者権限の奪取へと繋げる。

この「点と点を繋いで線にする」プロセスこそが、2026年以降のホワイトハッカーに求められる最も重要なスキルだと感じています。

まとめ:AI時代だからこそ「人間」の視点を

ツールが自動化されればされるほど、その自動化の網をすり抜ける「例外的な手法」の価値が上がります。

AIを「高速な下調べツール」として使いこなしつつ、最終的な突破口は自分の手で見つける。そんなハイブリッドなスタイルが、これからのスタンダードになるのではないでしょうか。

Best regards, (^^ゞ