Skip to main content
Corgea AI Pentestは、稼働中のウェブアプリケーションに対して自律的なペネトレーションテストを実行します。SASTがソースコードを解析するのに対し、ペンテストは攻撃者と同じ手口で、実際にデプロイされたアプリケーションを攻撃します。攻撃対象領域を洗い出し、複数の弱点をつなぎ合わせ、動作する攻撃コードで各検出結果を実証します。 各実行では、再現可能な概念実証を伴う検出結果と、顧客や監査人、社内の開発チームにそのまま渡せる共有用のPDFレポートが生成されます。
ペンテストはベータ版で、アドオンとして提供しています。サイドバーにPentestsが表示されない場合は、Corgeaの管理者またはsales@corgea.comまでお問い合わせください。

ペンテストの仕組み

各実行は、同じ3つの段階で進みます。
1

偵察

エージェントがターゲットの攻撃対象領域を洗い出します。エンドポイント、認証フロー、パラメータに加え、どこからもリンクされていない経路までを対象とします。
2

攻撃

担当領域ごとに特化したエージェントが、並行してターゲットを攻撃します。パターン照合ではなく実際の攻撃を試み、領域をまたいで弱点をつなぎ合わせ、より影響の大きい結果に到達させます。
3

レポート

確認された検出結果は、説明、ビジネスへの影響、攻撃の連鎖、攻撃スクリプト、修復のガイダンスとしてまとめられ、ダウンロードできるレポートに集約されます。
すべての実行で、次のエージェントを使用します。 Deepの実行では、これらの領域を越えて調査し、複数の段階にわたる攻撃の連鎖を組み立てるレッドチームエージェントが追加されます。
Corgeaは、エージェントが稼働中のアプリケーションで実証できた検出結果だけを報告します。レポートに掲載された検出結果は、疑いの段階ではなく、実際に再現されたものです。

開始する前に

ペンテストは、自組織が所有しているアプリケーション、またはテストの許可を明確に得ているアプリケーションに対してのみ実行してください。ペンテストは実際の攻撃通信を送信するため、データの作成、変更、削除が発生する可能性があります。本番環境をテストするリスクを受け入れている場合を除き、ステージング環境かテスト専用の環境を対象にしてください。
ターゲットのURLは、httpまたはhttpsでインターネットから到達できる必要があります。Corgeaは、次に該当するターゲットを受け付けません。
  • httpまたはhttps以外のスキームを使用している
  • https://user:pass@example.comのように、URLに認証情報を直接埋め込んでいる
  • localhost、プライベートネットワークの範囲、クラウドのメタデータアドレスに解決される
アプリケーションがインターネットから到達できない場合は、テスト用のインスタンスを公開するか、対応方法についてお問い合わせください。

ターゲット

ターゲットは再利用できる設定です。攻撃先、使用する認証情報、常時適用する指示をまとめて保持します。各実行はターゲットに対して行われるため、一度設定しておけば、リリースのたびに再実行できます。
Pentestingページのターゲットタブ。設定済みのターゲットが一覧表示され、それぞれのURL、最終実行日時、作成者に加えて、右上にStandardとDeepの残り利用枠が表示されています
ヘッダーには、スキャンモードごとのペンテストの残り利用枠が表示されます。Pentest runsタブには、すべてのターゲットの実行が一覧表示され、検索やステータスによる絞り込みができます。

ターゲットを作成する

1

Pentestsを開く

サイドバーからPentestsを選択し、New targetをクリックします。
2

ターゲット名とURLを入力する

Acme Public APIのように、チームが判別できる名前を付けます。URLには、エージェントが起点とするアプリケーションのルートを指定します。
3

認証済みでテストする場合は認証情報を追加する

認証情報はエージェントに渡す自由記述のテキストで、人がログインするときに必要な情報をそのまま記載します。demo@example.com / hunter2のように1行書くだけで十分です。認証情報がない場合、エージェントは匿名の外部攻撃者としてアプリケーションをテストします。
4

必要に応じて指示を追加する

Additional instructionsには、実施ルール、対象外とする範囲、エージェントに重点的に確認させたいエンドポイントを記載します。
5

