漏洞管理是开发日常不是年终突击

上周三晚上十点,我在新街口楼下的便利店啃加热过的咸饭团,碰到前同事阿凯。他抱着厚外壳的游戏本蹲在便利店门口的台阶上,屏幕亮着满屏的红色漏洞条目,脸绿得像刚被安全团队扣了季度奖金。 问了才知道,他们公司下周一要接监管的漏洞专项抽查,这才想起来把过去三个月漏扫攒下来的两百多个中危条目挨个过,全组人排了班连熬三个大夜,连测试环境的服务器都快被重启宕机了。

别把漏扫报告当免责声明

说实话,我太熟悉这种场景了。太多团队聊起漏洞管理,第一反应就是”我们买了市面上最贵的漏扫设备,每周自动跑一次全资产扫描,报告存得整整齐齐”。

但你真翻到他们的共享盘就会发现,那些按周生成的扫描报告,从生成那天起就没被人打开过几次。安全团队每个月给领导交的汇报PPT里,列着今年累计发现多少个高危、多少个中危,整改率百分之多少,看着特别漂亮。真要细问那些没整改的条目现在是什么状态,有没有被外部爬虫扫到过,有没有被人利用的痕迹,没人答得上来。

企业漏洞扫描报告工单流转界面
企业漏洞扫描报告工单流转界面

绝大多数团队的漏洞管理失效,根本不是工具不够好,是把”发现漏洞”当成了管理的终点。

阿凯他们去年就踩过这个坑。三个月前漏扫报了个对象存储桶权限错配的中危漏洞,安全团队发了个泛泛的整改工单,业务团队当时正赶618大促的版本上线,回了一句”最近排期满,等大促结束再改”,工单就直接沉到了系统最底层。直到上个月有个公开的爬虫脚本扫到了这个桶,爬走了小两万条用户的手机号和收货地址,赔了十几万,大家才想起这茬。

没用的。真出事的时候,没人听你解释当时的业务压力有多大。

别让开发为了补漏洞重新踩坑

我见过最离谱的漏洞整改流程,是安全团队把漏扫出来的条目原封不动群发邮件给全公司的开发,邮件里就一句话”请相关负责人尽快修复对应CVE漏洞”,连哪个系统用了有问题的组件、影响范围是啥、要升级到哪个版本会不会搞挂现有业务,一概没提。

开发拿到邮件一脸懵,翻遍了整个代码库才找到对应的依赖,吭哧吭哧升完版本,跑测试的时候才发现把老业务的API搞崩了,又得回滚、重新验证,来回折腾大半天。上次陪一个在软件大道上班的朋友改OpenSSH的对应漏洞,他折腾了整整一天,最后发现安全团队给的升级包是还没经过正式验证的测试版,根本不兼容他们跑了五年的老核心系统,当时他差点把机械键盘摔在工位上。

开发调试环境中组件版本升级操作界面
开发调试环境中组件版本升级操作界面

靠谱的漏洞管理,从来不是把工单甩出去就完事,得把整改的前置准备做足。

别觉得这样做安全团队的工作量会翻番。你算笔账就知道,以前一个模糊的工单发出去,开发来回问位置、试版本、调兼容,平均要花4个小时才能搞定一个中危漏洞。如果安全团队在发工单之前,先把全公司的资产摸一遍,定位到具体哪个服务用了受影响的组件,把已经验证过的稳定升级版本、之前踩过的兼容性坑、甚至实在没法升级时的临时缓解方案都附在工单里,开发拿到手照着步骤走,20分钟就能把漏洞改完,整体效率高十倍都不止。

给漏洞分个真正的优先级

很多团队现在的漏洞优先级逻辑完全是乱的。不管这个漏洞能不能被攻击者碰到,只要CVE评分标了”高危”,就要求业务团队24小时内必须整改完。结果开发天天为了那些根本没对外暴露的内网测试环境漏洞加班,真的能被外部攻击者摸到的风险,反而排不上号。

之前碰到过一个做电商的团队,把内网测试环境里的Log4j漏洞标成了最高优先级,要求当天必须整改完,全组人熬到半夜把版本升了。转头发现他们生产环境有个公网暴露的未授权访问接口,因为是业务团队自己写的定制接口,根本不在漏扫的规则库里,拖了半个月都没人发现,最后被人挂了挖矿程序,把服务器的CPU跑满了整整两天。

漏洞的优先级从来不是看CVE评分有多高。真正要算的是这个漏洞在你的资产里,能不能被外部攻击者碰到,利用成本有多低,被利用了之后会造成多大的实际损失。比如你一个完全不对外的内部运维系统,就算跑了十个高危组件,只要外面的人根本摸不到你的网络边界,优先级完全可以放低,慢慢排期改就行。但你一个面向普通用户的公网接口,只要存在一个能不登录就拿到用户敏感数据的问题,就算漏扫从来没报过,那也是最高优先级,当天就得修。

不过话说回来,也别拿这个当借口啥漏洞都往后拖。那种能被公开的批量扫描器找到、网上已经有现成利用脚本的漏洞,你拖个三五天可能就被人盯上了,真被打了造成的损失,比你当时花一下午修的成本高一百倍。

上周我再碰到阿凯的时候,他们公司已经把原来的漏洞管理流程全改了。现在每个发出去的漏洞工单,都附了具体的资产定位、验证过的升级步骤、兼容测试结果,开发不用自己在代码库里瞎找位置。每个月的整改会也不用喊一堆无关的人来陪坐,安全团队只需要盯着真正有高风险的那几个条目跟进就行。他说现在再也不用季度末抱着电脑蹲在便利店门口熬夜了。

挺好的。

漏洞管理本来就不该是一场场突击的救火。它就是日常开发里的一件小事,跟写注释、测接口一样,嵌在每天的工作流里,根本没必要等到火烧到眉毛了才着急。

免责声明:市场有风险,选择需谨慎!此文仅供参考,不作买卖依据。如有侵权请联系删除。
文章名称:漏洞管理是开发日常不是年终突击
文章链接:https://www.itcdj.com/it/115.html