收集 Trellix Email Security Cloud(原称 FireEye ETP)日志

解析器版本:10.0

支持的平台:

本文档介绍了如何使用 Google Cloud Storage V2 通过 Cloud Run 函数将 Trellix Email Security - Cloud Edition(以前称为 FireEye ETP)日志注入到 Google Security Operations。

Trellix Email Security - Cloud Edition 是一款基于云的电子邮件安全网关,可防范高级电子邮件威胁,包括网络钓鱼、恶意软件、企业电子邮件入侵和冒充攻击。该解决方案可提供全面的入站和出站电子邮件安全防护,包括网址防御、附件沙盒和由 Trellix 高级研究中心提供支持的实时威胁情报。

准备工作

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

  • Google SecOps 实例。
  • 已启用以下 API 的 Google Cloud 云项目:
    • Cloud Storage
    • Cloud Run functions
    • Cloud Scheduler
    • Pub/Sub
    • Cloud Build
  • 创建和管理 GCS 存储分区、Cloud Run 函数、Pub/Sub 主题和 Cloud Scheduler 作业的权限。
  • 对 FireEye ETP(Trellix Email Security - Cloud Edition)管理控制台的特权访问权限。
  • 在 Trellix 门户中创建 API 密钥的管理员权限。
  • 具有对“提醒”端点访问权限的 FireEye ETP API 密钥。

创建 Google Cloud Storage 存储桶

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

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

收集 FireEye ETP API 凭据

如需让 Cloud Run 函数能够从 FireEye ETP 中检索提醒,您需要创建具有相应权限的 API 密钥。

创建 API 密钥

  1. 登录 FireEye ETP 管理控制台。
  2. 在顶部导航栏中,点击我的设置
  3. 点击 API 密钥标签页。
  4. 点击 Create API Key
  5. 产品部分,选择电子邮件威胁防护
  6. 使用权部分,选择所有可用的使用权。
  7. 点击创建生成

记录 API 凭据

记录以下信息:

  • API 密钥:您的唯一 API 密钥。
  • 基本网址:您所在区域的完全限定域名(例如 etp.us.fireeye.com)。

常见的基准网址包括:

  • etp.us.fireeye.com(美国)
  • etp.eu.fireeye.com(欧盟)
  • etp.ap.fireeye.com(亚太地区)

验证 API 权限

产品/使用权 用途
电子邮件威胁防护 访问电子邮件提醒、跟踪数据和威胁信息
所有使用权 对提醒、电子邮件跟踪和隔离区 API 的完整访问权限

测试 API 访问权限

  • 验证您的 API 密钥是否有效:

    curl -s -o /dev/null -w "%{http_code}" \
        -H "x-fireeye-api-key: YOUR_API_KEY" \
        "[https://etp.us.fireeye.com/api/v1/alerts?size=1](https://etp.us.fireeye.com/api/v1/alerts?size=1)"
    

200 响应代码确认 API 密钥有效。

为 Cloud Run 函数创建服务账号

Cloud Run 函数需要一个具有以下权限的服务账号:将日志写入 GCS 和接收 Pub/Sub 消息。

  1. Google Cloud 控制台中,依次前往 IAM 和管理 > 服务账号
  2. 点击创建服务账号
  3. 提供名称(例如 fireeye-etp-ingestion)和说明。
  4. 授予以下角色:
    • Storage Object Admin
    • Cloud Run Invoker
  5. 点击完成

创建 Pub/Sub 主题

  1. Google Cloud 控制台中,前往 Pub/Sub > 主题
  2. 点击创建主题
  3. 主题 IDfireeye-etp-trigger
  4. 点击创建

创建 Cloud Run 函数

创建一个 Cloud Run 函数,用于查询 FireEye ETP Alerts API 并将结果以 NDJSON 格式写入 GCS。

