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- 情報収集(従来どおり、ツールで事実を集める。ここは AI に任せない)
nmap -sV/whatweb/curl -Iで、動いているソフトとバージョンを集める。 - AI に渡す
集めた技術情報を、脆弱性DB(CVE / NVD / Exploit-DB / Rapid7) と合わせて AI に投げる。
例:「この構成(Struts2 2.3.30 / Jetty 9.2.11)に該当しそうな既知脆弱性を、深刻度と実現性の高い順に挙げ、Metasploit の対応モジュールがあれば示して」
- AI が提案 該当しそうな脆弱性候補を、優先度順に + 対応モジュールまで下書きで出す。従来は何時間もかけた調査・順位づけが一瞬で出る。
- 人間が検証(最重要)
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:#e6edf3AI は「当たりをつける」、ツールは「事実を確かめる」、人間は「責任ある判断をする」。 この役割分担が、速さと安全を両立させます。
| メリット | 限界(鵜呑み厳禁) |
|---|---|
| ✅ 脆弱性の洗い出し・順位づけが一瞬 | ⚠️ AI は“それっぽい嘘”を出す → check で裏取り必須 |
| ✅ ハードルが下がる | ⚠️ 誤って対象外に向けると重大 → スコープを機械的に守る |
| ✅ 見落とす候補を拾える | ⚠️ 判断・実行・結果の責任は常に人間 |
⚠️ AI を使っても、許可の範囲は 1mm も広がりません。 AI は作業を速くする道具であって、許可・倫理・法律の代わりにはなりません。 常に「自分の持ち物・書面で許可された対象だけ」。