デフォルトのスキャンモードを選ぶ

BalancedまたはDeepを選択します。実行ごとに変更もできます。
New targetダイアログ。Target name、Target URL、任意のCredentials、任意のAdditional instructions、Default scan modeの選択欄が表示されています
認証情報は保存時に暗号化され、そのターゲットに対する実行中にのみ復号されます。

編集とアーカイブ

ターゲットの操作メニューから、実行の開始、編集、アーカイブを行えます。 編集内容が反映されるのは今後の実行のみです。各実行は開始時点のターゲット設定を保持するため、過去の実行とその検出結果には、常に当時の設定が反映されます。URLの変更や認証情報の更新によって、過去の実行の報告内容が書き換わることはありません。 ターゲットの編集時に認証情報の欄を空のままにすると、保存済みの認証情報は変更されません。完全に削除するには、Clear stored credentialsを選択します。 アーカイブすると、ターゲットは一覧から非表示になりますが、過去の実行はすべて引き続き確認できます。

実行を開始する

ターゲットの操作メニューからStart new runを選択します。
認証と認可、ビジネスロジック、インジェクションを対象に、短時間で評価します。定期的に実施する通常のテストに適しています。
Instruction overrideは、その実行に限りターゲットの常時指示を置き換えます。空のままにすると、ターゲットに設定済みの指示がそのまま使われます。ターゲットの設定を恒久的に狭めることなく、リリースしたばかりの機能に1回の実行を集中させたい場合に便利です。 BalancedとDeepの実行は、それぞれ別の利用枠を消費します。スキャンモードの選択欄には各モードの残数が表示され、残りがないモードは選択できません。利用枠を追加するには、sales@corgea.comまでお問い合わせください。

実行状況の確認

実行には、スキャンモードとアプリケーションの規模に応じて数時間かかります。ページを開いたままにする必要はありません。検出結果は確認され次第保存され、実行の完了時には管理者にメールを送信できます。 実行中は、実行ページが自動で更新されます。エージェントが実証した検出結果は順次表示されるため、実行の完了を待たずに重大な問題のトリアージを始められます。 エージェントの動作を確認するには、Logsをクリックします。
Corgea Pentest Agentsの画面。並行して動作するエージェントがツリー表示され、ツール呼び出しと検出結果の累計件数、選択中のエージェントの現在のタスクと最新の活動を示すサイドパネルが表示されています
ツリーには、各エージェントと作業中の内容、確認した検出結果の件数が表示されます。エージェントを選択すると、現在のタスクと最新の活動を確認できます。エージェントは処理を進めながら子エージェントを起動します。追跡する価値のある対象を見つけると、自身の攻撃を中断せずに、対象を絞った追加調査を委任します。

検出結果の確認

実行が完了すると、実行ページに検出内容の概要が表示されます。
完了したペンテストの実行画面。合計76件の検出結果がAuth and AuthZ、Business Logic、Injectionのカテゴリカードに重大度別の件数とともに分類され、その下にCWEごとにまとめた検出結果の一覧が表示されています
上部に並ぶカードは、CWEに基づいて検出結果をカテゴリ別に分類します。カードをクリックすると、下の一覧を絞り込めます。
  • All findings:その実行で確認したすべての検出結果を、重大度別の件数とともに表示します
  • Auth & AuthZ:アクセス制御の不備、認証、セッションに関する問題
  • Business Logic:処理フローと取引の整合性に関する問題
  • Injection:インジェクション、トラバーサル、信頼できない入力に関する問題
  • Validated SAST:近日提供予定です。確認済みのSAST検出結果と、実行時の悪用可能性を突き合わせます
これらのカテゴリに当てはまらないCWEの検出結果も、All findingsには表示されます。

絞り込みとグループ化

検出結果の一覧の上部にあるツールバーでは、次の操作ができます。
  • ステータスの絞り込み:Open、Fixed、Closed、False Positiveを、それぞれ最新の件数とともに表示します。MoreからAccepted Risk、Duplicate、全ステータスを追加できます
  • 検索:タイトル、CWE、エンドポイントを対象に検索します
  • 重大度:Critical、High、Medium、Low、Infoで絞り込みます
  • CWE / Endpointの切り替え:検出結果を弱点の種類別、または影響を受けるエンドポイント別にグループ化します