准备函数代码

  1. Google Cloud 控制台中,前往 Cloud Run 函数
  2. 点击创建函数
  3. 环境第 2 代
  4. 函数名称fireeye-etp-ingestion
  5. 区域:选择与您的 GCS 存储桶相同的区域。
  6. 触发器类型Cloud Pub/Sub
  7. Cloud Pub/Sub 主题fireeye-etp-trigger
  8. 服务账号:选择之前创建的服务账号。
  9. 点击下一步
  10. 运行时Python 3.11(或更高版本)。
  11. 入口点main
  12. main.py 中,粘贴以下内容:

    """Cloud Run function to ingest FireEye ETP alerts into GCS."""
    
    import json
    import os
    import time
    from datetime import datetime, timedelta, timezone
    
    import functions_framework
    import urllib3
    from google.cloud import storage
    
    GCS_BUCKET = os.environ["GCS_BUCKET"]
    GCS_PREFIX = os.environ.get("GCS_PREFIX", "fireeye_etp")
    STATE_KEY = os.environ.get("STATE_KEY", "fireeye_etp_state.json")
    API_KEY = os.environ["API_KEY"]
    API_BASE = os.environ.get("API_BASE", "etp.us.fireeye.com")
    MAX_RECORDS = int(os.environ.get("MAX_RECORDS", "10000"))
    PAGE_SIZE = int(os.environ.get("PAGE_SIZE", "100"))
    LOOKBACK_HOURS = int(os.environ.get("LOOKBACK_HOURS", "1"))
    
    http = urllib3.PoolManager()
    gcs = storage.Client()
    
    def _load_state() -> dict:
            """Load the last event time from GCS state file."""
            bucket = gcs.bucket(GCS_BUCKET)
            blob = bucket.blob(f"{GCS_PREFIX}/{STATE_KEY}")
            if blob.exists():
                    return json.loads(blob.download_as_text())
            return {}
    
    def _save_state(state: dict) -> None:
            """Persist the state dict back to GCS."""
            bucket = gcs.bucket(GCS_BUCKET)
            blob = bucket.blob(f"{GCS_PREFIX}/{STATE_KEY}")
            blob.upload_from_string(
                    json.dumps(state), content_type="application/json"
            )
    
    def _api_get(path: str, params: dict, retries: int = 5) -> dict:
            """Execute a GET request against the FireEye ETP API with retry on 429."""
            url = f"https://{API_BASE}{path}"
            headers = {
                    "x-fireeye-api-key": API_KEY,
                    "Accept": "application/json",
            }
            backoff = 2
            for attempt in range(retries):
                    resp = http.request(
                            "GET", url, headers=headers, fields=params
                    )
                    if resp.status == 200:
                            return json.loads(resp.data.decode("utf-8"))
                    if resp.status == 429:
                            wait = backoff * (2 ** attempt)
                            print(
                                    f"Rate limited (429). Retrying in {wait}s "
                                    f"(attempt {attempt + 1}/{retries})."
                            )
                            time.sleep(wait)
                            continue
                    raise RuntimeError(
                            f"FireEye ETP API error: {resp.status}{resp.data.decode('utf-8')}"
                    )
            raise RuntimeError(
                    "FireEye ETP API rate limit exceeded after maximum retries."
            )
    
    def _fetch_alerts(since: str) -> list:
            """Fetch alerts from FireEye ETP with offset-based pagination."""
            all_alerts = []
            offset = 0
            while len(all_alerts) < MAX_RECORDS:
                    params = {
                            "from_last_modified_on": since,
                            "size": str(PAGE_SIZE),
                            "offset": str(offset),
                    }
                    data = _api_get("/api/v1/alerts", params)
                    alerts = data.get("data", [])
                    if not alerts:
                            break
                    all_alerts.extend(alerts)
                    offset += len(alerts)
                    if len(alerts) < PAGE_SIZE:
                            break
            return all_alerts[:MAX_RECORDS]
    
    def _write_ndjson(alerts: list, run_ts: str) -> str:
            """Write alerts as NDJSON to GCS and return the blob path."""
            bucket = gcgcs.bucketCS_BUCKET)
            blob_path = (
                    f"{GCS_PREFIX}/year={run_ts[:4]}/month={run_ts[5:7]}/"
                    f"day={run_ts[8:10]}/{run_ts}_alerts.ndjson"
            )
            blob = bucket.blob(blob_path)
            ndjson = "\n".join(json.dumps(a, separators=(",", ":")) for a in alerts)
            blob.upupload_from_stringdjson, content_type="application/x-ndjson")
            return blob_path
    
    @functions_framework.cloud_event
    def main(cloud_event):
            """Entry point triggered by Pub/Sub via Cloud Scheduler."""
            state = _load_state()
            now = datetime.now(timezone.utc)
            since = ststateet(
                    "last_event_time",
                    (now - timedelta(hours=LOOKBACK_HOURS)).strftime(
                            "%Y-%m-%dT%H:%M:%S.000"
                    ),
            )
            print(f"Fetching FireEye ETP alerts since {since}.")
            alerts = _fetch_alerts(since)
            if not alerts:
                    print("No new alerts found.")
                    return "OK"
            run_ts = now.strftime("%Y-%m-%dT%H%M%SZ")
            blob_path = _write_ndjson(alerts, run_ts)
            print(f"Wrote {len(alerts)} alerts to gs://{GCS_BUCKET}/{blob_path}.")
            latest = max(
                    a.get("attributes", {})
                    .get("meta", {})
                    .get("last_modified_on", since)
                    for a in alerts
            )
            state["last_event_time"] = latest
            _save_state(state)
            print(f"State updated. last_event_time={latest}.")
            return "OK"
    
  13. requirements.txt 中,粘贴:

    functions-framework==3.*
    google-cloud-storage==2.*
    urllib3==2.*
    

