AIペンテストの台頭に伴い、「人間と同等の品質なのか」と疑問を抱く人が増えています。筆者は12年前にペンテスターとしてキャリアを始め、同様の職務を経て、現在はIntruderのAIペンテスターの開発に携わっています。
その経験から、両者の長所と短所が見えてきました。ここでは両者を比較します。
厳格な方法論は、そもそも価値の核心ではなかった
AIペンテスターは、多くの人間によるペンテストと同様に、厳格な方法論に従うものと想像されるかもしれません。
Intruderでも当初はこのアプローチを試しました。各エージェントに特定の脆弱性タイプを探させる、構造化されたシステムです。しかし、エージェントは担当範囲外の問題をまったく見逃したり、実際に見つけた問題を「探すよう指示された唯一のもの」として誤って分類したりして、分かりにくいレポートが生まれました。
構造をまったく持たせない場合も、良い結果は得られませんでした。何の指針もない完全に自由なエージェントは、大規模なアプリケーションを適切に分解・管理できなかったためです。興味深い問題は見つけられるものの、対象に潜む他の多数の脆弱性を見逃してしまいました。
私たちはこの両極のバランスを探るために多くのテストを重ね、最終的に次の形に落ち着きました。大規模アプリケーションに取り組み、管理しやすくするため、エージェントには大まかに定義した役割のもとで自由を与えます。そのうえで、被害を引き起こさないよう、より厳格なガードレールを設けました。
このため、IntruderのAIペンテスターは、人間によるペンテストで通常目にする方法論文書の項目を一つずつチェックしていくことはしません。これに不安を覚える人もいるでしょう。厳格な方法論には、誰かがアプリケーションを通して調べ、リスト上のすべてをテストしたという安心感があるからです。認証なしのSQLインジェクションは必ず見つけなければならず、チェックリストはそのためにあります。
方法論があることで、人間によるペンテストは完全に再現可能な製品であり、どのテスターでも方法論に従えば重要なものはすべて見つかる、と考える人は多くいます。しかし現実はもっと複雑です。ペンテストは熟練を要する仕事であり、最も影響の大きい発見の多くは、経験豊富なテスターが不審な挙動に気づき、それを追跡することで生まれます。
私たちのAIペンテスターでは、特定の脆弱性タイプに沿ってエージェントを誘導しないことで、はるかに興味深く影響の大きい結果が得られました。好例が、エージェントが発見した複雑な認証バイパスです。この問題は5年間のペンテストを経ても、人間のテスターには見つけられないままコードベースに残っていました。
この問題の仕組み上、厳密に従える形でそれを特定するテストガイドを書こうとは、誰も思いつかないでしょう。私たちがAIペンテスターを過度に制限していたら、これも見つかっていなかったはずです。
よくある問題だけを見つけるのでも十分に価値がある、という意見もあるでしょう。しかし、ペンテストでは一般的でない脆弱性が実に多様に見つかります。一般的でないからといって、攻撃者に見つけられないわけではありません。AIが攻撃を後押しするために使われる現在はなおさらです。
有能なテスターが厳格な方法論を実行しても、得られるのは低水準の信頼性にすぎず、それすら完璧ではありませんでした。ペンテストの質を決めるのは、熟練したテスターがチェックリストの外で行う部分です。そしてそこがAIの得意分野です。アプリケーションの中を嗅覚に従って進み、リストに載るはずのなかった問題を見つけ出します。
AIが知っていること、尋ねられないこと
私たちのAIペンテストはホワイトボックス方式を採用しており、エージェントにはソースコードが渡されます。エージェントはコードベース全体を読み込み、各ページが何であるかだけでなく、アプリケーションがどう機能するはずか、どのようなリクエストが可能かまで把握します。AIが実現するこのレベルの詳細な調査は、一般的なペンテストの期間内では人間のペンテスターには現実的ではありません。
AIペンテスターは、アプリケーションが何のためにあるのかも理解していきます。その好例がアクセス制御です。権限の低いユーザーが管理機能にアクセスできてはならないことや、特定のデータが機密であることを、あらかじめ教える必要はありません。
人間のテスターと同じく、追加情報を与えることもできます。たとえば、顧客同士が互いのデータにアクセスできてしまうことへの懸念を伝えるケースはよくあります。その場合、ペンテスターはこうした問題に的を絞り、多数を特定することに成功しています。
一方で、エージェントには、与えられていない情報や伝えられていない事柄を依頼者に尋ねることはできません。私がペンテスト中にアプリケーションの一部の機能が理解できなければ、担当者に質問できます。そうしたやり取りは、アプリケーションを適切にテストし、最終レポートでリスクを評価するうえで非常に有益です。
必要に応じて担当者とスコープを確認したり、業務に支障が出る恐れがあるか判断に迷うときに検証の許可を求めたりすることもできます。
私たちはスコープ外に踏み込まないよう、AIペンテストのエージェントをこの点であえて慎重に設計せざるを得ませんでした。
どちらもすべてを見つけられるわけではない
AIペンテストのエージェントが複雑な認証バイパスのような問題を見つけられるのは、自由度があるからです。同じ自由度が、挙動を予測しにくくする要因にもなっています。どこを掘り下げるかはエージェント自身が決めるため、毎回まったく同じにはなりません。
しかし、ペンテストの結果は昔から担当者によって異なってきました。多くのコンサルティング会社が毎年テスターを入れ替えるのもそのためです。同じアプリケーションでも、人によって見つけるものは違います。
これは、個人の経験、専門分野、偶然得た知識に左右されます。
私自身、何年も前にたまたま読んだブログ記事や仕様書が頭の片隅に残っていたおかげで、問題を発見できたことがあります。チェックリストにある項目でさえ、見落とされることはあります。人間は誤りを犯す存在であり、数日にわたってアプリケーション全体を体系的に網羅するのは容易ではありません。
網羅性の一貫性は私たちが積極的に改善に取り組んでいる点ですが、誰が行っても完璧に提供できたものではありません。人間によるペンテストのレポートすべてに、その旨を述べた免責事項が付いているのはそのためです。多くの人は形式的なものとして読み流していますが。
私には書けなかった修復ガイダンス
優れたレポートとは何か、ペンテスターは誰もが強い持論を持っています。私も長年のうちに数多くの持論を培ってきましたし、Intruderの現役・元ペンテスターたちも同様です。そうした意見が、私たちのレポートの土台になっています。
エグゼクティブサマリーは、レポートの中で最も書くのが難しいページです。多くの人にとって、これがあなたの仕事のすべてだからです。優れたコンサルティング会社では、ここに多大な労力を注ぎます。私たちは、エージェントが本当に質の高いサマリーを書けるところまで改善を重ねてきました。自社のレポートでも、詳細に入る前に全体像をつかむため、まずサマリーを読むことがよくあります。
まだ精度が足りないのは、リスクの採点です。エージェントは私より高く評価する傾向があります。一つには、評価を引き下げる材料になる対話を依頼者と交わせないため、もう一つには、サイバーセキュリティの話題になるとLLMが慎重側に傾くためです。
誤るにしても望ましい方向ではありますが、実際より深刻に見える形で問題が指摘されることになります。この点は現在改善に取り組んでいます。
修復ガイダンスは、エージェントが優れている領域です。ペンテストで長い一週間を過ごした後は、人間はつい一般的な助言を書いてしまいがちで、はっと気づいてもっと良いものを書こうとします。しかし、時間の制約に加え、多くの場合ソースコードを持っていないことが足かせになります。
エージェントにはどちらの問題もありません。変更すべきコードの行と、何に変更すべきかを、すべての問題について示します。問題の影響を軽減できる緩和策や、一時的な対処法についても記載します。
これにより、実際に問題が修正されるまでの速さが上がっていることが分かってきました。78件の問題を抱えていた顧客が、数日のうちにすべて修正した例もあります。人間のペンテスターとして、そんな事態は一度も見たことがありません。それらの修正を可能にしたレベルの詳細さは、私が確保できた時間では書けなかったでしょう。
では、AIペンテストは人間と同等なのか
AIペンテストと人間によるペンテストは別物です。優劣をつけようとするのをやめれば、比較ははるかに有意義になります。
エージェントは、人間のテスターがすでに何度も調べたアプリケーションから、深刻な問題を見つけ出しています。コードベース全体を読み、あらゆる経路をたどり、見つけたすべての事例を、コード行単位の修正案とともにまとめ上げます。
しかも、好きなときに実行できます。人間による1回の診断にかかる費用で、AIペンテストを4回実施できます。つまり、深いテストを年1回ではなく、定期的に行えるということです。
これは人間によるペンテストが見落としがちな重要な点です。ペンテストとペンテストの間に、アプリケーションには未テストの変更が数多く加えられていることも少なくありません。
IntruderのAIペンテスターがあなたのアプリケーションで何を見つけるか、ぜひお確かめください。詳細はこちら。
著者
執筆:Daniel Thatcher(Intruder セキュリティリサーチエンジニア)
Danielは、ペネトレーションテストの経歴を持つIntruderのセキュリティ研究者で、ブラックボックス環境でのWebアプリケーションの悪用を専門としています。
翻訳元: https://www.bleepingcomputer.com/news/security/is-ai-pentesting-as-good-as-a-human-pentester/