3. 漏洞管理流程:漏洞发现、分类与优先级评定

漏洞管理这事儿,说白了就是个「筛子」工程。你想想看,一个中型企业每天可能收到几十甚至上百条漏洞告警,要是每条都当紧急事件处理,团队早累垮了。我做了这么多年安全,最大的体会就是:没有优先级管理的漏洞管理,等于没有管理。

这一章,咱们就聊聊漏洞管理的三个核心环节:怎么发现漏洞、怎么给漏洞分类、怎么用 CVSS 评分排优先级。嗯,这里面的坑不少,我一个个说。

3.1 漏洞发现:你的情报来源够全吗?

漏洞发现不是等别人通知你「嘿,你系统出事了」。一个成熟的漏洞发现机制,应该覆盖四个维度:

  • 主动扫描:用 Nessus、OpenVAS、Qualys 这类工具定期扫资产。我个人习惯是每周全量扫一次,每天增量扫一次。
  • 被动监测:通过 SIEM 或 IDS/IPS 实时分析流量,发现异常行为。我在项目中遇到过,主动扫描没扫出来的漏洞,反而是流量监测先报警的。
  • 外部情报:订阅 CVE、NVD、厂商安全公告。别只看自家系统,第三方组件的漏洞往往更致命。
  • 众测与白帽:HackerOne、Bugcrowd 上的报告,质量通常比自动化工具高一个档次。
我的习惯:把发现渠道分成「自动化」和「人工」两条线。自动化负责广度,人工负责深度。两条线交叉验证,漏报率能降到最低。

3.2 漏洞分类:别把苹果和橘子放一起

发现漏洞之后,第一件事不是修,而是分类。为什么?因为不同类别的漏洞,修复策略、责任人、时间窗口完全不一样。

我一般把漏洞分成以下几类:

类别 典型例子 修复特点
配置类 默认口令、开放高危端口 改配置即可,通常几分钟搞定
补丁类 操作系统或中间件已知漏洞 需要厂商补丁,可能涉及停机
代码类 SQL注入、XSS、反序列化 需要开发团队改代码,周期长
架构类 缺乏认证、加密强度不够 涉及系统重构,通常走项目制
第三方依赖 开源库漏洞、供应链风险 升级版本或找替代方案

分类做得好,后续的指派和跟踪就顺了。我曾经见过一个团队,把所有漏洞都扔给运维,结果代码类漏洞运维根本改不了,拖了三个月还没修。这就是分类没做好的典型后果。

3.3 CVSS 评分:不只是算个数字

CVSS(Common Vulnerability Scoring System)现在是业界标准,目前主流是 v3.1 版本。它把漏洞评分分成三个维度:

  • 基础指标(Base):漏洞本身的固有属性,比如攻击途径、攻击复杂度、权限要求等。这部分是固定的,不受环境影响。
  • 时间指标(Temporal):随时间变化的因素,比如是否有公开利用代码、是否有官方补丁。这部分会动态调整。
  • 环境指标(Environmental):跟你自己的环境相关,比如受影响资产的重要性、安全控制措施的强度。

很多人只算 Base 分数,其实这是不够的。我建议你们至少把 Environmental 也加上,否则你可能会把「对内网测试机」和「对外网核心数据库」的漏洞评成一样的分数——这显然不合理。

核心公式(简化版):
CVSS 最终分 = Base 分 × Temporal 因子 × Environmental 因子
最终分范围:0.0 - 10.0
分级标准:0.0 = None, 0.1-3.9 = Low, 4.0-6.9 = Medium, 7.0-8.9 = High, 9.0-10.0 = Critical

3.4 优先级评定:别被 CVSS 分数骗了

CVSS 分数高,就一定优先修吗?不一定。我给你讲个真实案例。

有一次,我们扫描发现一个 CVSS 9.8 的远程代码执行漏洞,理论上应该立刻修。但仔细一看,这个漏洞只影响一个已经停用的内部演示系统,而且那个系统根本不联网。反而是另一个 CVSS 6.5 的漏洞,影响的是对外服务的 API 网关,而且已经有公开的利用脚本在流传。

你说哪个该先修?

所以,我个人的优先级评定公式是这样的:

最终优先级 = CVSS 基础分 × 资产重要性系数 × 可利用性系数 × 业务影响系数

其中:

  • 资产重要性系数:核心数据库 = 1.5,普通应用 = 1.0,测试环境 = 0.5
  • 可利用性系数:有公开 PoC = 1.5,有概念验证 = 1.2,仅理论 = 0.8
  • 业务影响系数:直接影响收入 = 1.5,影响用户体验 = 1.2,无直接影响 = 0.8

这样算下来,那个 9.8 分的漏洞实际优先级是 9.8 × 0.5 × 0.8 × 0.8 = 3.136,而 6.5 分的漏洞是 6.5 × 1.5 × 1.5 × 1.5 = 21.937。高下立判。

避坑指南:我曾经见过一个团队,完全依赖自动化工具的 CVSS 分数来排优先级,结果把大量时间花在了「高分低危」的漏洞上,真正危险的漏洞反而被忽略了。记住,CVSS 是工具,不是决策者。

3.5 漏洞管理全流程:一张图说清楚

下面这张图,是我在多个项目中反复打磨出来的漏洞管理流程。你可以把它当成团队的标准作业流程:

漏洞管理全流程 漏洞管理全流程 1. 漏洞发现 2. 漏洞分类 3. CVSS 评分 4. 优先级评定 5. 修复与验证 6. 复盘与改进 关键原则 • 持续迭代,闭环管理 • 数据驱动,而非直觉 • 自动化优先,人工兜底

这个流程的关键在于「闭环」。从发现到修复,再到复盘改进,每一步都要有记录、有度量。我见过太多团队只做到「修完就完」,结果同样的漏洞类型反复出现——那就是复盘环节缺失了。

3.6 落地建议:从小处着手

如果你所在的公司还没有成体系的漏洞管理流程,别想着一步到位。我建议你从这三件事开始:

  1. 先跑通发现→分类→评分这条主线,哪怕用 Excel 先记着都行。
  2. 定一个简单的优先级规则:比如 CVSS 7.0 以上 + 影响核心业务 = 24 小时内必须响应。
  3. 每月做一次复盘:看看哪些漏洞类型最多,哪些环节最耗时,然后针对性优化。
小技巧:刚开始别追求完美。漏洞管理是「越做越细」的活,先跑起来,再慢慢加指标、加自动化。我自己的团队也是从每周手动汇总漏洞报告开始的,半年后才上了完整的漏洞管理平台。

好了,这一章的内容就这些。记住:漏洞管理的核心不是「发现所有漏洞」,而是「在有限资源下,把最危险的漏洞先修掉」。这个思路,比任何工具都重要。