CWEでグループ化すると、このアプリケーションにどの種類の欠陥があるかがわかります。エンドポイントでグループ化すると、アプリケーションのどの部分が最も危険かがわかり、修復作業を割り当てるときはこちらが役立つことが多いです。

検出結果の詳細

検出結果を開くと、5つのタブに分かれた詳細な内容を確認できます。

Finding Detailsタブ

説明、ビジネスへの影響、影響を受ける役割とユーザー、技術的な原因分析を確認できます。サイドバーには、CWEの識別子、重大度、CVSSスコア、ターゲット、エンドポイント、これまでの実行で再検出された回数が表示されます。
アカウント乗っ取りに関するCriticalの検出結果のFinding Detailsタブ。説明、影響、影響を受ける役割が表示され、サイドバーにCWE-639、重大度Critical、CVSSスコア9.4、対象のターゲットとエンドポイントが並んでいます

Attack Chainタブ

エージェントが実際にたどった手順が、番号付きで表示されます。各手順には送信したリクエストとアプリケーションの応答が記載されるため、開発者は推測せずに攻撃の経路を追えます。
Attack Chainタブ。被害者アカウントの登録から乗っ取りの完了確認まで、アカウント乗っ取りを再現する4つの手順が順番に表示されています

Exploit Scriptタブ

検出結果を再現できる、実行可能なスクリプトです。ターゲットに対して実行すれば問題を自分で確認でき、修正後にもう一度実行すれば修正が有効かを確認できます。
Exploit Scriptタブ。対象のアプリケーションで検出結果を再現するPythonスクリプトが表示されています
攻撃スクリプトは実際に攻撃を行います。テストの許可を得ているシステムに対してのみ実行し、データの作成や変更が発生する前提で扱ってください。

Remediationタブ

その検出結果に対する具体的な修復手順と、関連する標準やガイダンスへの参照が表示されます。
Remediationタブ。4つの修復手順が順番に表示され、OWASPのガイダンスへのリンクを含む参考情報の欄があります

Historyタブ

すべての実行にまたがる、その検出結果の時系列です。最初に検出された時期、再検出された時期、ステータスの変更やコメントの履歴を、実施した担当者とあわせて確認できます。 Corgeaは、実行をまたいで同一の問題を認識します。後のペンテストで同じ検出結果が再び現れた場合、新規として登録せず元の検出結果に紐付けるため、履歴は一連の流れとして残ります。

検出結果のトリアージ

検出結果のCurrent Statusで、判断を記録します。設定できるステータスは次のとおりです。 ステータスの変更は、同じ問題のすべての検出に適用されます。一度トリアージすれば、開いていた行だけでなく履歴全体が更新されます。チームに共有する背景情報を、コメントとして残すこともできます。
Closedはステータスとして表示されますが、手動では設定できません。再検証の実行で検出結果を再現できなくなった時点で、Corgeaが自動的に適用します。

レポートをエクスポートする

実行が完了すると、Export reportから2種類のPDFを出力できます。

Technical report

技術分析、概念実証、攻撃コード、各検出結果の修復ガイダンスを含む、完全な評価結果です。社内の開発チーム向けです。

Executive report

同じ評価結果と検出結果から、技術的な詳細、概念実証、修復の詳細を除いたものです。顧客、監査人、経営層向けです。
どちらのレポートにも、次の内容が含まれます。
  • 秘密保持に関する記載と目次
  • 経営層向けの要約と、検出結果のダッシュボード
  • 実施範囲と手法。実行したエージェントと各エージェントの対象範囲、対象外とした内容の明示を含みます
  • 重大度の定義と、段階ごとの推奨対応
  • すべての検出結果の一覧表
  • 重大度別にまとめた検出結果の詳細
レポートは、SOC 2やISO 27001の監査で用いるペネトレーションテストの証跡として活用でき、顧客や監査人にそのまま共有できます。特定の要件を満たすかどうかは、監査の範囲、選択した管理策、監査人の判断によって異なります。

