收集 Akamai WAF 日志
支持的平台:
Google SecOps
SIEM
概览
此解析器会处理 Akamai Web 应用防火墙 (WAF) 日志,同时支持 syslog 和 CEF 格式。它会提取 IP 地址、网址、HTTP 方法、响应代码、用户代理和安全规则信息等字段,并将其映射到 UDM 以实现一致的表示。该解析器还会处理 attackData
和 clientReputation
等特定 Akamai 字段,执行必要的数据转换并丰富 UDM 输出。
准备工作
- 确保您拥有 Google SecOps 实例。
- 确保您拥有对 AWS IAM 和 S3 的超级用户访问权限。
- 确保您拥有对 Akamai 的特权访问权限。
配置 Amazon S3 存储分区
- 按照以下用户指南创建 Amazon S3 存储分区:创建存储分区
- 保存存储分区的名称和区域,以备日后参考。
- 按照以下用户指南创建用户:创建 IAM 用户。
- 选择创建的用户。
- 选择安全凭据标签页。
- 在访问密钥部分中,点击创建访问密钥。
- 选择第三方服务作为用例。
- 点击下一步。
- 可选:添加说明标记。
- 点击创建访问密钥。
- 点击下载 .csv 文件。(请保存访问密钥和私有访问密钥,以备日后参考)。
- 点击完成。
- 选择权限标签页。
- 在权限政策部分中,点击添加权限。
- 选择添加权限。
- 选择直接附加政策。
- 搜索 AmazonS3FullAccess 政策。
- 选择相应政策。
- 点击下一步。
- 点击添加权限。
配置 Akamai WAF 以将日志发送到 Amazon S3
- 登录 Akamai 控制中心。
- 前往安全部分。
- 选择日志。
配置新的日志传送:
- 日志来源:选择您的 WAF 配置。
- 传送目标:选择 Amazon S3。
- S3 存储分区:指定您创建的 S3 存储分区的名称。
- 区域:选择您的 S3 存储分区所在的 AWS 区域。
- 访问密钥 ID 和 Secret 访问密钥:提供您生成的凭据。
- 日志格式:选择相关的日志格式(例如 JSON)。
- 提交频率:选择适当的日志提交频率(例如,每 5 分钟)。
验证日志传送:
- 配置 LDS 后,监控 S3 存储分区中是否有传入的日志文件。
在 Google SecOps 中配置 Feed 以提取 Akamai WAF 日志
- 依次前往 SIEM 设置 > Feed。
- 点击新增。
- 在 Feed 名称字段中,输入 Feed 的名称(例如 Akamai WAF 日志)。
- 选择 Amazon S3 作为来源类型。
- 选择 Akamai WAF 作为日志类型。
- 点击下一步。
为以下输入参数指定值:
- 区域:Amazon S3 存储分区所在的区域。
- S3 URI:存储分区 URI。
s3:/BUCKET_NAME
替换以下内容:BUCKET_NAME
:存储分区的名称。
- URI 是:根据日志流配置选择 URI 类型:单个文件 | 目录 | 包含子目录的目录。
- 来源删除选项:根据您的偏好选择删除选项。
- 访问密钥 ID:有权访问 S3 存储分区的用户访问密钥。
- 私有访问密钥:有权访问 S3 存储分区的用户私钥。
- 资源命名空间:资源命名空间。
- 提取标签:要应用于此 Feed 中的事件的标签。
点击下一步。
在最终确定界面中查看新的 Feed 配置,然后点击提交。
UDM 映射表
日志字段(升序) | UDM 映射 | 逻辑 |
---|---|---|
attackData.clientIP |
principal.ip ,principal.asset.ip |
发起请求的客户端的 IP 地址。从 akamai_siem 日志中的 attackData.clientIP 字段中提取。 |
attackData.configId |
metadata.product_log_id |
安全配置 ID。从 akamai_siem 日志中的 attackData.configId 字段中提取。还在 security_result 对象中添加了 detection_field。 |
attackData.policyId |
不适用 | 在解析器逻辑中使用,用于向 security_result.summary 填充值“PolicyId:[value]”。 |
attackData.ruleActions |
security_result.action ,security_result.action_details |
根据触发的规则执行的操作。从 akamai_siem 日志中的 attackData.ruleActions 字段中提取。“deny”会映射到 BLOCK,其他值(“alert”“monitor”“allow”“tarpit”)会映射到 ALLOW。原始值也会存储在 action_details 中。 |
attackData.ruleData |
security_result.detection_fields |
与触发的规则关联的数据。从 akamai_siem 日志中的 attackData.ruleData 字段中提取。已添加到 security_result.detection_fields ,键为“RuleData”。 |
attackData.ruleMessages |
security_result.threat_name |
与触发的规则关联的消息。从 akamai_siem 日志中的 attackData.ruleMessages 字段中提取。 |
attackData.ruleSelectors |
security_result.detection_fields |
与触发的规则关联的选择器。从 akamai_siem 日志中的 attackData.ruleSelectors 字段中提取。已添加到 security_result.detection_fields ,键为“RuleSelector”。 |
attackData.ruleTags |
security_result.category_details |
与触发的规则关联的代码。从 akamai_siem 日志中的 attackData.ruleTags 字段中提取。 |
attackData.ruleVersions |
security_result.detection_fields |
触发的规则的版本。从 akamai_siem 日志中的 attackData.ruleVersions 字段中提取。已添加到 security_result.detection_fields ,键为“Rule Version”。 |
clientReputation |
principal.labels |
客户声誉信息。从 akamai_siem 日志中的 clientReputation 字段中提取。已作为标签添加到主账号,键为“reputation”。 |
cliIP 、cli_ip 、principal_ip |
principal.ip ,principal.asset.ip |
客户端 IP 地址。从 cliIP 、cli_ip 或 principal_ip 中提取,具体取决于日志格式。 |
cp |
additional.fields |
CP 代码。从 cp 字段中提取。已添加到 additional.fields ,键为“cp”。 |
eventId |
metadata.product_log_id |
事件 ID。从 eventId 字段中提取。 |
eventTime ,log_date |
metadata.event_timestamp |
事件时间戳。从 eventTime 中提取或从 log_date 中解析,具体取决于日志格式。 |
eventType.eventDefinition.eventDefinitionId |
target.resource.product_object_id |
事件定义 ID。从 eventType.eventDefinition.eventDefinitionId 中提取。 |
eventType.eventDefinition.eventDescription |
metadata.description |
活动说明。从 eventType.eventDefinition.eventDescription 中提取。 |
eventType.eventDefinition.eventName |
metadata.product_event_type |
事件名称。从 eventType.eventDefinition.eventName 中提取。 |
eventType.eventTypeId |
additional.fields |
事件类型 ID。从 eventType.eventTypeId 中提取。已添加到 additional.fields ,键为“eventTypeId”。 |
eventType.eventTypeName |
additional.fields |
事件类型名称。从 eventType.eventTypeName 中提取。已添加到 additional.fields ,键为“eventTypeName”。 |
format |
不适用 | 由解析器用于确定日志格式。 |
geo.asn |
principal.location.name |
自治系统编号 (ASN)。从 geo.asn 或 AkamaiSiemASN 中提取,具体取决于日志格式。值带有“ASN”前缀。 |
geo.city |
principal.location.city |
城市。从 geo.city 或 AkamaiSiemCity 中提取,具体取决于日志格式。 |
geo.country |
principal.location.country_or_region |
国家/地区。从 geo.country 或 AkamaiSiemContinent 中提取,具体取决于日志格式。 |
httpMessage.bytes |
network.sent_bytes |
HTTP 消息中发送的字节数。从 httpMessage.bytes 中提取。 |
httpMessage.host |
target.hostname ,target.asset.hostname |
主机名。从 httpMessage.host 或 reqHost 中提取,具体取决于日志格式。 |
httpMessage.method |
network.http.method |
HTTP 方法。从 httpMessage.method 、network_http_method 或 reqMethod 中提取,具体取决于日志格式。已转换为大写。 |
httpMessage.path |
target.url |
请求路径。从 httpMessage.path 、target_url 或 reqPath 中提取,具体取决于日志格式。如果存在 httpMessage.query ,则会附加到路径中,并使用“?”分隔符。 |
httpMessage.port |
target.port |
端口。从 httpMessage.port 或 reqPort 中提取,具体取决于日志格式。 |
httpMessage.protocol |
不适用 | 供解析器确定协议。 |
httpMessage.query |
不适用 | 在解析器逻辑中用于附加到 httpMessage.path (如果存在)。 |
httpMessage.requestId |
network.session_id |
请求 ID。从 httpMessage.requestId 或 reqId 中提取,具体取决于日志格式。 |
httpMessage.requestHeaders ,AkamaiSiemRequestHeaders |
additional.fields |
请求标头。从 httpMessage.requestHeaders 或 AkamaiSiemRequestHeaders 中提取,具体取决于日志格式。已添加到 additional.fields ,键为“AkamaiSiemRequestHeaders”。 |
httpMessage.responseHeaders ,AkamaiSiemResponseHeaders |
additional.fields |
响应标头。从 httpMessage.responseHeaders 或 AkamaiSiemResponseHeaders 中提取,具体取决于日志格式。已添加到 additional.fields ,键为“AkamaiSiemResponseHeaders”。 |
httpMessage.status 、AkamaiSiemResponseStatus 、network_http_response_code 、statusCode |
network.http.response_code |
HTTP 响应代码。从 httpMessage.status 、AkamaiSiemResponseStatus 、network_http_response_code 或 statusCode 中提取,具体取决于日志格式。 |
httpMessage.tls 、AkamaiSiemTLSVersion 、tlsVersion |
network.tls.version |
TLS 版本。从 httpMessage.tls 、AkamaiSiemTLSVersion 或 tlsVersion 中提取,具体取决于日志格式。 |
httpMessage.useragent 、network_http_user_agent 、UA 、useragent |
network.http.user_agent |
用户代理。从 httpMessage.useragent 、network_http_user_agent 、UA 或 useragent 中提取,具体取决于日志格式。 |
log_description |
metadata.description |
日志说明。从 log_description 中提取。 |
log_rule |
security_result.rule_name |
日志规则。从 log_rule 中提取。 |
message |
不适用 | 原始日志消息。由解析器用于各种提取。 |
network_http_referral_url |
network.http.referral_url |
HTTP 引荐来源网址。从 network_http_referral_url 中提取。 |
proto |
不适用 | 在解析器逻辑中使用,用于在 attackData.policyId 不存在时填充 security_result.summary 。 |
reqHost |
target.hostname ,target.asset.hostname |
请求主机。从 reqHost 中提取。 |
reqId |
metadata.product_log_id ,network.session_id |
请求 ID。从 reqId 中提取。 |
reqMethod |
network.http.method |
请求方法。从 reqMethod 中提取。 |
reqPath |
target.url |
请求路径。从 reqPath 中提取。 |
reqPort |
target.port |
请求端口。从 reqPort 中提取。 |
rspContentType |
target.file.mime_type |
响应内容类型。从 rspContentType 中提取。 |
securityRules |
security_result.rule_name ,security_result.about.resource.attribute.labels |
安全规则。从 securityRules 中提取。第一个部分会映射到 rule_name ,其余部分会作为标签添加,键为“non_deny_rules”和“deny_rule_format”。 |
statusCode |
network.http.response_code |
状态代码。从 statusCode 中提取。 |
state |
principal.location.state ,target.user.personal_address.state |
州或省/直辖市/自治区。从 state 中提取。 |
tlsVersion |
network.tls.version |
TLS 版本。从 tlsVersion 中提取。 |
type |
metadata.product_event_type |
事件类型。从 type 中提取。 |
UA |
network.http.user_agent |
用户代理。从 UA 中提取。 |
version |
metadata.product_version ,principal.asset.software.version |
版本。从 version 中提取。 |
不适用 | metadata.event_timestamp |
事件时间戳派生自 akamai_lds 日志中的 _ts 字段、akamai_siem 日志中的 httpMessage.start 字段,或其他格式的 log_date 字段。 |
不适用 | metadata.vendor_name |
已硬编码为“Akamai”。 |
不适用 | metadata.product_name |
已硬编码为“Kona”。 |
不适用 | metadata.log_type |
已硬编码为“AKAMAI_WAF”。 |
不适用 | network.application_protocol |
对于 akamai_siem 和 akamai_lds 日志,请将其设置为“HTTP”;对于其他格式,请将其设置为“DNS”。 |
不适用 | security_result.severity |
将“alert”操作设置为“MEDIUM”“deny”操作设置为“CRITICAL”,将其他操作设置为“HIGH”。 |
不适用 | event.idm.read_only_udm.metadata.event_type |
对于大多数日志格式,请将其设置为“NETWORK_HTTP”;对于包含 eventId 或 eventData 字段的事件,请将其设置为“GENERIC_EVENT”;对于包含 cli_ip 或 p_ip 但不包含 reqHost 的事件,请将其设置为“STATUS_UPDATE”。 |
变化
2024-05-21
- 改进
- 将“rules.data”映射到“security_result.detection_fields”。
- 将“rules.action”“rules.selector”和“rules.version”映射到“security_result.action_details”。
- 将“rules.id”映射到“security_result.rule_id”,
- 将“rules.tag”映射到“security_result.category_details”。
- 将“rules.message”映射到“security_result.threat_name”。
2024-03-01
- 改进
- 将“attackData.configId”映射到“metadata.product_log_id”和“security_result.detection_fields”。
2023-10-27
- 改进
- 将“rule.id”映射到“security_result.rule_id”。
- 当“httpMessage.host”不存在时,将“metadata.event_type”中设置的值从“NETWORK_HTTP”更改为“GENERIC_EVENT”。
- 添加了在“attackData.rules”为数组时解析“attackData”的支持。
2023-04-24
- 改进
- 以 CEF 格式提取的解析日志。
2023-04-04
- 改进
- 将“reqHost”映射到“target.hostname”。
- 将“reqPort”映射到“target.port”。
- 将“reqPath”映射到“target.url”。
- 将“reqId”映射到“network.session_id”。
- 将“statusCode”映射到“network.http.response_code”。
- 将“reqMethod”映射到“network.http.method”。
- 将“UA”映射到“network.http.user_agent”。
- 将“字节数”映射到“network.sent_bytes”。
- 将“reqMethod”映射到“network.http.method”。
- 解析了 syslog 格式的失败日志。
- 添加了针对“attackData.rules”的条件检查,以便正确解析。
- 尽可能将“metadata.event_type”从“STATUS_UPDATE”修改为“NETWORK_HTTP”。
2022-08-12
- 改进
- 将“security_policy_id”映射到 security_result.rule_name。
- 将“non_deny_rules”映射到 security_result.about.resource.attribute.labels。
- 将“deny_rule_format”映射到 security_result.about.resource.attribute.labels。
2022-11-07
- 改进
- 更新了 SecurityRules,以便在数据中也检查 ["-"]。
2022-06-14
- 改进
- 将 security_rules 映射到 security_result.rule_name。
- 将城市映射到 principal.location.city。
- 将国家/地区映射到 principal.location.country_or_region。
- 将 cli_ip 映射到 principal.ip。
- 已将状态映射到 target.user.personal_address.state。
- 已映射到 metadata.product_version 的版本。
- 将 useragent 映射到 network.http.user_agent。
2022-06-14
- 增强功能-
- 将 proto 映射到 security_result.summary。
- 将 securityRules 映射到 security_result.rule_name。
- 将城市映射到 principal.location.city。
- 将国家/地区映射到 principal.location.country_or_region。
- 将 cliIP 映射到 principal.ip。
- 将 cp 映射到 event.idm.read_only_udm.additional.fields。
- 将 reqId 映射到 metadata.product_log_id。
- 将 rspContentType 映射到 target.file.mime_type。
- 已将状态映射到 target.user.personal_address.state。
- 已将版本映射到 principal.asset.software.version。
2022-03-23
- bugfix-修复了使用所有匹配模式解析数据时失败的问题。
- 添加了新字段的映射。
- eventId 已映射到 metadata.product_log_id。
- eventDefinitionId 已映射到 target.resource.product_object_id。
- eventDescription 已映射到 metadata.description。
- eventName 已映射到 metadata.product_event_type。
- eventTypeName 已映射到 additional.fields。
- eventTypeId 已映射到 additional.fields。
- eventData 已映射到 additional.fields。
需要更多帮助?向社区成员和 Google SecOps 专业人士寻求解答。