脆弱性の詳細
- プラン: Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
プロジェクト内の各脆弱性には、脆弱性の詳細を記載した脆弱性レポートページがあり、以下が含まれます:
- 説明
- いつ検出されたか
- 現在のステータス
- 利用可能なアクション
- リンクされたイシュー
- アクションログ
- 場所
- 重大度
共通脆弱性識別子(CVE)カタログの脆弱性の場合、これらの詳細には以下も含まれます:
- CVSSスコア
- EPSSスコア
- KEVステータス
- 到達可能性ステータス
この追加データの詳細については、脆弱性リスク評価データを参照してください。
スキャナーが脆弱性を誤検出であると判断した場合、脆弱性のページの上部にアラートメッセージが表示されます。
脆弱性の説明
- プラン: Ultimate
- アドオン: GitLab Duo Enterprise、GitLab Duo with Amazon Q
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
GitLab Duo脆弱性の説明は、大規模言語モデルを使用して、脆弱性に関する次のことを支援します:
- 脆弱性を要約します。
- 開発者とセキュリティアナリストが、脆弱性、その悪用方法、および修正方法を理解するのに役立ちます。
- 推奨される軽減策を提供します。
前提要件:
- GitLab Ultimateプランのサブスクリプションである必要があります。
- 有料のGitLab Duo Enterpriseシートが必要です。
- GitLab Duoをグループまたはインスタンスに対して有効にする必要があります。
- プロジェクトのメンバーである必要があります。
- 脆弱性は、SASTスキャナーからのものでなければなりません。
脆弱性を説明するには:
左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
セキュリティ > 脆弱性レポートを選択します。
オプション。デフォルトのフィルターを削除するには、Clear(クリア)( )を選択します。
脆弱性のリストの上にある、フィルターバーを選択します。
表示されるドロップダウンリストで、ツールを選択し、次にSASTカテゴリのすべての値を選択します。
フィルターフィールドの外側を選択します。脆弱性の重大度の合計と、一致する脆弱性のリストが更新されます。
説明したいSAST脆弱性を選択します。
次のいずれかを実行します:
- 脆弱性の説明の下にある_GitLab Duo Chatにこの脆弱性とその推奨される修正について質問することで、AIを使用することもできます_というテキストを選択します。
- 右上にあるマージリクエストで解決ドロップダウンリストから、脆弱性の説明を選択し、脆弱性の説明を選択します。
- GitLab Duoチャットを開き、
/vulnerability_explainexplain a vulnerabilityコマンドを入力して使用します。
応答がページの右側に表示されます。
GitLab.comでは、この機能を利用できます。デフォルトでは、Anthropic claude-3-haikuモデルを搭載しています。大規模言語モデルが正しい結果を生成することを保証することはできません。説明は注意して使用してください。
脆弱性の説明のために第三者AIAPIと共有されるデータ
次のデータは、サードパーティのAIAPIと共有されます:
- 脆弱性のタイトル(どのスキャナーが使用されているかに応じて、ファイル名が含まれる場合があります)。
- 脆弱性の識別子。
- ファイル名
脆弱性の解決
- プラン: Ultimate
- アドオン: GitLab Duo Enterprise、GitLab Duo with Amazon Q
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
GitLab Duo脆弱性解決を使用して、脆弱性を解決するマージリクエストを自動的に作成します。デフォルトでは、Anthropic claude-3.5-sonnetモデルを搭載しています。
大規模言語モデルが正しい結果を生成することを保証することはできません。提案された変更は、マージする前に必ずレビューする必要があります。レビューする際は、以下を確認してください:
- アプリケーションの既存の機能が維持されている。
- 脆弱性が組織の標準に従って解決されている。
前提要件:
- GitLab UltimateプランのサブスクリプションとGitLab Duo Enterpriseが必要です。
- プロジェクトのメンバーである必要があります。
- 脆弱性は、サポートされているアナライザーからのSAST調査結果である必要があります:
- サポートされているすべてのGitLabアナライザー。
- 脆弱性のロケーションと各脆弱性のCWE識別子をレポートする、適切に統合されたサードパーティSASTスキャナー。
- 脆弱性は、サポートされているタイプである必要があります。
すべてのGitLab Duo機能を有効にする方法の詳細をご覧ください。
脆弱性を解決するには:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- セキュリティ > 脆弱性レポートを選択します。
- オプション。デフォルトのフィルターを削除するには、Clear(クリア)( )を選択します。
- 脆弱性のリストの上にある、フィルターバーを選択します。
- 表示されるドロップダウンリストで、アクティビティーを選択し、次にGitLab Duo (AI)カテゴリで脆弱性の解決策は利用可能を選択します。
- フィルターフィールドの外側を選択します。脆弱性の重大度の合計と、一致する脆弱性のリストが更新されます。
- 解決するSAST脆弱性を選択します。
- 脆弱性解決をサポートする脆弱性の横に青いアイコンが表示されます。
- 右上隅で、AIを使用して解決するを選択します。このプロジェクトがパブリックプロジェクトである場合、MRを作成すると、脆弱性と提供された解決策が公開されることに注意してください。プライベートにMRを作成するには、プライベートフォークを作成し、このプロセスを繰り返します。
- 追加のコミットをMRに追加します。これにより、新しいパイプラインが強制的に実行されます。
- パイプラインが完了したら、パイプラインセキュリティタブで、脆弱性が表示されなくなったことを確認します。
- 脆弱性レポートで、脆弱性を手動で更新します。
AI修正の提案を含むマージリクエストが開きます。提案された変更をレビューし、標準ワークフローに従ってマージリクエストを処理します。
この機能に関するフィードバックをイシュー476553で提供してください。
脆弱性解決でサポートされている脆弱性
提案された解決策が高品質であることを保証するために、脆弱性解決は特定の脆弱性セットでのみ使用できます。システムは、脆弱性の共通脆弱性タイプ一覧(CWE) 識別子に基づいて、脆弱性解決を提供するかどうかを決定します。
自動化されたシステムとセキュリティの専門家によるテストに基づいて、現在の脆弱性セットを選択しました。より多くの種類の脆弱性へのカバレッジを拡大するために積極的に取り組んでいます。
脆弱性解決でサポートされているCWEの完全なリストを表示
- CWE-23: 相対パストラバーサル
- CWE-73: ファイル名またはパスの外部制御
- CWE-78: OSコマンドインジェクション('OS Command Injection')で使用される特殊要素の不適切なニュートラル化
- CWE-80: Webページでのスクリプト関連のHTMLタグの不適切なニュートラル化(基本的なXSS)
- CWE-89: SQLコマンド(「SQL Injection」)で使用される特殊要素の不適切なニュートラル化
- CWE-116: 出力の不適切なエンコードまたはエスケープ
- CWE-118: 指標可能なリソースの不正なアクセス(「範囲エラー」)
- CWE-119: メモリーバッファの範囲内での操作の不適切な制限
- CWE-120: 入力サイズを確認せずにバッファをコピー(「クラシックバッファオーバーフロー」)
- CWE-126: バッファオーバーリード
- CWE-190: 整数のオーバーフローまたはラップアラウンド
- CWE-200: 機密情報の権限のないアクターへの公開
- CWE-208: 観察可能なタイミングの矛盾
- CWE-209: 機密情報を含むエラーメッセージの生成
- CWE-272: 最小特権の違反
- CWE-287: 不適切な認証
- CWE-295: 証明書の検証が不適切
- CWE-297: ホストのミスマッチがある証明書の不適切な検証
- CWE-305: 主要な脆弱性による認証のバイパス
- CWE-310: 暗号学的な問題
- CWE-311: 機密データの暗号化の欠落
- CWE-323: 暗号化におけるNonce、キーペアの再利用
- CWE-327: 壊れたまたは危険な暗号学的アルゴリズムの使用
- CWE-328: 脆弱なハッシュの使用
- CWE-330: 不十分にランダムな値の使用
- CWE-338: 暗号学的に脆弱な疑似乱数ジェネレーター(PRNG)の使用
- CWE-345: データの信頼性の検証が不十分
- CWE-346: 起点の検証エラー
- CWE-352: クロスサイトリクエストフォージェリ
- CWE-362: 不適切な同期を使用した共有リソースの同時実行(「競合状態」)
- CWE-369: ゼロ除算
- CWE-377: 安全でない一時ファイル
- CWE-378: 安全でない権限を持つ一時ファイルの作成
- CWE-400: 制御されないリソース消費
- CWE-489: アクティブなデバッグコード
- CWE-521: 脆弱なパスワード要件
- CWE-539: 機密情報を含む永続的なCookieの使用
- CWE-599: OpenSSL証明書の検証の欠落
- CWE-611: XML外部エンティティ参照の不適切な制限
- CWE-676: 潜在的に危険な関数の使用
- CWE-704: 不適切な型変換またはキャスト
- CWE-754: 異常な状態または例外的な状態の不適切なチェック
- CWE-770: 制限または調整のないリソースの割り当て
- CWE-1004: 'HttpOnly'フラグのない機密Cookie
- CWE-1275: 不適切なSameSite属性を持つ機密Cookie
トラブルシューティング
脆弱性解決では、推奨される修正を生成できない場合があります。一般的な原因は次のとおりです:
- 偽陽性を検出: 修正を提案する前に、AIモデルは、脆弱性が有効かどうかを評価します。脆弱性が真の脆弱性ではないか、修正する価値がないと判断する場合があります。
- 一時的または予期しないエラー: エラーメッセージには、「予期しないエラーが発生しました」、「アップストリームAIプロバイダーリクエストがタイムアウトしました」、「問題が発生しました」などの原因が表示される場合があります。
- これらのエラーは、AIプロバイダーまたはGitLab Duoの一時的な問題が原因である可能性があります。
- 新しいリクエストが成功する可能性があるため、脆弱性を再度解決してみてください。
- これらのエラーが引き続き表示される場合は、GitLabにお問い合わせください。
脆弱性解決のために第三者AIAPIと共有されるデータ
次のデータは、サードパーティのAIAPIと共有されます:
- 脆弱性名
- 脆弱性の説明
- 識別子(CWE、OWASP)
- 脆弱なコード行を含むファイル全体
- 脆弱なコード行(行番号)
マージリクエストの脆弱性解決
- プラン: Ultimate
- アドオン: GitLab Duo Enterprise
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
GitLab Duo脆弱性解決を使用して、脆弱性の調査結果を解決するマージリクエストの提案コメントを自動的に作成します。デフォルトでは、Anthropic claude-3.5-sonnet AIモデルによって動作します。
脆弱性検出を解決するには、次の手順に従います:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- マージリクエストを選択します。
- マージリクエストを選択します。
- 脆弱性解決でサポートされている脆弱性検出は、タヌキAIアイコン( )で示されます。
- サポートされている検出を選択して、セキュリティ検出ダイアログを開きます。
- 右下隅にあるAIを使用して解決するを選択します。
マージリクエストで修正の提案を含むコメントが開きます。提案された変更を確認し、標準ワークフローに従ってマージリクエストの提案を適用します。
この機能に関するフィードバックは、イシュー476553でお寄せください。
トラブルシューティング
マージリクエストの脆弱性解決では、提案された修正を生成できない場合があります。一般的な原因は次のとおりです:
- 偽陽性を検出: 修正を提案する前に、AIモデルは脆弱性が有効かどうかを評価します。脆弱性が真の脆弱性ではないか、修正する価値がないと判断する場合があります。
- 一時的または予期しないエラー: エラーメッセージには、「予期しないエラーが発生しました」、「アップストリームAIプロバイダーのリクエストがタイムアウトした」、「問題が発生しました」などの原因が表示される場合があります。
- これらのエラーは、AIプロバイダーまたはGitLab Duoの一時的な問題が原因である可能性があります。
- 新しいリクエストが成功する可能性があるため、脆弱性の解決を再度試すことができます。
- これらのエラーが引き続き表示される場合は、GitLabにお問い合わせください。
- マージリクエストで解決ターゲットが見つからず、提案を作成できません:
- このエラーは、ターゲットブランチで完全なセキュリティスキャンパイプラインが実行されていない場合に発生する可能性があります。マージリクエストドキュメントを参照してください。
脆弱性コードフロー
- プラン: Ultimate
- 提供形態: GitLab.com、GitLab Self-Managed、GitLab Dedicated
特定の種類の脆弱性について、高度なSASTはcode flow情報を提供します。脆弱性のコードフローとは、データが、すべての割り当て、操作、サニタイズを通じて、ユーザー入力(ソース)から脆弱なコード行(シンク)に至るまでの間でたどるパスです。
脆弱性のコードフローを表示する方法の詳細については、脆弱性コードフローを参照してください。
脆弱性のステータス値
脆弱性のステータスは次のいずれかになります:
- トリアージが必要: 新しく発見された脆弱性のデフォルト状態。
- 確認済み: ユーザーがこの脆弱性を確認し、正確であることを確認しました。
- やめる: ユーザーがこの脆弱性を評価し、やめるました。無視された脆弱性は、後続のスキャンで検出された場合でも無視されます。
- 解決済み: 脆弱性が修正されたか、存在しなくなりました。解決済みの脆弱性が再度導入されて検出された場合、そのレコードは復活し、ステータスはトリアージが必要に設定されます。
脆弱性は通常、次のライフサイクルを経ます:
%%{init: { "fontFamily": "GitLab Sans" }}%%
stateDiagram
accTitle: Vulnerability lifecycle
accDescr: Typical lifecycle of a vulnerability
direction LR
Needs_triage: Needs triage
[*] --> Needs_triage
Needs_triage --> Confirmed
Needs_triage --> Dismissed
Dismissed --> [*]
Confirmed --> Resolved
Resolved --> Needs_triage: If reintroduced and detected again
Resolved --> [*]
脆弱性が検出されませんでした
脆弱性は、修正するために意図的に行われた変更、または他の変更の副次効果が原因で、検出されなくなる場合があります。セキュリティスキャンが実行され、デフォルトブランチで脆弱性が検出されなくなった場合、スキャナーは検出されませんでしたをレコードのアクションログに追加しますが、レコードのステータスは変更されません。代わりに、脆弱性が解決されたことを確認し、その場合は手動でステータスを解決済みに変更する必要があります。特定の基準に一致する脆弱性のステータスを自動的に解決済みに変更するには、脆弱性管理ポリシーを使用することもできます。
脆弱性を解決したコミットへのリンクは、脆弱性ページの上部または下部にあります。
脆弱性却下の理由
脆弱性を無視する場合は、次のいずれかの理由を選択する必要があります:
- 許容可能なリスク: 脆弱性は既知であり、修正も軽減もされていませんが、許容できるビジネスリスクと見なされます。
- 誤検知: 実際には脆弱性が存在しないのに、誤ってシステムに脆弱性が存在するというテスト結果を示すレポートのエラー。
- 制御を緩和中: 脆弱性のリスクは、情報システムと同等の保護を提供する組織が採用する、管理上、運用上、または技術的な制御(つまり、保護手段または対抗手段)によって軽減されます。
- テストで使用: 検出結果はテストの一部またはテストデータであるため、脆弱性ではありません。
- 該当するものがありません: 脆弱性は既知であり、修正も軽減もされていませんが、更新されないアプリケーションの一部に含まれていると見なされています。
脆弱性のステータスを変更
前提要件:
- 少なくともプロジェクトに対するメンテナーロールか、カスタムロールでの
admin_vulnerability権限を持っている必要があります。
脆弱性のステータスを脆弱性ページから変更するには:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- セキュリティ > 脆弱性レポートを選択します。
- 脆弱性の説明を選択します。
- Change status(ステータスを変更)を選択します。
- ステータスドロップダウンリストから、脆弱性のステータスをやめるに変更する場合は、ステータスまたは却下の理由を選択します。
- コメントテキストボックスに、却下の理由に関する詳細を含むコメントを入力します。やめるステータスを適用する場合は、コメントが必要です。
誰がいつ変更を加えたかなど、ステータスの変更の詳細は、脆弱性のアクションログに記録されます。
脆弱性のGitLabイシューを作成する
脆弱性を解決または軽減するために行われたアクションを追跡するために、GitLabプロジェクトでイシューを作成できます。脆弱性のGitLabイシューを作成するには:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- セキュリティ > 脆弱性レポートを選択します。
- 脆弱性の説明を選択します。
- Create issue(イシューの作成)を選択します。
イシューは、脆弱性レポートからの情報をもとに、GitLabプロジェクトに作成されます。
イシューを作成するには、脆弱性のJiraイシューを作成するを参照してください。
脆弱性をGitLabおよびJiraイシューにリンクする
脆弱性を1つまたは複数の既存のGitLabまたはJiraイシューにリンクできます。同時に使用できるリンク機能は1つだけです。リンクを追加すると、脆弱性を解決または軽減するイシューを追跡するのに役立ちます。
既存のGitLabイシューに脆弱性をリンクする
前提要件:
- Jiraイシューインテグレーションを有効にしないでください。
脆弱性を既存のGitLabイシューにリンクするには:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- セキュリティ > 脆弱性レポートを選択します。
- 脆弱性の説明を選択します。
- Linked issues(リンクされたアイテム)セクションで、プラスアイコン( )を選択します。
- リンクする各イシューについて、次のいずれかを実行します:
- イシューへのリンクを貼り付けます。
- イシューのID(ハッシュ
#をプレフィックスとして付加)を入力します。
- Add(追加)を選択します。
選択したGitLabイシューがリンクされたアイテムセクションに追加され、リンクされたイシューカウンターが更新されます。
脆弱性にリンクされたGitLabイシューは、脆弱性レポートと脆弱性のページに表示されます。
脆弱性とリンクされたGitLabイシューの間の次の状態に注意してください:
- 脆弱性ページには関連するイシューが表示されますが、イシューページには関連する脆弱性は表示されません。
- 1つのイシューは、一度に1つの脆弱性のみに関連付けることができます。
- イシューは、グループおよびプロジェクト間でリンクできます。
既存のJiraイシューに脆弱性をリンクする
前提要件:
- Jiraイシューのインテグレーションが設定され、Create Jira issues for vulnerabilities(脆弱性のJiraイシューを作成する)チェックボックスがオンになっていることを確認してください。
脆弱性を既存のJiraイシューにリンクするには、次の行をJiraイシューの説明に追加します:
/-/security/vulnerabilities/<id><id>は任意の脆弱性IDです。1つの説明に、異なるIDを持つ複数の行を追加できます。
適切な説明が記載されたJiraイシューが関連するJiraイシューセクションに追加され、リンクされたイシューカウンターが更新されます。
脆弱性にリンクされたJiraイシューは、脆弱性ページにのみ表示されます。
脆弱性とリンクされたJiraイシューの間の次の状態に注意してください:
- 脆弱性ページとイシューページには、関連する脆弱性が表示されます。
- 1つのイシューを、同時に1つまたは複数の脆弱性に関連付けることができます。
脆弱性を解決する
一部の脆弱性については、解決策はすでにわかっていますが、手動で実装する必要があります。脆弱性ページの解決策フィールドは、セキュリティ検出をレポートしたセキュリティスキャナーツールによって提供されるか、脆弱性の手動作成中に入力されます。GitLabツールは、GitLabアドバイザリデータベースからの情報を利用します。
さらに、一部のツールには、提案された解決策を適用するためのソフトウェアパッチが含まれている場合があります。これらのインスタンスでは、脆弱性のページにマージリクエストで解決オプションが含まれています。
この機能では、次のスキャナーがサポートされています:
依存関係スキャン。自動パッチ作成は、
yarnで管理されるNode.jsプロジェクトでのみ使用できます。自動パッチ作成は、連邦情報処理規格モードが無効になっている場合にのみサポートされます。
脆弱性を解決するには、次のいずれかを実行します:
マージリクエストで脆弱性を解決する
マージリクエストを使用して脆弱性を解決するには:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- セキュリティ > 脆弱性レポートを選択します。
- 脆弱性の説明を選択します。
- マージリクエストで解決ドロップダウンリストから、マージリクエストで解決を選択します。
脆弱性を解決するために必要なパッチを適用するマージリクエストが作成されます。標準ワークフローに従ってマージリクエストを処理します。
手動で脆弱性を解決する
GitLabが脆弱性のために生成したパッチを手動で適用するには:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- セキュリティ > 脆弱性レポートを選択します。
- 脆弱性の説明を選択します。
- マージリクエストで解決ドロップダウンリストから、解決するためのパッチのダウンロードを選択します。
- ローカルプロジェクトに、パッチの生成に使用されたものと同じコミットがチェックアウトされていることを確認します。
git apply remediation.patchを実行します。- 変更を確認し、ブランチにコミットします。
- 変更をmainブランチに適用するためのマージリクエストを作成します。
- 標準ワークフローに従ってマージリクエストを処理します。
脆弱性のセキュリティトレーニングを有効にする
セキュリティトレーニングは、オフラインの環境、つまりセキュリティ対策としてパブリックインターネットから隔離されたコンピューターではアクセスできません。具体的には、GitLabサーバーは、有効にすることを選択したすべてのトレーニングプロバイダーのAPIエンドポイントをクエリできる必要があります。一部のサードパーティトレーニングベンダーでは、無料のアカウントにサインアップする必要がある場合があります。Secure Code Warrior 、コントラ 、またはSecureFlagのいずれかにアクセスして、アカウントにサインアップします。GitLabは、これらのサードパーティベンダーにユーザー情報を送信しません。CWEまたはOWASP識別子とファイル拡張子の言語名を送信します。
セキュリティトレーニングは、開発者が脆弱性の修正方法を学ぶのに役立ちます。開発者は、検出された脆弱性に関連する、選択された教育プロバイダーからのセキュリティトレーニングを表示できます。
プロジェクトの脆弱性のセキュリティトレーニングを有効にするには:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- セキュリティ > セキュリティ設定を選択します。
- タブバーで、脆弱性管理を選択します。
- セキュリティトレーニングプロバイダーを有効にするには、切替をオンにします。
各インテグレーションは、脆弱性識別子(たとえば、CWEまたはOWASP)と、セキュリティトレーニングベンダーへの言語を送信します。ベンダートレーニングへの結果のリンクは、GitLab脆弱性に表示されるものです。
脆弱性のセキュリティトレーニングを表示する
セキュリティトレーニングが有効になっている場合、脆弱性ページには、検出された脆弱性に関連するトレーニングリンクが含まれている場合があります。トレーニングの可用性は、有効になっているトレーニングベンダーに特定の脆弱性に一致するコンテンツがあるかどうかによって異なります。トレーニングコンテンツは、脆弱性識別子に基づいてリクエストされます。脆弱性に与えられた識別子は、脆弱性ごとに異なり、利用可能なトレーニングコンテンツはベンダーによって異なります。一部の脆弱性では、トレーニングコンテンツは表示されません。CWEを持つ脆弱性は、トレーニング結果を返す可能性が最も高くなります。
脆弱性のセキュリティトレーニングを表示するには:
- 左側のサイドバーで、検索または移動先を選択して、プロジェクトを見つけます。
- セキュリティ > 脆弱性レポートを選択します。
- セキュリティトレーニングを表示する脆弱性を選択します。
- トレーニングを表示を選択します。
推移的依存関係の脆弱性のロケーションを表示する
この機能の利用可否は、機能フラグによって制御されます。詳細については、履歴を参照してください。
脆弱性の詳細の依存関係で見つかった脆弱性を管理する場合、ロケーションで、以下を表示できます:
- 脆弱性が検出された直接の依存関係のロケーション。
- 利用可能な場合は、脆弱性が発生する特定の行番号。
1つ以上の推移的依存関係で脆弱性が発生した場合、直接の依存関係のみを知っているだけでは十分でない場合があります。推移的依存関係は、祖先として直接の依存関係を持つ間接的な依存関係です。
推移的依存関係が存在する場合は、脆弱性を含む推移的依存関係を含む、すべての依存関係へのパスを表示できます。
- 脆弱性の詳細ページのロケーションで、依存関係パスを表示を選択します。依存関係パスを表示が表示されない場合、推移的依存関係はありません。