配置环境变量

运行时环境变量下,添加以下内容:

变量 示例值
GCS_BUCKET fireeye-etp-logs
GCS_PREFIX fireeye_etp
STATE_KEY fireeye_etp_state.json
API_KEY 您的 FireEye ETP API 密钥
API_BASE etp.us.fireeye.com
MAX_RECORDS 10000
PAGE_SIZE 100
LOOKBACK_HOURS 1
  1. 分配的内存设置为 256 MB,并将超时设置为 540 秒。
  2. 点击部署

创建 Cloud Scheduler 作业

  1. Google Cloud 控制台中,前往 Cloud Scheduler
  2. 点击创建作业
  3. 名称fireeye-etp-ingestion-schedule
  4. 频率*/5 * * * *(每 5 分钟)。
  5. 时区UTC
  6. 点击继续
  7. 目标类型Pub/Sub
  8. Cloud Pub/Sub 主题fireeye-etp-trigger
  9. 消息正文{"run": true}
  10. 点击创建

检索 Google SecOps 服务账号

  1. 依次前往 SIEM 设置 > Feed
  2. 点击添加新 Feed,然后选择配置单个 Feed
  3. Feed 名称FireEye ETP Alerts
  4. 来源类型Google Cloud Storage V2
  5. 日志类型FireEye ETP
  6. 点击获取服务账号,然后复制显示的电子邮件地址。
  7. 点击下一步
  8. 存储桶网址gs://fireeye-etp-logs/fireeye_etp/(包含结尾斜杠)。
  9. 来源删除选项:根据您的偏好选择。
  10. 点击下一步,查看,然后点击提交

授予 IAM 权限

服务账号需要对您的存储桶具有 Storage Object Viewer 角色。

  1. 依次前往 Cloud Storage > 存储分区
  2. 选择您的存储桶,然后点击权限标签页。
  3. 点击授予访问权限
  4. 添加主账号:粘贴 Google SecOps 服务账号电子邮件地址。
  5. 分配角色:选择 Storage Object Viewer
  6. 点击保存

