REST Resource: projects.scanConfigs.scanRuns

资源:ScanRun

ScanRun 是一种仅限输出的资源,表示扫描的实际运行。下一个 ID:12

JSON 表示法
{
  "name": string,
  "executionState": enum (ExecutionState),
  "resultState": enum (ResultState),
  "startTime": string,
  "endTime": string,
  "urlsCrawledCount": string,
  "urlsTestedCount": string,
  "hasVulnerabilities": boolean,
  "progressPercent": integer,
  "errorTrace": {
    object (ScanRunErrorTrace)
  },
  "warningTraces": [
    {
      object (ScanRunWarningTrace)
    }
  ]
}
字段
name

string

ScanRun 的资源名称。该名称采用“projects/{projectId}/scanConfigs/{scanConfigId}/scanRuns/{scanRunId}”格式。 ScanRun ID 由系统生成。

executionState

enum (ExecutionState)

ScanRun 的执行状态。

resultState

enum (ResultState)

ScanRun 的结果状态。该字段只能在执行状态达到“FINISHED”后才能使用。

startTime

string (Timestamp format)

ScanRun 启动的时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

endTime

string (Timestamp format)

ScanRun 达到终止状态(完成或由用户终止)的时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

urlsCrawledCount

string (int64 format)

在此 ScanRun 期间抓取的网址数量。如果扫描正在进行中,则该值表示到目前为止已抓取的网址数量。

urlsTestedCount

string (int64 format)

在此 ScanRun 期间测试的网址数量。如果扫描正在进行中,则该值表示到目前为止已测试的网址数量。测试的网址数量通常大于抓取的网址数量,这是因为一个抓取的网址通常会使用多个测试有效负载进行测试。

hasVulnerabilities

boolean

此次扫描运行是否发现了任何漏洞。

progressPercent

integer

总完成百分比从 0 到 100 不等。如果扫描在队列中,则值为 0。如果扫描正在运行,则值的范围为 0 到 100。如果扫描完成,则值为 100。

errorTrace

object (ScanRunErrorTrace)

如果 resultState 为 ERROR,此字段会提供扫描终止的主要原因和更多详细信息(如果有)。

warningTraces[]

object (ScanRunWarningTrace)

警告列表(如果本次扫描运行期间遇到警告)。

ExecutionState

ScanRun 执行状态的类型。

枚举
EXECUTION_STATE_UNSPECIFIED 表示由内部服务器错误导致的无效状态。 应永不返回此值。
QUEUED 扫描正在队列中等待。
SCANNING 扫描正在进行中。
FINISHED 扫描完成或由用户终止。

ResultState

ScanRun 结果状态的类型。

枚举
RESULT_STATE_UNSPECIFIED 默认值。当 ScanRun 尚未完成时,返回此值。
SUCCESS 扫描完成,没有出现错误。
ERROR 扫描完成,出现错误。
KILLED 扫描由用户终止。

ScanRunErrorTrace

仅限输出。为 ScanRun 定义错误轨迹消息。

JSON 表示法
{
  "code": enum (Code),
  "scanConfigError": {
    object (ScanConfigError)
  },
  "mostCommonHttpErrorCode": integer
}
字段
code

enum (Code)

指示错误原因代码。

scanConfigError

object (ScanConfigError)

如果扫描遇到 SCAN_CONFIG_ISSUE 错误,此字段将包含在每次扫描运行之前执行的扫描配置验证期间遇到的错误消息。

mostCommonHttpErrorCode

integer

如果扫描遇到 TOO_MANY_HTTP_ERRORS,此字段会指示最常见的 HTTP 错误代码(如果有)。例如,如果此代码为 404,则表示扫描遇到了过多的 NOT_FOUND 响应。

代码

仅限输出。定义错误原因代码。下一个 ID:8

