收集 Qualys 漏洞管理日志
支持的语言:
Google SecOps
SIEM
此解析器可处理键值 (KV) 或 JSON 格式的 Qualys 漏洞管理日志。它会提取漏洞详情、主机信息和扫描元数据,并将它们映射到 UDM。解析器还会处理不同的日志结构,优先进行 KV 解析,并在必要时回退到 JSON,并将 DetectionList
数组拆分为各个漏洞事件。
准备工作
确保您满足以下前提条件:
- Google Security Operations 实例。
- 对 Qualys VMDR 控制台的特权访问权限。
可选:在 Qualys 中创建专用 API 用户
- 登录 Qualys 控制台。
- 转到用户。
- 依次点击新建 > 用户。
- 输入用户所需的一般信息。
- 选择用户角色标签页。
- 确保该角色已选中 API 访问权限复选框。
- 点击保存。
确定您的具体 Qualys API 网址
选项 1
按照平台标识中所述,确定您的网址。
选项 2
- 登录 Qualys 控制台。
- 依次前往帮助 > 关于。
- 滚动页面,在“安全运维中心 (SOC)”下查看此信息。
- 复制 Qualys API 网址。
设置 Feed
您可以通过两种不同的入口点在 Google SecOps 平台中设置 Feed:
- SIEM 设置 > Feed
- 内容中心 > 内容包
通过“SIEM 设置”>“Feed”设置 Feed
如需配置 Feed,请按以下步骤操作:
- 依次前往 SIEM 设置 > Feed。
- 点击添加新 Feed。
- 在下一页上,点击配置单个 Feed。
- 在 Feed 名称字段中,输入 Feed 的名称,例如 Qualys VM 日志。
- 选择第三方 API 作为来源类型。
- 选择 Qualys VM 作为日志类型。
- 点击下一步。
- 为以下输入参数指定值:
- 用户名:输入用户名。
- 密钥:输入密码。
- API 完整路径:提供 Qualys API 服务器网址(例如
https://<qualys_base_url>/api/2.0/fo/asset/host/?action=list
),其中<qualys_base_url>
是您的账号所在的 Qualys API 服务器的基本网址。
- 点击下一步。
- 在最终确定界面中检查 Feed 配置,然后点击提交。
设置来自内容中心的 Feed
为以下字段指定值:
- 用户名:输入用户名。
- 密钥:输入密码。
- API 完整路径:提供 Qualys API 服务器网址(例如
https://<qualys_base_url>/api/2.0/fo/asset/host/?action=list
),其中<qualys_base_url>
是您的账号所在的 Qualys API 服务器的基本网址。
高级选项
- Feed 名称:用于标识 Feed 的预填充值。
- 来源类型:用于将日志收集到 Google SecOps 中的方法。
- 资源命名空间:与 Feed 关联的命名空间。
- 提取标签:应用于相应 Feed 中所有事件的标签。
UDM 映射表
日志字段 | UDM 映射 | 逻辑 |
---|---|---|
DETECTION.FIRST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.first_found |
从 DETECTION.FIRST_FOUND_DATETIME 字段解析,将字符串值转换为时间戳。 |
DETECTION.LAST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.last_found |
从 DETECTION.LAST_FOUND_DATETIME 字段解析,将字符串值转换为时间戳。 |
DETECTION.QID |
extensions.vulns.vulnerabilities.name |
将“QID: ”与 DETECTION.QID 的值串联起来。 |
DETECTION.RESULTS |
extensions.vulns.vulnerabilities.description |
直接映射到说明字段。还用于使用 grok 提取 network.ip_protocol 和 principal.port 。 |
DETECTION.SEVERITY |
extensions.vulns.vulnerabilities.severity |
从 DETECTION.SEVERITY 映射。值 0、1、2 变为“LOW”;值 3、4 变为“MEDIUM”;值 5、6、7 变为“HIGH”。 |
DETECTION.STATUS |
extensions.vulns.vulnerabilities.about.labels |
添加为键为“检测状态”的标签。 |
DETECTION.TYPE |
extensions.vulns.vulnerabilities.about.labels |
以键“检测类型”的标签形式添加。 |
DNS |
principal.hostname |
直接映射到 principal.hostname 。 |
DNSData.DOMAIN |
principal.domain.name |
直接映射到 principal.domain.name 。 |
HOST.ASSET_ID |
principal.asset_id |
将“QUALYS:”与 HOST.ASSET_ID 的值串联起来。 |
HOST.DNS |
principal.hostname |
如果 DNS 为空,则直接映射到 principal.hostname 。 |
HOST.DNS_DATA.DOMAIN |
principal.domain.name |
如果 DNSData.DOMAIN 为空,则直接映射到 principal.domain.name 。 |
HOST.ID |
metadata.product_log_id |
直接映射到 metadata.product_log_id 。 |
HOST.IP |
principal.ip |
如果 IP 为空,则直接映射到 principal.ip 。 |
HOST.LAST_SCAN_DATETIME |
extensions.vulns.vulnerabilities.scan_start_time |
从 HOST.LAST_SCAN_DATETIME 字段解析,将字符串值转换为时间戳。 |
HOST.LAST_VM_SCANNED_DATE |
extensions.vulns.vulnerabilities.scan_end_time |
从 HOST.LAST_VM_SCANNED_DATE 字段解析,将字符串值转换为时间戳。 |
HOST.NETBIOS |
additional.fields |
添加为键为“HOST NETBIOS”的标签。 |
HOST.OS |
principal.platform_version |
如果 OS 为空,则直接映射到 principal.platform_version 。 |
HOST.QG_HOSTID |
additional.fields |
添加为键为“HOST QG_HOSTID”的标签。 |
HOST.TRACKING_METHOD |
additional.fields |
添加为键为“HOST TRACKING_METHOD”的标签。 |
HOST_ID |
principal.asset_id |
将“QUALYS:”与 HOST_ID 的值串联起来。 |
ID |
metadata.product_log_id |
直接映射到 metadata.product_log_id 。 |
IP |
principal.ip |
直接映射到 principal.ip 。 |
LastScanDateTime |
extensions.vulns.vulnerabilities.scan_start_time |
从 LastScanDateTime 字段解析,将字符串值转换为时间戳。 |
LastVMAuthScanDuration |
additional.fields |
添加为键为“LastVMAuthScanDuration”的标签。 |
LastVMScanDate |
extensions.vulns.vulnerabilities.scan_end_time |
从 LastVMScanDate 字段解析,将字符串值转换为时间戳。 |
LastVMScanDuration |
additional.fields |
以键为“LastVMScanDuration”的标签形式添加。 |
LAST_FOUND_DATETIME |
extensions.vulns.vulnerabilities.last_found |
从 LAST_FOUND_DATETIME 字段解析,将字符串值转换为时间戳。 |
LAST_SCAN_DATETIME |
extensions.vulns.vulnerabilities.scan_start_time |
从 LAST_SCAN_DATETIME 字段解析,将字符串值转换为时间戳。 |
LAST_VM_SCANNED_DATE |
extensions.vulns.vulnerabilities.scan_end_time |
从 LAST_VM_SCANNED_DATE 字段解析,将字符串值转换为时间戳。 |
NETBIOS |
additional.fields |
添加为键为“NETBIOS”的标签。 |
NetworkID |
additional.fields |
添加为键为“NetworkID”的标签。 |
NETWORK_ID |
additional.fields |
添加为键为“NetworkID”的标签。 |
OS |
principal.platform_version |
直接映射到 principal.platform_version 。 |
Os |
principal.platform_version |
如果 OS 为空,则直接映射到 principal.platform_version 。 |
QID |
extensions.vulns.vulnerabilities.name |
将“QID: ”与 QID 的值串联起来。 |
QgHostID |
principal.asset_id |
将 principal.asset_id 设置为“Host Id:%{QgHostID}”。 |
SEVERITY |
extensions.vulns.vulnerabilities.severity |
从 SEVERITY 映射。值 0、1、2 变为“LOW”;值 3、4 变为“MEDIUM”;值 5、6、7 变为“HIGH”。 |
TRACKING_METHOD |
additional.fields |
添加为键为“TRACKING_METHOD”的标签。 |
TrackingMethod |
additional.fields |
添加为键为“TRACKING_METHOD”的标签。 |
不适用 | metadata.vendor_name |
硬编码为“Qualys”。 |
不适用 | metadata.product_name |
硬编码为“漏洞管理”。 |
不适用 | metadata.event_type |
如果 _vulns 不为空,则设置为“SCAN_VULN_HOST”;如果 prin_host 或 IP 不为空,则设置为“STATUS_UPDATE”;否则设置为“GENERIC_EVENT”。 |
不适用 | metadata.log_type |
取自原始日志的 log_type 字段。 |
不适用 | principal.platform |
根据 OS 、Os 或 HOST.OS 确定。如果其中任何一个包含“Linux”,则平台设置为“LINUX”。如果其中任何一个包含“Windows”,则平台设置为“WINDOWS”。如果其中任何一个包含“mac”或“IOS”,则平台设置为“MAC”。 |
detection.DType |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
作为标签添加到从 DetectionList 字段解析的事件的漏洞数组中,键为“检测类型”。 |
detection.FirstFoundTime |
extensions.vulns.vulnerabilities.first_found |
从 detection.FirstFoundTime 字段解析,将字符串值转换为从 DetectionList 字段解析的事件的漏洞数组中的时间戳。 |
detection.LastFoundTime |
extensions.vulns.vulnerabilities.last_found |
从 detection.LastFoundTime 字段解析,将字符串值转换为从 DetectionList 字段解析的事件的漏洞数组中的时间戳。 |
detection.LastProcessedDatetime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
作为标签添加到从 DetectionList 字段解析的事件的漏洞数组中,键为“LastProcessedDatetime”。 |
detection.LastTestDateTime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
作为标签添加到从 DetectionList 字段解析的事件的漏洞数组中,键为“LastTestDateTime”。 |
detection.LastUpdateDateTime |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
作为标签添加到从 DetectionList 字段解析的事件的漏洞数组中,键为“LastUpdateDateTime”。 |
detection.Qid |
extensions.vulns.vulnerabilities.name |
将“QID: ”与从 DetectionList 字段解析的事件的漏洞数组中的 detection.Qid 值串联起来。 |
detection.Results |
extensions.vulns.vulnerabilities.description |
直接映射到从 DetectionList 字段解析的事件的漏洞数组中的说明字段。将制表符和换行符替换为空格。 |
detection.Severity |
extensions.vulns.vulnerabilities.severity |
从 detection.Severity 映射。对于从 DetectionList 字段解析的事件,漏洞数组中的值 0、1、2 会变为“LOW”;3、4 会变为“MEDIUM”;5、6、7 会变为“HIGH”。 |
detection.Status |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
作为标签添加到从 DetectionList 字段解析的事件的漏洞数组中,键为“检测状态”。 |
detection.TimesFound |
extensions.vulns.vulnerabilities.about.resource.attribute.labels |
作为标签添加到从 DetectionList 字段解析的事件的漏洞数组中,键为“TimesFound”。 |
timestamp |
metadata.event_timestamp ,timestamp |
原始日志的 timestamp 字段同时用于事件时间戳和顶级时间戳。 |
需要更多帮助?从社区成员和 Google SecOps 专业人士那里获得解答。