UDM 映射表

日志字段 UDM 映射 逻辑
关于 从 about_field 合并
about.file.full_path 如果 entry.attributes.email.attachment 不为空,则使用该值
about.file.md5 来自 entry.attributes.alert.malware_md5 的值
about.hostname 从 entry.attributes.email.attachment 中提取
about.url 如果以 hxxp 开头,则为标准化 full_path
additional.fields 从众多内部标签和元数据字段合并而来
中介 从中间媒体文件合并
intermediary.ip 从 alert.smtp-message.ip_address 合并
intermediary.location.country_or_region 已设置为 %{alert.smtp-message.country}
intermediary.user.email_addresses 已从 src_email 合并
metadata.description 已设为 %{alert.name}
metadata.event_timestamp 从 accepted_timestamp、last_modified_on 或 attack-time 中匹配
metadata.event_type 根据网络、用户或状态更新条件进行分类
metadata.product_log_id 设置为消息 ID、属性 ID 或提醒 UUID
metadata.product_version 设置为 %{version}
metadata.url_back_to_product 设置为 %{entry.links.detail}
network.application_protocol 设置为“SMTP”
network.direction 大写的 traffic_type(INBOUND/OUTBOUND)
network.dns_domain 设置为 %{attributes.domain}
network.email.cc 从标题或数组中的 cc 字段合并
network.email.from 根据 SMTP 或标头“发件人”字段设置
network.email.mail_id 从下游或原始消息 ID 进行设置
network.email.subject 从标头主题字段合并
network.email.to 从 SMTP 收件人或标头“收件人”字段合并
principal.administrative_domain 设置为 ETP 消息 ID 或源网域
principal.asset.hostname 设置为源主机或下游主机名
principal.asset.ip 从 sender_ip 或 source_ip 字段合并
principal.asset.mac 如果来源 MAC 不为空,则合并来源 MAC
principal.hostname 设置为源主机或下游主机名
principal.ip 从 sender_ip 或 source_ip 字段合并
principal.labels 已与 mail_from 和 rcpt_to 标签合并
principal.location.country_or_region 设置为来源国家/地区代码
principal.mac 如果来源 MAC 不为空,则合并来源 MAC
principal.user.email_addresses 从 alert.smtp-message.from 合并
principal.user.user_display_name 设置“发件人”标头显示名称字段
principal.user.userid 设置为原始消息 ID
principal.email 设置“发件人”标头电子邮件字段
security_result 从多个结果结构合并
security_result.about.resource.attribute.creation_time 与提醒时间戳字段匹配
security_result.action 如果状态为“已屏蔽”“已隔离”或“已删除”,则为“屏蔽”
security_result.action_details 已设为 %{alert.action}
security_result.attack_details.tactics 基于 MITRE ID 或名称进行合并
security_result.attack_details.techniques 根据 MITRE 技术数据合并
security_result.category 如果 threat_type 与“网络钓鱼”匹配,则为“MAIL_PHISHING”
security_result.category_details 从 threat_type 或 verdict 合并而来
security_result.detection_fields 由多个状态和判决标签合并而成
security_result.risk_score 根据严重程度设置为 5.0 或 10.0
security_result.severity 根据提醒严重程度设置为高/中/低
security_result.severity_details 设为 %{alert_severity}
security_result.summary 根据 last_malware 或下游说明设置
security_result.threat_id 根据旧版 ID 或轨迹 ID 进行设置
security_result.threat_name 根据摘要或恶意软件名称设置
security_result.verdict_info 如果判定为 RISKWARE,则合并
target.asset.hostname 根据传送消息主机名设置
target.file.first_seen_time 与提醒的攻击时间相匹配
target.file.first_submission_time 与恶意软件提交时间匹配
target.file.full_path 从原始恶意软件路径设置
target.file.md5 根据恶意软件 MD5 总和设置
target.file.names 从恶意软件名称合并
target.file.sha256 根据恶意软件 SHA256 设置
target.file.size 设置来自传送消息的字节
target.hostname 根据传送消息主机名设置
target.labels 已与队列和协议标签合并
target.url 根据原始恶意软件网址设置
target.user.email_addresses 从目标电子邮件和收件人字段合并
metadata.vendor_name 设置为“FireEye”
metadata.product_name 设置为“ETP”
smtp-message.threat_type event.idm.read_only_udm.metadata.product_event_type 从变更日志映射
smtp-message.protocol event.idm.read_only_udm.security_result.detection_fields 从变更日志映射
entry.attributes.email.smtp.rcpt_to event.idm.read_only_udm.principal.resource.attribute.labels 从变更日志映射
entry.attributes.email.smtp.mail_from event.idm.read_only_udm.principal.resource.attribute.labels 从变更日志映射
alert.smtp-message.last-malware event.idm.read_only_udm.target.resource.attribute.labels 从变更日志映射
alert.smtp-message.protocol event.idm.read_only_udm.target.resource.attribute.labels 从变更日志映射
alert.smtp-message.queue-id event.idm.read_only_udm.target.resource.attribute.labels 从变更日志映射
alert.ack event.idm.read_only_udm.target.resource.attribute.labels 从变更日志映射
mta_msg_id event.idm.read_only_udm.additional.fields 从变更日志映射
msg event.idm.read_only_udm.additional.fields 从变更日志映射
domain event.idm.read_only_udm.security_result.detection_fields 从变更日志映射
original event.idm.read_only_udm.security_result.detection_fields 从变更日志映射
alert_date event.idm.read_only_udm.metadata.event_timestamp 从变更日志映射
smtp-message.ip_address event.idm.read_only_udm.principal.ipevent.idm.read_only_udm.principal.asset.ip之间 从变更日志映射
smtp-message.threat_type event.idm.read_only_udm.security_result.summary 从变更日志映射
smtp-message.threat_type_description event.idm.read_only_udm.security_result.description 从变更日志映射
email-header.to event.idm.read_only_udm.network.email.to 从变更日志映射
smtp-message.to event.idm.read_only_udm.network.email.to 从变更日志映射
email-header.from event.idm.read_only_udm.network.email.from 从变更日志映射
email-header.cc event.idm.read_only_udm.network.email.cc 从变更日志映射
email-header.subject event.idm.read_only_udm.network.email.subject 从变更日志映射
email-header.message-id event.idm.read_only_udm.network.email.mail_id 从变更日志映射
malware.name event.idm.read_only_udm.security_result.threat_name 从变更日志映射
malware.stype event.idm.read_only_udm.security_result.threat_id 从变更日志映射
sha256 event.idm.read_only_udm.security_result.about.file.sha256 从变更日志映射
md5 event.idm.read_only_udm.security_result.about.file.md5 从变更日志映射
email_status event.idm.read_only_udm.security_result.action 从变更日志映射
email_status event.idm.read_only_udm.security_result.action_details 从变更日志映射
smtp-message.from event.idm.read_only_udm.additional.fields 从变更日志映射
smtp-message.last-malware event.idm.read_only_udm.additional.fields 从变更日志映射
smtp-message.country event.idm.read_only_udm.additional.fields 从变更日志映射
smtp-message.queue-id event.idm.read_only_udm.additional.fields 从变更日志映射
ack event.idm.read_only_udm.additional.fields 从变更日志映射
is_read event.idm.read_only_udm.additional.fields 从变更日志映射
alert.smtp-message.threat_type_description event.idm.read_only_udm.security_result.detection_fields 从变更日志映射
custom.riskware_action event.idm.read_only_udm.security_result.detection_fields 从变更日志映射
custom.riskware_result event.idm.read_only_udm.additional.fields 从变更日志映射
alert_type event.idm.read_only_udm.additional.fields 从变更日志映射
traffic_type event.idm.read_only_udm.network.direction 从变更日志映射
domain_id event.idm.read_only_udm.additional.fields 从变更日志映射
, event.idm.read_only_udm.additional.fields 从变更日志映射
custom event.idm.read_only_udm.security_result.detection_fields 从变更日志映射
alert.smtp-message.threat_type event.idm.read_only_udm.security_result.detection_fields 从变更日志映射
alert.email-header.cc event.idm.read_only_udm.network.email.cc 从变更日志映射
action_yara event.idm.read_only_udm.security_result.detection_fields 从变更日志映射
verdict_yara event.idm.read_only_udm.security_result.detection_fields 从变更日志映射
delivery_timestamp event.idm.read_only_udm.security_result.detection_fields 从变更日志映射
syslog_process event.idm.read_only_udm.additional.fields 从变更日志映射
timestamp event.idm.read_only_udm.additional.fields 从变更日志映射
usr_display_name event.idm.read_only_udm.principal.user.user_display_name 从变更日志映射
is_retro event.idm.read_only_udm.additional.fields 从变更日志映射
alert.email-header.to event.idm.read_only_udm.target.user.email_addresses 从变更日志映射
alert.action event.idm.read_only_udm.security_result.action_details 从变更日志映射
alert.attack-time event.idm.read_only_udm.target.file.first_seen_time 从变更日志映射
alert.dst.smtp-to event.idm.read_only_udm.target.user.email_addresses 从变更日志映射
alert.email-header.from event.idm.read_only_udm.network.email.from 从变更日志映射
alert.email-header.message-id event.idm.read_only_udm.network.email.mail_id 从变更日志映射
alert.email-header.subject event.idm.read_only_udm.network.email.subject 从变更日志映射
alert.ack event.idm.read_only_udm.target.labels 从变更日志映射
alert.explanation.malware-detected.malware.application event.idm.read_only_udm.additional.fields 从变更日志映射
alert.explanation.malware-detected.malware.downloaded-at event.idm.read_only_udm.additional.fields 从变更日志映射
alert.explanation.malware-detected.malware.executed-at event.idm.read_only_udm.additional.fields 从变更日志映射
alert.explanation.malware-detected.malware.md5sum event.idm.read_only_udm.target.file.md5 从变更日志映射
alert.explanation.malware-detected.malware.md5sum event.idm.read_only_udm.additional.fields 从变更日志映射
alert.explanation.malware-detected.malware.name event.idm.read_only_udm.target.file.names 从变更日志映射
alert.explanation.malware-detected.malware.original event.idm.read_only_udm.target.url 从变更日志映射
alert.explanation.malware-detected.malware.original event.idm.read_only_udm.target.file.full_path 从变更日志映射
alert.explanation.malware-detected.malware.original event.idm.read_only_udm.additional.fields 从变更日志映射
alert.explanation.malware-detected.malware.profile event.idm.read_only_udm.additional.fields 从变更日志映射
alert.explanation.malware-detected.malware.sha256 event.idm.read_only_udm.target.file.sha256 从变更日志映射
alert.explanation.malware-detected.malware.sha256 event.idm.read_only_udm.additional.fields 从变更日志映射
alert.explanation.malware-detected.malware.stype event.idm.read_only_udm.additional.fields 从变更日志映射
alert.explanation.malware-detected.malware.submitted-at event.idm.read_only_udm.target.file.first_submission_time 从变更日志映射
alert.explanation.malware-detected.malware.type event.idm.read_only_udm.additional.fields 从变更日志映射
alert.interface.interface event.idm.read_only_udm.additional.fields 从变更日志映射
alert.interface.mode event.idm.read_only_udm.additional.fields 从变更日志映射
alert.name event.idm.read_only_udm.metadata.description 从变更日志映射
alert.occurred event.idm.read_only_udm.metadata.event_timestamp 从变更日志映射
alert.sc-version event.idm.read_only_udm.additional.fields 从变更日志映射
alert.severity event.idm.read_only_udm.security_result.severity 从变更日志映射
alert.smtp-message.country event.idm.read_only_udm.intermediary.location.country_or_region 从变更日志映射
alert.smtp-message.date event.idm.read_only_udm.additional.fields 从变更日志映射
alert.smtp-message.from event.idm.read_only_udm.principal.user.email_addresses 从变更日志映射
alert.smtp-message.ip_address event.idm.read_only_udm.intermediary.ip 从变更日志映射
alert.smtp-message.last-malware event.idm.read_only_udm.target.labels 从变更日志映射
alert.smtp-message.protocol event.idm.read_only_udm.target.labels 从变更日志映射
alert.smtp-message.queue-id event.idm.read_only_udm.target.labels 从变更日志映射
alert.smtp-message.to event.idm.read_only_udm.network.email.to 从变更日志映射
alert.src.domain event.idm.read_only_udm.principal.administrative_domain 从变更日志映射
alert.src.smtp-mail-from event.idm.read_only_udm.principal.user.email_addresses 从变更日志映射
alert.uuid event.idm.read_only_udm.metadata.product_log_id 从变更日志映射
mitre_mapping.bale.bale_id event.idm.read_only_udm.additional.fields 从变更日志映射
mitre_mapping.bale.name event.idm.read_only_udm.additional.fields 从变更日志映射
mitre_mapping.bale.os_change_id event.idm.read_only_udm.additional.fields 从变更日志映射
mitre_mapping.bale.severity event.idm.read_only_udm.security_result.detection_fields 从变更日志映射
mitre_mapping.bale.description event.idm.read_only_udm.additional.fields 从变更日志映射
mitre_mapping.bale.id event.idm.read_only_udm.security_result.attack_details.techniques 从变更日志映射
tactics_data event.idm.read_only_udm.security_result.attack_details.tactics 从变更日志映射
alert.src.url event.idm.read_only_udm.principal.url 从变更日志映射
mta_msg_id event.idm.read_only_udm.target.labels 从变更日志映射
msg event.idm.read_only_udm.about.labels 从变更日志映射
parent_uuid event.idm.read_only_udm.additional.fields 从变更日志映射
verdict event.idm.read_only_udm.security_result.verdict_info 从变更日志映射
version event.idm.read_only_udm.metadata.product_version 从变更日志映射
report_id event.idm.read_only_udm.additional.fields 从变更日志映射
object_uuid event.idm.read_only_udm.additional.fields 从变更日志映射
type", "InternalId", "attributes.acceptedDateTime", "attributes.lastModifiedDateTime", "attributes.senderSMTP", "attributes.status", and "attributes.urlDomains additional.fields 从变更日志映射
attributes.countryCode principal.location.country_or_region 从变更日志映射
attributes.senderIP principal.ip 从变更日志映射
attributes.recipientSMTP network.email.to 从变更日志映射
attributes.senderHeader network.email.from 从变更日志映射
attributes.subject network.email.subject 从变更日志映射
alert.attributes.alert.malware_md5 about.file.md5 从变更日志映射
id", "alert.explanation.analysis","alert.explanation.malware_os_analysis","email.dod_report_id" and "email.status security_result.detection_fields 从变更日志映射
alert.sha256 about.file.sha256 从变更日志映射
alert.severity security_result.severity 从变更日志映射
email.smtp.mail_from network.email.from 从变更日志映射
email.smtp.recipients network.email.to 从变更日志映射
email.headers.subject network.email.subject 从变更日志映射
email.source_ip principal.ip 从变更日志映射
alert.explanation.malware_detected.malware.threat_type security_result.category 从变更日志映射
alert.explanation.malware_detected.malware.trace_iden security_result.threat_id 从变更日志映射
alert.explanation.malware_detected.malware.name security_result.threat_name 从变更日志映射
email.source_country principal.location.country_or_region 从变更日志映射

更新日志

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

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