メニュー

Star on GitHub · 3.2k

エージェント型ペンテスト

AI エージェントがテスターの席に座ります。人間のように標的上で計画し、探り、適応し、検証済みの短い発見リストを人に手渡します。それが実際に何を意味し、どう動き、ループのどこで人がなお必要かを示します。

何であるか

エージェントとは、固定スクリプトを実行するのではなく、目標に向けて推論するプログラムです。標的と目的——「ここで攻撃者が実際に到達できるものを見つける」——を与えると、すでに見たものに基づいて次に試すことを決めます。攻撃面を地図化し、仮説を立て、検証し、応答を読み、修正し、進む。エージェント型ペンテストとは、このループを攻撃的セキュリティに向けたものです。

スクリプトではなく推論する:固定の一式ではなく、目標に向けて推論する

それは今日使われている二つの手段の間に位置します。スキャナは固定の検査群を走らせ、シグネチャに一致するものをすべて報告します——速いが文脈に盲目で、誤検知で騒がしい。人間のペンテスターは個々のアプリとその業務ロジックを推論します——遅く、高価で、一週間のスナップショットです。エージェントは、スキャナに近い到達範囲でペンテスターの推論を目指し、判断を要する決定は人に委ねます。

攻撃的セキュリティが停滞した理由

セキュリティの大半は近代化しました——継続的インテグレーション、クラウド、自動化された防御。攻撃的セキュリティは概ねそうではありません。いまだ主に人手のサービスとして提供され、消えなかった三つの問題を抱えています。

  • 時点的。ペンテストはテストした週のアプリを描くにすぎません。次のデプロイで報告書は無効になり得ます。
  • スケールしにくい。優れたテスターは希少で高価なので、深さは配給されます。多くの案件はジュニアや外注に頼り、品質より発見数を最適化します。
  • セキュリティより準拠。テストはしばしば、システムを本気で破る試みではなく、監査のためのチェック欄になります。

これまでの自動化の限界

自動化ツールは、標的が似通うインフラではこの差を一部埋めました。Web アプリでは一貫して及びません。理由はラストマイル問題です。アプリはどれも異なります。重要な欠陥——壊れたアクセス制御、業務ロジックの不備、連鎖した脆弱性——は、ある特定のエンドポイントが何のためにあるかの理解に依存し、それはシグネチャに符号化できません。

これは旧 DAST カテゴリがぶつかったのと同じ壁です。パターンを指摘はできても、それがここで重要かを推論することも、次に何をすべきかも示せませんでした。だからチームは人手のテストに払い続けました——ツールが走らないからではなく、考えなかったからです。

エージェントが変えること

言語モデルは欠けていた部分を実用にしました。アプリの文脈を保持し、それに合わせてテストを適応させる系です。慎重に使えば、これまで相反していた三つを、同時に持てる性質へ変えます。

  • 年次ではなく継続的。変更ごとにテストを走らせられるので、結果は先四半期の版を描くのではなくアプリに追随します。
  • シグネチャ照合ではなく文脈認識。エージェントはアプリの実際の振る舞いから出発します。どんなオブジェクトがあり、どの役割が到達し、ある呼び出しが何のためかを踏まえます。
  • バックログではなく短い検証済みリスト。出力は、再現手順付きの、本当に悪用可能なひと握りの問題であるべきです——未整理の「潜在的」発見が何千も、ではなく。

どう動くか

これを信頼できるものにするのは、まさにモデルに自由に即興させないことです。CyberStrike では、エージェントは決定的エンジンの上で推論し、エンジンがモデルの不得手な仕事を担います。あらゆるリクエストと応答を取り込み、数百のルールを走らせ、どの役割がどのオブジェクトと機能に到達したかの身元横断マップを作り、注入点を探り、厳格な安全制限の下でリクエストを再送します。このエンジンが地上の真実を生みます。

エージェントの仕事は、何を追うか——どの手がかりが悪用可能に見えるか、次にどの連鎖を試すか——を決め、理由を語ることです。証拠はモデルの想像ではなくエンジンから来るので、発見は人が再送できる実トラフィックに裏打ちされます。判断はエージェントのもの、事実は決定的です。

エージェントがまだできないこと

ここでは熱意より誠実さが重要です。技術は完成していません。そうでないと言う者は何かを売っています。

  • モデルは幻覚を起こす。言語モデルは、存在しない脆弱性を主張することがあります。だからこそ発見は再現可能な証拠に結び付けねばならず、自信ある書きぶりは本物のバグと同じではありません。
  • 出力は決定的でない。同じプロンプトを二度走らせれば別の経路になり得ます。再現性はエンジンと記録されたトラフィックから来るべきで、モデルが自分に同意することからではありません。
  • 安全と認可は人の判断。範囲、交戦規則、そして「このリクエストを本番に送って安全か」は、自律プロセスに委ねるものではありません。
エージェントが探り、人が決める:human-on-the-loop であり、完全自律ではない

ゆえに現実的なモデルは human-on-the-loop です。エージェントが広さと地道な作業を担い、人が発見を検証し、リスクある決定を引き受け、報告書に責任を負います。完全自律ではなく、この組み合わせこそ今日提供できるものです。

どこに収まるか

エージェント型ペンテストは、人間のテスターも監査の承認も退けません。人が時間を費やす先を変えます。四半期ごとに同じ面を再発見することは減り、本物の発見を検証し、責任を要する決定を下すことが増えます。テストは継続的になり、人はクローラーではなくレビュアーになります。

主張はこれで全部で、あえて控えめです。攻撃的セキュリティは常に、実際のリスクを理解する最も直接的な手段でした。ただ遅く希少すぎて、どこでも使えなかっただけです。その差を縮めつつ、なお人を要する部分を明言すること——それがこの技術の有用な姿です。

CyberStrike は AI 拡張のペネトレーションテスト・プラットフォームで、現在アーリーアクセス中です。背後のエージェントとエンジンをご覧になりますか? プラットフォームを見るか、ウェイトリストに参加してください。

動作の仕組みをもっと詳しく?