グレーボックス診断
概要
Takumi グレーボックス診断機能は、アプリケーションのソースコードと、そのソースコードが稼働しているアプリケーションのURLの両方を受け取る診断機能です。ソースコードの解析によって脆弱性の候補を洗い出し、稼働中のアプリケーションに対して実際に攻撃を行って再現の可否を確認し、その結 果を Web 上でレポートとして出力します。
Shisho Cloud byGMO の Web 画面から利用できます。
動的検証で再現が確認できたものだけが指摘事項として報告されます。静的解析が指摘した脆弱性の候補のうち再現が確認できなかったものは、レポート内の別のセクションに記録されるため、再現が確認できた脆弱性と確認できなかった脆弱性を区別して読むことができます。詳細は レポートの読み方 をご覧ください。
組織または診断対象の所有権証明
グレーボックス診断は稼働中のアプリケーションに対してリクエストを送信するため、診断を開始する前に、組織認証あるいは診断対象の所有権証明が必要になります。詳細は「診断前の組織認証あるいは所有権証明」を参照ください。
診断の開始方法
サイドバーの「診断」をクリックすると表示される画面において、画面右上の「診断を作成」ボタンを押すと診断が開始できます。

基本設定
設定画面の主な項目は以下のとおりです。
- 「診断名」:この診断を識別するための名前を入力する
- 「レポート言語」:診断レポートの言語を選択する(英語または日本語)
- 「診断手法」:「グレーボックス診断」を選択する
診断タイプ
診断開始時に、以下の 2 つのモードから選択できます。
- 「全体を診断」モード:対象ソースコードの機能列挙・初回スキャンを一気通貫で実行し、完了後に「診断再開待ち」状態で停止する。以降の手順は 診断結果の確認と追加スキャン を確認する
- 「一部だけ診断」モード:最初に診断対象のコードベースから「機能」を列挙し、完了すると列挙された機能が表示される。表示された機能から診断対象や診断の優先度を決定して、診断を開始する
クレジット上限
クレジット上限は、機能列挙およびスキャンのそれぞれについて設定することが可能です(「一部だけ診断」モードの場合は機能列挙のみ)。Takumi は指定されたクレジット上限の範囲内で機能列挙およびスキャンを実施します。
スキャンのクレジット上限は最小 40 クレジットであり、ホワイトボックス診断よりも大きい値が必要です。グレーボックス診断では、この上限を静的解析と、その後に続く動的検証との間で分け合うためです。
ソースコード設定
以下のいずれかの方法でソースコードを提供できます。
GitHub リポジトリ
GitHub リポジトリを1つ以上指定できます。「リポジトリを追加」ボタンから診断対象のリポジトリを追加します。
対象リポジトリのブランチを指定することができます。指定しない場合は、リポジトリのデフォルトブランチが診断対象となります。
ファイルアップロード
ソースコードのアーカイブファイルを直接アップロードできます。GitHub 連携が利用できない場合や、ローカルのコードベースを診断する場合に便利です。
- 対応フォーマット:
.zipまたは.tar.gz - 「ファイルをアップロード」ボタンからアーカイブを選択してアップロードする
- 展開後のルートディレクトリが表示され、後述のファイルスコープの指定で使用される
ファイルスコープ
診断対象に含めるファイルパスと除外するファイルパスを指定できます。すべてのファイルパスには glob パターン(例:src/auth/**、backend/services/**)を使用できます。スコープを空にした場合、コードベース全体が診断対象となります。
診断範囲
- 「対象」:対象となるリポジトリまたはアップロードしたファイルを選択する
- 「機能タイプ」(オプション):機能のカテゴリを指定する(例:
authentication、payments、api) - 「ファイルパス」:診断対象に含めるファイルパスを指定する
診断対象として指定された場合でも、Takumi の判断によりファイルパスが除外される場合があります。
除外設定
- 「対象」:対象となるリポジトリまたはアップロードしたファイルを選択する
- 「理由」(オプション):除外する理由を記録する(例:「テストコード」「自動生成ファイル」)
- 「ファイルパス」:除外するファイルパスを指定する
アプリケーション設定
動的検証の対象となる、稼働中のアプリケーションに関する設定です。
- 「対象URL」:診断対象に指定したソースコードが稼働しているアプリケーションの URL を入力する。1つのソースコードが複数のオリジンで稼働している場合(例:Web フロントエンドとその API が別ホストで動作している場合)は、複数指定できる
- 「スコープ外URL」:動的検証において検証対象から除外する URL を指定する
- 「アプリケーション内の認証」:アプリケーションにログインするための認証情報を設定する。ID とパスワードを入力するほか、「その他」を選択して認証手順を自由記述で説明することもできる。「アカウント種別」(例:管理者、一般ユーザー)には、その認証情報がどの権限を持つものかを記入する
スコープ外 URL は、動的検証が何を検証対象として扱うかを判定するために使われます。そのため、スコープ外の URL であっても、診断の過程で Takumi が実際にアクセスすること自体はあり得ます。この設定は、こうしたアクセスを完全に遮断するものではない点にご注意ください。