开篇:安全的四个第一性维度——资产、威胁、脆弱性、影响
这篇是整份手册真正的地基。先说明:上一版的”看、想、做、守”是我偷懒了——那是 agent 任务的通用动作维度,不是安全自己的维度。这一版,重新为安全定义它专属的第一性拆解。
一、先认个错,再说清一件事
上次我把”看、想、做”搬过来,加了个”守”,凑成”看想做守”。看着整齐,但它有个根本问题:
“看、想、做”回答的是”一个系统怎么干活”(观察 → 判断 → 行动),是任何领域都能套的通用动作维度。它不回答安全最本质的问题——“一个安全问题,到底由什么构成?”
你想想,你进安全部门,天天面对的是”这个漏洞要不要修""这个系统安不安全""这次攻击怎么防”。这些问题,用”看想做守”只能描述”你该怎么处理它”,却说不清”它本身是什么”。
所以这次,我回到安全的第一性,重新定义维度。
二、安全的本质:风险管理,四个词
安全的本质,学界和业界吵了几十年,最后收敛到一句话:
安全 = 风险管理。
而风险,有一个经典的第一性公式:
风险 = 威胁 × 脆弱性 × 影响(落在一个"资产"上)
这个公式里藏着四个词,它们才是安全真正原生的四个维度:
| 维度 | 英文 | 一句话之问 | 它是什么 |
|---|---|---|---|
| 资产 | Asset | 「守什么?」 | 你要保护的对象 |
| 威胁 | Threat | 「怕什么?」 | 谁可能来打你、怎么打 |
| 脆弱性 | Vulnerability | 「漏在哪?」 | 你自己可以被利用的弱点 |
| 影响 | Impact | 「疼多大?」 | 被打中后的损失 |
这四个词,是 ISO 27005、NIST SP 800-30 这些风险管理标准的共同地基。 不是我编的,是安全这门学科自己长出来的第一性维度。
三、四个词逐个拆,先把概念钉死
1. 资产(Asset)——「守什么?」
一切安全的起点。你连”要保护什么”都不知道,后面全是空谈。
资产不只是”服务器”。它可以是:数据(用户信息、源码、密钥)、系统(网站、数据库、中间件)、业务(支付流程、订单、账号)、身份(管理员账号、API 凭证)、乃至声誉(品牌、合规资质)。
一个反常识的点:大多数公司出问题,不是”防不住”,是”根本不知道自己有什么要防”。攻击面管理(ASM)、资产盘点(CMDB),干的都是”把资产摸清楚”这件事——这是”守什么”的第一步。
2. 威胁(Threat)——「怕什么?」
站在攻击者的角度问:谁可能来搞我?用什么手段?
威胁要素包括:攻击者是谁(脚本小子、勒索组织、APT 国家力量、内部员工)、他的动机(钱、数据、破坏、间谍)、他的能力(有没有 0day、资源多雄厚)。
关键区分:威胁是”外部”的,是别人对你做的事;脆弱性是”内部”的,是你自己的毛病。 小偷想偷你家,这是”威胁”;你家窗户没锁,这是”脆弱性”。很多人把这两个词混着用,一混,分析就乱了。
3. 脆弱性(Vulnerability)——「漏在哪?」
你自己身上,有什么可以被威胁利用的弱点。
脆弱性不只是”漏洞”。它分三层:
- 技术脆弱性:代码漏洞(SQL 注入、RCE)、组件漏洞(Log4j)、配置错误(弱口令、端口暴露)
- 流程脆弱性:补丁没及时打、没有代码评审、权限审批形同虚设
- 人的脆弱性:员工点钓鱼邮件、把密码贴在显示器上、把密钥提交到 GitHub
你要的”RCE 这些漏洞概念”,就属于”脆弱性”这个维度——它们是威胁可以利用的技术弱点类型。所以认识漏洞,本质是认识”脆弱性”。
4. 影响(Impact)——「疼多大?」
威胁真的利用了脆弱性之后,你损失什么。
影响也不只是”数据泄露”。它可以是:机密性受损(数据被偷)、完整性受损(数据被篡改)、可用性受损(业务中断)、资金损失、法律合规处罚、声誉崩塌。
关键:影响决定了”值不值得花大代价防”。 一个只会造成”官网首页被挂个图”的风险,和一个会造成”1 亿用户数据泄露 + 被罚几个亿”的风险,你投入的防御资源天差地别。影响,是风险公式里那个”权重”。
四、把你要的三块东西,挂到新维度上
现在回到你最初三个诉求,看它们在新维度下各归其位:
-
「CVE / 组件怎么定级」 → 落在「脆弱性 × 影响」的交叉。定级的本质,就是判断”这个脆弱性(漏洞)× 它可能造成的影响,值不值得我优先处理”。定级不是给漏洞打分,是给”风险”打分。
-
「RCE 这些漏洞概念」 → 落在「脆弱性」。RCE、SSRF、SQL 注入……是脆弱性这个维度里的”技术弱点类型”。
-
「常见安全产品解决什么维度」 → 横跨四要素,但各有侧重:
| 安全产品 | 它管的是哪个要素 |
|---|---|
| 资产盘点 / 攻击面管理(ASM / CMDB) | 资产(摸清”守什么”) |
| 威胁情报平台(TIP)、威胁建模、ATT&CK | 威胁(识别”怕什么”) |
| SAST / SCA / DAST / 漏扫、补丁管理 | 脆弱性(发现并治理”漏在哪”) |
| WAF / RASP / EDR / IPS | 脆弱性(阻止威胁”利用”脆弱性) |
| DLP / 加密 / 备份 / 应急响应 | 影响(降低”疼多大”) |
看这张表你就明白了:安全产品的分类,本质是按”它管风险公式里哪个因子”来分的。 有的产品管”识别威胁”,有的管”堵脆弱性”,有的管”降影响”。这就是为什么四要素是比”看想做守”更本质的维度——它能解释”产品为什么存在”,而不只是”产品在干什么”。
五、“四要素”和”看想做守”是什么关系:一个是结构,一个是动作
最后说清楚,上次的”看想做守”不是错了,是用错了地方:
| 资产 × 威胁 × 脆弱性 × 影响 | 看、想、做、守 | |
|---|---|---|
| 回答什么 | 安全问题由什么构成 | 安全运营怎么运转 |
| 属于哪类维度 | 结构维度(第一性) | 动作维度(执行层) |
| 用来干什么 | 拆解、分析一个安全问题 | 组织、执行安全运营 |
| 类比 | ”这个病是什么病、什么引起的" | "医生怎么看病:问诊→诊断→开药→复诊” |
你要的是”拆解和分析安全问题”,所以主维度是”四要素”。 “看想做守”留给”怎么组织安全团队干活”时再用。
一个例子你就懂了:分析”Log4j 漏洞”这件事——
- 用四要素拆:资产 = 所有用了 Log4j 的 Java 系统;威胁 = 所有能往日志里塞恶意字符串的攻击者;脆弱性 = Log4j 的 JNDI 注入缺陷;影响 = 服务器被 RCE、数据失守。这四个词,把这个问题彻底拆清楚了。
- 用看想做守拆:看 = 发现用了 Log4j;想 = 定级;做 = 升级;守 = 验证。这四个字,描述的是”怎么处置”,而不是”问题是什么”。
拆解分析,用四要素;组织执行,用看想做守。 别混。
思考题(先想,再看答案)
题目一: 用”资产、威胁、脆弱性、影响”四要素,完整拆解一次”SQL 注入”:你的资产是什么?威胁是谁?脆弱性在哪?影响是什么?试着每个要素写一句话。
题目二(概念辨析): 区分下面哪句是”威胁”、哪句是”脆弱性”:① 黑客在扫描你的公网端口;② 你的数据库账号是弱口令;③ 勒索组织盯上了你所在行业;④ 你的服务器没打一个高危补丁。并说说,为什么”威胁”和”脆弱性”不能混为一谈。
题目三(深一层): 一个”零风险”的系统存在吗?用”风险 = 威胁 × 脆弱性 × 影响”这个公式,说明为什么不存在——以及这给了我们什么启示(既然零风险不存在,那安全工作的目标到底是什么?)。
参考答案
题目一(示例): 资产 = 数据库里的用户数据;威胁 = 任何能访问这个登录接口的攻击者(外部黑客);脆弱性 = 后端把用户输入直接拼进 SQL、且数据库账号权限过大;影响 = 数据被拖库(机密性受损)、甚至写文件拿服务器(完整性/可用性受损)。你看,四要素一填,一个模糊的”SQL 注入很危险”就变成了四个清晰的命题,每个命题都对应一个具体的防御动作(资产要分级、威胁要监控、脆弱性要参数化查询+最小权限、影响要加密+备份)。
题目二: ① 是威胁(黑客在对你做的事);② 是脆弱性(你自己的弱口令);③ 是威胁(外部攻击者的意图);④ 是脆弱性(你自己没打补丁)。区分标准一句话:威胁是”别人要搞你”,脆弱性是”你自己有毛病”。 不能混,是因为两者的处置方向完全相反——对付威胁靠”情报、监控、隔离攻击者”,对付脆弱性靠”修复、加固、改自己”。你把弱口令(脆弱性)当成威胁去处理,就会去”追查谁在爆破”而不是”赶紧把口令改了”,方向就错了。
题目三: 不存在。因为”威胁”(外部攻击者永远存在)不可能为零,“脆弱性”(任何复杂系统必然有未知弱点)也不可能为零,两个非零的数相乘,风险就不可能为零。这给了我们一个根本启示:安全的目标不是”消除风险”(做不到),而是”把风险降低到可接受的水平”。 具体来说,就是三件事:摸清资产(缩小未知)、治理脆弱性(减小”漏在哪”)、降低影响(万一被打,损失可控)。想明白这一点,你就不会再纠结”怎么做到绝对安全”这个无解的问题,而会转向”怎么让风险可控”这个可解的问题。