使用 Fleet 按漏洞过滤软件:按严重级别与已知利用优先修复补丁
【免费下载链接】fleetOpen device management项目地址: https://gitcode.com/GitHub_Trending/fl/fleet
Fleet 从 4.56 版本开始提供按漏洞过滤软件的能力,允许管理员在软件清单中直接根据漏洞严重级别(CVSS v3 分数区间)与"是否已被公开利用"来筛选目标,从而把有限的补丁资源优先投入到最关键的暴露面上。本文以 Fleet 软件页、主机详情页与 REST API 三种途径为主线,结合当前仓库前端弹窗实现与后端查询参数解析源码,给出完整的过滤操作流程与参数语义说明,帮助你建立一套"先补最危险"的漏洞处置工作流。
功能背景与适用场景
在管理数百乃至数千个软件标题的环境中,纯粹的软件清单价值有限——真正的安全问题是:哪些软件携带了高危漏洞、哪些漏洞已经有公开利用代码(known exploit)在野外活跃。Fleet 的软件漏洞过滤功能正是为这一场景设计:
- 按漏洞严重级别(Critical / High / Medium / Low / 自定义 CVSS 分数区间)聚焦高风险软件;
- 通过Has known exploit开关,把视野进一步收敛到已被真实攻击链利用的漏洞,优先安排补丁;
- 该能力同时覆盖全局软件清单与单个主机详情页,也提供 REST API 供自动化工作流集成。
从仓库实现看,该功能在前端由SoftwareFiltersModal(frontend/pages/SoftwarePage/components/modals/SoftwareFiltersModal/SoftwareFiltersModal.tsx)承载,后端则由SoftwareTitleListOptions中的vulnerable、exploit、min_cvss_score、max_cvss_score查询参数驱动(server/fleet/software.go#L577-L598)。
前置条件
- Fleet 版本 4.56 或更高:软件页支持按漏洞过滤。
- Fleet 版本 4.66 或更高:同一过滤能力扩展到主机详情页的 Software 标签。
- Premium(商业版)订阅:严重级别筛选(Severity level)与"Has known exploit"属于高级过滤选项。源码中对应
isPremiumTier判断:SeverityFilter与 known-exploit 复选框仅在isPremiumTier为真时渲染(见 SoftwareFiltersModal.tsx#L122-L147)。基础版的"Vulnerable software"开关(仅显示存在漏洞的软件)则对所有用户可用。
在 Software 页面按漏洞过滤软件
操作步骤
进入 Software 页:在 Fleet 控制台点击Software标签,页面展示环境中检测到的全部软件列表。
按漏洞名称搜索:使用搜索框既可以按软件名称过滤,也可以直接输入关联的 CVE 漏洞名(如
CVE-2024-xxxx)进行过滤。打开 Add Filters:点击列表上方的Add Filters按钮,弹出过滤弹窗。
开启 Vulnerable software:弹窗顶部是Vulnerable software开关(源码中的
Slider组件),打开后仅保留存在漏洞的软件,这是后续所有高级筛选的前提。选择严重级别:Premium 用户可从下拉菜单选择Severity level。Fleet 的预设区间与 CVSS v3 基准分数的映射如下(定义于 frontend/components/SeverityFilter/helpers.ts#L45-L50):
严重级别 CVSS v3 分数区间 Critical(严重) 9.0 – 10.0 High(高危) 7.0 – 8.9 Medium(中危) 4.0 – 6.9 Low(低危) 0.1 – 3.9 Any severity(全部) 0 – 10(等价于不限) 选择预设级别会自动填充对应的分数区间;也可以选择Custom severity手动输入 Min / Max 分数。输入框约束为 0.0–10.0、步进 0.1(
SEVERITY_HELP_TEXT:CVSS scores (v3) range from 0.0 to 10.0 in 0.1 increments),并且要求最小值不大于最大值(校验逻辑见 helpers.ts#L161-L188)。语义上,严重级别反映的是"跨不同环境的最坏影响",即 CVSS 3.x base score。切换 Has known exploit:勾选Has known exploit复选框后,列表只显示"存在已被野外实际利用的漏洞"的软件(帮助文案为"Software has vulnerabilities that have been actively exploited in the wild.")。这一项与严重级别配合,是"补丁优先级"排序的核心手段。
应用并查看结果:点击Apply,软件列表立即按条件刷新。已生效的过滤条件会以计数形式显示在按钮上(如 "3 filters"),悬停可查看具体条件文本("Vulnerable software""Severity: Critical""Has known exploit"),渲染逻辑见 helpers.ts#L64-L105。
过滤条件对应的查询参数
前端把过滤状态序列化为 URL 查询参数(见 helpers.ts#L43-L62),后端解析参数定义在 server/fleet/software.go#L582-L587:
| 查询参数 | 类型 | 含义 |
|---|---|---|
vulnerable | bool | 仅显示存在漏洞的软件 |
exploit | bool | 仅显示存在已知利用(known exploit)的软件 |
min_cvss_score | float | CVSS v3 分数下限 |
max_cvss_score | float | CVSS v3 分数上限 |
一个典型场景:只想看"严重级别为 Critical 且已有公开利用"的软件,等价于vulnerable=true&exploit=true&min_cvss_score=9.0&max_cvss_score=10。
在主机详情页按漏洞过滤软件
Fleet 4.66 起,同样的过滤能力下沉到单台主机的维度,方便逐机排查:
- 进入Hosts页,点击目标主机查看详情。
- 在主机详情页打开Software标签,展示该主机检测到的全部软件。
- 使用与 Software 页完全相同的过滤弹窗(步骤 3–6):复用同一个
SoftwareFiltersModal组件(HostSoftware.tsx#L19 引用了同一组件),按严重级别、known exploit 等条件过滤该主机上的软件。
这对于"定位某台机器上最危险的应用"非常有价值:例如处理应急事件时,先按 Critical + known exploit 过滤,即可立即看到该主机上最需要处理的目标。
使用 REST API 过滤漏洞软件
Fleet 的 REST API 同样支持漏洞过滤,便于把该能力嵌入自动化补丁工作流、定期报告或 SIEM 联动。仓库中已注册的相关端点(server/service/handler.go#L433-L443):
GET /api/_version_/fleet/software/titles:按软件标题列表过滤;GET /api/_version_/fleet/software:软件列表;GET /api/_version_/fleet/software/versions:软件版本列表。
这三个端点均接受vulnerable、exploit、min_cvss_score、max_cvss_score查询参数(SoftwareTitleListOptions与SoftwareVersionListOptions共用同一套字段,见 server/fleet/software.go#L621-L624)。示例请求:
# 列出所有存在已知利用、且 CVSS 分数 ≥ 9.0 的软件标题 curl -G "https://<fleet-server>/api/v1/fleet/software/titles" \ -H "Authorization: Bearer <API_TOKEN>" \ --data-urlencode "vulnerable=true" \ --data-urlencode "exploit=true" \ --data-urlencode "min_cvss_score=9.0"配合GET /api/_version_/fleet/hosts/{id}/software端点(主机软件信息),可以在脚本中实现"对每台主机按其软件漏洞严重程度排序"的批量分析,将本文的过滤逻辑固化为可重复执行的流程。
常见组合与工作流建议
- Critical + known exploit:最高优先级。现实中这是最可能被攻击链利用的组合,应作为补丁队列的头号目标。
- High + known exploit:次高优先级,用于清空高危且已被利用的软件。
- 按主机维度反向排查:在主机详情页用同一组合过滤,快速定位承载高价值业务、却安装着高危软件的主机。
- 自动化巡检:通过 REST API 定期拉取
exploit=true的软件清单,与工单系统或 Slack 通知联动,实现漏洞处置的持续跟进。
需要留意的是,漏洞严重级别与 known-exploit 状态最终取决于 Fleet 漏洞处理管线的数据(CVSS v3 基准分与 NVD/漏洞数据源的利用状态标记),过滤结果以 Fleet 已经识别到的漏洞信息为准。
结语
Fleet 的按漏洞过滤能力把"软件清单"升级为"风险清单":通过严重级别与已知利用两个维度的组合,管理员可以在一屏之内识别出最需要立即处理的软件,并以 API 形式把同样的逻辑接入自动化安全运营流程。建议在 Fleet 4.56+(软件页)与 4.66+(主机详情页)环境中启用该功能,将其作为补丁管理策略的第一道过滤器。
【免费下载链接】fleetOpen device management项目地址: https://gitcode.com/GitHub_Trending/fl/fleet
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考