<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>ロケーション on DefectDojo Documentation</title><link>https://docs.defectdojo.com/ja/asset_modelling/locations/</link><description>Recent content in ロケーション on DefectDojo Documentation</description><generator>Hugo</generator><language>ja</language><copyright>Copyright (c) 2020-2025 DefectDojo, Inc.</copyright><lastBuildDate>Mon, 01 Jan 0001 00:00:00 +0000</lastBuildDate><atom:link href="https://docs.defectdojo.com/ja/asset_modelling/locations/index.xml" rel="self" type="application/rss+xml"/><item><title>ロケーションの概要</title><link>https://docs.defectdojo.com/ja/asset_modelling/locations/pro__locations_overview/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.defectdojo.com/ja/asset_modelling/locations/pro__locations_overview/</guid><description>&lt;p&gt;&lt;strong&gt;ロケーション&lt;/strong&gt;は、DefectDojo Proにおける新しいアセットモデリングツールです。従来の&lt;strong&gt;エンドポイント&lt;/strong&gt;モデルを置き換え、それまでの&lt;strong&gt;コンポーネント&lt;/strong&gt;(ライブラリ)データを統合することで、検出事項がどこに存在するか — URLであれ、&lt;strong&gt;SBOM&lt;/strong&gt;由来のソフトウェア依存関係であれ、あるいは将来的には&lt;strong&gt;クラウドリソースID&lt;/strong&gt;、&lt;strong&gt;コンテナイメージ&lt;/strong&gt;、&lt;strong&gt;コードリポジトリ&lt;/strong&gt;であれ — を記述するための、単一の多態的な方法をDefectDojoにもたらします。&lt;/p&gt;
&lt;p&gt;ロケーションを使用するには、事前にインスタンスで有効化しておく必要があります。&lt;a href="https://docs.defectdojo.com/admin/feature_flags/pro__feature_flags/"&gt;フィーチャーフラグページ&lt;/a&gt;からご自身でロケーションを有効にでき、サポートへの依頼は不要です。ロケーションは一度有効にすると、再度無効に戻すことはできない点に注意してください。&lt;/p&gt;
&lt;h2 id="なぜエンドポイントを置き換えるのか"&gt;なぜエンドポイントを置き換えるのか?&lt;/h2&gt;
&lt;p&gt;従来のエンドポイントモデルはURLとIPアドレスを中心に構築されており、&lt;code&gt;protocol&lt;/code&gt;、&lt;code&gt;host&lt;/code&gt;、&lt;code&gt;port&lt;/code&gt;、&lt;code&gt;path&lt;/code&gt;といったWebアプリ向けのフィールドと、検出事項と密結合した固定のステータステーブルを備えていました。これには3つの問題がありました。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;忠実度の限界。&lt;/strong&gt; エンドポイントは、サードパーティライブラリ、コンテナイメージ、クラウドリソースなど、URL以外のアセットをきれいに記述することができませんでした。スキャナーがこうした対象に関する検出事項をますます多く生成するようになっているにもかかわらずです。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;パフォーマンスの上限。&lt;/strong&gt; 検出事項ごとのEndpoint_Statusレコードと、URL形式のスキーマは、大規模な顧客ボリュームにおいてうまくスケールしませんでした。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;コンポーネントは二級市民でした。&lt;/strong&gt; ソフトウェアライブラリは検出事項上の非正規化フィールドとしてのみ存在していたため、ライブラリが脆弱性から独立して存在することができず、真のSBOM管理が不可能でした。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;ロケーションは、型付きペイロードを持つ&lt;strong&gt;基本の&lt;code&gt;Location&lt;/code&gt;オブジェクト&lt;/strong&gt;と、各アセット形状に対応する専用の&lt;strong&gt;サブタイプ&lt;/strong&gt;を導入することで、これら3つの問題をすべて解決します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;URLロケーション&lt;/strong&gt; — 従来のエンドポイントと機能的に同等で、同じprotocol/host/port/path/query/fragmentフィールドを持ちます。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;依存関係ロケーション&lt;/strong&gt; — &lt;a href="https://github.com/package-url/purl-spec"&gt;Package URL(pURL)&lt;/a&gt;によって識別されるソフトウェアライブラリで、SBOMの内容をモデル化するために使用されます。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://docs.defectdojo.com/asset_modelling/locations/pro__source_code_locations/"&gt;ソースコードロケーション&lt;/a&gt;&lt;/strong&gt; — 静的解析による検出事項がソースコード内のどこに存在するかを、ファイルパスと行番号によって識別します。スキャンによって管理され、&lt;a href="https://docs.defectdojo.com/triage_findings/finding_deduplication/pro__location_drift_matching/"&gt;コードの移動に伴う検出事項の追跡&lt;/a&gt;の基盤となります。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;今後検討されているロケーションタイプには、クラウドプロバイダーのリソースID(AWS ARN、Azureリソース ID、GCPフルリソース名)やコンテナイメージ(registry/repository:tagおよびSHA256フィンガープリント)が含まれます。&lt;/p&gt;</description></item><item><title>エンドポイントからの移行</title><link>https://docs.defectdojo.com/ja/asset_modelling/locations/pro__migrating_from_endpoints/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.defectdojo.com/ja/asset_modelling/locations/pro__migrating_from_endpoints/</guid><description>&lt;p&gt;既存のDefectDojo Proインスタンスでロケーションを有効にすると、すでにエンドポイントとして保存されているデータを新しいロケーションモデルに引き継ぐ必要があります。このページでは、移行の内容、保持される情報、そして移行実行後にレガシーエンドポイントAPIがどのように動作するかについて説明します。&lt;/p&gt;
&lt;p&gt;移行は&lt;strong&gt;一方向&lt;/strong&gt;である点に注意してください。ロケーションからエンドポイントを再作成する自動ロールバック手段はありません。&lt;/p&gt;
&lt;h2 id="移行が行うこと"&gt;移行が行うこと&lt;/h2&gt;
&lt;p&gt;既存の各エンドポイントに対して、移行では以下が行われます。&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;エンドポイントの &lt;code&gt;protocol&lt;/code&gt;、&lt;code&gt;userinfo&lt;/code&gt;、&lt;code&gt;host&lt;/code&gt;、&lt;code&gt;port&lt;/code&gt;、&lt;code&gt;path&lt;/code&gt;、&lt;code&gt;query&lt;/code&gt;、&lt;code&gt;fragment&lt;/code&gt; の各フィールドを使用して&lt;strong&gt;URLロケーションを作成&lt;/strong&gt;(または既存のものを再利用)します。新しいURLは自動的に親の &lt;code&gt;Location&lt;/code&gt; オブジェクトに紐付けられます。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;タグを引き継ぎます。&lt;/strong&gt; エンドポイントに付与されているすべてのタグが、ロケーションのタグセットに追加されます。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;メタデータを引き継ぎます。&lt;/strong&gt; エンドポイントに紐付いている各 &lt;code&gt;DojoMeta&lt;/code&gt; 行は、新しいロケーションを指すように再設定されます。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;URLが正しいアセット(製品)の下に表示されるよう、&lt;strong&gt;&lt;code&gt;LocationProductReference&lt;/code&gt; を作成&lt;/strong&gt;します。&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;code&gt;Endpoint_Status&lt;/code&gt; ごとに &lt;code&gt;LocationFindingReference&lt;/code&gt; を作成&lt;/strong&gt;します。&lt;/p&gt;</description></item><item><title>URLの利用</title><link>https://docs.defectdojo.com/ja/asset_modelling/locations/pro__working_with_urls/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.defectdojo.com/ja/asset_modelling/locations/pro__working_with_urls/</guid><description>&lt;p&gt;URLロケーションは、レガシーなエンドポイントモデルの機能的な後継です。使い慣れたURL形式のフィールド(&lt;code&gt;protocol&lt;/code&gt;、&lt;code&gt;host&lt;/code&gt;、&lt;code&gt;port&lt;/code&gt;、&lt;code&gt;path&lt;/code&gt;、&lt;code&gt;query&lt;/code&gt;、&lt;code&gt;fragment&lt;/code&gt;)を保持し、Webアプリケーションの検出事項が&lt;em&gt;どこに&lt;/em&gt;存在するかを識別するという同じ役割を果たします。&lt;/p&gt;
&lt;p&gt;このページでは、URLロケーションを日常的に使い始めた際に変わる点、新しいUIの画面、そしてレガシーエンドポイントAPIの代わりに使用するAPIエンドポイントについて説明します。&lt;/p&gt;
&lt;h2 id="urlサブタイプ"&gt;URLサブタイプ&lt;/h2&gt;
&lt;p&gt;すべてのURLはロケーションです。つまり、URLは次の両方を持ちます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;構造化されたURLフィールド(&lt;code&gt;protocol&lt;/code&gt;、&lt;code&gt;user_info&lt;/code&gt;、&lt;code&gt;host&lt;/code&gt;、&lt;code&gt;port&lt;/code&gt;、&lt;code&gt;path&lt;/code&gt;、&lt;code&gt;query&lt;/code&gt;、&lt;code&gt;fragment&lt;/code&gt;、および重複排除に使用される &lt;code&gt;hash&lt;/code&gt;)。&lt;/li&gt;
&lt;li&gt;共有のロケーションフィールド(&lt;code&gt;location_type=&amp;quot;url&amp;quot;&lt;/code&gt;、表示・検索用の正規 &lt;code&gt;location_value&lt;/code&gt; 文字列、タグ、継承タグ、メタデータ、アセットおよび検出事項へのReferenceリンク)。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;URLを作成またはアップロードすると、DefectDojoはそれを構造化フィールドに解析し、URLの行とその親ロケーションの行を単一のトランザクションで書き込みます。URLの重複排除は構造化フィールド全体での完全一致で行われます。すべての構成要素が一致すれば同じURLとみなされ、標準的なデフォルトポートの畳み込みも適用されます(&lt;code&gt;http://example.com:80/&lt;/code&gt; と &lt;code&gt;http://example.com/&lt;/code&gt; は同じURLとして解決されます)。&lt;/p&gt;
&lt;h2 id="pro-uiでの表示"&gt;Pro UIでの表示&lt;/h2&gt;
&lt;p&gt;ロケーション機能が有効になると、ナビゲーションに以下が表示されます。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ロケーション / すべて&lt;/strong&gt; — URLと依存関係の両方のサブタイプにまたがる、すべてのロケーションの一覧です。種別、ステータス、アセット、検出事項、タグでフィルタできます。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ロケーション / URL&lt;/strong&gt; — URLロケーションのみに絞った一覧です。これは旧エンドポイントページに最も近いものです。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;新しいURL&lt;/strong&gt; — 構造化フィールド、タグ、任意のアセット/検出事項の関連付けを指定して単一のURLを作成するフォームです。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;アセットのロケーション&lt;/strong&gt; — 任意のアセットで、&lt;strong&gt;ロケーション&lt;/strong&gt;タブにはそのアセットに紐付くURLと依存関係が、ステータスごとの件数やクイックアクションとともに表示されます。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;エンドポイントUIにあった一般的なワークフローは維持されています。&lt;/p&gt;</description></item><item><title>SBOMの利用</title><link>https://docs.defectdojo.com/ja/asset_modelling/locations/pro__working_with_sboms/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.defectdojo.com/ja/asset_modelling/locations/pro__working_with_sboms/</guid><description>&lt;p&gt;DefectDojo Proは、ソフトウェアライブラリを&lt;strong&gt;依存関係ロケーション&lt;/strong&gt;としてモデル化します。依存関係は、&lt;a href="https://github.com/package-url/purl-spec"&gt;Package URL (pURL)&lt;/a&gt; によって識別されるロケーションのサブタイプであり、&lt;code&gt;org.apache.logging.log4j:log4j-core@2.17.0&lt;/code&gt;、&lt;code&gt;pypi/django@5.0.2&lt;/code&gt;、&lt;code&gt;npm/react@18.2.0&lt;/code&gt; などの単一のライブラリまたはパッケージを表すことを意図しています。&lt;/p&gt;
&lt;p&gt;依存関係は、検出事項にのみ紐付いていた従来の&lt;strong&gt;コンポーネント&lt;/strong&gt;モデルに代わるものです。ロケーションでは、ライブラリは脆弱性の有無にかかわらず独立して存在できます。SBOMをアセットにアップロードしておけば、スキャンが取り込まれるたびに検出事項が参照する依存関係へ自動的に紐付きます。&lt;/p&gt;
&lt;h2 id="依存関係が保持する情報"&gt;依存関係が保持する情報&lt;/h2&gt;
&lt;p&gt;すべての依存関係はpURLによって一意に識別され、検索・フィルタリング可能な原子的なフィールドに分解されます。&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;フィールド&lt;/th&gt;
 &lt;th&gt;意味&lt;/th&gt;
 &lt;th&gt;例&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;purl_type&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;ライブラリのエコシステム&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;npm&lt;/code&gt;、&lt;code&gt;pypi&lt;/code&gt;、&lt;code&gt;maven&lt;/code&gt;、&lt;code&gt;cargo&lt;/code&gt;、&lt;code&gt;nuget&lt;/code&gt;、&lt;code&gt;gem&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;namespace&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;ベンダーまたは組織&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;org.apache.logging&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;name&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;ライブラリ名&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;log4j-core&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;version&lt;/code&gt;&lt;/td&gt;
 &lt;td&gt;特定のバージョン&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;2.17.0&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;qualifiers&lt;/code&gt; &lt;em&gt;(オプション)&lt;/em&gt;&lt;/td&gt;
 &lt;td&gt;実装の詳細&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;arch=amd64&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;subpath&lt;/code&gt; &lt;em&gt;(オプション)&lt;/em&gt;&lt;/td&gt;
 &lt;td&gt;アーカイブまたはモノレポ内のパス&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;src/lib/foo&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;artifact_hashes&lt;/code&gt; &lt;em&gt;(オプション)&lt;/em&gt;&lt;/td&gt;
 &lt;td&gt;フィンガープリント&lt;/td&gt;
 &lt;td&gt;SHA256サム&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;license_expression&lt;/code&gt; &lt;em&gt;(オプション)&lt;/em&gt;&lt;/td&gt;
 &lt;td&gt;SPDXライセンス表現&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;Apache-2.0&lt;/code&gt;、&lt;code&gt;MIT&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;&lt;code&gt;file_path&lt;/code&gt; &lt;em&gt;(オプション)&lt;/em&gt;&lt;/td&gt;
 &lt;td&gt;プロジェクト内でライブラリが見つかった場所&lt;/td&gt;
 &lt;td&gt;&lt;code&gt;package-lock.json&lt;/code&gt;&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;この原子的な分解こそが、pURLベースの検索を有用にしています。「&lt;code&gt;django&lt;/code&gt; 名前空間にある、バージョン4.x系のすべての &lt;code&gt;pypi&lt;/code&gt; パッケージ」といった問い合わせに対し、DefectDojoは自由記述の文字列を解析することなく回答できます。&lt;/p&gt;</description></item><item><title>ソースコードロケーション</title><link>https://docs.defectdojo.com/ja/asset_modelling/locations/pro__source_code_locations/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://docs.defectdojo.com/ja/asset_modelling/locations/pro__source_code_locations/</guid><description>&lt;p&gt;&lt;strong&gt;ソースコードロケーション&lt;/strong&gt;は、ロケーションモデルを静的解析にまで拡張します。URL(DAST)や依存関係(SCA)と並んで、&lt;strong&gt;コード&lt;/strong&gt;ロケーションは、SASTの検出事項がソースコード内のどこに存在するかを&lt;strong&gt;ファイルパスと行番号&lt;/strong&gt;によって示します。&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;ソースコードロケーションを利用するには、ロケーション機能(ベータ版)が必要です。お使いのインスタンスでロケーションを有効にするには、&lt;script type="text/javascript" nonce="dXNlcj0iaGVsbG8iLGRvbWFpbj0iaGVua3ZlcmxpbmRlLmNvbSIsZG9jdW1lbnQud3JpdGUodXNlcisiQCIrZG9tYWluKTs="&gt;userName="support",domainName="defectdojo",domainExtension="com",document.write("&lt;a href='mailto:"+userName+"@"+domainName+"."+domainExtension+"'&gt;"+userName+"@"+domainName+"."+domainExtension+"&lt;/a&gt;");&lt;/script&gt;&lt;noscript&gt;support at defectdojo dot com&lt;/noscript&gt;

 までご連絡ください。&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="モデル化する対象"&gt;モデル化する対象&lt;/h2&gt;
&lt;p&gt;ファイルパスを報告するすべての静的解析の検出事項には、コードロケーションが割り当てられます。ロケーションの正規値は &lt;code&gt;path/to/file.py:42&lt;/code&gt; です(ツールが行番号を報告しない場合はファイルパスのみになります)。他のすべてのロケーションと同様、コードロケーションは共有オブジェクトです。同じファイル・行にある2つの検出事項は同じロケーションを参照し、そのロケーションは検出事項ごと・アセットごとの参照ステータスを保持します。&lt;/p&gt;
&lt;p&gt;コードロケーションは&lt;strong&gt;スキャン管理&lt;/strong&gt;されます。手動ではなく、インポートおよび再インポートによって作成・更新されます。「新しいソースコードロケーション」という操作は存在しません。コードの検出事項がどこに存在するかについては、スキャナーが唯一の正しい情報源です。&lt;/p&gt;
&lt;h2 id="確認できる場所"&gt;確認できる場所&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;サイドバーの&lt;strong&gt;すべてのソースコード&lt;/strong&gt;には、インスタンス内のすべてのコードロケーションが、URLや依存関係と同じフィルタリングおよびタグ付け機能とともに一覧表示されます。&lt;/li&gt;
&lt;li&gt;アセットのロケーションメニューにある&lt;strong&gt;ソースコードを表示&lt;/strong&gt;を使うと、一覧を1つのアセットに絞り込めます。&lt;/li&gt;
&lt;li&gt;検出事項のページには、現在のコードロケーションと、検出事項が移動している場合はその&lt;strong&gt;ロケーション履歴&lt;/strong&gt;が表示されます。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="移動履歴"&gt;移動履歴&lt;/h2&gt;
&lt;p&gt;ソースコードは絶えず変化します。コミットによって行番号がずれ、リファクタリングによってファイル名が変わります。あるツールで&lt;a href="https://docs.defectdojo.com/triage_findings/finding_deduplication/pro__location_drift_matching/"&gt;ロケーションドリフトマッチング&lt;/a&gt;が有効になっている場合、移動した検出事項もその同一性を保持し、コードロケーションの参照がその経路を記録します。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;検出事項の&lt;strong&gt;旧&lt;/strong&gt;ロケーションへの参照は緩和済みとなり、&lt;em&gt;検出事項がどこへ移動したか&lt;/em&gt;と&lt;em&gt;なぜその対応付けが行われたか&lt;/em&gt;(最も近い行、データフロー、ファイル名変更など)が記録されます。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;新しい&lt;/strong&gt;ロケーションへの参照が作成され、アクティブなまま維持されます。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;その結果、閲覧可能な履歴の連鎖ができあがります。「この検出事項は &lt;code&gt;auth.py:42&lt;/code&gt; にあり、次に &lt;code&gt;auth.py:57&lt;/code&gt;、そして &lt;code&gt;session.py:31&lt;/code&gt; に移った」といった具合に、検出事項のページ上でタイムラインとして表示されます。同じ履歴の仕組みはURLの移動や依存関係のバージョンアップにも及ぶため、3種類すべてのロケーションが1つのタイムラインUIを共有します。&lt;/p&gt;</description></item></channel></rss>