收集 Tenable Vulnerability Management 日志

支持的平台:

本文档介绍了如何将 Tenable Vulnerability Management(以前称为 Tenable.io)日志注入到 Google Security Operations。本文介绍了两种提取方法:一种是从 Tenable 导出 API 拉取数据的 Cloud Storage 管道,另一种是将数据推送到 Amazon S3 存储桶的 Tenable Data Stream。选择与您的环境相符的方法。

Tenable Vulnerability Management(以前称为 Tenable.io)是一个基于云的漏洞管理平台,由 Nessus 技术提供支持,可提供全面的漏洞覆盖范围,并能够预测应优先修复哪些安全问题。

解析器从 Tenable JSON 日志中提取漏洞和资产发现结果,并将字段映射到 UDM,从而处理网域、IPv4 和 IPv6 指标、严重程度和资产属性。

准备工作

请确保满足以下前提条件:

  • Google SecOps 实例
  • Tenable Vulnerability Management 控制台的特权访问权限(管理员角色)
  • 对于方法 1 (Google Cloud Storage): Google Cloud 已启用结算功能的项目,并且有权创建 Cloud Storage 存储分区、服务账号、Pub/Sub 主题、Cloud Run 函数和 Cloud Scheduler 作业
  • 对于方法 2 (Amazon S3):一个 AWS 账号,具有创建 S3 存储分区以及 Identity and Access Management (IAM) 角色和用户的权限

选择以下方法之一:

  • 方法 1:Google Cloud Storage。Cloud Run 函数从 Tenable Export API 拉取漏洞和资产数据,并将其写入 Cloud Storage 存储桶。使用此方法可使流水线完全处于 Google Cloud状态。
  • 方法 2:Amazon S3。Tenable Data Stream 会将您的 Tenable 数据持续推送到 Amazon S3 存储桶。如果您偏好使用内置的 Tenable 推送集成,请使用此方法。Tenable Data Stream 仅支持 Amazon S3。

方法 1:Google Cloud Storage

此方法使用由 Cloud Scheduler 通过 Pub/Sub 触发的 Cloud Run 函数,从 Tenable Vulnerability Management Export API 中提取漏洞和资产数据,并将其写入 Cloud Storage 存储桶。然后,Google SecOps 会从该存储桶中提取数据。

收集 Tenable Vulnerability Management API 凭据

  1. https://cloud.tenable.com 登录 Tenable Vulnerability Management
  2. 点击右上角的用户个人资料图标,然后选择我的账号
  3. 点击 API 密钥
  4. 点击生成
  5. 复制并保存访问密钥密钥

创建 Google Cloud Storage 存储桶

  1. Google Cloud 控制台中,前往 Cloud Storage > 存储分区
  2. 点击创建
  3. 提供以下配置详细信息:
    • 名称:输入一个全局唯一的名称(例如 tenable-vulnerability-logs)。
    • 位置类型:选择一个位置。
    • 存储类别:选择标准
  4. 点击创建

为 Cloud Run 函数创建服务账号

  1. Google Cloud 控制台中,依次前往 IAM 和管理 > 服务账号
  2. 点击创建服务账号
  3. 提供以下配置详细信息:
    • 服务账号名称:输入 tenable-collector-sa
    • 服务账号说明:输入 Service account for the Tenable export collector
  4. 点击创建并继续
  5. 点击完成

向服务账号授予对相应存储桶的访问权限

  1. 前往 Cloud Storage > 存储分区
  2. 点击您的存储桶名称(例如 tenable-vulnerability-logs)。
  3. 前往权限标签页。
  4. 点击授予访问权限
  5. 提供以下配置详细信息:
    • 添加主账号:输入服务账号电子邮件地址(例如 tenable-collector-sa@PROJECT_ID.iam.gserviceaccount.com)。
    • 分配角色:选择 Storage Object Admin
  6. 点击保存

创建 Pub/Sub 主题

  1. Google Cloud 控制台中,前往 Pub/Sub > 主题
  2. 点击创建主题
  3. 输入主题 ID(例如 tenable-collector-trigger)。
  4. 点击创建

创建 Cloud Run 函数以收集日志

