ブラックボックス診断
概要
Takumi ブラックボックス診断機能は、アプリケーションのURL・認証情報を受け取り、当該アプリケーションを擬似的に攻撃し、診断結果を Web 上でレポートとして出力する機能です。
Shisho Cloud byGMO の Web 画面から利用できます。
組織または診断対象の所有権証明
診断を開始する前に、組織認証あるいはブラックボックス診断対象の所有権証明が必要になります。詳細は「診断前の組織認証あるいは所有権証明」を参照ください。
診断の開始方法
サイドバーの「診断」をクリックすると表示される画面において、画面右上の「診断を作成」ボタンを押すと診断が開始できます。

既存の診断の設定を引き継ぐ
過去の診断と同じ設定で新しい診断を実行したい場合は、設定を最初から入力し直す代わりに、既存の診断の設定(診断名・対象 URL・認証情報など)を引き継いで作成することが可能です。以下の手順で操作してください。
- 診断一覧画面の右上にある「診断を作成」ボタンを押す
- 表示されるダイアログで「既存の診断から作成」を選択する
- 一覧から設定を引き継ぎたい診断を選択する
選択した診断の設定があらかじめ入力された状態で作成画面が開きます。内容を確認・調整してから診断を開始してください。
本機能は、実行に失敗した診断について、同じ設定のもとで診断をやり直す場合にもご利用いただけます。
基本設定
設定画面の主な項目は以下のとおりです。
- 「診断名」:この診断を識別するための名前を入力する
- 「レポート言語」:診断レポートの言語を選択する(英語または日本語)
- 「診断手法」:「ブラックボックス診断」を選択する
診断対象の種類
「診断対象の種類」では、診断対象のアプリケーションの形態を以下の 2 つから選択できます。
- 「Webアプリケーション」:Web ブラウザを用いて操作するアプリケーション
- 「API」:画面を持たない API
「API」を選択した場合は、Web ブラウザによるクロールの代わりに、添付されたスキーマファイルをもとに診断対象のエンドポイントを洗い出します。設定項目の違いについては API 診断 を参照してください。
診断タイプ
診断開始時に、以下の 2 つのモードから選択できます。
- 「全体を診断」モード:対象アプリケーションのクローリング・初回スキャンを一気通貫で実行し、完了後に「診断再開待ち」状態で停止する。以降の手順 は 診断結果の確認と追加スキャン を確認する
- 「一部だけ診断」モード:クローリング終了時点で Takumi が停止する。その後、診断したい機能・観点の優先度とスキャンに対するクレジット上限を設定してから、診断を再開する。診断範囲を細かくコントロールしたい場合におすすめ
クレジット上限
クレジット上限は、クロールおよび診断のそれぞれについて設定することが可能です(「一部だけ診断」モードの場合はクロールのみ)。Takumi は指定されたクレジット上限の範囲内でクロールおよび診断を実施します。
Web アプリケーション設定
Web アプリケーション関連の項目は以下のとおりです。
- 「クロールを開始する URL」:クロールの起点となるアプリケーションの URL を入力する
- 「認証情報」:アプリケーションにログインするための認証情報を設定する
- 「スコープ内 URL」「スコープ外 URL」:クロールの対象範囲を絞り込んだり除外したりする(詳細は スコープ設定 を参照)
Takumi は診断中に新たなアカウントを作成せず、事前に設定された認証情報のみを使用してログインします。対応している認証方式は以下のとおりです。
- ID / パスワードによる認証
- 事前に共有されるシークレットコードを活用した TOTP(時間ベースのワンタイムパスワード)認証
SMS やメールへのコード送信など、アウトオブバンド通信が必要な認証方式には現在対応しておりません。
スコープ設定
Takumi は入力された URL を起点にクロールし、既定ではそれらの URL のドメイン全体をスコープとして扱います。アプリケーションの一部だけを診断したい場合は、以下の 2 つの任意設定でクロール対象を絞り込んだり除外したりできます。
スコープ内 URL は、クロール結果に含める範囲を絞り込むための設定です。指定した URL の形式によって、範囲の限定のされ方が異なります。
- パス付きの URL(例:
https://app.example/admin):そのパス以下に限定する - パスなしの URL(例:
https://app.example):そのホストのみに限定する - 未指定:クロールを開始する URL のドメイン全体を対象とする
スコープ外 URL は、クロール結果から除外する URL を指定するための設定です。スコープ内 URL と同様に、指定した URL の形式によって除外される範囲が異なります。
- パス付きの URL(例:
https://app.example/admin/logout):そのパス以下を除外する - パスなしの URL(例:
https://app.example):そのホスト全体を除外する
なお、スコープ外 URL はスコープ内 URL よりも常に優先されます。クロールを開始する URL やスコープ内 URL で範囲に含まれていても、スコープ外 URL に一致する URL はクロール結果から除外されます。
スコープ設定は、クロールで発見した URL を診断対象(クロール結果)に含めるかどうかを判定するために使われます。そのため、スコープ外の URL やクロール結果に含まれていない URL であっても、クロールや診断の過程で Takumi が実際にアクセスすること自体はあり得ます。スコープ設定は、こうしたアクセスを完全に遮断するものではない点にご注意ください。
API 診断
「診断対象の種類」で「API」を選択すると、画面を持たない API を診断で きます。Takumi は Web ブラウザによるクロールを行わず、添付されたスキーマファイルをもとに診断対象のエンドポイントを洗い出します。エンドポイントの洗い出し以降の診断の流れは、Web アプリケーションの場合と同様です。
設定項目は、Web アプリケーションの場合と以下の点で異なります。
- 「APIのルートURL」:診断対象の API のルート URL を 1 つだけ入力する
- 「APIのスキーマファイル」:API の仕様を定義したスキーマファイル(OpenAPI Spec、GraphQL スキーマなど)を 1 件以上添付する
- 「認証情報」:API に認証が存在する場合、ID / パスワード等と合わせて、詳細な認証の手順(トークンの取得方法や設定するヘッダーなど)を「認証手順」欄に記載する
API 診断では、追加クロールは利用できません。診断対象のエンドポイントを追加したい場合は、クロール結果の手動編集を利用してください。
クロール結果の確認
優先度とクレジット上限の設定
「一部だけ診断」モードを選択した場合、クロール完了後に診断が一時停止します。対象の診断のページを開くと、検出された機能と診断観点の一覧がマトリクス形式で表示されます。
この画面において、スキャンに使用するクレジットの上限値と診断の優先度を設定することで、診断を開始することができます。

機能と観点の組み合わせごとに「おまかせ・高・中・低・なし」の優先度を設定でき、優先度の高いものから順に診断されます。「おまかせ」を選択した場合は、Takumi がリスク分析に基づいて優先度を自動的に決定します。
優先度とクレジット上限を設定したら、「診断を開始」ボタンをクリックして診断を開始します。
追加クロール
「クロール済」状態の診断では、メニューから「追加クロール」を選択することで、追加のクローリングを実行できます。 初回のクローリングで検出されなかったエンドポイントを発見したい場合に有用です。
追加クロールでは、以下の設定が可能です。
- クレ ジット上限: 追加クロールで消費するクレジットの上限値
- 追加クロールの指示: クロール対象を絞り込むための自由記述の指示(例: 特定のAPIパスに注目してクロールする等)
追加クロールが完了すると、マトリクスに新たに検出されたエンドポイントが追加されます。
追加クロールを実行しても、必ずしも新しいエンドポイントが検出されるとは限りません。新しいエンドポイントが見つからなかった場合でも、クレジットは消費されます。
クロール結果の手動編集
「クロール済」状態の診断のページにアクセスし、診断優先度を設定するマトリクスの左下に表示される「クロール結果を編集」ボタンを押すことで、クロール結果を手動で編集する機能を利用することができます。
当該ページでは、以下の操作が可能です。
- 検出された機能にエンドポイントを追加する
- 検出された機能に含まれるエンドポイントを削除する
- 新たに機能、および、その機能に含まれるエンドポイントを追加する

診断結果の確認と追加スキャン
スキャン中にクレジット上限に達するか、選択したすべての組み合わせの診断が完了すると、診断は「診断再開待ち」状態で停止します。
「診断再開待ち」状態の診断を開くと、マトリクス画面が再度表示されます。各セルの状態は以下のように表示されます。
| 状態 | 説明 |
|---|---|
| 診断済み | 診断が完了した組み合わせに表示されます |
| スキップ | 診断の必要がないと判定されたためスキップされた組み合わせに表示されます |
| 優先度メニュー | まだ診断が完了していない組み合わせに表示されます |

この画面から、以下の操作が可能です。
- 中間レポートのプレビュー:「レポートをプレビュー」をクリックすると、現時点のレポートを別タブで確認できる。診断を継続するか完了するかの判断材料に使える
- 追加スキャンの実行:クレジット上限および未診断の組み合わせに対する優先度を設定し、「診断を開始」をクリックして追加のスキャンを実行する