レコードの管理
注: アップストリームコネクタは DefectDojo Pro 限定の機能です。
最初の Discover 操作を実行すると、Manage Records and Operations ページに、マッピング済み(Mapped)または未マッピング(Unmapped)のレコード一覧が表示されます。
レコードとは?
レコードとは、DefectDojo の製品とベンダー相当製品とのあいだの接続のことです。レコード一覧を使うことで、ツールと DefectDojo とのあいだのデータフローを制御できます。
レコードは、DefectDojo が新しいベンダー相当製品を探すために毎日実行する**Discover** 操作によって作成・更新されます。

レコードには、次のようなさまざまな属性があります。
- レコードの状態(State)
- レコードがデータをインポートする先の製品
- レコードが(Discover 処理によって)最初に検出された日時と最後に検出された日時
- レコードのマッピングがユーザーによって**確定(Finalized)**された日時
- DefectDojo の製品へのリンク
レコードのマッピング方法
各レコードには、マッピングを割り当てる必要があります。マッピングは、そのツールのスキャンデータを DefectDojo のどこに保存するかを指示するものです。マッピング済みのレコードは、ベンダー相当製品を DefectDojo の製品に割り当て、その場所へスキャンデータのインポート(エンゲージメントおよびテストとして)を開始するようコネクタに指示します。
マッピングは自分で割り当てることも、DefectDojo に自動で割り当てさせることもできます。
自動マッピング(Auto-Mapping)
自動マッピング(Auto-Mapping)を有効にしている場合、新しいレコードは自動的に製品にマッピングされます。DefectDojo が新しいレコードを発見(Discover)するたびに、それぞれのレコードに対応する DefectDojo の製品が自動的に作成されます。そのレコードはマッピング済みレコードの下に保存され、DefectDojo へのデータインポートの準備ができていることを示します。
自動マッピングを有効にしていない場合は、データをどこに流すかを自分で判断できます。コネクタが新しいベンダー相当製品を(Discover によって)見つけるたびに、未マッピングレコード一覧に新しいレコードが追加され、そのレコードを DefectDojo 内の新規または既存の製品に手動で割り当てることができます。
マッピングの例:ワークフロー
David は BurpSuite ツール用のコネクタの設定をちょうど終え、Discover 操作を実行しました。David は Burp を4つの異なる「サイト」をスキャンするよう設定しており、DefectDojo はそれぞれのサイトに対して新しいレコードを作成します。
David が自動マッピングを使うことにした場合、DefectDojo は各サイトに対して新しい製品を作成します。以後、DefectDojo が Synchronize 操作を実行するたびに、コネクタは(レコードのマッピングを介して)そのサイトから製品へ直接スキャンデータをインポートします。
David が自動マッピングを無効のままにしている場合でも、DefectDojo はこれら4つのサイトを検出してレコードを作成しますが、David 自身がマッピングを作成するまではデータをインポートしません。
David は、これらのマッピングの設定方法を後からいつでも変更できます。複数の異なる Burp サイトの出力を1つの製品にまとめたい場合もあれば、Burp を含む複数のツールのスキャンデータを記録する製品を用意したい場合もあるでしょう。これらのレコードのマッピングを変更するだけで、Burp のスキャンデータの DefectDojo 内での保存先を簡単に変更できます。
レコードと製品の関係
レコードがマッピングされると、DefectDojo は Sync 操作を通じてそのツールのスキャンをインポートする準備が整います。コネクタは、他の DefectDojo のインポート処理や対話的なテストと並行して動作できます。
レコードのマッピングは、既存のデータに影響を与えないよう設計されています。既存のエンゲージメントや検出事項を含むレコードに製品をマッピングしても、それらの既存のエンゲージメントや検出事項がデータ同期処理によって影響を受けたり上書きされたりすることはありません。
コネクタ経由で作成されたすべてのデータは、Global Connectors という1つのエンゲージメントの下に保存されます。そのエンゲージメントは、製品にマッピングされたコネクタごとに個別のテストを作成します。