Cloud Run 函数由来自 Cloud Scheduler 的 Pub/Sub 消息触发。它使用您的 API 密钥向 Tenable 导出 API 进行身份验证,运行漏洞和资产导出,并将每个导出块以 JSON 格式写入存储桶。

  1. Google Cloud 控制台中,前往 Cloud Run
  2. 点击创建服务
  3. 选择函数以使用内嵌代码编辑器。
  4. 提供以下配置详细信息:
    • 服务名称:输入 tenable-collector
    • 区域:选择与您的存储桶匹配的区域(例如 us-central1)。
    • 运行时:选择 Python 3.12 或更高版本。
  5. 触发器部分中:
    1. 点击添加触发器
    2. 选择 Cloud Pub/Sub
    3. 选择 Cloud Pub/Sub 主题部分,选择 tenable-collector-trigger
    4. 点击保存
  6. 身份验证部分中,选择需要进行身份验证
  7. 展开容器、网络、安全性,然后在安全性标签页上将服务账号设置为 tenable-collector-sa
  8. 容器 > 变量和密钥标签页中,添加以下环境变量:

    变量名称 示例值
    TIO_ACCESS_KEY your-tenable-access-key
    TIO_SECRET_KEY your-tenable-secret-key
    GCS_BUCKET tenable-vulnerability-logs
    GCS_PREFIX tenable/
    NUM_ASSETS 1000
    ASSET_CHUNK_SIZE 1000
    SEVERITIES low,medium,high,critical
    HTTP_TIMEOUT 120
  9. 请求超时设置为 600 秒,并将内存设置为 512 MiB 或更高。

  10. 点击创建。服务创建完成后,系统会打开内嵌代码编辑器。

添加函数代码

  1. 函数入口点字段中,输入 main
  2. 在内嵌代码编辑器中,将 requirements.txt 的内容替换为以下内容:

    functions-framework==3.*
    google-cloud-storage==2.*
    requests==2.*
    
  3. main.py 的内容替换为以下代码:

    import json
    import os
    import time
    
    import functions_framework
    import requests
    from google.cloud import storage
    
    BASE = "https://cloud.tenable.com"
    ACCESS_KEY = os.environ["TIO_ACCESS_KEY"]
    SECRET_KEY = os.environ["TIO_SECRET_KEY"]
    GCS_BUCKET = os.environ["GCS_BUCKET"]
    GCS_PREFIX = os.environ.get("GCS_PREFIX", "tenable/")
    NUM_ASSETS = int(os.environ.get("NUM_ASSETS", "1000"))
    ASSET_CHUNK_SIZE = int(os.environ.get("ASSET_CHUNK_SIZE", "1000"))
    SEVERITIES = [s for s in os.environ.get("SEVERITIES", "low,medium,high,critical").split(",") if s]
    HTTP_TIMEOUT = int(os.environ.get("HTTP_TIMEOUT", "120"))
    
    HEADERS = {
        "X-ApiKeys": f"accessKey={ACCESS_KEY};secretKey={SECRET_KEY}",
        "Content-Type": "application/json",
        "Accept": "application/json",
    }
    
    storage_client = storage.Client()
    
    def _request(method, path, **kwargs):
        """Call the Tenable API, honoring HTTP 429 Retry-After. Do not multi-thread."""
        while True:
            resp = requests.request(method, f"{BASE}{path}", headers=HEADERS, timeout=HTTP_TIMEOUT, **kwargs)
            if resp.status_code == 429:
                time.sleep(int(resp.headers.get("Retry-After", "30")))
                continue
            resp.raise_for_status()
            return resp
    
    def _write_chunk(bucket, name, payload):
        """Write one export chunk (a JSON array) to the bucket."""
        blob = bucket.blob(f"{GCS_PREFIX}{name}")
        blob.upload_from_string(json.dumps(payload), content_type="application/json")
    
    def _run_export(bucket, label, request_path, status_kind, body):
        """Request an export, poll until FINISHED, and write each chunk to the bucket."""
        export_uuid = _request("POST", request_path, json=body).json()["export_uuid"]
        written = set()
        while True:
            status = _request("GET", f"/{status_kind}/export/{export_uuid}/status").json()
            for chunk_id in status.get("chunks_available", []):
                if chunk_id in written:
                    continue
                chunk = _request("GET", f"/{status_kind}/export/{export_uuid}/chunks/{chunk_id}").json()
                _write_chunk(bucket, f"{label}_{export_uuid}_{chunk_id}.json", chunk)
                written.add(chunk_id)
            state = status.get("status")
            if state == "FINISHED":
                break
            if state in ("ERROR", "CANCELLED"):
                raise RuntimeError(f"{label} export {export_uuid} ended as {state}")
            time.sleep(15)
        print(f"{label}: wrote {len(written)} chunk(s) for export {export_uuid}")
    
    @functions_framework.cloud_event
    def main(cloud_event):
        bucket = storage_client.bucket(GCS_BUCKET)
        # Vulnerabilities: request path and status/chunk paths both use /vulns/export; body uses num_assets.
        _run_export(
            bucket, "vulns", "/vulns/export", "vulns",
            {"num_assets": NUM_ASSETS, "include_unlicensed": False, "filters": {"severity": SEVERITIES}},
        )
        # Assets: request path is /assets/v2/export (body uses chunk_size); status/chunk paths drop the v2.
        _run_export(
            bucket, "assets", "/assets/v2/export", "assets",
            {"chunk_size": ASSET_CHUNK_SIZE},
        )
        return "ok"
    
  4. 点击保存并部署

