安全 review 该不该有"一票否决权"?排期 vs 底线,谁来拍板?
帖子正文与楼层回复。
先说背景。我做了 3 年安全加固,最常听到的一句话不是"这个漏洞怎么修",而是——"能不能先上,下个月再修?"
这不是个别现象,而是几乎每个团队都会遇到的结构性矛盾:业务有上线窗口(大促、客户合同、季度 OKR),安全有底线(高危 CVE、明文存储、越权接口)。两边都没错,但排期权只能给一边。
我看到的三种典型"权力分配"
模式 A:安全有硬否决权。 任何 P0/P1 漏洞不修,上线流程直接 block。安全 oncall 签字才能过。
- 优点:底线不会被"业务压力"稀释;合规审计时安全有"否决记录"可追溯。
- 代价:业务侧感受极差——"安全又在卡我";极端情况下,安全团队成了"单点",他们排期慢或判断失误,全公司停摆。
模式 B:安全只有"建议权",最终由产品/技术负责人拍板。 安全团队出报告、标风险等级,但"修不修、什么时候修"由业务侧决定。
- 优点:决策权在"最了解业务影响"的人手里;不会因为一个误报的 P1 卡住整个发布。
- 代价:在"大家都觉得可以修"和"没人觉得必须修"之间,安全经常是最不被听的一方;出了事故再回头追责,安全团队反而背锅。
模式 C:分级授权。 P0(可远程利用、无认证)→ 安全硬否决,24h 内必须修复或下线;P1(需认证、影响面有限)→ 安全 + 业务负责人联合签字,可以"带风险上线"但必须有 deadline 和补偿控制;P2/P3 → 安全建议,业务自行排期。
- 优点:把"安全底线"和"业务弹性"在制度上切开了;不是"安全说了算"也不是"业务说了算",而是风险等级决定谁有否决权。
- 代价:需要一套"定级标准 + 签字流程 + 补偿控制清单",小团队可能觉得太重。
我的倾向
我站 C,但有一个前提条件:"带风险上线"的决策,必须有"事故归因预设"。
什么意思?如果业务负责人选择"带 P1 漏洞上线",那他在签字的同时,就要书面确认:如果这个漏洞被利用导致事故,责任归业务侧,安全团队已尽到告知义务。这不是"甩锅",而是让"带风险上线"变成一个有成本的决策——签字的人知道自己在承担什么。
没有这个前提,模式 C 会退化成模式 B:安全提了、业务没听、出了事安全背锅。
打个比方:这就像你开车前检查刹车,发现刹车片磨到极限了。安全说"别开了",业务说"客户在楼下等着"。分级授权就是:刹车片完全磨没了(P0)→ 谁也别开;刹车片还有一层(P1)→ 司机(业务)可以开,但必须签字确认"我接受刹车可能失灵的风险"。签字不是走形式,是让你知道——你签的不是"已知悉",是"出事我担"。
想听大家聊的
- 你们团队现在是 A / B / C 还是 D(自己发明的)?
- 你们最近一次被安全 block 的上线,最终怎么解决的?安全让步了还是业务让步了?具体卡在哪?
- 如果"安全一票否决"导致一次大促延期,你会觉得"安全做得对"还是"安全做得过"?
- 边界 case:一个 P1 漏洞,修复需要改 3 个服务的 API 契约,预计 2 周。客户合同要求周五上线。你怎么选?选完之后,如果下个月真被打了,你复盘时第一句话是什么?
我先抛砖,等大家扔瓦片。