コンテンツにスキップ

11. AI 時代のペンテスト 🤖

🔊 音声で聴く

従来は「コマンドを1つずつ手作業」で、知識も時間も要りました。 AI を上手に使うと、脆弱性の洗い出し・攻撃順序の提案までを一気に下書きでき、ハードルが下がります。 ただし 最終判断は人間——ここが鉄則です。


AI 活用の流れ

flowchart LR
    A["① 情報収集<br>nmap/whatweb/curl<br>(ツールで事実を集める)"] --> B["② AI に渡す<br>技術情報+脆弱性DB"] --> C["③ AI が提案<br>脆弱性候補を<br>優先順に+対応モジュール"] --> D["④ 人間が検証<br>check で裏取り→exploit"]
    style A fill:#2d333b,stroke:#3fb950,stroke-width:2px,color:#e6edf3
    style B fill:#2d333b,stroke:#58a6ff,stroke-width:2px,color:#e6edf3
    style C fill:#2d333b,stroke:#58a6ff,stroke-width:2px,color:#e6edf3
    style D fill:#2d333b,stroke:#f85149,stroke-width:2px,color:#e6edf3
  1. 情報収集(従来どおり、ツールで事実を集める。ここは AI に任せない) nmap -sV / whatweb / curl -I で、動いているソフトとバージョンを集める。
  2. AI に渡す 集めた技術情報を、脆弱性DB(CVE / NVD / Exploit-DB / Rapid7) と合わせて AI に投げる。

    例:「この構成(Struts2 2.3.30 / Jetty 9.2.11)に該当しそうな既知脆弱性を、深刻度と実現性の高い順に挙げ、Metasploit の対応モジュールがあれば示して」

  3. AI が提案 該当しそうな脆弱性候補を、優先度順に + 対応モジュールまで下書きで出す。従来は何時間もかけた調査・順位づけが一瞬で出る。
  4. 人間が検証(最重要) check で裏取り、スコープを確認、1つずつ検証して進める。

鉄則:AI で絞る、ツールで確証、人間が判断

flowchart LR
    AI["AI<br>候補を絞る<br>(速い・仮説)"] --> M["ツール<br>check で確証<br>(事実にする)"] --> H["人間<br>判断して実行<br>(責任を持つ)"]
    style AI fill:#2d333b,stroke:#58a6ff,stroke-width:2px,color:#e6edf3
    style M fill:#2d333b,stroke:#d29922,stroke-width:2px,color:#e6edf3
    style H fill:#2d333b,stroke:#f85149,stroke-width:2px,color:#e6edf3

AI は「当たりをつける」、ツールは「事実を確かめる」、人間は「責任ある判断をする」。 この役割分担が、速さと安全を両立させます。

メリット 限界(鵜呑み厳禁)
✅ 脆弱性の洗い出し・順位づけが一瞬 ⚠️ AI は“それっぽい嘘”を出す → check で裏取り必須
✅ ハードルが下がる ⚠️ 誤って対象外に向けると重大 → スコープを機械的に守る
✅ 見落とす候補を拾える ⚠️ 判断・実行・結果の責任は常に人間

⚠️ AI を使っても、許可の範囲は 1mm も広がりません。 AI は作業を速くする道具であって、許可・倫理・法律の代わりにはなりません。 常に「自分の持ち物・書面で許可された対象だけ」。