创建 Cloud Scheduler 作业

  1. Google Cloud 控制台中,前往 Cloud Scheduler
  2. 点击创建作业
  3. 提供以下配置详细信息:
    • 名称:输入 tenable-collector-schedule
    • 区域:选择与 Cloud Run 函数相同的区域。
    • 频率:输入 cron 时间表(例如,0 */6 * * * 表示每 6 小时运行一次)。
    • 时区:选择您的时区。
  4. 对于目标类型,选择 Pub/Sub
  5. 选择 tenable-collector-trigger 主题。
  6. 消息正文中,输入 run
  7. 点击创建

在 Google SecOps 中配置信息源,以从 Google Cloud Storage 中注入数据

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 点击配置单个 Feed
  4. Feed 名称字段中,输入 Feed 的名称(例如 Tenable Vulnerability Management GCS)。
  5. 选择 Google Cloud Storage V2 作为来源类型
  6. 选择 tenable.io 作为日志类型
  7. 点击获取服务账号。复制显示的服务账号电子邮件地址。
  8. 点击下一步
  9. 为以下输入参数指定值:
    • 存储桶 URI:输入存储桶 URI,包括前缀(例如 gs://tenable-vulnerability-logs/tenable/)。
    • 源删除选项:根据您的偏好选择删除选项。
    • 文件存在时间上限:包含在过去指定天数内修改的文件。默认值为 180 天。
  10. 点击下一步,检查配置,然后点击提交

向 Google SecOps 服务账号授予对相应存储桶的访问权限

  1. 前往 Cloud Storage > 存储桶,然后点击您的存储桶名称。
  2. 前往权限标签页,然后点击授予访问权限
  3. 添加主账号中,输入您从 Feed 中复制的服务账号电子邮件地址。
  4. 分配 Storage Object Viewer 角色(如果您选择了源删除选项,则分配 Storage Object Admin 角色)。
  5. 点击保存

方法 2:Amazon S3

此方法使用 Tenable Data Stream 以 JSON 格式将您的 Tenable 数据持续推送到 Amazon S3 存储桶。然后,Google SecOps 会从该存储桶中提取数据。Tenable Data Stream 仅支持 Amazon S3,并使用 Tenable 承担的 IAM 角色(与外部 ID 建立的跨账号信任关系)向您的 AWS 账号进行身份验证。

创建 Amazon S3 存储桶

  1. 按照 AWS 指南创建存储桶创建一个 Amazon S3 存储桶
  2. 保存存储桶名称区域以供日后参考(例如 tenable-vm-logs)。

为 Tenable Data Stream 创建 IAM 角色

Tenable 会代入此角色,以便将数据写入您的存储桶。Tenable 会在控制台中提供确切的信任政策和存储桶政策,包括 Tenable AWS 账号和生成的外部 ID。

  1. Tenable Vulnerability Management 中,依次前往设置 > Tenable Data Stream,然后点击添加集成。请保持此对话框处于打开状态,以便在后续步骤中复制信任政策和外部 ID。
  2. 在 AWS 控制台中,依次前往 IAM > 角色 > 创建角色
  3. 选择自定义信任政策,然后从 Tenable IAM 角色指南面板中粘贴信任政策(点击复制信任政策)。信任政策具有以下结构:

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": { "AWS": "arn:aws:iam::<TENABLE_AWS_ACCOUNT_ID>:root" },
                "Action": "sts:AssumeRole",
                "Condition": { "StringEquals": { "sts:ExternalId": "<TENABLE_EXTERNAL_ID>" } }
            }
        ]
    }
    
  4. 点击下一步,然后创建并附加一项政策,以授予 Tenable 对相应存储桶的写入权限(将 tenable-vm-logs 替换为您的存储桶名称):

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": ["s3:PutObject", "s3:GetBucketLocation", "s3:ListBucket"],
                "Resource": [
                    "arn:aws:s3:::tenable-vm-logs",
                    "arn:aws:s3:::tenable-vm-logs/*"
                ]
            }
        ]
    }
    
  5. 输入角色名称(例如 TenableDataStreamRole),然后点击创建角色。保存角色名称和您的 AWS 账号 ID

