网站首页 > 技术文章 正文
为什么即时安全更新对于您的关键企业 Java 应用程序至关重要。
译自 The Hidden Threats Lurking in Outdated Java,作者 Simon Ritter。
保持企业系统尽可能安全应该是显而易见的,不是吗?不幸的是,由于需要考虑如此多的安全方面,这在一些最重要的领域经常被忽视。
例如,Java 运行时。
直到 2019 年,保持 JDK 更新到最新的安全补丁都是直截了当的,并且没有直接成本。当 Sun Microsystems 发布 Java 时,您可以免费下载 Java 开发工具包,除非您将其用于某种嵌入式或单用途应用程序(例如使用嵌入式 PC 的售票亭)。即使发布了新版本的 Java——这每两、三甚至四年才发生一次——与持续的免费更新仍然有相当大的重叠,以确保平稳过渡。
Oracle 在 2010 年收购 Sun 后,继续以相同的方式交付其 JDK,直到 2019 年。它的第一个变化是转向基于时间的发布计划,而不是基于功能的发布计划。现在,就像时钟一样,我们每年都有两个新版本的 Java:一个在 3 月,一个在 9 月。
这种更快的发布节奏导致了 Oracle JDK 长期支持 (LTS) 版本的引入,因为为所有版本提供扩展维护和支持是不切实际的。最初,每三年发布一个新的 LTS 版本,但现在已经缩短到两年。
当前的 LTS 版本是 JDK 8、11、17 和 21。Oracle 不再支持(即使是商业上)旧的开源版本的 Java,JDK 6 和 7。
安全更新 有多重要?毕竟,Java 现在已经近 30 年了;我们现在难道还没有消除所有漏洞吗?可悲的是,没有,现实地说,这永远不会发生。OpenJDK 包含 750 万行代码,并依赖于许多外部库,所有这些都可能存在未发现的漏洞。
让我们用一些硬数据来解释这一点。
假设您在 JDK 6 上运行您的应用程序,并且自 Oracle 免费公开更新结束(2013 年 4 月)以来一直没有更新它。在这种情况下,您的应用程序会暴露于总共 425 个漏洞,其中 89 个是严重的。
及时更新您的系统 的能力至关重要。
Oracle 为每个更新提供两个版本,分别称为关键补丁更新 (CPU) 和补丁集更新 (PSU)。CPU 仅包含与安全相关的更改;PSU 包含与安全相关的更改、错误修复、性能改进以及任何其他代码更改。大小差异很大。一个大型 CPU 可能包含 15 个更改,但通常少于 10 个。另一方面,PSU 可以包含 200 到 400 个更改。
更新中包含的更改越多,其中一个更改可能影响应用程序功能的可能性就越大。由于更新之间只有三个月的时间,因此只能对应用程序进行如此多的测试。这会导致 PSU 产生重大影响的情况。例如,2022 年 7 月的 PSU 包含一个修复程序,该修复程序阻止了基于 Hadoop Cluster、Solr 和 Lucene 的应用程序正常工作。
自从 Oracle 更改其分发和许可以来,已经发布了 22 个更新。其中,6 个 PSU 需要修改和新版本来解决引入的回归。创建新更新的时间从不到两周到超过五周不等。CPU 从未受到过这种影响。访问 CPU 对于维护应用程序的最高安全级别至关重要。
由于所有免费的 OpenJDK 二进制分发版仅提供 PSU 版本,因此一些用户可能认为在能够部署之前等待几周是可以接受的风险。
这非常危险。
当发布 JDK 更新时,所有已解决的漏洞都会在发行说明中披露。恶意行为者现在拥有信息,使他们能够尝试找到利用未修补应用程序的方法。
让我们以常用的 Java 库 Apache Struts 为例,来说明这有多危险。
2023 年 12 月 7 日,发布了有关 Struts 中漏洞的详细信息。该漏洞的通用漏洞评分系统 (CVSS) 为 9.8,使其成为严重漏洞。此外,它有可能允许远程代码执行 (RCE),这是一种比可用于拒绝服务 (DOS) 的漏洞更糟糕的漏洞。 仅仅四天后,概念验证代码就被发布,展示了如何利用此漏洞。在代码发布后的 24 小时内,就观察到对未修补系统的攻击。在可用的 Java 更新发布之前等待两周或更长时间,将使您的应用程序暴露在风险之中。您是否愿意承担这种风险?
Azul 的 Platform Core 提供了经过 TCK(技术兼容性工具包)测试的 Zulu 版本的 OpenJDK,每个季度都包含 CPU 和 PSU。它还支持 JDK 6 和 7。这为您的关键任务企业 Java 应用程序提供了最大的安全性和稳定性,而无需您将旧版应用程序升级到更新的版本。
了解更多关于 Java 和 OpenJDK 的信息。
猜你喜欢
- 2024-11-07 国产Navicat来啦!免费使用的sql工具!
- 2024-11-07 PostgreSQL开源免费企业级数据库用着不爽的案例
- 2024-11-07 Python日常应用库 python常用的库
- 2024-11-07 终于等到了:VMware的Workstation Pro对个人用户免费
- 2024-11-07 甲骨文推出世界首个全自治操作系统,对云基础设施客户免费
- 2024-11-07 宝藏国产sql工具,居然免费! sql 免费版
- 2024-11-07 全能免费的数据库工具,支持多种主流数据库
- 2024-11-07 厉害了,开源、免费、跨平台数据库管理工具源码免费分享,快收藏
- 2024-11-07 有哪些好用又免费的SQL工具? sqlyog免费
- 2024-11-07 GreptimeDB融资数百万美元; Oracle提供免费长期MySQL
你 发表评论:
欢迎- 617℃几个Oracle空值处理函数 oracle处理null值的函数
- 610℃Oracle分析函数之Lag和Lead()使用
- 599℃0497-如何将Kerberos的CDH6.1从Oracle JDK 1.8迁移至OpenJDK 1.8
- 595℃Oracle数据库的单、多行函数 oracle执行多个sql语句
- 591℃Oracle 12c PDB迁移(一) oracle迁移到oceanbase
- 582℃【数据统计分析】详解Oracle分组函数之CUBE
- 572℃最佳实践 | 提效 47 倍,制造业生产 Oracle 迁移替换
- 560℃Oracle有哪些常见的函数? oracle中常用的函数
- 最近发表
-
- PageHelper - 最方便的 MyBatis 分页插件
- 面试二:pagehelper是怎么实现分页的,
- MyBatis如何实现分页查询?(mybatis-plus分页查询)
- SpringBoot 各种分页查询方式详解(全网最全)
- 如何在Linux上运行exe文件,怎么用linux运行windows软件
- 快速了解hive(快速了解美国50个州)
- Python 中的 pyodbc 库(pydbclib)
- Linux搭建Weblogic集群(linux weblogic部署项目步骤)
- 「DM专栏」DMDSC共享集群之部署(一)——共享存储配置
- 故障分析 | MySQL 派生表优化(mysql pipe)
- 标签列表
-
- 前端设计模式 (75)
- 前端性能优化 (51)
- 前端模板 (66)
- 前端跨域 (52)
- 前端缓存 (63)
- 前端aes加密 (58)
- 前端脚手架 (56)
- 前端md5加密 (54)
- 前端路由 (61)
- 前端数组 (73)
- 前端js面试题 (50)
- 前端定时器 (59)
- 前端获取当前时间 (50)
- Oracle RAC (76)
- oracle恢复 (77)
- oracle 删除表 (52)
- oracle 用户名 (80)
- oracle 工具 (55)
- oracle 内存 (55)
- oracle 导出表 (62)
- oracle约束 (54)
- oracle 中文 (51)
- oracle链接 (54)
- oracle的函数 (58)
- 前端调试 (52)
本文暂时没有评论,来添加一个吧(●'◡'●)