ホワイトボックス診断(都度)
概要
Takumi ホワイトボックス診断機能は、GitHub リポジトリ連携またはファイルアップロードでソースコードを受け取り、Takumi が診断を行い、結果を Web 上でレポートとして出力する機能です。
Shisho Cloud byGMO の Web 画面から利用できます。ホワイトボックス診断(定期)とは異なり、Slack 連携は不要です。
診断の開始方法
サイドバーの「診断」をクリックすると表示される画面において、画面右上の「診断を作成」ボタンを押すと診断が開始できます。

基本設定
設定画面の主な項目は以下のとおりです。
- 「診断名」:この診断を識別するための名前を入力する
- 「レポート言語」:診断レポートの言語を選択する(英語または日本語)
- 「診断手法」:「ホワイトボックス診断」を選択する
診断タイプ
診断開始時に、以下の 2 つのモードから選択できます。
- 「全体を診断」モード:対象ソースコードの機能列挙・初回スキャンを一気通貫で実行し、完了後に「診断再開待ち」状態で停止する。以降の手順は 診断結果の確認と追加スキャン を確認する
- 「一部だけ診断」モード:最初に診断対象のコードベースから「機能」を列挙し、完了すると列挙された機能が表示される。表示された機能から診断対象や診断の優先度を決定して、診断を開始する
クレジット上限
クレジット上限は、機能列挙およびスキャンのそれぞれについて設定することが可能です(「一部だけ診断」モードの場合は機能列挙のみ)。Takumi は指定されたクレジット上限の範囲内で機能列挙およびスキャンを実施します。
ソースコード設定
以下のいずれかの方法でソースコードを提供できます。
GitHub リポジトリ
GitHub リポジトリを1つ以上指定できます。「リポジトリを追加」ボタンから診断対象のリポジトリを追加します。
対象リポジトリのブランチを指定することができます。指定しない場合は、リポジトリのデフォルトブランチが診断対象となります。
ファイルアップロード
ソースコ ードのアーカイブファイルを直接アップロードできます。GitHub 連携が利用できない場合や、ローカルのコードベースを診断する場合に便利です。
- 対応フォーマット:
.zipまたは.tar.gz - 「ファイルをアップロード」ボタンからアーカイブを選択してアップロードする
- 展開後のルートディレクトリが表示され、後述のファイルスコープの指定で使用される
ファイルスコープ
診断対象に含めるファイルパスと除外するファイルパスを指定できます。すべてのファイルパスには glob パターン(例:src/auth/**、backend/services/**)を使用できます。スコープを空にした場合、コードベース全体が診断対象となります。
診断範囲
- 「対象」:対象となるリポジトリまたはアップロードしたファイルを選択する
- 「機能タイプ」(オプション):機能のカテゴリを指定する(例:
authentication、payments、api) - 「ファイルパス」:診断対象に含めるファイルパスを指定する
診断対象として指定された場合でも、Takumi の判断によりファイルパスが除外される場合があります。
除外設定
- 「対象」:対象となるリポジトリまたはアップロードしたファイルを選択する
- 「理由」(オプション):除外する理由を記録する(例:「テストコード」「自動生成ファイル」)
- 「ファイルパス」:除外するファイルパスを指定する
機能列挙結果の確認
「一部だけ診断」モードで機能の列挙が完了すると、検出された機能と診断観点の一覧がマトリクス形式で表示されます。この画面において、スキャンに使用するクレジットの上限と各機能・観点ごとの診断優先度を設定することができます。

設定後、「診断を開始」ボタンを押すと、実際にスキャンが開始されます。
診断結果の確認と追加スキャン
スキャン中に指定されたクレジット上限に達するか、すべての組み合わせに対するスキャンが完了すると、診断は「診断再開待ち」の状態で一時停止します。
「診断再開待ち」の診断を開くと、以下のようなページが表示されます。

このページからは、以下の操作が可能です。
- 中間レポートのプレビュー:「レポートをプレビュー」をクリックすると、現時点のレポートを別タブで確認できる。診断を継続するか完了するかの判断材料に使える
- 追加スキャンの実行:クレジット上限および未診断の組み合わせに対する優先度を設定し、「診断を開始」をクリックして追加のスキャンを実行する
- 診断の完了:追加スキャンが不要な場合、「診断を完了する」ボタンをクリックして診断を完了する
診断を完了させる
「診断を完了する」をクリックすると、診断結果のレポートが表示されるページに遷移します。
診断結果を確認する
診断レポートは、以下の画面のように、Web 上で閲覧いただけます。

レポートには、まず、診断結果の概要やサマリーが記載されています。

診断結果の各項目では、どの機能を、どのような観点で診断した結果、どのような深刻度・リスクの脆弱性があったかが説明されています。脆弱性が検出されたファイルパス等も含まれています。

PDF レポートのエクスポート
診断レポートを PDF としてダウンロードできます。診断レポートページの 「PDFレポートを発行」 ボタンから、表紙の言語(英語または日本語)を選んで発行します。発行が完了すると、ログイン中のアカウントに紐づいたメールアドレスに対して、ダウンロードリンクが送付されます。
ダウンロードリンクの有効期限は 15 分ですが、再度ダウンロードボタンをクリックすることで新しいリンクを取得できます。発行した PDF は 30 日後に削除されるため、必要に応じて保存してください。
診断観点
ホワイトボックス診断では、以下の観点からレビューを行います。なお、対象リポジトリの特性に応じて、実際に診断を行う観点や優先度を別途指定することも可能です。
機能単位の診断
- インジェクション
- ファイル操作不備
- XSS
- 認可制御の不備
- ロジックの不備
リポジトリ単位の診断
- 設定不備
- 認証の不備
インジェクションや XSS などの脆弱性は、診断の網羅性を担保するため、Takumi が事前に特定した「各機能ごと」に検査を実行します。一方、設定不備や認証の不備など、機能ごとに分散せず特定の箇所(設定ファイルやミドルウェア層など)に問題が存在することの多い観点は、対象全体に対して一度だけ実行されます。
それぞれの詳細については、後述の「OWASP ASVS 5.0 への準拠」をご覧ください。
ブラックボックス診断との違い
ホワイトボックス診断の観点は、静的解析の特性を最大限に活かすため、ブラックボックス診断とは異なる構成をとっています。
例えばブラックボックス診断では、SSRF やコマンドインジェクションなどをそれぞれ異なるリクエストやペイロードで検査するため、観点を細分化することに意味があります。一方、ソースコードを直接解析するホワイトボックス診断では、これらを「外部入力から危険な処理への到達(taint tracking)」という共通のメカニズムで一括して追跡できます。そのため、本診断ではこれらを「インジェクション」という一つの観点に統合し、コードの重複走査を防ぎながら効率的かつ網羅的なレビューを実現しています。