これにより、複数のコネクタからのスキャンデータを同じ製品に送ることができます。すべてのデータは同じエンゲージメント内に保存されますが、コネクタごとに個別のテストにデータが保存されます。
製品・エンゲージメント・テストについて詳しくは、製品階層の概要をご覧ください。
レコードの状態 - 用語集
各レコードには、そのレコードがどのように動作しているかを伝えるための状態(State)が関連付けられています。
コネクタのレコード一覧全体を表示するには、Connect > Upstream からそのコネクタを開きます。このページのタイトルは All
この一覧は、State 列から状態でフィルタでき、複数の状態を同時に選択することもできます。これは、大規模なコネクタ群において最もよく聞かれる質問――マッピング待ちのものは何か?(New)や報告が止まっているものは何か?(Missing または Error)――に、すべてのレコードを読み通すことなく素早く答えるための最も速い方法です。
すべての状態がすべてのコネクタに当てはまるわけではありません。Stale は検出事項インポートのパイプラインによって設定されるため、検出事項をインポートするコネクタでのみ発生します。アセットコネクタはこの状態には決してならず、アセットコネクタのフィルタ選択肢としても提供されません。
New
New のレコードとは、DefectDojo が発見した未マッピングのレコードです。製品にマッピングするか、無視(Ignored)することができます。新しいレコードを製品にマッピングする方法については、レコードの編集に関するガイドをご覧ください。
Good
Good は、レコードがマッピングされ、正しく動作していることを示します。今後の Discover 操作では、Sync 操作が正しく実行されるよう、対応するベンダー相当製品がまだ存在するかどうかが確認されます。
Ignored
Ignored のレコードは正常に検出されているものの、DefectDojo のユーザーがそのデータを製品にマッピングしないことを決めたレコードです。
警告状態:Stale または Missing
ツールと DefectDojo とのあいだの接続に変化があった場合、レコードの状態が変化してそのことを知らせます。
Stale
関連する製品、エンゲージメント、またはテストが DefectDojo から削除されると、マッピングは「Stale」に変わります。マッピング自体は残っていますが、そのツールのデータをインポートする先が DefectDojo 内に存在しなくなっている状態です。
Stale なレコードは、既存の製品に再マッピングするか、スキャンデータがもはや関係ないものであれば無視(Ignore)することができます。
Missing
レコードがマッピングされているにもかかわらず、元データ(またはベンダー相当製品)が DefectDojo によって検出されなくなった場合、そのレコードはMissingとラベル付けされます。
DefectDojo のコネクタは名前の変更、ディレクトリの変更、その他のデータの変化に対応するため、この状態になるのは、使用しているツール側で関連するベンダー相当製品が削除された可能性が高いです。
使用しているツールからベンダー相当製品を削除するつもりだった場合は、Missing のレコードを削除できます。そうでない場合は、元データが正しく検出されるように、ツール側で問題を調査する必要があります。
Error
Error は、DefectDojo がそのレコードを処理できなかったことを示します。この状態はすべてのコネクタタイプで利用可能で、上記の状態と並んで State フィルタで選択できるため、実行後にコネクタに何か対応が必要かどうかを確認する最も速い方法です。
レコードの編集:再マッピング、無視、削除
レコードは、Manage Records & Operations ページから編集、無視、または削除できます。
マッピング済みレコードと未マッピングレコードは別々のテーブルに配置されていますが、どちらも同じ方法で編集できます。
レコードのテーブルで、対象のレコードの State 列の隣にある青い ▼ 矢印をクリックします。そこから、Edit Record(レコードの編集)または Delete Record(レコードの削除)を選択できます。

レコードのマッピングを変更する
Edit Record をクリックすると、DefectDojo 内での送信先の製品を変更できるウィンドウが開きます。ドロップダウンメニューから既存の製品を選択することも、新しく作成したい製品の名前を入力することもできます。

マッピングを変更することで、レコードに関連付けられたスキャンデータの送信先を別の製品に変更できます。
右側のドロップダウンメニューから、既存の製品を選択するか、新しい製品の名前を入力してください。
レコードの状態を編集する
レコードの State も、このメニューから変更できます。State ドロップダウンリストからオプションを選択することで、レコードを Good から Ignored へ(またはその逆へ)切り替えることができます。
レコードを無視する
いずれかのレコードを「オフにしたい」場合や、そのレコードが DefectDojo に送っているデータを無視したい場合は、そのレコードを「Ignore(無視)」することができます。「Ignored」になったレコードは未マッピングレコード一覧に移動し、新しいデータを DefectDojo に送信しなくなります。
マッピング済みのレコードを無視することも(この場合マッピングは解除されます)、新規レコードを未マッピングレコード一覧から無視することもできます。
無視したレコードを元に戻す
レコードから Ignored のステータスを解除したい場合は、同じ State ドロップダウンメニューを使って New に戻すことができます。
- 自動マッピングレコード(Auto-Map Records)が有効になっている場合、次に Discover 操作が実行されると、レコードは元のマッピングに戻ります。
- 自動マッピングレコードが有効になっていない場合、DefectDojo は以前のマッピングを自動的に復元しないため、このレコードのマッピングをもう一度設定し直す必要があります。
レコードを削除する
レコードを削除することもでき、これにより未マッピングまたはマッピング済みのレコードテーブルから削除されます。
Discover 機能は常にツールからすべてのレコードをインポートすることに注意してください。つまり、レコードを DefectDojo から削除しても、後で再び検出され(マッピング待ちのレコード一覧に再び戻ってきます)。
スキャンツール側から元となるベンダー相当製品を削除する予定がある場合は、レコードを削除するのがよい選択です。そうしないと、次の Discover 操作で関連データが見つからないことが検出され、このレコードの状態は「Missing」に変わります。
ただし、元となるベンダー相当製品がまだ存在している場合、次回の Discover 操作で再び検出されます。この動作を防ぎたい場合は、代わりにそのレコードを無視(Ignore)してください。
これはインポート済みのデータに影響しますか?
いいえ。同期レコードによって作成されたすべての検出事項、テスト、エンゲージメントは、レコードが削除された後も DefectDojo に残り続けます。レコードや設定を削除しても、削除されるのはデータフローの処理だけであり、DefectDojo や使用しているツール内の脆弱性データが削除されることはありません。