安全指南

为你自己的技术栈自动化漏洞监控:按你实际使用的组件匹配

搭建只标记影响你的漏洞监控:根据锁文件和操作系统软件包生成SBOM,用KEV和EPSS确定优先级,AI只用于提高紧急程度

发布于 2026-11-01 更新于 2026-11-01 最后核实 2026-11-01 2 分钟阅读
本页目录

适用对象:自己运营网站或服务、希望无需人工盯着信息源也能获取漏洞信息的人。本文介绍收集什么、用什么进行匹配,以及对AI的信任程度应当如何把握。

发生了什么:人连续三次先于系统知道

一周之内,在本站运营者所管理的站点上发生了三件事。每一次,运营者都是先通过社交媒体或邮件得知,而此时自动化监控尚未报告任何内容。

  1. 案例1

    一个PHP漏洞。运营者先得知。自动化监控并未标记它。
  2. 案例2

    恶意代码被植入一个Python包。运营者先得知。自动化监控并未标记它。
  3. 案例3

    一个容器基础镜像问题。运营者先得知。自动化监控并未标记它。

最初的判断是“信息源不够”。原因并非单一:官方来源可能落后于热点话题(详见下文),而且同样缺乏足够的材料来判定某条信息与我们的环境有关。新闻文本中会出现“PHP”或“Python”之类的词,但这与你实际运行的软件包名称是两回事。

重建后的监控

1. 收集

官方公告 / GitHub公告 / 恶意软件包列表 / KEV / 新闻 / 社交媒体

↓

清单A:我们使用的技术关键词

撒大网

清单B:实际组件名称

由锁文件和操作系统软件包生成

↓

2. 规则拾取匹配项(无需AI也能运行)

↓

3. 低成本AI模型进行初步分诊

它可以提高紧急程度,但不能降低。

收集、对照两份清单进行匹配、由规则拾取,然后由只能提高紧急程度的AI处理。在AI不可用的日子里,规则路径仍然继续运行。
  • 收集内容:官方公告、GitHub公告、恶意软件包列表、CISA的KEV、新闻和社交媒体。
  • 用于匹配的两份清单:技术关键词用于撒大网,实际组件名称用于高可信度匹配。组件清单基于每个代码仓库的锁文件以及操作系统软件包生成。
  • 整镜像扫描:检查整个镜像(包括基础镜像),而不仅仅是应用依赖。
  • 运行时滞后:衡量Node、PHP和数据库等运行时落后于最新版本的程度。
  • AI初步分诊:由一个低成本AI模型首先判断“这是否影响我们?”。AI只能提高紧急程度。

测量结果,包括与预期相反的部分

最初的假设:官方来源就够了

我们曾假设,监控官方公告和KEV就能抓住重要的事情。实际上,某个话题可能在公告发布之前就已开始热议。只依靠官方来源会输掉这场竞争。

测量之后:增加社交媒体作为入口

加入社交媒体后,监控能比仅依靠官方来源更早注意到某些事情。但在官方来源确认之前,社交媒体内容不被视为事实。入口要宽,判断要谨慎。

约100
由另一个文章候选监控在10天内收集到的严重漏洞
0
其中影响运营者站点、却被本监控漏掉的数量
约6天
AI配额用完后AI分诊暂停的时长(规则匹配继续运行)
  1. 检查漏报:另一个监控(用于寻找文章候选)在10天内收集的约100个严重漏洞,与本监控进行了交叉核对。其中影响运营者站点的漏洞,漏报数为0。
  2. AI配额耗尽:每月配额用完,AI分诊暂停了约6天。不使用AI的规则匹配全程保持运行。该设计会事先设定暂停结束日期,AI部分从该日期起自动恢复。
  3. 新服务器造成的缺口:新添加的服务器的操作系统软件包未出现在组件清单中。清单的月度重建发现了这一问题。只有定期重新生成,清单才可信,仅建立一次是不够的。

如何在你自己的环境中搭建

1

机械地生成组件清单(SBOM)

同时基于每个代码仓库的锁文件以及你的服务器和容器中的操作系统软件包来建立。CISA将SBOM描述为一种嵌套式清单,即构成软件组件的成分列表。开源的Syft等SBOM生成工具可以从容器镜像和文件系统中读取操作系统软件包及主要编程语言的依赖,并输出CycloneDX或SPDX格式。

2

将清单与已知漏洞进行匹配

对于依赖匹配,开源工具osv-scanner可以读取锁文件和容器。安装配置及CI集成请参阅osv-scanner:安装与使用。

3

用KEV和EPSS确定优先级

发现的问题很多时,无法都以同等紧急程度处理。应从已确认被利用的漏洞(KEV)和预测被利用概率较高的漏洞(EPSS)开始。如何结合使用两者,请参阅CVSS、EPSS与KEV:如何综合使用。

4

如果使用AI,只用它来提高紧急程度

即使AI说“不受影响”,也不要删除规则已经拾取的条目。AI可能错误地判断为“无关”,而漏报的代价大于误报的代价。

5

提前决定AI不可用时的处理方式

配额会用完,服务会出故障,供应商也可能停止服务。在运行之前就应决定:仅靠非AI规则仍能发出最低限度的通知,并且设定恢复日期,使AI部分自动返回。

6

定期重新生成清单

当服务器或代码仓库已添加但清单未更新时,就会出现缺口。应至少每月重建一次,并检查新增的内容是否已包含在内。

在官方来源确认之前,不要把社交媒体内容当作事实

社交媒体传播很快,但其中夹杂着供应商尚未确认的错误和猜测。应将其作为入口使用,但应以可核实的一手来源(如供应商公告或KEV)为依据来采取行动。

本站观点:技术关键词撒大网,用组件名称收窄范围

根据运营者的经验,改为按实际组件名称匹配后,误报和漏报都有所减少。但如果组件清单过时,就会直接导致漏报。两者缺一不可:既要撒大网,也要有准确的清单来收窄范围。本文介绍的是为本站运营者所管理站点搭建的监控。

信息来源(一手及官方)

延伸阅读

FAQ

Q自动化漏洞监控应该从哪些来源收集信息?
A

从官方供应商公告、CISA的KEV目录、软件包生态的安全公告数据库以及恶意软件包列表开始。不过,官方来源可能落后于热点话题。为本站运营者所管理站点搭建的监控,在话题热议与公告发布之间的竞争中落败过,因此增加了社交媒体作为补充入口。来自社交媒体的内容在官方来源确认之前,不会被视为事实。

Q如何建立我所使用组件的清单(SBOM)?
A

同时基于每个代码仓库的锁文件(如package-lock.json、pnpm-lock.yaml等)以及服务器和容器中的操作系统软件包来建立。仅依靠应用依赖会遗漏操作系统和基础镜像层。开源的Syft等SBOM生成工具可以从容器镜像和文件系统中读取操作系统软件包及主要编程语言的依赖,并输出CycloneDX或SPDX格式。

Q让AI判断某条信息是否影响我们是否安全?
A

如果限制其判断方向,则是安全的。在运营者的配置中,AI只能提高紧急程度,从不会降低已被规则拾取的条目。AI可能错误地判断为“不受影响”,而漏报的代价大于误报的代价。

QAI配额用完的日子,监控会怎样?
A

它应当继续运行。在运营者的监控中,每月AI配额用完后,AI分诊暂停了约6天,而不使用AI的基于规则的匹配全程保持运行。如果事先设定了恢复日期,AI部分会在该日期自动恢复。