修正後の再検証

修正をリリースしたら、アプリケーション全体に対するペンテストを消費せずに再テストできます。完了した実行でNew runメニューを開き、Revalidate Findingsを選択します。 再検証の実行では、元の実行で得られた検出結果だけを再テストし、次の結果を報告します。
  • Still open:再び再現できた検出結果
  • Closed by this run:再現できなくなった検出結果。自動的にClosedへ変更されます
1

検出結果を修正する

修復手順に沿って対応し、完了したものから検出結果をFixedにします。
2

再検証する

完了した実行でNew run、続いてRevalidate Findingsを選択します。
3

結果を確認する

再現できなくなった検出結果はClosedに変わります。まだ再現できるものは、新しい証跡とともに未解決のまま残ります。
再検証には、OpenまたはFixedの検出結果が1件以上ある、完了済みの実行が必要です。再検証の実行そのものを再検証することはできません。元の実行から、改めて再検証を実行してください。
監査人や顧客に修復を証明する最短の方法が再検証です。問題を検出したものと同じテストで、その問題を再現できなくなったことを示せます。

通知

会社の管理者は、実行の完了時にAI Pentest Completedメールを受け取れます。メールには、ターゲット、スキャンモード、検出結果の合計件数、重大度別の内訳が含まれます。これは管理者ごとのメール設定のため、受け取りたくない管理者は、他の管理者に影響を与えずに無効にできます。 Corgeaは完了時にWebhookも送信します。結果をSlackに投稿する、チケットを作成する、リリースの手順を制御するといった用途に利用できます。設定方法とペイロードの詳細はWebhookを参照してください。 再検証の実行では、完了通知は送信されません。

よくある質問

スキャンモードと、アプリケーションの規模や複雑さによりますが、数時間です。DeepはBalancedよりも時間がかかります。実行を見守る必要はありません。検出結果は確認され次第保存され、完了時には管理者にメールを送信できます。
テストできます。ターゲットに認証情報を追加すると、エージェントはログイン済みのユーザーとして、認証が必要な領域をテストします。実行には未認証でのテストも含まれるため、外部の攻撃者とログイン済みユーザーの両方の視点で確認できます。
エージェントは実際に攻撃を行うため、データの作成、変更、削除が発生する可能性があります。サービス拒否攻撃や大量の負荷をかけるテストは明確に対象外ですが、日常的な実行にはステージング環境かテスト専用の環境をお使いください。
ターゲットはhttpまたはhttpsを使用し、URLに認証情報を埋め込まず、localhost、プライベートネットワークの範囲、クラウドのメタデータアドレスに解決されない必要があります。代わりに、到達できるテスト用のインスタンスを公開してください。
そのモードの利用枠が残っていないためです。BalancedとDeepは別々に管理され、残数はページのヘッダーとスキャンモードの選択欄に表示されます。利用枠の追加はsales@corgea.comまでお問い合わせください。
実行のステータスに理由が表示されます。多い原因は、実行の途中でターゲットに到達できなくなった場合と、認証情報が使えなくなった場合です。ターゲットが稼働していることと、認証情報が最新であることを確認してから、新しい実行を開始してください。
必ずしも問題ではありません。対象範囲内で悪用できる問題を実証できなかった、ということです。検出結果を想定していた場合は、認証が必要な領域に到達できるよう認証情報が正しいかを確認し、対象範囲を広げるためにDeepでの実行を検討してください。
SASTはソースコードを解析し、デプロイ前に問題を検出します。ペンテストは稼働中のアプリケーションを攻撃し、実際のデプロイ構成で何が悪用できるかを実証します。検出できる内容が異なるため、Corgeaではそれぞれの検出結果を別々に管理します。

関連情報

BLAST

デプロイ前にソースコードの脆弱性を検出する、AIネイティブのSASTです。

Webhook

ペンテストの完了イベントを自社のシステムで受け取ります。

レポート

組織全体のセキュリティ状況の推移を追跡します。

ポリシー

問題の優先順位付けと対応方法を定義します。