×

POST /v1/images/scan

ScanImage 扫描单个镜像并返回结果

描述

参数

主体参数

名称 描述 必填 默认值 模式

主体

V1ScanImageRequest

X

返回类型

内容类型

  • application/json

响应

表 1. HTTP 响应代码
代码 消息 数据类型

200

成功的响应。

StorageImage

0

意外的错误响应。

GooglerpcStatus

示例

常用对象引用

CVSSV2AccessComplexity

枚举值

ACCESS_HIGH

ACCESS_MEDIUM

ACCESS_LOW

CVSSV2Authentication

枚举值

AUTH_MULTIPLE

AUTH_SINGLE

AUTH_NONE

CVSSV3Complexity

枚举值

COMPLEXITY_LOW

COMPLEXITY_HIGH

CVSSV3Privileges

枚举值

PRIVILEGE_NONE

PRIVILEGE_LOW

PRIVILEGE_HIGH

CVSSV3UserInteraction

枚举值

UI_NONE

UI_REQUIRED

EmbeddedVulnerabilityVulnerabilityType

枚举值

UNKNOWN_VULNERABILITY

IMAGE_VULNERABILITY

K8S_VULNERABILITY

ISTIO_VULNERABILITY

NODE_VULNERABILITY

OPENSHIFT_VULNERABILITY

GooglerpcStatus

字段名称 必填 可为空 类型 描述 格式

code

整数

int32

message

字符串

details

ProtobufAny 列表

ProtobufAny

Any包含任意序列化后的 Protocol Buffer 消息,以及描述序列化消息类型的 URL。

Protobuf 库提供了以实用函数或 Any 类型的额外生成方法的形式打包/解包 Any 值的支持。

示例 1:在 C++ 中打包和解包消息。

Foo foo = ...;
Any any;
any.PackFrom(foo);
...
if (any.UnpackTo(&foo)) {
  ...
}

示例 2:在 Java 中打包和解包消息。

Foo foo = ...;
Any any = Any.pack(foo);
...
if (any.is(Foo.class)) {
  foo = any.unpack(Foo.class);
}
// or ...
if (any.isSameTypeAs(Foo.getDefaultInstance())) {
  foo = any.unpack(Foo.getDefaultInstance());
}
Example 3: Pack and unpack a message in Python.
foo = Foo(...)
any = Any()
any.Pack(foo)
...
if any.Is(Foo.DESCRIPTOR):
  any.Unpack(foo)
  ...
Example 4: Pack and unpack a message in Go
foo := &pb.Foo{...}
any, err := anypb.New(foo)
if err != nil {
  ...
}
...
foo := &pb.Foo{}
if err := any.UnmarshalTo(foo); err != nil {
  ...
}

Protobuf 库提供的打包方法默认使用“type.googleapis.com/full.type.name”作为类型 URL,而解包方法仅使用类型 URL 中最后一个“/”后的完全限定类型名称,例如“foo.bar.com/x/y.z”将产生类型名称“y.z”。

JSON 表示

Any值的 JSON 表示使用反序列化的嵌入式消息的常规表示,并添加一个包含类型 URL 的额外字段@type。示例

package google.profile;
message Person {
  string first_name = 1;
  string last_name = 2;
}
{
  "@type": "type.googleapis.com/google.profile.Person",
  "firstName": <string>,
  "lastName": <string>
}

如果嵌入式消息类型是众所周知的并且具有自定义 JSON 表示,则该表示将被嵌入,除了@type字段外,还会添加一个包含自定义 JSON 的value字段。示例(对于消息[google.protobuf.Duration][])

{
  "@type": "type.googleapis.com/google.protobuf.Duration",
  "value": "1.212s"
}
字段名称 必填 可为空 类型 描述 格式

@type

字符串