枚举
CODE_UNSPECIFIED 默认值从不使用。
INTERNAL_ERROR 表示扫描运行因内部服务器错误而失败。
SCAN_CONFIG_ISSUE 表示扫描配置错误,通常是由于 ScanConfig 设置(例如 startingUrls 或 DNS 配置)过时所致。
AUTHENTICATION_CONFIG_ISSUE 表示身份验证错误,通常是由于 ScanConfig 身份验证设置过时所致。
TIMED_OUT_WHILE_SCANNING 表示扫描操作超时,这通常是由于网站太大所致。
TOO_MANY_REDIRECTS 表示扫描时遇到过多重定向,可能是重定向到身份验证页面,也可能是重定向到扫描范围之外的某个其他页面。
TOO_MANY_HTTP_ERRORS 表示扫描网站页面时遇到大量错误。mostCommonHttpErrorCode 字段(如果可用)表示扫描期间遇到的最常见的 HTTP 错误代码。
STARTING_URLS_CRAWL_HTTP_ERRORS 表示某些起始网址在扫描期间返回了 HTTP 错误。

ScanConfigError

定义 CreateScanConfig 和 UpdateScanConfig API 在扫描配置验证失败时使用的自定义错误消息。如果扫描验证因扫描配置错误而失败,系统也会在 ScanRunErrorTrace 消息中报告此错误。

JSON 表示法
{
  "code": enum (Code),
  "fieldName": string
}
字段
code

enum (Code)

指示配置失败的原因代码。

fieldName

string

表示触发此错误的 ScanConfig 字段的完整名称,例如“scanConfig.max_qps”。此字段仅供问题排查之用,其实际值将来可能会发生变化。

代码

仅限输出。定义错误原因代码。下一个 ID:45

