検出事項の追加フォーム (Pro)

DefectDojo の新規インスタンスをお使いの場合、Import Scan Form はソフトウェアを学び、環境をセットアップするための理にかなった最初のステップです。このフォームから、サポートされているツールのスキャンファイルをアップロードすると、それらの脆弱性を表す検出事項が作成されます。フォームの入力中に、以下のどちらにするかを決めることができます。

  • これらの検出事項を既存の製品タイプ / 製品 / エンゲージメントの下に保存する または
  • これらの検出事項を保存するために新しい製品タイプ / 製品 / エンゲージメントを作成する

DefectDojo では製品階層を簡単に再編成できるため、まだセットアップ方法がわからなくても心配ありません。

さしあたり、エンゲージメントは複数のツールからのデータを保存できることを知っておくとよいでしょう。これは、単一のテスト作業の一環として複数のツールを同時に実行している場合に便利です。

Import Scan Form へのアクセス方法(Pro UI)

Import Scan フォームには複数の場所からアクセスできます。

  1. サイドバーの Import > Add Findings メニューオプションから
  2. 製品テーブルにある製品の**「⋮」(横向きドット)メニュー**から
  3. 製品ページの**⚙️歯車メニュー**から

Import Scan Form の入力

Import Scan フォームは、エンゲージメントの下にネストされた新しいテストを作成し、スキャンファイルに含まれる各脆弱性に対応する固有の検出事項を格納します。

テストは、スキャンタイプに一致する名前で作成されます。例えば、Tenable のスキャンは「Tenable Scan」というタイトルになります。

フォームオプション

  • Scan File: Choose ボタンをクリックすることで、コンピューター上のファイルを選択してアップロードできます。
  • Scan Date (optional): このインポートによって作成されるすべての検出事項に適用する単一のスキャン日を選択したい場合は、このフィールドで日付を選択できます。 スキャン日を選択しない場合、このレポートから作成される検出事項はツールが指定した日付を使用します。各検出事項の SLA はその日付に基づいて計算されます。
  • Scan Type: このデータの作成に使用したツールを選択します。
  • Product Type / Product / Engagement Name: 新しいテストを作成する対象の製品タイプ、製品、エンゲージメント名を選択します。作成したいオブジェクトの名前を入力することで、この時点で新しい製品タイプ、製品、エンゲージメントを作成することもできます。
  • Environment: アップロードするデータに対応する環境を選択します。
  • Tags: タグを使用してテストデータをさらに整理したい場合は、このフォームでタグを追加できます。作成したいタグの名前を入力し、キーボードの Enter を押すとタグのリストに追加されます。
  • Process Findings Asynchronously: このフィールドはデフォルトで有効になっていますが、必要に応じて無効にすることもできます。詳細は以下の説明を参照してください。

Process Findings Asynchronously

このフィールドが有効な場合、DefectDojo はバックグラウンドプロセスを使用してテストファイルに検出事項を投入します。これにより、スキャンファイルから検出事項が作成されている間も DefectDojo での作業を継続できます。

このフィールドが無効な場合、DefectDojo はすべての検出事項が正常に作成されるまで待機してから次の画面に進めるようにします。ファイルのサイズによっては、これにかなりの時間がかかることがあります。

このオプションは、API を使用してデータをインポートする場合に特に重要です。Process Findings Asynchronously をオフにしてデータをアップロードすると、DefectDojo はすべての検出事項が正常に作成されるまで正常なレスポンスを返しません。

Optional Fields

Optional Fields を開くには、Submit ボタンの上にある **「Optional Fields +」**というラベルの付いたボタンをクリックします。

image