一个唯一标识序列化 Protocol Buffer 消息类型的 URL/资源名称。此字符串必须包含至少一个“/”字符。URL 路径的最后一部分必须表示类型的完全限定名称(如path/google.protobuf.Duration)。名称应采用规范形式(例如,不接受前导“.”)。实际上,团队通常会将其预期在 Any 上下文中使用的所有类型预编译到二进制文件中。但是,对于使用方案httphttps或无方案的 URL,可以选择设置一个类型服务器,将类型 URL 映射到消息定义,如下所示:* 如果没有提供方案,则假定为https。* 对 URL 的 HTTP GET 必须产生二进制格式的[google.protobuf.Type][]值,或产生错误。* 应用程序可以根据 URL 缓存查找结果,或将其预编译到二进制文件中以避免任何查找。因此,需要在类型更改时保留二进制兼容性。(使用版本化的类型名称来管理重大更改。)注意:此功能当前在官方 protobuf 版本中不可用,并且不用于以 type.googleapis.com 开头的类型 URL。截至 2023 年 5 月,没有广泛使用的类型服务器实现,也没有计划实现一个。httphttps(或空方案)以外的方案可能与特定于实现的语义一起使用。

StorageCVSSScore

字段名称 必填 可为空 类型 描述 格式

来源

StorageSource

SOURCE_UNKNOWN, SOURCE_RED_HAT, SOURCE_OSV, SOURCE_NVD,

url

字符串

cvssv2

StorageCVSSV2

cvssv3

StorageCVSSV3

StorageCVSSV2

字段名称 必填 可为空 类型 描述 格式

向量

字符串

攻击向量

StorageCVSSV2AttackVector

ATTACK_LOCAL, ATTACK_ADJACENT, ATTACK_NETWORK,

访问复杂性

CVSSV2AccessComplexity

ACCESS_HIGH, ACCESS_MEDIUM, ACCESS_LOW,

身份验证

CVSSV2Authentication

AUTH_MULTIPLE, AUTH_SINGLE, AUTH_NONE,

机密性

StorageCVSSV2Impact

IMPACT_NONE, IMPACT_PARTIAL, IMPACT_COMPLETE,

完整性

StorageCVSSV2Impact

IMPACT_NONE, IMPACT_PARTIAL, IMPACT_COMPLETE,

可用性

StorageCVSSV2Impact

IMPACT_NONE, IMPACT_PARTIAL, IMPACT_COMPLETE,

可利用性得分

浮点数

浮点数

影响得分

浮点数

浮点数

得分

浮点数

浮点数

严重程度

StorageCVSSV2Severity

UNKNOWN, LOW, MEDIUM, HIGH,

StorageCVSSV2AttackVector

枚举值

ATTACK_LOCAL

ATTACK_ADJACENT

ATTACK_NETWORK

StorageCVSSV2Impact

枚举值

IMPACT_NONE

IMPACT_PARTIAL

IMPACT_COMPLETE

StorageCVSSV2Severity

枚举值

UNKNOWN

LOW

MEDIUM

HIGH

StorageCVSSV3

字段名称 必填 可为空 类型 描述 格式

向量

字符串

可利用性得分

浮点数

浮点数

影响得分

浮点数

浮点数

攻击向量

StorageCVSSV3AttackVector

ATTACK_LOCAL, ATTACK_ADJACENT, ATTACK_NETWORK, ATTACK_PHYSICAL,

攻击复杂性

CVSSV3Complexity

COMPLEXITY_LOW, COMPLEXITY_HIGH,

所需权限

CVSSV3Privileges

PRIVILEGE_NONE, PRIVILEGE_LOW, PRIVILEGE_HIGH,

用户交互

CVSSV3UserInteraction

UI_NONE, UI_REQUIRED,

范围

StorageCVSSV3Scope

UNCHANGED, CHANGED,

机密性

StorageCVSSV3Impact

IMPACT_NONE, IMPACT_LOW, IMPACT_HIGH,

完整性

StorageCVSSV3Impact

IMPACT_NONE, IMPACT_LOW, IMPACT_HIGH,

可用性

StorageCVSSV3Impact

IMPACT_NONE, IMPACT_LOW, IMPACT_HIGH,

得分

浮点数

浮点数

严重程度

StorageCVSSV3Severity

UNKNOWN, NONE, LOW, MEDIUM, HIGH, CRITICAL,

