服务
什么是服务?
服务(微服务的简称)是资产内的一个可选功能,用于为发现项在资产内的来源提供额外的上下文信息。它们有助于将发现项定位到资产的某个特定组成部分,而不是整个资产,从而在架构复杂的环境中提供更清晰的定位和更精确的报告。
当您需要对来自某次测试的结果进行进一步细分,或者预计在重新导入流程中会出现多个不希望去重的相同发现项实例时,服务会非常有用。某些扫描工具可能会为每个文件位置创建单独的发现项,如果您希望将这些发现项实例保留为独立的发现项,服务可以是标注这些不同位置的有效方式。
Pro 版中的服务
服务在 Pro 版本中可用,但在很大程度上已被资产之间建立父子关系的能力所取代。服务可以达到相同的效果,并且在重构资产不可行,或者需要在不改变资产层级结构的情况下限定扫描级别的去重范围时,仍然可能有用,但它们会丢失上下文信息。例如,业务关键性、营收和人员信息可以归属于资产,但不能归属于服务。因此,服务主要在开源版 DefectDojo 中有用。
如何指定服务?
在导入扫描或重新导入表单的可选字段下拉菜单中,可以指定服务选项。此后,去重将限定在具有相同服务值的测试范围内。
需要注意的是,服务是区分大小写的。如果初始导入的服务被标识为“Service 1”(大写 S),而您重新导入了一个已解决所有先前问题的扫描,并将服务标识为“service 1”(小写 s),那么去重将不会应用于预期的服务。
服务如何运作?
服务的作用方式是允许您指定重新导入时哪些先前的测试将适用去重规则。
例如,如果您导入一次扫描并将服务设置为“Service 1”,然后重新导入第二次扫描并将服务设置为“Service 2”,由于服务不同,这两次扫描之间将不会进行去重。
任何后续的重新导入,只有在服务被设置为“Service 1”时,才会对第一次扫描的先前结果进行去重;只有在服务被设置为“Service 2”时,才会对第二次扫描的先前结果进行去重。本质上,如果两个版本的重新导入扫描之间服务不同,即使扫描本身完全相同,它们也会被视为不同的发现项。
在此示例中,如果在重新导入时既未将服务设置为 Service 1 也未设置为 Service 2,而是留空,那么去重将不会应用于第一次或第二次扫描,并且只有没有服务的发现项才会被关闭。
服务应该如何使用?
在实践中,服务在以下情况下最为有用:
- 单个资产包含多个独立部署的组件。
- 不同团队负责同一资产的不同部分。
- 针对单个服务执行安全测试(例如,扫描特定的 API 或微服务)。