如今,AI 模型已具备发现并利用零日漏洞的能力。Java 有一套明确的安全更新交付策略,但你是否有清晰的部署策略呢?
随着 AI、大语言模型(LLM)和检索增强生成(RAG)的迅速普及,IT 安全领域正经历着巨大变革。最近,Anthropic 推出了一款新的基础模型 Claude Mythos,在网络安全界引起了轩然大波。虽然 Mythos 是通用型模型,但它在处理计算机安全任务方面表现出色。Anthropic 在一篇博客文章中指出,在测试过程中,当用户发出指令时,Mythos Preview 能够识别并利用各大主流操作系统和网络浏览器中的零日漏洞,且它发现的许多漏洞往往很隐蔽,难以察觉。
从 Java 30 年的发展历程来看,许多被检测出的漏洞其实已潜伏多年,甚至数十年。目前发现的最古老的漏洞是 OpenBSD 操作系统中存在了 27 年的一个 bug。更让安全团队担忧的是,Mythos 运用的技术十分精妙,例如它曾构建了一个利用四个漏洞连环攻击的网络浏览器漏洞利用程序,单独来看,每个漏洞可能不会导致软件被攻破,但综合起来就产生了严重的影响。
Claude Mythos 并非故事的终结,从很多方面来说,它只是一个开端。Anthropic 开发的这款 LLM 现已能发现并利用漏洞,性能超过了人类专家和现有工具。随着氛围编程(vibe coding)的兴起以及 Cursor、GitHub Copilot 和 Claude Code 等 AI 编码工具的广泛使用,安全问题将进一步恶化。企业将依赖不透明的 AI 生成代码,软件开发过程中的更多环节,如测试,也将使用 AI,这意味着我们不得不更加信任这些工具。
考虑到 Mythos 可能带来的影响,Anthropic 非常负责,尚未将该模型公开发布。根据最近宣布的“玻璃翼计划”(Project Glasswing),只有少数选定的公司能够使用 Mythos。其目标是让关键软件基础设施供应商将 Mythos 用于防御性安全工作,这将涵盖操作系统、网络浏览器,很可能也包括 Java。
成功攻击的代价
一旦网络攻击得逞,即使是最知名、最成功的公司也会受到严重影响。NotPetya 恶意软件利用了从美国国家安全局(NSA)窃取的黑客工具,据估计,航运公司马士基(Maersk)因此遭受了 100 亿美元的损失。雅虎(Yahoo)的大规模数据泄露事件,是史上最大的一次,导致 30 亿用户账户信息泄露。Equifax 数据泄露事件则是利用了一个网络应用框架中已知但未修复的漏洞,近 1.5 亿消费者的高度敏感个人数据被泄露。实际上,这些案例只是冰山一角,许多企业因担心声誉受损,不会公开其 IT 系统被入侵的情况。
我们可以看到,网络犯罪分子和安全团队之间的斗争从未停止,双方都在竞相更快地发现漏洞。一旦找到漏洞,竞争就转向在漏洞被修复之前能否成功利用它。双方都越来越多地采用复杂的自动化工具。网络犯罪分子使用端口扫描器、密码破解器和网络应用扫描器等工具,而安全团队则使用 Black Duck 和 Snyk 等商业工具扫描源代码中的漏洞。
开源软件如今已成为现代技术的基础架构。从 Linux、Firefox 到 Kubernetes 和 Java,所有软件的源代码都可以免费下载。网络犯罪分子无需再猜测软件的工作原理,他们可以直接查看源代码,并试图绕过安全扫描工具。AI 进一步放大了这一优势,它能以机器速度分析整个代码库,发现自动化扫描器经常遗漏的细微缺陷。
Java 的安全架构与关键补丁更新速度
作为大多数企业和关键任务应用程序的基础组件,Java 平台拥有极其严格且结构完善的安全策略。在 OpenJDK 开源项目中,有一个名为 OpenJDK 漏洞小组(OpenJDK Vulnerability Group,OVG)的团队。尽管该项目是开源的,但这个团队的工作完全保密。团队成员经过严格筛选,只有具备必要安全背景和技能的工程师才能入选。由于他们正在为尚未修复的漏洞(即公开分类中的零日漏洞)开发补丁,所有通信都进行了加密处理。与项目中的其他小组不同,该小组的电子邮件交流内容不会公开。
基于 OVG 的工作,OpenJDK 会在每年 1 月、4 月、7 月和 10 月的第三个星期二,按照既定计划发布安全补丁的源代码更改。大多数(但并非全部)主要的 OpenJDK 二进制发行版提供商在 OVG 中都有代表,这确保了 Java 运行时发行版的更新能够及时提供给用户。作为 Java 的主要开发者,甲骨文(Oracle)会在源代码仓库更新的同时,以关键补丁更新(Critical Patch Update,CPU)的形式发布补丁。一旦甲骨文的 CPU 公开,其他 OpenJDK 发行版的发布限制就会解除,它们可以自由发布自己的更新。这一过程所需的时间取决于发行版提供商,显然,延迟时间越长,未修复漏洞被利用的风险就越大。以 Azul Core(包含 OpenJDK 的 Zulu 版本)为例,在发布限制解除后的一小时内,就能为用户提供更新。
如今良好的 Java 安全实践
为确保基于 JVM 的应用程序的最高安全级别,你应该制定一套明确的策略,在整个企业范围内部署 JDK 更新。很多用户认为,由于有防火墙的保护,他们的机器无需打补丁,这种想法是错误的。防火墙并非坚不可摧,前面提到的 Equifax 数据泄露事件,攻击者就是先利用了防火墙外机器的漏洞,一旦这些机器被攻破,他们就能像穿过不存在的防火墙一样进入内部系统。
该策略的一部分应该是清晰记录企业内哪些机器运行着哪个版本的 Java,甚至具体部署了哪些更新。当 Java 更新发布时,应该有一个流程来评估所解决的漏洞,以便快速决定更新的部署速度。
为确保应用程序的最大安全性和稳定性,JDK 更新有两种形式:仅包含安全补丁的 CPU,以及包含所有更改的补丁集更新(Patch Set Update,PSU)或完整更新。并非所有发行版都提供单独的 CPU(Azul 是仅有的两家提供此服务的公司之一)。由于更新频繁,无法对所有流行的应用程序、库和框架进行严格测试。大约每四个 PSU 中就有一个包含的修复会引发其他问题,需要进行二次更新。而 CPU 从未出现过这种情况,因此可以在不影响稳定性的情况下部署关键补丁。
正如所说,这只是 AI 网络安全故事的开端。其他前沿模型开发者也将推出能够媲美甚至超越 Claude Mythos 漏洞发现能力的模型。我们正进入一个网络安全更具挑战性的新时代。为此,用户必须比以往任何时候都更加警惕,及时更新 Java 运行时环境。