StorageCVSSV3AttackVector

枚举值

ATTACK_LOCAL

ATTACK_ADJACENT

ATTACK_NETWORK

ATTACK_PHYSICAL

StorageCVSSV3Impact

枚举值

IMPACT_NONE

IMPACT_LOW

IMPACT_HIGH

StorageCVSSV3Scope

枚举值

UNCHANGED

CHANGED

StorageCVSSV3Severity

枚举值

UNKNOWN

NONE

LOW

MEDIUM

HIGH

CRITICAL

StorageCosignSignature

字段名称 必填 可为空 类型 描述 格式

原始签名

byte[]

字节

签名有效负载

byte[]

字节

certPem

byte[]

字节

certChainPem

byte[]

字节

StorageDataSource

字段名称 必填 可为空 类型 描述 格式

id

字符串

名称

字符串

镜像

字符串

StorageEmbeddedImageScanComponent

Next Tag: 13
字段名称 必填 可为空 类型 描述 格式

名称

字符串

版本

字符串

许可证

StorageLicense

漏洞

StorageEmbeddedVulnerability 列表

层索引

整数

int32

优先级

字符串

int64

来源

StorageSourceType

OS, PYTHON, JAVA, RUBY, NODEJS, GO, DOTNETCORERUNTIME, INFRASTRUCTURE,

位置

字符串

最高CVSS

浮点数

浮点数

风险评分

浮点数

浮点数

已修复版本

字符串

修复此组件中所有可修复漏洞的组件版本。

可执行文件

StorageEmbeddedImageScanComponentExecutable 列表

StorageEmbeddedImageScanComponentExecutable

字段名称 必填 可为空 类型 描述 格式

路径

字符串

依赖项

string 列表

StorageEmbeddedVulnerability

Next Tag: 22
字段名称 必填 可为空 类型 描述 格式

CVE

字符串

CVSS

浮点数

浮点数

摘要

字符串

链接

字符串

已修复版本

字符串

评分版本

StorageEmbeddedVulnerabilityScoreVersion

V2, V3,

cvssV2

StorageCVSSV2

cvssV3

StorageCVSSV3

发布时间

日期

日期时间

最后修改时间

日期

日期时间

漏洞类型

EmbeddedVulnerabilityVulnerabilityType

UNKNOWN_VULNERABILITY, IMAGE_VULNERABILITY, K8S_VULNERABILITY, ISTIO_VULNERABILITY, NODE_VULNERABILITY, OPENSHIFT_VULNERABILITY,

漏洞类型列表

EmbeddedVulnerabilityVulnerabilityType 列表

已抑制

布尔值

抑制激活

日期

日期时间

抑制过期

日期

日期时间

首次系统出现

日期

在系统中首次看到此特定发行版的 CVE 的时间。

日期时间

首次镜像出现

日期

在此镜像中首次看到 CVE 的时间。

日期时间

严重程度

StorageVulnerabilitySeverity

UNKNOWN_VULNERABILITY_SEVERITY, LOW_VULNERABILITY_SEVERITY, MODERATE_VULNERABILITY_SEVERITY, IMPORTANT_VULNERABILITY_SEVERITY, CRITICAL_VULNERABILITY_SEVERITY,

状态

StorageVulnerabilityState

OBSERVED, DEFERRED, FALSE_POSITIVE,

CVSS 指标

StorageCVSSScore 列表

NVD CVSS

浮点数

浮点数

StorageEmbeddedVulnerabilityScoreVersion

ScoreVersion can be deprecated ROX-26066
  • V2:为自动向后兼容性,不设置。

枚举值

V2

V3

StorageImage

Next Tag: 19
字段名称 必填 可为空 类型 描述 格式

id

字符串

名称

StorageImageName

名称

StorageImageName 列表

长期来看,这应该弃用 ImageName 字段,允许具有相同摘要的镜像与不同的位置关联。TODO(dhaus):目前,由于搜索标签重复,此消息将不包含搜索标签。

元数据

StorageImageMetadata

扫描

StorageImageScan

签名验证数据