Optional Fields descriptions

  • Minimum Severity: 特定の深刻度レベル以上の検出事項のみを作成したい場合は、ここで最小の深刻度レベルを選択できます。このフィールドより深刻度が低い脆弱性はすべて無視されます。
  • Active: 受信するすべての検出事項をアクティブまたは非アクティブのいずれかに設定したい場合は、ここで指定できます。指定しない場合、DefectDojo はツールの脆弱性データを使用して、検出事項がアクティブか非アクティブかを判定します。このオプションは、特定のツールからの検出事項をチームが手動でトリアージおよび検証する必要がある場合に関係します。
  • Verified: Active と同様に、新しい検出事項のセットをデフォルトで検証済みまたは未検証のいずれかに設定できます。これはワークフローの好みによります。例えば、チームが別途証明されない限り検出事項は検証済みであるとみなすことを好む場合は、このフィールドを True に設定できます。
  • Version, Branch Tag, Commit Hash, Build ID, Service は、これらの詳細をテストに含めたい場合にすべて指定できます。
  • Source Code Management URI も指定できます。このフォームオプションは有効な URI である必要があります。
  • Group By: このファイルから検出事項グループを作成したい場合は、ここでグルーピング方法を指定できます。

Close Old Findings

スキャンをインポートする際、新しいレポートに存在しなくなった以前のスキャンの検出事項を自動的にクローズできます。UI で Close Old Findings チェックボックスをオンにするか、API で close_old_findings: true を設定することで、これを有効にできます。

Scope: Engagement vs. Product

デフォルトでは、close_old_findings同一エンゲージメント内の同じスキャンタイプの検出事項をクローズします。DefectDojo Pro では、2 つ目のオプション — Close Old Findings Within This Product — が追加されており、これはどのエンゲージメントに属するかに関係なく、製品全体にわたる同じスキャンタイプのすべての検出事項までスコープを広げます。

OptionUI checkboxAPI parameterScope
Close old findings (engagement scope)Close Old Findingsclose_old_findings: trueSame Engagement
Close old findings (product scope)Close Old Findings Within This Productclose_old_findings_product_scope: trueEntire Product

close_old_findings_product_scope を使用するには、close_old_findings も有効になっている必要があります。close_old_findings を有効にせずに close_old_findings_product_scope を設定しても効果はありません。

Note: close_old_findings_product_scope は Import (/import-scan) エンドポイントにのみ適用されます。Reimport (/reimport-scan) エンドポイントには影響しません。このエンドポイントでは、スコープは常に現在のテストに限定されます。

service フィールドも考慮されます。同一の service 値を持つ検出事項(またはインポート時に service 値が指定されなかった場合はその値を持たない検出事項)のみがクローズの対象となります。

トリアージ機能のないスキャナー: Do Not Reactivate フィールド

一部のスキャナー(例: tfsec)は、レポートにトリアージ情報を含まない場合があります。これらは単にコードや依存関係をスキャンし、問題にフラグを立て、脆弱性がすでにトリアージされているかどうかにかかわらず、すべてを返します。

このケースに対応するため、DefectDojo にはレポートのアップロード時(reimport API でも同様)に「Do not reactivate」チェックボックスが用意されています。これにより、インポート/再インポートのたびにトリアージ済みの検出事項を再度アクティブ化するのではなく、DefectDojo をトリアージの信頼できる情報源として使用できます。

Scan Completion Date (API: scan_date) フィールドの使用

DefectDojo は非常に多くのスキャナーレポートをサポートしていますが、そのすべてがユーザーにとって最も重要な情報を含んでいるわけではありません。scan_date フィールドは、特定のスキャンレポートの完了日を設定し、それをインポートされたすべての検出事項に反映させることができる柔軟なスマート機能です。このフィールドは必須ではありませんが、デフォルト値はインポートの日付(リクエストが処理され、正常なレスポンスが返された時点)になります。

このフィールドを使用する場合のユースケースは以下のとおりです。

  1. レポートが日付を設定せず、インポート時に scan_date も設定されない場合
    • 検出事項の日付は scan_date のデフォルト値になります
  2. レポートが日付を設定し、インポート時に scan_date が設定されない場合
    • 検出事項の日付はレポートが設定する値になります
  3. レポートが日付を設定せず、インポート時に scan_date設定される場合
    • 検出事項の日付はユーザーが scan_date に設定した値になります
  4. レポートが日付を設定し、インポート時に scan_date設定される場合
    • 検出事項の日付はユーザーが scan_date に設定した値になります