枚举
CODE_UNSPECIFIED 没有错误。
OK 没有错误。
INTERNAL_ERROR 表示内部服务器错误。除非根本原因确实不明,否则请勿使用此错误代码。
APPENGINE_API_BACKEND_ERROR 其中一个种子网址是 App Engine 网址,但由于 App Engine API 后端错误,我们无法验证扫描设置。
APPENGINE_API_NOT_ACCESSIBLE 种子网址之一是 App Engine 网址,但我们无法访问 App Engine API 来验证扫描设置。
APPENGINE_DEFAULT_HOST_MISSING 其中一个种子网址是 App Engine 网址,但未设置 App Engine 的默认主机。
CANNOT_USE_GOOGLE_COM_ACCOUNT Google 企业账号不能用于扫描。
CANNOT_USE_OWNER_ACCOUNT 扫描创建者的账号无法用于扫描。
COMPUTE_API_BACKEND_ERROR 此扫描定位到 Compute Engine,但由于 Compute Engine API 后端错误,我们无法验证扫描设置。
COMPUTE_API_NOT_ACCESSIBLE 此扫描定位到 Compute Engine,但我们无法访问 Compute Engine API 来验证扫描设置。
CUSTOM_LOGIN_URL_DOES_NOT_BELONG_TO_CURRENT_PROJECT 自定义登录网址不属于当前项目。
CUSTOM_LOGIN_URL_MALFORMED 自定义登录网址格式错误(无法解析)。
CUSTOM_LOGIN_URL_MAPPED_TO_NON_ROUTABLE_ADDRESS 自定义登录网址映射到 DNS 中的无法路由的 IP 地址。
CUSTOM_LOGIN_URL_MAPPED_TO_UNRESERVED_ADDRESS 自定义登录网址映射到的 IP 地址未预留给当前项目。
CUSTOM_LOGIN_URL_HAS_NON_ROUTABLE_IP_ADDRESS 自定义登录网址有一个无法路由的 IP 地址。
CUSTOM_LOGIN_URL_HAS_UNRESERVED_IP_ADDRESS 自定义登录网址的 IP 地址未预留给当前项目。
DUPLICATE_SCAN_NAME 已存在使用此名称(区分大小写)的其他扫描作业。
INVALID_FIELD_VALUE 某个字段被设置为无效值。
FAILED_TO_AUTHENTICATE_TO_TARGET 尝试对扫描目标进行身份验证时出错。
FINDING_TYPE_UNSPECIFIED 列出发现结果请求中未指定发现结果类型值。
FORBIDDEN_TO_SCAN_COMPUTE 扫描目标为 Compute Engine,但当前项目未列入 Google Compute Engine 扫描 Alpha 版访问权限的许可名单。
FORBIDDEN_UPDATE_TO_MANAGED_SCAN 用户尝试更新受管理的扫描
MALFORMED_FILTER 所提供的过滤条件格式有误。例如,无法解析、表达式中没有过滤条件类型,或同一过滤条件类型出现多次。
MALFORMED_RESOURCE_NAME 提供的资源名称格式错误(无法解析)。
PROJECT_INACTIVE 当前项目不在活动状态。
REQUIRED_FIELD 未设置必填字段。
RESOURCE_NAME_INCONSISTENT 资源名称中的项目 ID、scanconfig ID、scanrun ID 或发现 ID 不一致。
SCAN_ALREADY_RUNNING 请求启动的扫描已在运行中。
SCAN_NOT_RUNNING 请求停止的扫描未在运行。
SEED_URL_DOES_NOT_BELONG_TO_CURRENT_PROJECT 其中一个种子网址不属于当前项目。
SEED_URL_MALFORMED 其中一个种子网址格式有误(无法解析)。
SEED_URL_MAPPED_TO_NON_ROUTABLE_ADDRESS 其中一个种子网址映射到 DNS 中的无法路由的 IP 地址。
SEED_URL_MAPPED_TO_UNRESERVED_ADDRESS 其中一个种子网址映射到的 IP 地址未预留给当前项目。
SEED_URL_HAS_NON_ROUTABLE_IP_ADDRESS 其中一个种子网址具有可路由的 IP 地址。
SEED_URL_HAS_UNRESERVED_IP_ADDRESS 其中一个种子网址的 IP 地址未预留给当前项目。
SERVICE_ACCOUNT_NOT_CONFIGURED 未在项目下配置 Web Security Scanner 服务账号。
TOO_MANY_SCANS 项目已达到扫描次数上限。
UNABLE_TO_RESOLVE_PROJECT_INFO 解析当前项目的详细信息失败。
UNSUPPORTED_BLACKLIST_PATTERN_FORMAT 一个或多个列入了黑名单的模式格式有误。
UNSUPPORTED_FILTER 不支持所提供的过滤器。
UNSUPPORTED_FINDING_TYPE 所提供的发现类型不受支持。例如,我们不会提供指定发现结果类型的发现结果。
UNSUPPORTED_URL_SCHEME 所提供的一个或多个网址的网址架构不受支持。
CLOUD_ASSET_INVENTORY_ASSET_NOT_FOUND CAI 无法列出资产。

ScanRunWarningTrace

仅限输出。为 ScanRun 定义警告轨迹消息。警告轨迹可为客户提供有用信息,有助于提高扫描效率。

JSON 表示法
{
  "code": enum (Code)
}
字段
code

enum (Code)

指示警告代码。

代码

仅限输出。定义警告消息代码。下一个 ID:6

枚举
CODE_UNSPECIFIED 默认值从不使用。
INSUFFICIENT_CRAWL_RESULTS 表示扫描时发现的网址数量出乎意料的少。这有时是复杂的导航功能所致,有时是因为大量页面使用单个网址所致。
TOO_MANY_CRAWL_RESULTS 表示扫描时发现要测试的网址或冗余的网址过多。
TOO_MANY_FUZZ_TASKS 表示此扫描生成的测试太多。客户应尝试减少起始网址的数量、提高 QPS 速率,或使用排除的格式缩小扫描范围。
BLOCKED_BY_IAP 表示扫描已被 IAP 屏蔽。
NO_STARTING_URL_FOUND_FOR_MANAGED_SCAN 表示未找到扫描的种子

方法

get

获取 ScanRun。

list

列出给定 ScanConfig 下的 ScanRun,按 ScanRun 停止时间的降序排列。

stop

停止 ScanRun。