收集 Netskope 提醒日志 v1
支持的语言:
Google SecOps
SIEM
概览
此解析器从 JSON 格式的消息中提取 Netskope 提醒日志,并将其转换为 Google Security Operations UDM。它会规范化字段、解析时间戳、处理提醒和严重程度、提取网络信息(IP、端口、协议)、丰富用户和文件数据,并将字段映射到 UDM 结构。解析器还会处理特定的 Netskope 活动(例如登录和 DLP 事件),并添加自定义标签以增强上下文。
准备工作
确保您满足以下前提条件:
- Google SecOps 实例。
- 对 Netskope 的特权访问权限。
启用 Netskope REST API 访问权限
- 使用管理员凭据登录 Netskope 租户。
- 依次前往设置 > 工具 > REST API v1。
- 专门为 Google SecOps 创建新的 API 密钥。
- 提供一个描述性名称(例如,Google SecOps 密钥)。
- 复制并保存生成的密钥和密文。
设置 Feed
您可以通过两种不同的入口点在 Google SecOps 平台中设置 Feed:
- SIEM 设置 > Feed
- 内容中心 > 内容包
通过“SIEM 设置”>“Feed”设置 Feed
如需配置 Feed,请按以下步骤操作:
- 依次前往 SIEM 设置 > Feed。
- 点击添加新 Feed。
- 在下一页上,点击配置单个 Feed。
- 在 Feed 名称字段中,输入 Feed 的名称,例如 Netskope 提醒日志。
- 选择第三方 API 作为来源类型。
- 选择 Netskope 作为日志类型。
- 点击下一步。
- 为以下输入参数指定值:
- 身份验证 HTTP 标头:之前以
<key>:<secret>
格式生成的密钥对,用于针对 Netskope API 进行身份验证。 - API 主机名:Netskope REST API 端点的 FQDN(完全限定域名),例如
myinstance.goskope.com
。 - API 端点:输入 alerts。
- 内容类型:输入全部。
- 身份验证 HTTP 标头:之前以
- 点击下一步。
- 在最终确定界面中检查 Feed 配置,然后点击提交。
设置来自内容中心的 Feed
为以下字段指定值:
- 身份验证 HTTP 标头:之前以
<key>:<secret>
格式生成的密钥对,用于针对 Netskope API 进行身份验证。 - API 主机名:Netskope REST API 端点的 FQDN(完全限定域名),例如
myinstance.goskope.com
。 - API 端点:输入 alerts。
- 内容类型:输入全部。
高级选项
- Feed 名称:用于标识 Feed 的预填充值。
- 来源类型:用于将日志收集到 Google SecOps 中的方法。
- 资源命名空间:与 Feed 关联的命名空间。
- 提取标签:应用于相应 Feed 中所有事件的标签。
可选:添加 Feed 配置以注入 Netskope 事件日志
- 依次前往 SIEM 设置 > Feed。
- 点击新增。
- 在 Feed 名称字段中,输入 Feed 的名称(例如 Netskope 事件日志)。
- 选择第三方 API 作为来源类型。
- 选择 Netskope 作为日志类型。
- 点击下一步。
- 为以下输入参数指定值:
- 身份验证 HTTP 标头:之前以
<key>:<secret>
格式生成的密钥对,用于针对 Netskope API 进行身份验证。 - API 主机名:Netskope REST API 端点的 FQDN(完全限定域名),例如
myinstance.goskope.com
。 - API 端点:输入 events。
- 内容类型:根据要解析的事件,输入 page、application、audit、infrastructure 或 network。
- 资源命名空间:资源命名空间。
- 注入标签:应用于此 Feed 中事件的标签。
- 身份验证 HTTP 标头:之前以
- 点击下一步。
- 在最终确定界面中检查 Feed 配置,然后点击提交。
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
access_method |
extensions.auth.auth_details |
直接从 access_method 字段映射。 |
action |
security_result.action |
直接从 action 字段映射,如果 action 为“alert”或“bypass”,则设置为 QUARANTINE 。如果 action 为“允许”,则为 ALLOW 。如果 action 为 block,则为 BLOCK 。 |
action |
security_result.action_details |
如果 action 字段为“alert”或“bypass”,则从该字段进行映射。 |
activity |
security_result.description |
直接从 activity 字段映射。 |
alert |
is_alert |
如果 alert 为“是”,则设置为 true ;否则设置为 false 。 |
alert_name |
- | 未映射到 IDM 对象。 |
alert_type |
security_result.category_details |
直接从 alert_type 字段映射。 |
app |
target.application |
直接从 app 字段映射。 |
app_activity |
additional.fields {key:"app_activity", value:{string_value: |
直接从 app_activity 字段映射为 additional.fields 中的键值对。 |
app_session_id |
target.resource.attribute.labels {key:"App Session Id", value: |
使用 grok 从 message 字段中提取并添加为标签。 |
appcategory |
security_result.category_details |
如果 category 为空,则直接从 appcategory 字段映射。 |
browser |
network.http.user_agent |
如果不是“unknown”,则直接从 browser 字段映射。 |
browser_version |
network.http.parsed_user_agent.browser_version |
直接从 browser_version 字段映射。 |
browser_version |
network.http.parsed_user_agent.family |
如果存在 browser_version ,则设置为“USER_DEFINED”。 |
category |
security_result.category_details |
直接从 category 字段映射。 |
cci |
security_result.detection_fields {key:"cci", value: |
直接从 cci 字段映射为 detection_fields 中的键值对。 |
ccl |
security_result.confidence |
根据 ccl 的值进行设置:“poor”或“low”映射到 LOW_CONFIDENCE ,“medium”映射到 MEDIUM_CONFIDENCE ,“high”或“excellent”映射到 HIGH_CONFIDENCE 。 |
ccl |
security_result.confidence_details |
直接从 ccl 字段映射。 |
client_bytes |
network.sent_bytes |
直接从 client_bytes 字段映射,并转换为无符号整数。 |
count |
additional.fields {key:"count", value:{string_value: |
直接从 count 字段映射为 additional.fields 中的键值对。 |
device |
principal.resource.resource_subtype |
直接从 device 字段映射。 |
device |
principal.resource.type |
如果存在 device 字段,则设置为“DEVICE”。 |
dlp_file |
target.file.full_path |
如果存在,则直接从 dlp_file 字段映射,否则从 file_path 映射。 |
dlp_profile |
security_result.rule_type |
直接从 dlp_profile 字段映射。 |
dlp_rule |
security_result.rule_name |
直接从 dlp_rule 字段映射。 |
dlp_rule_severity |
security_result.severity |
如果 alert_type 为 DLP,则直接从 dlp_rule_severity 字段映射。 |
dlp_rule_severity |
_severity |
如果 severity 为空,则从 dlp_rule_severity 字段映射。 |
domain |
target.asset.hostname |
直接从 domain 字段映射。 |
domain |
target.hostname |
直接从 domain 字段映射。 |
dsthost |
target.asset.hostname |
如果 dsthost 字段不是 IP 且 dstip 为空,则直接映射自该字段;否则,映射到 target.hostname 。 |
dsthost |
target.hostname |
如果不是 IP 且 dstip 不为空,则直接从 dsthost 字段映射。 |
dstip |
target.asset.ip |
直接从 dstip 字段映射。 |
dstip |
target.ip |
直接从 dstip 字段映射。 |
dstport |
target.port |
直接从 dstport 字段映射,并转换为整数。 |
dst_country |
target.location.country_or_region |
直接从 dst_country 字段映射。 |
dst_location |
target.location.city |
直接从 dst_location 字段映射。 |
dst_region |
target.location.name |
直接从 dst_region 字段映射。 |
file_path |
target.file.full_path |
如果 dlp_file 为空,则直接从 file_path 字段映射。 |
file_size |
target.file.size |
直接从 file_size 字段映射,并转换为无符号整数。 |
file_type |
target.file.mime_type |
如果不是“未知”,则直接从 file_type 字段映射。 |
from_user |
network.email.from |
如果 from_user 字段是电子邮件地址,则直接从该字段映射。 |
from_user_category |
principal.resource.attribute.labels {key:"From User Category", value: |
直接从 from_user_category 字段映射为 principal.resource.attribute.labels 中的键值对。 |
hostname |
principal.asset.hostname |
如果 hostname 字段不为空,则直接从该字段映射;否则从 instance_id 映射。 |
hostname |
principal.hostname |
如果 hostname 字段不为空,则直接从该字段映射;否则从 instance_id 映射。 |
id.time |
metadata.event_timestamp |
已解析并映射到元数据中的 event_timestamp。 |
instance_id |
principal.asset.hostname |
如果 hostname 为空,则直接从 instance_id 字段映射。 |
instance_id |
principal.hostname |
如果 hostname 为空,则直接从 instance_id 字段映射。 |
intermediary |
intermediary |
直接从 intermediary 字段映射。 |
ip_protocol |
network.ip_protocol |
在由 parse_ip_protocol.include 文件解析后,从 ip_protocol 字段映射。 |
ja3 |
network.tls.client.ja3 |
如果与十六进制模式匹配,则直接从 ja3 字段映射。 |
ja3s |
network.tls.server.ja3s |
如果与十六进制模式匹配,则直接从 ja3s 字段映射。 |
malware_id |
security_result.threat_id |
直接从 malware_id 字段映射。 |
malware_name |
security_result.threat_name |
直接从 malware_name 字段映射。 |
malware_severity |
security_result.severity |
直接从 malware_severity 字段映射,并转换为大写。 |
malware_type |
security_result.detection_fields {key:"恶意软件类型", value: |
直接从 malware_type 字段映射为 detection_fields 中的键值对。 |
matched_username |
principal.user.email_addresses |
如果 matched_username 字段是电子邮件地址,则直接从该字段映射。 |
md5 |
target.file.md5 |
如果 md5 字段不为空或不为“不适用”,则直接从该字段映射。 |
metadata.event_type |
metadata.event_type |
最初设置为“GENERIC_EVENT”,然后可能会根据其他字段进行替换。如果存在 srcip 或 hostname 以及 dstip 或 dsthost 或 domain ,则设置为 NETWORK_HTTP 。如果存在 srcip 或 hostname ,但不存在 dstip 、dsthost 或 domain ,则设置为 STATUS_UPDATE 。如果存在 user ,则设置为 USER_UNCATEGORIZED 。如果 activity 为“Introspection Scan”,且存在 shared_with 或 from_user ,则设置为 EMAIL_UNCATEGORIZED 。如果 activity 为“登录失败”“登录成功”或“登录尝试”,则设置为 USER_LOGIN 。 |
metadata.log_type |
metadata.log_type |
设置为“NETSKOPE_ALERT”。 |
metadata.product_log_id |
metadata.product_log_id |
直接从 _id 字段映射。 |
metadata.product_name |
metadata.product_name |
设置为“Netskope 提醒”。 |
metadata.vendor_name |
metadata.vendor_name |
设置为“Netskope”。 |
netskope_pop |
observer.hostname |
直接从 netskope_pop 字段映射。 |
object |
additional.fields {key:"Object", value:{string_value: |
直接从 object 字段映射为 additional.fields 中的键值对。 |
object_id |
additional.fields {key:"Object id", value:{string_value: |
直接从 object_id 字段映射为 additional.fields 中的键值对。 |
object_type |
additional.fields {key:"对象类型", value:{string_value: |
直接从 object_type 字段映射为 additional.fields 中的键值对。 |
organization_unit |
principal.administrative_domain |
直接从 organization_unit 字段映射。 |
os |
principal.platform |
从 os 字段映射:“Windows”映射到 WINDOWS ,“MAC”映射到 MAC ,“LINUX”映射到 LINUX 。 |
os_version |
principal.platform_version |
直接从 os_version 字段映射。 |
other_categories |
- | 未映射到 IDM 对象。 |
page |
network.http.referral_url |
如果 referer 为空,则直接从 page 字段映射。 |
policy |
security_result.summary |
直接从 policy 字段映射。 |
principal.user.email_addresses |
principal.user.email_addresses |
如果 user 字段是电子邮件地址,则从中合并。 |
protocol |
network.application_protocol |
直接从 protocol 字段映射,并移除第一个“/”之后的所有内容。转换为大写。 |
publisher_cn |
additional.fields {key:"publisher_cn", value:{string_value: |
直接从 publisher_cn 字段映射为 additional.fields 中的键值对。 |
publisher_name |
additional.fields {key:"publisher_name", value:{string_value: |
直接从 publisher_name 字段映射为 additional.fields 中的键值对。 |
referer |
network.http.referral_url |
直接从 referer 字段映射。 |
security_result.alert_state |
security_result.alert_state |
如果 alert 为“yes”,则设置为“ALERTING”;如果 alert 为“no”,则设置为“NOT_ALERTING”;否则设置为“UNSPECIFIED”。 |
security_result.category_details |
security_result.category_details |
从 category 或 appcategory 或 alert_type 字段合并而来。 |
security_result.confidence |
security_result.confidence |
派生自 ccl 字段。 |
security_result.confidence_details |
security_result.confidence_details |
直接从 ccl 字段映射。 |
security_result.description |
security_result.description |
直接从 activity 字段映射。 |
security_result.rule_name |
security_result.rule_name |
直接从 dlp_rule 字段映射。 |
security_result.rule_type |
security_result.rule_type |
直接从 dlp_profile 字段映射。 |
security_result.severity |
security_result.severity |
派生自 _severity 或 malware_severity 或 dlp_rule_severity 字段。 |
security_result.summary |
security_result.summary |
直接从 policy 字段映射。 |
security_result.threat_id |
security_result.threat_id |
直接从 malware_id 字段映射。 |
security_result.threat_name |
security_result.threat_name |
直接从 malware_name 字段映射。 |
server_bytes |
network.received_bytes |
直接从 server_bytes 字段映射,并转换为无符号整数。 |
severity |
_severity |
直接从 severity 字段映射。 |
sha256 |
target.file.sha256 |
直接从 sha256 字段映射。 |
shared_with |
network.email.to |
从 shared_with 字段解析,如果是电子邮件地址,则添加到 network.email.to 数组。 |
site |
additional.fields {key:"site", value:{string_value: |
直接从 site 字段映射为 additional.fields 中的键值对。 |
src_country |
principal.location.country_or_region |
直接从 src_country 字段映射。 |
src_latitude |
principal.location.region_latitude |
直接从 src_latitude 字段映射。 |
src_location |
principal.location.city |
直接从 src_location 字段映射。 |
src_longitude |
principal.location.region_longitude |
直接从 src_longitude 字段映射。 |
src_region |
principal.location.name |
直接从 src_region 字段映射。 |
srcip |
principal.asset.ip |
使用 grok 从 srcip 字段中提取,并合并到 principal.asset.ip 和 principal.ip 数组中。 |
srcip |
principal.ip |
使用 grok 从 srcip 字段中提取,并合并到 principal.asset.ip 和 principal.ip 数组中。 |
srcport |
principal.port |
直接从 srcport 字段映射,并转换为整数。 |
target.user.email_addresses |
target.user.email_addresses |
如果 to_user 字段是电子邮件地址,则从中合并。 |
threat_match_field |
security_result.detection_fields {key:"Threat Match Field", value: |
直接从 threat_match_field 字段映射为 detection_fields 中的键值对。 |
timestamp |
metadata.event_timestamp |
从 timestamp 或 id.time 字段解析。 |
to_user |
target.user.email_addresses |
从 to_user 字段解析,如果是电子邮件地址,则添加到 target.user.email_addresses 数组。 |
to_user_category |
target.resource.attribute.labels {key:"To User Category", value: |
直接从 to_user_category 字段映射为 target.resource.attribute.labels 中的键值对。 |
traffic_type |
security_result.detection_fields {key:"traffic_type", value: |
直接从 traffic_type 字段映射为 detection_fields 中的键值对。 |
tunnel_id |
additional.fields {key:"tunnel_id", value:{string_value: |
直接从 tunnel_id 字段映射为 additional.fields 中的键值对。 |
tunnel_type |
additional.fields {key:"tunnel_type", value:{string_value: |
直接从 tunnel_type 字段映射为 additional.fields 中的键值对。 |
type |
security_result.detection_fields {key:"type", value: |
直接从 type 字段映射为 detection_fields 中的键值对。 |
ur_normalized |
- | 未映射到 IDM 对象。 |
url |
target.url |
直接从 url 字段映射。 |
user |
event.idm.read_only_udm.principal.user.userid |
直接从 user 字段映射。 |
user |
principal.user.email_addresses |
如果 user 字段是电子邮件地址,则直接从该字段映射。 |
useragent |
network.http.user_agent |
直接从 useragent 字段映射。 |
useragent |
network.http.parsed_user_agent |
已转换为 parseduseragent 并映射到 network.http.parsed_user_agent 。 |
user_agent |
network.http.user_agent |
直接从 user_agent 字段映射。 |
user_agent |
network.http.parsed_user_agent |
已转换为 parseduseragent 并映射到 network.http.parsed_user_agent 。 |
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。