收集 Qualys 漏洞管理日志

支持的平台:

此解析器可处理采用键值 (KV) 或 JSON 格式的 Qualys 漏洞管理日志。它会提取漏洞详细信息、主机信息和扫描元数据,并将其映射到 UDM。该解析器还会处理不同的日志结构,优先解析 KV,并在必要时回退到 JSON,并将 DetectionList 数组拆分为单独的漏洞事件。

准备工作

  • 确保您有一个 Google Security Operations 实例。
  • 确保您拥有对 Qualys VMDR 控制台的特权访问权限。

可选:在 Qualys 中创建专用 API 用户

  1. 登录 Qualys 控制台。
  2. 转到用户
  3. 依次点击新建 > 用户
  4. 输入用户所需的一般信息
  5. 选择用户角色标签页。
  6. 确保该角色的 API 访问权限复选框处于选中状态。
  7. 点击保存

确定您的具体 Qualys API 网址

选项 1

按照平台识别中所述的方法识别您的网址。

选项 2

  1. 登录 Qualys 控制台。
  2. 依次前往帮助 > 关于
  3. 滚动到“安全运维中心 (SOC)”下方查看此信息。
  4. 复制 Qualys API 网址。

在 Google SecOps 中配置 Feed 以提取 Qulays 虚拟机日志

  1. 依次前往 SIEM 设置 > Feed
  2. 点击新增
  3. Feed 名称字段中,输入 Feed 的名称(例如 Qualys VM 日志)。
  4. 选择第三方 API 作为来源类型
  5. 选择 Qualys VM 作为日志类型。
  6. 点击下一步
  7. 为以下输入参数指定值:
    • 用户名:输入用户名。
    • Secret:输入密码。
    • API 完整路径:提供 Qualys API 服务器网址(例如 https://<qualys_base_url>/api/2.0/fo/asset/host/?action=list),其中 <qualys_base_url> 是您账号所在的 Qualys API 服务器的基本网址。
    • 资源命名空间资源命名空间
    • 提取标签:应用于此 Feed 中的事件的标签。
  8. 点击下一步
  9. 最终确定界面中查看 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_protocolprincipal.port
DETECTION.SEVERITY extensions.vulns.vulnerabilities.severity DETECTION.SEVERITY 映射而来。值 0、1、2 变为“低”;3、4 变为“中”;5、6、7 变为“高”。
DETECTION.STATUS extensions.vulns.vulnerabilities.about.labels 已添加为键为“检测状态”的标签。
DETECTION.TYPE extensions.vulns.vulnerabilities.about.labels 已添加为键为“Detection type”(检测类型)的标签。
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 设置为“主机 ID:%{QgHostID}”。
SEVERITY extensions.vulns.vulnerabilities.severity SEVERITY 映射而来。值 0、1、2 变为“低”;3、4 变为“中”;5、6、7 变为“高”。
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_hostIP 不为空,则设置为“STATUS_UPDATE”;否则设置为“GENERIC_EVENT”。
不适用 metadata.log_type 取自原始日志的 log_type 字段。
不适用 principal.platform OSOsHOST.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 字段的事件的 vulnerabilities 数组中的事件时间戳。
detection.LastFoundTime extensions.vulns.vulnerabilities.last_found detection.LastFoundTime 字段解析,将字符串值转换为来自 DetectionList 字段的事件的 vulnerabilities 数组中的事件时间戳。
detection.LastProcessedDatetime extensions.vulns.vulnerabilities.about.resource.attribute.labels 在从 DetectionList 字段解析的事件的 vulnerabilities 数组中,作为键为“LastProcessedDatetime”的标签添加。
detection.LastTestDateTime extensions.vulns.vulnerabilities.about.resource.attribute.labels 已作为键为“LastTestDateTime”的标签添加到从 DetectionList 字段解析的事件的 vulnerabilities 数组中。
detection.LastUpdateDateTime extensions.vulns.vulnerabilities.about.resource.attribute.labels 已作为标签添加到从 DetectionList 字段解析的事件的 vulnerabilities 数组中,键为“LastUpdateDateTime”。
detection.Qid extensions.vulns.vulnerabilities.name 将“QID:”与从 DetectionList 字段解析的事件的 vulnerabilities 数组中的 detection.Qid 值串联起来。
detection.Results extensions.vulns.vulnerabilities.description 对于从 DetectionList 字段解析的事件,直接映射到 vulnerabilities 数组中的 description 字段。制表符和换行符会替换为空格。
detection.Severity extensions.vulns.vulnerabilities.severity detection.Severity 映射而来。对于从 DetectionList 字段解析的事件,漏洞数组中的值 0、1、2 会变为“低”;3、4 会变为“中”;5、6、7 会变为“高”。
detection.Status extensions.vulns.vulnerabilities.about.resource.attribute.labels 在从 DetectionList 字段解析的事件的“vulnerabilities”数组中,以键“Detection status”的形式添加了标签。
detection.TimesFound extensions.vulns.vulnerabilities.about.resource.attribute.labels 已作为键为“TimesFound”的标签添加到从 DetectionList 字段解析的事件的 vulnerabilities 数组中。
timestamp metadata.event_timestamptimestamp 原始日志的 timestamp 字段既用于事件时间戳,也用于顶级时间戳。

变化

2023-10-27

  • 添加了“for”循环,以便在存在多个“QID”时拆分事件。

2023-04-25

  • 将“DetectionList.FirstFoundTime”映射到“extensions.vulns.vulnerabilities.first_found”。
  • 将“DetectionList.LastFoundTime”映射到“extensions.vulns.vulnerabilities.last_found”。
  • 将“DetectionList.TimesFound”映射到“extensions.vulns.vulnerabilities.about.resource.attribute.labels”。
  • 将“DetectionList.LastTestDateTime”映射到“extensions.vulns.vulnerabilities.about.resource.attribute.labels”。
  • 将“DetectionList.LastUpdateDateTime”映射到“extensions.vulns.vulnerabilities.about.resource.attribute.labels”。
  • 将“DetectionList.LastProcessedDatetime”映射到“extensions.vulns.vulnerabilities.about.resource.attribute.labels”。

2023-01-23

  • 将“DetectionList”数组详情映射到“extensions.vulns.vulnerabilities”。
  • 将“DetectionList.Qid”映射到“extensions.vulns.vulnerabilities.name”。
  • 将“DetectionList.Severity”映射到“extensions.vulns.vulnerabilities.severity”。
  • 将“DetectionList.Results”映射到“extensions.vulns.vulnerabilities.description”。
  • 将“DetectionList.Status”“DetectionList.DType”映射到“extensions.vulns.vulnerabilities.about.resource.attribute.labels”。

2022-09-29

  • 将“ID”映射到“metadata.product_log_id”。
  • 将“Netbios”“TrackingMethod”“NetworkID”映射到“additional.fields”。
  • 将“QgHostID”映射到“principal.asset_id”。
  • 将“操作系统”映射到“principal.platform_version”。
  • 添加了针对“vulns”的条件检查。

2022-07-20

  • 添加了以下字段的映射:
  • “DETECTION.FIRST_FOUND_DATETIME”已映射到“event.idm.read_only_udm.extensions.vulns.vulnerabilities.first_found”。
  • “DETECTION.LAST_FOUND_DATETIME”已映射到“event.idm.read_only_udm.extensions.vulns.vulnerabilities.last_found”。
  • “HOST.LAST_VM_SCANNED_DATE”已映射到“event.idm.read_only_udm.extensions.vulns.vulnerabilities.scan_end_time”。
  • “HOST.LAST_SCAN_DATETIME”已映射到“event.idm.read_only_udm.extensions.vulns.vulnerabilities.scan_start_time”。
  • “DETECTION.QID”已映射到“event.idm.read_only_udm.extensions.vulns.vulnerabilities.name”。
  • “DETECTION.SEVERITY”已映射到“event.idm.read_only_udm.extensions.vulns.vulnerabilities.severity”。
  • “DETECTION.TYPE”映射到“event.idm.read_only_udm.extensions.vulns.vulnerabilities.about.labels”。
  • “DETECTION.STATUS”已映射到“event.idm.read_only_udm.extensions.vulns.vulnerabilities.labels”。
  • “DETECTION.RESULTS”映射到“event.idm.read_only_udm.extensions.vulns.vulnerabilities.description”。
  • “HOST.DNS_DATA.DOMAIN”已映射到“event.idm.read_only_udm.principal.domain.name”。
  • “HOST.ASSET_ID”已映射到“event.idm.read_only_udm.principal.asset_id”。
  • “HOST.IP”已映射到“event.idm.read_only_udm.principal.ip”。
  • “HOST.OS”已映射到“event.idm.read_only_udm.principal.platform_version”。
  • “HOST.DNS”已映射到“event.idm.read_only_udm.principal.hostname”。
  • “HOST.QG_HOSTID”已映射到“event.idm.read_only_udm.additional.fields”。
  • “HOST.NETBIOS”已映射到“event.idm.read_only_udm.additional.fields”。
  • “HOST.TRACKING_METHOD”映射到“event.idm.read_only_udm.additional.fields”。

需要更多帮助?向社区成员和 Google SecOps 专业人士寻求解答。