热门漏洞
2021年12月,热门漏洞Apache Log4j2 被爆出一个远程代码执行漏洞,热门漏洞编号 CVE-2021-44228。热门漏洞这个漏洞的热门漏洞 CVSS 评分是满分 10.0。什么概念?热门漏洞攻击者只需要往目标服务器发送一段特殊构造的字符串,就能在服务器上执行任意代码。热门漏洞不需要认证,热门漏洞不需要用户交互,热门漏洞门槛低到离谱。热门漏洞
我记得那几天安全圈基本没睡好觉。热门漏洞凌晨三点群里还在刷消息,热门漏洞有人在测 PoC,热门漏洞有人在翻自己负责的热门漏洞资产清单,有人在骂——因为 Log4j2 这个东西藏得太深了。热门漏洞它不是热门漏洞一个你主动安装的服务,它是 Java 生态里的基础日志库,被无数框架、中间件、业务系统间接依赖。你以为自己没用它?你的某个依赖的某个依赖可能就在用它。这叫供应链攻击的经典场景。
漏洞这东西,从来不是孤立事件
Log4Shell 之前,2017 年的 Equifax 事件也是类似剧本。Apache Struts 2 的漏洞 CVE-2017-5638,攻击者利用它入侵了美国三大征信机构之一的 Equifax,最终泄露了 1.47 亿人的个人信息。事后调查发现,补丁其实早就发布了,但 Equifax 内部没有及时修复。一个已知漏洞,两个多月没打补丁,代价是十几亿美元。
这两件事放在一起看,你会发现一个规律:真正造成大规模破坏的,往往不是那种精妙绝伦的零日漏洞,而是已经公开、已经有补丁、但就是没人去修的漏洞。听起来很荒谬对吧?但现实就是这样。资产盘不清、责任人不明确、怕影响业务不敢动、觉得“我们这种小公司不会被盯上”——理由永远比行动多。
攻防的不对称性在加剧
现在找一个漏洞的成本,和利用一个漏洞的成本,完全不在一个量级。攻击者用 Shodan、FOFA 这类空间测绘引擎,几分钟就能扫出全网暴露的特定服务。自动化利用工具满天飞,脚本小子拿着现成的 exp 就能打。防守方呢?要管资产、管补丁、管配置、管权限、管日志,还得管人。任何一个环节掉链子,前面所有努力白费。
我个人的判断是,漏洞管理这件事,技术只占三成,七成是流程和意识问题。你给一个团队再好的扫描器,如果没有人去看报告、没有人去推动修复、没有人去验证结果,那扫描器就是个摆设。反过来,一个中等水平的团队,如果有明确的资产台账、有定期的漏洞修复 SLA、有上线前的安全卡点,实际风险反而更低。
普通人需要关心吗?
需要。你可能不是安全从业者,但你用的手机 App、你存钱的银行、你挂号用的医院系统,背后都跑着各种开源组件。Log4Shell 爆发的时候,很多非技术公司根本不知道自己用了 Log4j2,等收到安全厂商的告警才慌了。这不是技术问题,这是认知问题——软件供应链的透明度太差了。
我的建议很朴素:如果你是开发者,把依赖管理当回事,别只管写业务代码;如果你是运维,资产清单别用 Excel 手工维护了,上个 CMDB;如果你是管理者,别等出了事才问“我们的安全做得怎么样”。漏洞不会消失,但你可以让自己不那么容易被选中。
攻击者永远在找最短路径。你的任务不是造一堵完美的墙,而是让自己的墙比隔壁那家高一点点。这话不好听,但管用。