StorageImageSignatureVerificationData

签名

StorageImageSignature

组件

整数

int32

CVE

整数

int32

可修复的CVE

整数

int32

上次更新时间

日期

日期时间

不可拉取

布尔值

是否集群本地

布尔值

优先级

字符串

int64

风险评分

浮点数

浮点数

最高CVSS

浮点数

浮点数

备注

StorageImageNote 列表

StorageImageLayer

字段名称 必填 可为空 类型 描述 格式

指令

字符串

字符串

创建时间

日期

日期时间

作者

字符串

布尔值

StorageImageMetadata

If any fields of ImageMetadata are modified including subfields, please check pkg/images/enricher/metadata.go to ensure that those changes will be automatically picked up Next Tag: 6

StorageImageName

字段名称 必填 可为空 类型 描述 格式

注册表

字符串

远程

字符串

标签

字符串

完整名称

字符串

StorageImageNote

枚举值

缺少元数据

缺少扫描数据

缺少签名

缺少签名验证数据

StorageImageScan

Next tag: 8
字段名称 必填 可为空 类型 描述 格式

扫描器版本

字符串

扫描时间

日期

日期时间

组件

StorageEmbeddedImageScanComponent 列表

操作系统

字符串

数据源

StorageDataSource

备注

StorageImageScanNote 列表

哈希值

字符串

无符号64位整数

StorageImageScanNote

枚举值

未设置

操作系统不可用

部分扫描数据

操作系统CVE不可用

操作系统CVE已过期

语言CVE不可用

已认证的RHEL扫描不可用

StorageImageSignature

字段名称 必填 可为空 类型 描述 格式

签名

StorageSignature 列表

已获取

日期

日期时间

StorageImageSignatureVerificationData

字段名称 必填 可为空 类型 描述 格式

结果

StorageImageSignatureVerificationResult 列表

StorageImageSignatureVerificationResult

Next Tag: 6
字段名称 必填 可为空 类型 描述 格式

验证时间

日期

日期时间

验证器ID

字符串

verifier_id 与用于验证签名的签名集成ID相关。

状态

StorageImageSignatureVerificationResultStatus

未设置,已验证,验证失败,无效签名算法,签名损坏,通用错误,

描述

字符串

如果出现特定错误消息的错误,则设置描述。否则,不会设置此项。

已验证的镜像引用

string 列表

此特定签名集成ID已验证的完整镜像名称。

StorageImageSignatureVerificationResultStatus

状态表示结果的状态。

  • 已验证:签名的验证成功时设置已验证。

  • 验证失败:签名的验证失败时设置验证失败。

  • 无效签名算法:当签名的算法无效且不受支持时设置无效签名算法。

  • 签名损坏:当原始签名损坏时(例如,base64编码错误)设置签名损坏。

  • 通用错误:在验证过程中发生无法与特定状态关联的错误时设置通用错误。

枚举值

未设置

已验证

验证失败

无效签名算法

签名损坏

通用错误

StorageLicense

字段名称 必填 可为空 类型 描述 格式

名称

字符串

类型

字符串

url

字符串

StorageSignature

字段名称 必填 可为空 类型 描述 格式

cosign

StorageCosignSignature

StorageSource

枚举值

未知来源

Red Hat 来源

OSV 来源

NVD 来源

StorageSourceType

枚举值

操作系统

Python

Java

Ruby

Node.js

Go

Dotnet Core Runtime

基础设施

StorageV1Metadata

StorageV2Metadata

StorageVulnerabilitySeverity

枚举值

未知漏洞严重性

低危漏洞

中危漏洞

高危漏洞

严重漏洞

StorageVulnerabilityState

漏洞状态指示是否观察到或延迟(/抑制)漏洞。默认情况下,观察到漏洞。

  • 已观察:[默认状态]

枚举值

已观察

已延迟

误报

V1ScanImageRequest

字段名称 必填 可为空 类型 描述 格式

镜像名称

字符串

强制

布尔值

包含已暂停的

布尔值

集群

字符串

委托扫描的集群,可以是集群的名称或ID。