配置 Tenable 数据流

  1. 返回到 Tenable Vulnerability Management 中的添加集成对话框(设置 > Tenable 数据流)。
  2. 提供以下配置详细信息:
    • 集成名称:输入一个描述性名称(例如 Google SecOps Integration)。
    • 集成类型:选择 AWS S3(唯一可用的选项)。
    • 集成数据:选择要流式传输的数据类型(例如资产漏洞主机审核)。
    • 电子邮件通知(可选):输入一个电子邮件地址,以便在直播状态发生变化时接收通知。
  3. 点击下一步,然后提供 IAM 角色详细信息:
    • AWS 账号 ID:输入您的 AWS 账号 ID。
    • IAM 角色名称:输入您创建的角色(例如 TenableDataStreamRole)。
    • 外部 ID:使用 Tenable 在此对话框中显示的外部 ID(与信任政策中引用的值相同)。
  4. 点击下一步,然后提供存储桶详细信息:
    • S3 存储桶名称:输入您的存储桶名称(例如 tenable-vm-logs)。
    • 路径前缀:输入用于整理文件的前缀(例如 tenable/)。
  5. 点击保存。Tenable 会持续将 JSON 数据写入您的存储桶。

为 Google SecOps 创建一个 IAM 用户,以便读取存储桶

Google SecOps 使用单独的只读 IAM 用户读取存储桶(此身份与 Tenable 用于写入的角色无关)。

  1. 在 AWS 控制台中,依次前往 IAM > 用户 > 创建用户
  2. 输入用户名(例如 secops-tenable-reader),然后点击下一步
  3. 点击下一步,然后点击创建用户
  4. 选择相应用户,前往权限标签页,然后依次点击添加权限 > 创建内嵌政策 > JSON。粘贴以下只读政策(将 tenable-vm-logs 替换为您的存储桶名称):

    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": ["s3:GetObject", "s3:ListBucket", "s3:GetBucketLocation"],
                "Resource": [
                    "arn:aws:s3:::tenable-vm-logs",
                    "arn:aws:s3:::tenable-vm-logs/*"
                ]
            }
        ]
    }
    
  5. 前往安全凭据标签页,然后点击创建访问密钥

  6. 选择第三方服务作为用例,点击下一步,然后点击创建访问密钥

  7. 复制并保存访问密钥私有访问密钥

