收集 Team Cymru Scout 威胁情报日志

支持的平台:

本文档介绍了如何使用 Google Cloud Storage 将 Team Cymru Scout 威胁情报数据注入到 Google Security Operations。Team Cymru Scout 提供威胁情报数据,包括账号使用情况指标、查询限制和基础查询统计信息,可帮助组织监控其安全状况和威胁情报消耗情况。

准备工作

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

  • Google SecOps 实例
  • 已启用 Cloud Storage API 的 GCP 项目
  • 创建和管理 GCS 存储分区的权限
  • 管理 GCS 存储分区的 IAM 政策的权限
  • 创建 Cloud Run 服务、Pub/Sub 主题和 Cloud Scheduler 作业的权限
  • 对 Team Cymru Scout 租户的特权访问权限

创建 Google Cloud Storage 存储桶

  1. 前往 Google Cloud 控制台
  2. 选择您的项目或创建新项目。
  3. 在导航菜单中,依次前往 Cloud Storage > 存储分区
  4. 点击创建存储分区
  5. 提供以下配置详细信息:

    设置
    为存储桶命名 输入一个全局唯一的名称(例如 team-cymru-scout-ti
    位置类型 根据您的需求进行选择(区域级、双区域、多区域)
    位置 选择营业地点(例如 us-central1
    存储类别 标准(建议用于经常访问的日志)
    访问权限控制 均匀(推荐)
    保护工具 可选:启用对象版本控制或保留政策
  6. 点击创建

收集 Team Cymru Scout API 凭据

  1. 登录 Team Cymru Scout Platform
  2. 前往 API 密钥页面。
  3. 点击创建按钮。
  4. 根据需要提供密钥说明。
  5. 点击创建密钥按钮以生成 API 密钥。
  6. 复制以下详细信息并将其保存在安全的位置:

    • SCOUT_API_TOKEN:API 访问令牌
    • SCOUT_BASE_URL:Scout API 基准网址(通常为 https://scout.cymru.com

测试 API 访问权限

  • 在继续进行集成之前,请先测试您的凭据:

    # Replace with your actual credentials
    SCOUT_API_TOKEN="your-api-token"
    SCOUT_BASE_URL="https://scout.cymru.com"
    
    # Test API access to usage endpoint
    curl -v --request GET \
      --url "${SCOUT_BASE_URL}/api/scout/usage" \
      --header "Authorization: Token ${SCOUT_API_TOKEN}"
    

为 Cloud Run 函数创建服务账号

Cloud Run 函数需要一个有权写入 GCS 存储桶的服务账号。

创建服务账号

  1. GCP 控制台中,依次前往 IAM 和管理 > 服务账号
  2. 点击创建服务账号
  3. 提供以下配置详细信息:
    • 服务账号名称:输入 team-cymru-scout-ti-sa
    • 服务账号说明:输入 Service account for Cloud Run function to collect Team Cymru Scout Threat Intelligence data
  4. 点击创建并继续
  5. 向此服务账号授予对项目的访问权限部分:
    1. 点击选择角色
    2. 搜索并选择 Storage Object Admin
    3. 点击 + 添加其他角色
    4. 搜索并选择 Cloud Run Invoker
    5. 点击 + 添加其他角色
    6. 搜索并选择 Cloud Functions Invoker
  6. 点击继续
  7. 点击完成

必须拥有这些角色,才能:

  • Storage Object Admin:将日志写入 GCS 存储桶并管理状态文件
  • Cloud Run Invoker:允许 Pub/Sub 调用函数
  • Cloud Functions Invoker:允许调用函数

授予对 GCS 存储桶的 IAM 权限

向服务账号授予对 GCS 存储桶的写入权限:

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

创建 Pub/Sub 主题

创建一个 Pub/Sub 主题,Cloud Scheduler 将向该主题发布消息,而 Cloud Run 函数将订阅该主题。

  1. GCP 控制台中,前往 Pub/Sub > 主题
  2. 点击创建主题
  3. 提供以下配置详细信息:
    • 主题 ID:输入 team-cymru-scout-ti-trigger
    • 将其他设置保留为默认值。
  4. 点击创建

创建 Cloud Run 函数以收集威胁情报数据

Cloud Run 函数由来自 Cloud Scheduler 的 Pub/Sub 消息触发,用于从 Team Cymru Scout API 中提取威胁情报数据并将其写入 GCS。

  1. GCP 控制台中,前往 Cloud Run
  2. 点击创建服务
  3. 选择函数(使用内嵌编辑器创建函数)。
  4. 配置部分中,提供以下配置详细信息:

    设置
    Service 名称 team-cymru-scout-ti-collector
    区域 选择与您的 GCS 存储桶匹配的区域(例如 us-central1
    运行时 选择 Python 3.12 或更高版本
  5. 触发器(可选)部分中:

    1. 点击 + 添加触发器
    2. 选择 Cloud Pub/Sub
    3. 在* 选择 Cloud Pub/Sub 主题*中,选择主题 team-cymru-scout-ti-trigger
    4. 点击保存
  6. 身份验证部分中:

    1. 选择需要进行身份验证
    2. 检查 Identity and Access Management (IAM)
  7. 向下滚动并展开容器、网络、安全性

  8. 前往安全性标签页:

    • 服务账号:选择服务账号 team-cymru-scout-ti-sa
  9. 前往容器标签页:

    1. 点击变量和密钥
    2. 为每个环境变量点击+ 添加变量
    变量名称 示例值
    GCS_BUCKET team-cymru-scout-ti
    GCS_PREFIX team-cymru/scout-ti/
    STATE_KEY team-cymru/scout-ti/state.json
    SCOUT_BASE_URL https://scout.cymru.com
    SCOUT_API_TOKEN your-scout-api-token
    COLLECTION_INTERVAL_HOURS 1
    HTTP_TIMEOUT 60
    HTTP_RETRIES 3
  10. 变量和密钥标签页中,向下滚动到请求

    • 请求超时:输入 600 秒(10 分钟)。
  11. 前往容器中的设置标签页:

    • 资源部分中:
      • 内存:选择 512 MiB 或更高值。
      • CPU:选择 1
    • 点击完成
  12. 向下滚动到执行环境

    • 选择默认(推荐)。
  13. 修订版本伸缩部分中:

    • 实例数下限:输入 0
    • 实例数上限:输入 100(或根据预期负载进行调整)。
  14. 点击创建

  15. 等待服务创建完成(1-2 分钟)。

  16. 创建服务后,系统会自动打开内嵌代码编辑器

添加函数代码

  1. 函数入口点中输入 main
  2. 在内嵌代码编辑器中,创建两个文件:

    • 第一个文件:main.py:
    import functions_framework
    from google.cloud import storage
    import json
    import os
    import urllib3
    from datetime import datetime, timezone
    import time
    
    # Initialize HTTP client
    http = urllib3.PoolManager()
    
    # Initialize Storage client
    storage_client = storage.Client()
    
    @functions_framework.cloud_event
    def main(cloud_event):
        """
        Cloud Run function triggered by Pub/Sub to fetch usage data from Team Cymru Scout API and write to GCS.
    
        Args:
            cloud_event: CloudEvent object containing Pub/Sub message
        """
    
        # Get environment variables
        bucket_name = os.environ.get('GCS_BUCKET')
        prefix = os.environ.get('GCS_PREFIX', 'team-cymru/scout-ti/')
        state_key = os.environ.get('STATE_KEY', 'team-cymru/scout-ti/state.json')
        collection_interval_hours = int(os.environ.get('COLLECTION_INTERVAL_HOURS', '1'))
        http_timeout = int(os.environ.get('HTTP_TIMEOUT', '60'))
        http_retries = int(os.environ.get('HTTP_RETRIES', '3'))
    
        # Team Cymru Scout API credentials
        scout_base_url = os.environ.get('SCOUT_BASE_URL', 'https://scout.cymru.com')
        scout_api_token = os.environ.get('SCOUT_API_TOKEN')
    
        if not all([bucket_name, scout_api_token]):
            print('Error: Missing required environment variables')
            return
    
        try:
            # Get GCS bucket
            bucket = storage_client.bucket(bucket_name)
    
            # Load state (last collection timestamp)
            state = load_state(bucket, state_key)
            now = time.time()
            last_collection = state.get('last_collection_ts', now - (collection_interval_hours * 3600))
    
            print(f'Collecting usage data at {iso_format(now)} (last collection: {iso_format(last_collection)})')
    
            # Fetch usage data from Team Cymru Scout API
            usage_data = fetch_usage_data(
                scout_base_url, 
                scout_api_token, 
                http_timeout,
                http_retries
            )
    
            if usage_data:
                # Add timestamp and event type
                usage_data['event_type'] = 'account_usage'
                usage_data['collection_timestamp'] = iso_format(now)
    
                # Write to GCS
                write_to_gcs(bucket, prefix, usage_data, now)
    
                # Update state
                save_state(bucket, state_key, {'last_collection_ts': now})
    
                print(f'Successfully collected and stored usage data')
            else:
                print('No usage data retrieved')
    
        except Exception as e:
            print(f'Error processing usage data: {str(e)}')
            raise
    
    def iso_format(ts):
        """Convert Unix timestamp to ISO 8601 format."""
        return time.strftime('%Y-%m-%dT%H:%M:%SZ', time.gmtime(ts))
    
    def load_state(bucket, key):
        """Load state from GCS."""
        try:
            blob = bucket.blob(key)
            if blob.exists():
                state_data = blob.download_as_text()
                return json.loads(state_data)
        except Exception as e:
            print(f'Warning: Could not load state: {str(e)}')
        return {}
    
    def save_state(bucket, key, state):
        """Save state to GCS."""
        try:
            blob = bucket.blob(key)
            blob.upload_from_string(
                json.dumps(state, separators=(',', ':')),
                content_type='application/json'
            )
        except Exception as e:
            print(f'Warning: Could not save state: {str(e)}')
    
    def http_request(url, method='GET', body=None, headers=None, timeout=60, retries=3):
        """Make HTTP request with retry logic."""
        attempt = 0
        while True:
            try:
                req_headers = headers or {}
                if body is not None:
                    req_headers['Content-Type'] = 'application/json'
                    body_bytes = body.encode('utf-8') if isinstance(body, str) else body
                else:
                    body_bytes = None
    
                response = http.request(
                    method,
                    url,
                    body=body_bytes,
                    headers=req_headers,
                    timeout=timeout
                )
    
                if response.status == 200:
                    return response.data, response.headers.get('Content-Type', 'application/json')
                elif response.status in (429, 500, 502, 503, 504) and attempt < retries:
                    delay = 1 + attempt
                    retry_after = response.headers.get('Retry-After')
                    if retry_after:
                        try:
                            delay = int(retry_after)
                        except:
                            pass
                    time.sleep(max(1, delay))
                    attempt += 1
                    continue
                else:
                    raise Exception(f'HTTP {response.status}: {response.data.decode("utf-8")}')
            except urllib3.exceptions.HTTPError as e:
                if attempt < retries:
                    time.sleep(1 + attempt)
                    attempt += 1
                    continue
                raise
    
    def fetch_usage_data(base_url, api_token, timeout, retries):
        """
        Fetch usage data from Team Cymru Scout API.
    
        Implementation mirrors the official Scout API example:
        curl --request GET --url 'https://scout.cymru.com/api/scout/usage' --header 'Authorization: Token valid_api_token'
        """
        # Use the documented /api/scout/usage endpoint
        url = f'{base_url}/api/scout/usage'
    
        # Use Token authentication as documented
        headers = {
            'Authorization': f'Token {api_token}',
            'Accept': 'application/json'
        }
    
        print(f'Fetching usage data from {url}')
    
        try:
            # Fetch data
            blob_data, content_type = http_request(url, method='GET', headers=headers, timeout=timeout, retries=retries)
    
            # Parse response
            usage_data = json.loads(blob_data.decode('utf-8'))
    
            print(f'Retrieved usage data: used_queries={usage_data.get("used_queries")}, query_limit={usage_data.get("query_limit")}')
    
            return usage_data
    
        except Exception as e:
            print(f'Error fetching usage data: {e}')
            return None
    
    def write_to_gcs(bucket, prefix, data, timestamp):
        """Write data to GCS."""
        # Create date-based path
        date_path = time.strftime('%Y/%m/%d', time.gmtime(timestamp))
        key = f'{prefix}{date_path}/usage_{int(timestamp)}.json'
    
        # Write as JSON
        blob = bucket.blob(key)
        blob.upload_from_string(
            json.dumps(data, separators=(',', ':')),
            content_type='application/json'
        )
        print(f'Wrote data to gs://{bucket.name}/{key}')
    
    • 第二个文件:requirements.txt:
    functions-framework==3.*
    google-cloud-storage==2.*
    urllib3>=2.0.0
    
  3. 点击部署以保存并部署该函数。

  4. 等待部署完成(2-3 分钟)。

创建 Cloud Scheduler 作业

Cloud Scheduler 会定期向 Pub/Sub 主题发布消息,从而触发 Cloud Run 函数。

  1. GCP Console 中,前往 Cloud Scheduler
  2. 点击创建作业
  3. 提供以下配置详细信息:

    设置
    名称 team-cymru-scout-ti-hourly
    区域 选择与 Cloud Run 函数相同的区域
    频率 0 * * * *(每小时一次,整点时)
    时区 选择时区(建议选择世界协调时间 [UTC])
    目标类型 Pub/Sub
    主题 选择主题 team-cymru-scout-ti-trigger
    消息正文 {}(空 JSON 对象)
  4. 点击创建

时间表频率选项

  • 根据数据量和延迟时间要求选择频次:

    频率 Cron 表达式 使用场景
    每隔 5 分钟 */5 * * * * 高频监控
    每隔 15 分钟 */15 * * * * 中频
    每小时 0 * * * * 标准(推荐)
    每 6 小时 0 */6 * * * 低频
    每天 0 0 * * * 每日使用情况跟踪

测试调度器作业

  1. Cloud Scheduler 控制台中,找到您的作业。
  2. 点击强制运行以手动触发。
  3. 等待几秒钟,然后前往 Cloud Run > 服务 > team-cymru-scout-ti-collector > 日志
  4. 验证函数是否已成功执行。
  5. 检查 GCS 存储桶,确认使用情况数据已写入。

检索 Google SecOps 服务账号

Google SecOps 使用唯一的服务账号从您的 GCS 存储桶中读取数据。您必须授予此服务账号对您的存储桶的访问权限。

获取服务账号电子邮件地址

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 点击配置单个 Feed
  4. Feed 名称字段中,输入 Feed 的名称(例如 Team Cymru Scout Threat Intelligence)。
  5. 选择 Google Cloud Storage V2 作为来源类型
  6. 选择 Team Cymru Scout 威胁情报作为日志类型
  7. 点击获取服务账号。系统会显示一个唯一的服务账号电子邮件地址,例如:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  8. 复制此电子邮件地址,以便在下一步中使用。

向 Google SecOps 服务账号授予 IAM 权限

Google SecOps 服务账号需要您的 GCS 存储桶的 Storage Object Viewer 角色。

  1. 前往 Cloud Storage > 存储分区
  2. 点击您的存储桶名称。
  3. 前往权限标签页。
  4. 点击授予访问权限
  5. 提供以下配置详细信息:
    • 添加主账号:粘贴 Google SecOps 服务账号电子邮件地址。
    • 分配角色:选择 Storage Object Viewer
  6. 点击保存

在 Google SecOps 中配置 Feed 以注入 Team Cymru Scout Threat Intelligence 数据

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed
  3. 点击配置单个 Feed
  4. Feed 名称字段中,输入 Feed 的名称(例如 Team Cymru Scout Threat Intelligence)。
  5. 选择 Google Cloud Storage V2 作为来源类型
  6. 选择 Team Cymru Scout 威胁情报作为日志类型
  7. 点击下一步
  8. 为以下输入参数指定值:

    • 存储桶网址:输入带有前缀路径的 GCS 存储桶 URI:

      gs://team-cymru-scout-ti/team-cymru/scout-ti/
      
        • team-cymru-scout-ti:您的 GCS 存储桶名称。
        • team-cymru/scout-ti/:存储日志的前缀/文件夹路径。
    • 来源删除选项:根据您的偏好选择删除选项:

      • 永不:转移后永不删除任何文件(建议用于测试)。
      • 删除已转移的文件:在成功转移后删除文件。
      • 删除已转移的文件和空目录:成功转移后删除文件和空目录。

    • 文件存在时间上限:包含在过去指定天数内修改的文件。默认值为 180 天。

    • 资产命名空间资产命名空间

    • 注入标签:要应用于此 Feed 中事件的标签。

  9. 点击下一步

  10. 最终确定界面中查看新的 Feed 配置,然后点击提交

UDM 映射表

日志字段 UDM 映射 逻辑
date_index additional.fields 已映射:indexasns_labelindexcountry_labelindexservice_label、`index...
as_index additional.fields.key 直接映射
asns.label additional.fields.key 直接映射
child_index_info additional.fields.key 直接映射
child_tag_info additional.fields.key 直接映射
code_index additional.fields.key 直接映射
code_index_info additional.fields.key 直接映射
country.label additional.fields.key 直接映射
data.date additional.fields.key 直接映射
date additional.fields.key 直接映射
ind additional.fields.key 直接映射
index additional.fields.key 直接映射
index_alt additional.fields.key 直接映射
index_as_info additional.fields.key 直接映射
index_children additional.fields.key 直接映射
index_children_child additional.fields.key 直接映射
index_info additional.fields.key 直接映射
index_local_top_services additional.fields.key 直接映射
index_peer_as_info additional.fields.key 直接映射
index_peer_cc additional.fields.key 直接映射
index_peer_tags additional.fields.key 直接映射
index_peer_top_services additional.fields.key 直接映射
index_tags additional.fields.key 直接映射
info_index additional.fields.key 直接映射
keyword additional.fields.key 直接映射
name_index additional.fields.key 直接映射
server_index additional.fields.key 直接映射
service.label additional.fields.key 直接映射
tag.label additional.fields.key 直接映射
tag_index additional.fields.key 直接映射
tag_info additional.fields.key 直接映射
account_name additional.fields.value.string_value 直接映射
account_type additional.fields.value.string_value 直接映射
alt_arr additional.fields.value.string_value 直接映射
as_info_arr.as_name additional.fields.value.string_value 直接映射
as_info_arr.asn additional.fields.value.string_value 直接映射
certs_arr.common_name additional.fields.value.string_value 直接映射
certs_arr.event_count additional.fields.value.string_value 直接映射
certs_arr.first_seen additional.fields.value.string_value 直接映射
certs_arr.ip additional.fields.value.string_value 直接映射
certs_arr.issuer additional.fields.value.string_value 直接映射
certs_arr.issuer_common_name additional.fields.value.string_value 直接映射
certs_arr.last_seen additional.fields.value.string_value 直接映射
certs_arr.md5 additional.fields.value.string_value 直接映射
certs_arr.not_after additional.fields.value.string_value 直接映射
certs_arr.not_before additional.fields.value.string_value 直接映射
certs_arr.port additional.fields.value.string_value 直接映射
certs_arr.self_signed additional.fields.value.string_value 直接映射
certs_arr.sha1 additional.fields.value.string_value 直接映射
certs_arr.sha256 additional.fields.value.string_value 直接映射
certs_arr.subject additional.fields.value.string_value 直接映射
certs_arr.valid_days additional.fields.value.string_value 直接映射
children_arr.id additional.fields.value.string_value 直接映射
children_arr.name additional.fields.value.string_value 直接映射
code additional.fields.value.string_value 直接映射
communications.event_count additional.fields.value.string_value 直接映射
data additional.fields.value.string_value 直接映射
data.count additional.fields.value.string_value 直接映射
end_date additional.fields.value.string_value 直接映射
event_count additional.fields.value.string_value 直接映射
event_type additional.fields.value.string_value 直接映射
fingerprint_arr.count additional.fields.value.string_value 直接映射
fingerprint_arr.event_count additional.fields.value.string_value 直接映射
fingerprint_arr.first_seen additional.fields.value.string_value 直接映射
fingerprint_arr.ip additional.fields.value.string_value 直接映射
fingerprint_arr.last_seen additional.fields.value.string_value 直接映射
fingerprint_arr.port additional.fields.value.string_value 直接映射
fingerprint_arr.signature additional.fields.value.string_value 直接映射
fingerprint_arr.type additional.fields.value.string_value 直接映射
fingerprints.event_count additional.fields.value.string_value 直接映射
fingerprints_arr.active_days additional.fields.value.string_value 直接映射
fingerprints_arr.distinct_ips additional.fields.value.string_value 直接映射
fingerprints_arr.event_count additional.fields.value.string_value 直接映射
fingerprints_arr.fingerprint additional.fields.value.string_value 直接映射
fingerprints_arr.first_seen additional.fields.value.string_value 直接映射
fingerprints_arr.ip additional.fields.value.string_value 直接映射
fingerprints_arr.last_seen additional.fields.value.string_value 直接映射
fingerprints_arr.port additional.fields.value.string_value 直接映射
fingerprints_arr.type additional.fields.value.string_value 直接映射
foundation_query_limit additional.fields.value.string_value 直接映射
indicator additional.fields.value.string_value 直接映射
indicator_type additional.fields.value.string_value 直接映射
local_country_codes additional.fields.value.string_value 直接映射
local_tags_arr.id additional.fields.value.string_value 直接映射
local_tags_arr.name additional.fields.value.string_value 直接映射
local_tags_children_arr.id additional.fields.value.string_value 直接映射
local_tags_children_arr.name additional.fields.value.string_value 直接映射
local_top_services_arr.description additional.fields.value.string_value 直接映射
local_top_services_arr.port additional.fields.value.string_value 直接映射
local_top_services_arr.proto_number additional.fields.value.string_value 直接映射
local_top_services_arr.service_name additional.fields.value.string_value 直接映射
open_ports.event_count additional.fields.value.string_value 直接映射
open_ports.unique_ports additional.fields.value.string_value 直接映射
open_ports_arr.css_color additional.fields.value.string_value 直接映射
open_ports_arr.event_count additional.fields.value.string_value 直接映射
open_ports_arr.first_seen additional.fields.value.string_value 直接映射
open_ports_arr.ip additional.fields.value.string_value 直接映射
open_ports_arr.last_seen additional.fields.value.string_value 直接映射
open_ports_arr.port additional.fields.value.string_value 直接映射
open_ports_arr.protocol additional.fields.value.string_value 直接映射
open_ports_arr.protocol_text additional.fields.value.string_value 直接映射
open_ports_arr.service additional.fields.value.string_value 直接映射
pdns.event_count additional.fields.value.string_value 直接映射
pdns_arr.active_days additional.fields.value.string_value 直接映射
pdns_arr.css_color additional.fields.value.string_value 直接映射
pdns_arr.distinct_ips additional.fields.value.string_value 直接映射
pdns_arr.domain additional.fields.value.string_value 直接映射
pdns_arr.domain_created additional.fields.value.string_value 直接映射
pdns_arr.domain_expires additional.fields.value.string_value 直接映射
pdns_arr.event_count additional.fields.value.string_value 直接映射
pdns_arr.first_seen additional.fields.value.string_value 直接映射
pdns_arr.ip additional.fields.value.string_value 直接映射
pdns_arr.last_seen additional.fields.value.string_value 直接映射
pdns_arr.registrar additional.fields.value.string_value 直接映射
pdns_arr.root additional.fields.value.string_value 直接映射
pdns_arr.tld additional.fields.value.string_value 直接映射
pdns_arr.type additional.fields.value.string_value 直接映射
peer_as_info_arr.as_name additional.fields.value.string_value 直接映射
peer_as_info_arr.asn additional.fields.value.string_value 直接映射
peer_country_codes additional.fields.value.string_value 直接映射
peer_tags_arr.id additional.fields.value.string_value 直接映射
peer_tags_arr.name additional.fields.value.string_value 直接映射
peer_tags_children_arr.id additional.fields.value.string_value 直接映射
peer_tags_children_arr.name additional.fields.value.string_value 直接映射
peer_tags_children_children_arr.id additional.fields.value.string_value 直接映射
peer_tags_children_children_arr.name additional.fields.value.string_value 直接映射
peer_top_services_arr.description additional.fields.value.string_value 直接映射
peer_top_services_arr.port additional.fields.value.string_value 直接映射
peer_top_services_arr.proto_number additional.fields.value.string_value 直接映射
peer_top_services_arr.service_name additional.fields.value.string_value 直接映射
peers_arr.event_count additional.fields.value.string_value 直接映射
peers_arr.first_seen additional.fields.value.string_value 直接映射
peers_arr.last_seen additional.fields.value.string_value 直接映射
peers_arr.local.ip additional.fields.value.string_value 直接映射
peers_arr.local.max_port additional.fields.value.string_value 直接映射
peers_arr.local.min_port additional.fields.value.string_value 直接映射
peers_arr.local.unique_ports additional.fields.value.string_value 直接映射
peers_arr.peer.ip additional.fields.value.string_value 直接映射
peers_arr.peer.max_port additional.fields.value.string_value 直接映射
peers_arr.peer.min_port additional.fields.value.string_value 直接映射
peers_arr.peer.unique_ports additional.fields.value.string_value 直接映射
peers_arr.proto additional.fields.value.string_value 直接映射
peers_arr.proto_text additional.fields.value.string_value 直接映射
query_limit additional.fields.value.string_value 直接映射
remaining_foundation_queries additional.fields.value.string_value 直接映射
remaining_queries additional.fields.value.string_value 直接映射
server.root additional.fields.value.string_value 直接映射
service_counts_arr.event_count additional.fields.value.string_value 直接映射
service_counts_arr.port additional.fields.value.string_value 直接映射
service_counts_arr.proto additional.fields.value.string_value 直接映射
service_counts_arr.proto_text additional.fields.value.string_value 直接映射
service_counts_arr.service.description additional.fields.value.string_value 直接映射
service_counts_arr.service.port additional.fields.value.string_value 直接映射
service_counts_arr.service.proto_number additional.fields.value.string_value 直接映射
service_counts_arr.service.service_name additional.fields.value.string_value 直接映射
start_date additional.fields.value.string_value 直接映射
summary.bgp_asn additional.fields.value.string_value 直接映射
summary.bgp_asname additional.fields.value.string_value 直接映射
summary.comms_total additional.fields.value.string_value 直接映射
summary.end_date additional.fields.value.string_value 直接映射
summary.insights.total additional.fields.value.string_value 直接映射
summary.open_ports.total additional.fields.value.string_value 直接映射
summary.open_ports.unique_ports additional.fields.value.string_value 直接映射
summary.pdns.total additional.fields.value.string_value 直接映射
summary.start_date additional.fields.value.string_value 直接映射
summary.total additional.fields.value.string_value 直接映射
summary.whois.as_name additional.fields.value.string_value 直接映射
summary.whois.asn additional.fields.value.string_value 直接映射
tag_data_arr.first_seen additional.fields.value.string_value 直接映射
tag_data_arr.last_seen additional.fields.value.string_value 直接映射
tag_data_arr.tag.css_color additional.fields.value.string_value 直接映射
tag_data_arr.tag.description additional.fields.value.string_value 直接映射
tag_data_arr.tag.id additional.fields.value.string_value 直接映射
tag_data_arr.tag.name additional.fields.value.string_value 直接映射
top_open_ports_arr.banner additional.fields.value.string_value 直接映射
top_open_ports_arr.banner_sha1 additional.fields.value.string_value 直接映射
top_open_ports_arr.event_count additional.fields.value.string_value 直接映射
top_open_ports_arr.first_seen additional.fields.value.string_value 直接映射
top_open_ports_arr.ip additional.fields.value.string_value 直接映射
top_open_ports_arr.last_seen additional.fields.value.string_value 直接映射
top_open_ports_arr.port additional.fields.value.string_value 直接映射
top_open_ports_arr.protocol additional.fields.value.string_value 直接映射
top_open_ports_arr.protocol_text additional.fields.value.string_value 直接映射
top_open_ports_arr.service additional.fields.value.string_value 直接映射
top_peers_arr.event_count additional.fields.value.string_value 直接映射
top_peers_arr.ip additional.fields.value.string_value 直接映射
used_foundation_queries additional.fields.value.string_value 直接映射
used_foundation_queries_percentage additional.fields.value.string_value 直接映射
used_queries additional.fields.value.string_value 直接映射
used_queries_percentage additional.fields.value.string_value 直接映射
val.as_name additional.fields.value.string_value 直接映射
val.asn additional.fields.value.string_value 直接映射
val.id additional.fields.value.string_value 直接映射
val.message additional.fields.value.string_value 直接映射
val.name additional.fields.value.string_value 直接映射
val.rating additional.fields.value.string_value 直接映射
whois.about_contact_address additional.fields.value.string_value 直接映射
whois.about_contact_city additional.fields.value.string_value 直接映射
whois.about_contact_country additional.fields.value.string_value 直接映射
whois.about_contact_email additional.fields.value.string_value 直接映射
whois.about_contact_person additional.fields.value.string_value 直接映射
whois.about_contact_phone additional.fields.value.string_value 直接映射
whois.about_contact_role additional.fields.value.string_value 直接映射
whois.abuse_contact_id additional.fields.value.string_value 直接映射
whois.admin_contact_city additional.fields.value.string_value 直接映射
whois.admin_contact_country additional.fields.value.string_value 直接映射
whois.admin_contact_email additional.fields.value.string_value 直接映射
whois.admin_contact_id additional.fields.value.string_value 直接映射
whois.admin_contact_person additional.fields.value.string_value 直接映射
whois.admin_contact_phone additional.fields.value.string_value 直接映射
whois.admin_contact_role additional.fields.value.string_value 直接映射
whois.cidr additional.fields.value.string_value 直接映射
whois.description additional.fields.value.string_value 直接映射
whois.mnt_by_email additional.fields.value.string_value 直接映射
whois.mnt_lower_email additional.fields.value.string_value 直接映射
whois.mnt_router_email additional.fields.value.string_value 直接映射
whois.modified additional.fields.value.string_value 直接映射
whois.net_handle additional.fields.value.string_value 直接映射
whois.org_address additional.fields.value.string_value 直接映射
whois.org_city additional.fields.value.string_value 直接映射
whois.org_email additional.fields.value.string_value 直接映射
whois.org_id additional.fields.value.string_value 直接映射
whois.org_phone additional.fields.value.string_value 直接映射
whois.tech_contact_address additional.fields.value.string_value 直接映射
whois.tech_contact_city additional.fields.value.string_value 直接映射
whois.tech_contact_country additional.fields.value.string_value 直接映射
whois.tech_contact_email additional.fields.value.string_value 直接映射
whois.tech_contact_id additional.fields.value.string_value 直接映射
whois.tech_contact_person additional.fields.value.string_value 直接映射
whois.tech_contact_phone additional.fields.value.string_value 直接映射
whois.tech_contact_role additional.fields.value.string_value 直接映射
x509.event_count additional.fields.value.string_value 直接映射
x509_arr.common_name additional.fields.value.string_value 直接映射
x509_arr.count additional.fields.value.string_value 直接映射
x509_arr.first_seen additional.fields.value.string_value 直接映射
x509_arr.human_readable additional.fields.value.string_value 直接映射
x509_arr.ip additional.fields.value.string_value 直接映射
x509_arr.issuer additional.fields.value.string_value 直接映射
x509_arr.issuer_common_name additional.fields.value.string_value 直接映射
x509_arr.last_seen additional.fields.value.string_value 直接映射
x509_arr.md5 additional.fields.value.string_value 直接映射
x509_arr.not_after additional.fields.value.string_value 直接映射
x509_arr.not_before additional.fields.value.string_value 直接映射
x509_arr.port additional.fields.value.string_value 直接映射
x509_arr.self_signed additional.fields.value.string_value 直接映射
x509_arr.serial additional.fields.value.string_value 直接映射
x509_arr.sha1 additional.fields.value.string_value 直接映射
x509_arr.sha256 additional.fields.value.string_value 直接映射
x509_arr.subject additional.fields.value.string_value 直接映射
x509_arr.validity_period additional.fields.value.string_value 直接映射
summary.last_seen entity.domain.last_seen_time 解析为 yyyy-MM-dd
summary.whois.net_name entity.domain.whois_server 直接映射
indicator entity.hostname 直接映射
ip entity.ip 已合并
country_code entity.location.country_or_region 直接映射
summary.geo_ip_cc entity.location.country_or_region 直接映射
summary.whois.org_name entity.network.organization_name 直接映射
end_date metadata.interval.end_time 解析为 yyyy-MM-dd
interval_end metadata.interval.end_time 解析为 yyyy-MM-dd
interval_start metadata.interval.start_time 解析为 yyyy-MM-dd
start_date metadata.interval.start_time 解析为 yyyy-MM-dd
不适用 additional.fields.key 常量:account_name
不适用 metadata.entity_type 常量:IP_ADDRESS
不适用 metadata.event_type 常量:GENERIC_EVENT
不适用 metadata.product_name 常量:Scout
不适用 metadata.threat.threat_verdict 常量:SUSPICIOUS
不适用 metadata.vendor_name 常量:TeamCymru

更新日志

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

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