サービス

サービスとは?

サービス(マイクロサービスの略)は、アセット内のオプション機能であり、検出事項がアセットのどこで発生したかについて追加のコンテキストを提供します。これにより、検出事項をアセット全体ではなく、アセットの特定のコンポーネントに絞り込むことができ、複雑なアーキテクチャの環境において明確さとレポートの精度が向上します。

サービスは、テストから返される結果をさらに細分化する必要がある場合や、重複排除したくない同一の検出事項がReimportパイプライン内に複数存在すると予想される場合に役立ちます。一部のスキャンツールは、ファイルの場所ごとに個別の検出事項を作成することがあり、検出事項のそれらのインスタンスを別々の検出事項として保持したい場合、サービスはそれらの異なる場所にラベルを付けるための有用な方法となります。

Proにおけるサービス

サービスはPro版でも利用できますが、アセット間で親子関係を確立できる機能によってその役割の多くが置き換えられています。サービスも同じ結果を達成でき、アセットの再構成が現実的でない場合や、アセット階層を変更せずにスキャンレベルの重複排除のスコープ設定が必要な場合には依然として有用ですが、コンテキストが失われます。例えば、ビジネスクリティカリティ、収益、担当者はアセットには関連付けられますが、サービスには関連付けられません。そのため、サービスは主にOS版DefectDojoの文脈で有用です。

サービスの指定方法

サービスを指定するオプションは、インポートスキャンまたは再インポートフォームの「オプションフィールド」ドロップダウンメニュー内で利用できます。以降、重複排除は同じサービス値を共有するテストに限定されます。

重要な点として、サービスは大文字と小文字を区別します。最初のインポートのサービスが「Service 1」(大文字のS)として識別され、以前のすべての問題を解決したスキャンを再インポートする際にサービスを「service 1」(小文字のs)として識別した場合、重複排除は意図したサービスに適用されません。

サービスはどのように機能するか?

サービスは、再インポート時にどの以前のテストに重複排除ルールを適用するかを指定できるようにすることで機能します。

例えば、あるスキャンをインポートしてサービスを「Service 1」に設定し、次に2つ目のスキャンを再インポートしてサービスを「Service 2」に設定した場合、サービスが異なるため、これら2つのスキャン間で重複排除は適用されません。

それ以降の再インポートは、サービスが「Service 1」に設定されている場合にのみ最初のスキャンの以前の結果と重複排除を行い、サービスが「Service 2」に設定されている場合にのみ2つ目のスキャンの以前の結果と重複排除を行います。つまり、再インポートされたスキャンの2つのバージョン間でサービスが異なる場合、スキャン自体が同一であっても、それらは異なる検出事項として扱われます。

この例で、再インポート時にサービスがService 1にもService 2にも設定されず、代わりに空白のままにされた場合、重複排除は最初のスキャンにも2番目のスキャンにも適用されず、サービスが設定されていない検出事項のみがクローズされます。

サービスはどのように使用すべきか?

実際には、サービスは以下のような場合に最も有用です。

  • 単一のアセットに独立してデプロイされる複数のコンポーネントが含まれている場合。
  • 同じアセットの異なる部分を異なるチームが所有している場合。
  • 個々のサービスに対してセキュリティテストが実施される場合(例えば、特定のAPIやマイクロサービスをスキャンする場合)。