在 Google SecOps 中配置 Feed 以从 Amazon S3 注入数据

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 点击配置单个 Feed
  4. Feed 名称字段中,输入 Feed 的名称(例如 Tenable Vulnerability Management S3)。
  5. 选择 Amazon S3 V2 作为来源类型
  6. 选择 tenable.io 作为日志类型
  7. 点击下一步
  8. 为以下输入参数指定值:
    • S3 URI:输入存储桶 URI,包括前缀(例如 s3://tenable-vm-logs/tenable/)。
    • 源删除选项:根据您的偏好选择删除选项。
    • 文件存在时间上限:包含在过去指定天数内修改的文件。默认值为 180 天。
    • 访问密钥 ID:输入只读 IAM 用户访问密钥。
    • 私有访问密钥:输入只读 IAM 用户私有密钥。
  9. 点击下一步,检查配置,然后点击提交

UDM 映射表

日志字段 UDM 映射 逻辑
payload.path about.file.full_path 直接映射
payload.md5 about.file.md5 直接映射
asset.uuid entity.asset.asset_id 直接映射
id entity.asset.asset_id 直接映射
payload_id entity.asset.asset_id 直接映射
ssh_fingerprints.0 entity.asset.attribute.labels.value 直接映射
system_types.0 entity.asset.attribute.labels.value 直接映射
asset.hostname entity.asset.hostname 直接映射
asset.last_scan_target entity.asset.hostname 直接映射
host entity.asset.hostname 直接映射
scan.target entity.asset.hostname 直接映射
asset.ipv4 entity.asset.ip 已合并
ip entity.asset.ip 已合并
ipaddr entity.asset.ip 已合并
prinIP entity.asset.ip 已合并
scan_ipaddr entity.asset.ip 已合并
updateIndex entity.asset.ip 已映射:0update_ipv4_0
update_ipv4_0 entity.asset.ip 已合并
asset.mac_address entity.asset.mac 已合并
mac entity.asset.mac 已合并
fqdns.0 entity.asset.network_domain 直接映射
netbios_names.0 entity.asset.network_domain 直接映射
os_family entity.asset.platform_software.platform 直接映射
asset.operating_system.0 entity.asset.platform_software.platform_version 直接映射
asset.uuid entity.asset.product_object_id 直接映射
id entity.asset.product_object_id 直接映射
payload_id entity.asset.product_object_id 直接映射
vuln.vulnerabilities entity.asset.vulnerabilities 已合并
vuln1.vulnerabilities entity.asset.vulnerabilities 已合并
vuln2.vulnerabilities entity.asset.vulnerabilities 已合并
asset.device_type metadata.description 直接映射
plugin.description metadata.description 直接映射
has_entity_asset metadata.entity_type 已映射:trueASSET
first_found metadata.event_timestamp 解析为 ISO8601
last_found metadata.event_timestamp 解析为 ISO8601
scan.completed_at metadata.event_timestamp 解析为 ISO8601
scan.started_at metadata.event_timestamp 解析为 ISO8601
has_entity_asset metadata.product_name 已映射:trueTenable IO
has_entity_asset metadata.vendor_name 已映射:trueTenable IO
port.protocol network.ip_protocol 直接映射
asset.network_id network.session_id 直接映射
sec_res.description security_result.description 直接映射
asset_agent_uuid_label security_result.detection_fields 已合并
asset_bios_uuid_label security_result.detection_fields 已合并
asset_netbios_name_label security_result.detection_fields 已合并
finding_id_label security_result.detection_fields 已合并
plugin_family_id_label security_result.detection_fields 已合并
plugin_family_label security_result.detection_fields 已合并
plugin_risk_factor_label security_result.detection_fields 已合并
plugin_xrefs_label security_result.detection_fields 已合并
risk_factor_label security_result.detection_fields 已合并
scan_label security_result.detection_fields 已合并
scan_schedule_uuid_label security_result.detection_fields 已合并
scan_started_at_label security_result.detection_fields 已合并
scan_uuid_label security_result.detection_fields 已合并
see_also_label security_result.detection_fields 已合并
severity_default_id_label security_result.detection_fields 已合并
severity_id_label security_result.detection_fields 已合并
severity_label security_result.detection_fields 已合并
severity_modification_type_label security_result.detection_fields 已合并
update_finding_id_label security_result.detection_fields 已合并
update_first_scan_time_label security_result.detection_fields 已合并
update_last_licensed_scan_date_label security_result.detection_fields 已合并
update_last_scan_id_label security_result.detection_fields 已合并
update_last_scan_time_label security_result.detection_fields 已合并
update_last_schedule_id_label security_result.detection_fields 已合并
update_plugin_cvss3_vector_access_complexity_label security_result.detection_fields 已合并
update_plugin_cvss3_vector_access_vector_label security_result.detection_fields 已合并
update_plugin_cvss3_vector_authentication_label security_result.detection_fields 已合并
update_plugin_cvss3_vector_availability_impact_label security_result.detection_fields 已合并
update_plugin_cvss3_vector_confidentiality_impact_label security_result.detection_fields 已合并
update_plugin_cvss3_vector_integrity_impact_label security_result.detection_fields 已合并
update_plugin_cvss3_vector_privileges_required_label security_result.detection_fields 已合并
update_plugin_cvss3_vector_raw_label security_result.detection_fields 已合并
update_plugin_cvss3_vector_user_interaction_label security_result.detection_fields 已合并
update_plugin_cvss_base_score_label security_result.detection_fields 已合并
update_plugin_cvss_vector_access_complexity_label security_result.detection_fields 已合并
update_plugin_cvss_vector_access_vector_label security_result.detection_fields 已合并
update_plugin_cvss_vector_authentication_label security_result.detection_fields 已合并
update_plugin_cvss_vector_availability_impact_label security_result.detection_fields 已合并
update_plugin_cvss_vector_confidentiality_impact_label security_result.detection_fields 已合并
update_plugin_cvss_vector_integrity_impact_label security_result.detection_fields 已合并
update_plugin_cvss_vector_raw_label security_result.detection_fields 已合并
update_plugin_see_also_label security_result.detection_fields 已合并
update_plugin_stig_severity_label security_result.detection_fields 已合并
update_plugin_vpr_driver_cvss3_impact_score_label security_result.detection_fields 已合并
update_plugin_vpr_drivers_age_of_vuln_lower_bound_label security_result.detection_fields 已合并
update_plugin_vpr_drivers_age_of_vuln_upper_bound_label security_result.detection_fields 已合并
update_plugin_vpr_drivers_cvss_impact_score_predicted_label security_result.detection_fields 已合并
update_plugin_vpr_drivers_exploit_code_maturity_label security_result.detection_fields 已合并
update_plugin_vpr_drivers_product_coverage_label security_result.detection_fields 已合并
update_plugin_vpr_drivers_threat_intensity_last28_label security_result.detection_fields 已合并
update_plugin_vpr_drivers_threat_recency_lower_bound_label security_result.detection_fields 已合并
update_plugin_vpr_drivers_threat_recency_upper_bound_label security_result.detection_fields 已合并
update_plugin_vpr_score_label security_result.detection_fields 已合并
update_plugin_vpr_updated_label security_result.detection_fields 已合并
update_plugin_vpr_v2_cve_id_label security_result.detection_fields 已合并
update_plugin_vpr_v2_exploit_code_maturity_label security_result.detection_fields 已合并
update_plugin_vpr_v2_in_the_news_intensity_last30_label security_result.detection_fields 已合并
update_plugin_vpr_v2_in_the_news_recency_label security_result.detection_fields 已合并
update_plugin_vpr_v2_malware_observations_intensity_last30_label security_result.detection_fields 已合并
update_plugin_vpr_v2_malware_observations_recency_label security_result.detection_fields 已合并
update_plugin_vpr_v2_on_cisa_kev_label security_result.detection_fields 已合并
update_plugin_vuln_publication_date_label security_result.detection_fields 已合并
update_plugin_xrefs_id_type_label security_result.detection_fields 已合并
update_plugin_xrefs_type_label security_result.detection_fields 已合并
update_scan_started_at_label security_result.detection_fields 已合并
update_severity_default_id_label security_result.detection_fields 已合并
update_severity_id_label security_result.detection_fields 已合并
update_severity_modification_type_label security_result.detection_fields 已合并
updates_asset_netbios_name_label security_result.detection_fields 已合并
updates_plugin_vpr_v2_exploit_probability_label security_result.detection_fields 已合并
updates_plugin_vpr_v2_label security_result.detection_fields 已合并
updates_plugin_vpr_v2_percentile_label security_result.detection_fields 已合并
updates_plugin_vpr_v2_vpr_severity_label security_result.detection_fields 已合并
version_label security_result.detection_fields 已合并
xref_label security_result.detection_fields 已合并
severity security_result.severity 直接映射
不适用 entity.asset.attribute.labels.key 常量:ssh_fingerprints
不适用 metadata.entity_type 常量:ASSET
不适用 metadata.product_name 常量:Tenable IO
不适用 metadata.vendor_name 常量:Tenable IO
不适用 security_result.severity 常量:CRITICAL

更新日志

查看相应解析器的更改日志

需要更多帮助?获得社区成员和 Google SecOps 专业人士的解答。