【Azure Function】Azure Function中使用 Java 8 的安全性问题
问题描述
使用Azure Function, 环境是Linux的Java8。目前 Oracle Java JDK8,11,17 和 OpenJDK 8/11/17 都在存在漏洞受影响版本的范围内。
OpenJDK |
CVE numbers: CVE‑2023‑21954 CVE‑2023‑21938 CVE‑2023‑21937 CVE‑2023‑21939 CVE‑2023‑21968 CVE‑2023‑21930 CVE‑2023‑21967 |
DescriptionMultiple vulnerabilities have been reported in OpenJDK, which can be exploited by malicious people to disclose sensitive information, manipulate certain data, and cause a DoS (Denial of Service). |
Oracle Java SE |
CVE numbers : CVE‑2023‑21930 CVE‑2023‑21939 CVE‑2023‑21968 CVE‑2023‑21954 CVE‑2023‑21938 CVE‑2023‑21967 CVE‑2023‑21937 |
DescriptionMultiple vulnerabilities have been reported in Oracle Java SE, which can be exploited by malicious people to disclose sensitive information, manipulate certain data, and cause a DoS (Denial of Service).
The vulnerability #3 is reported in versions 8u361, 8u361-perf, 11.0.18, and 17.0.6.
|
当前Azure官方文档,目前Function也只支持 Java 8/11/17。

问题解答
For Linux:
Linux版本的Function APP Java version, Azure团队会根据最新的CVE信息同步升级,已避免潜在威胁。 例如:
Update images to use Java versions 1.8.0_392, 11.0.21, 17.0.9, and 21 :https://github.com/Azure/azure-functions-docker/commit/0f06f6e41fce80f5710fb9eef4d82d602a9aec01
- Java 8: jdk8u392-b08
- Java 11: 11.0.21
- Java 17: 17.0.9
For Windows:
Windows 下的 Java 版本,可以自行引入符合安全规定的JRE版本:https://github.com/Azure/azure-functions-java-worker/wiki/Customize-JRE-used-by-Azure-Functions
对于已存在的Function APP,如果之前没有进行过重启或者定价层的变更,运行的镜像将不会改变,如果需要使用最新版本的SDK,需要将Function APP重启以便拉取最新的镜像。其中运行的Function的代码,则无需改变。
安全更新
主要安全漏洞的补丁和修复程序在 OpenJDK 的 Microsoft 版本中可用后,便会立即发布。 “重大”漏洞是根据 NIST 常见漏洞评分系统版本 2 提供的基本评分 9.0 或以上来定义的。
Tomcat 8.0 生命周期已经在 2018 年 9 月 30 日终止。 尽管该运行时在 Azure 应用服务上仍然可用,但 Azure 不会为 Tomcat 8.0 应用安全更新。 如果可能,请将你的应用程序迁移到 Tomcat 8.5 或 9.0。 Tomcat 8.5 和 9.0 在 Azure 应用服务上都可用。 有关详细信息,请查看 Tomcat 官方网站。
社区对 Java 7 的支持于 2022 年 7 月 29 日结束,Java 7 已从应用服务停用。 如果你的 Web 应用在 Java 7 上运行,请立即升级到 Java 8 或 11。
参考资料
Function App安全更新: https://learn.microsoft.com/zh-cn/azure/app-service/language-support-policy?tabs=windows#security-updates
Customize JRE used by Azure Functions : https://github.com/Azure/azure-functions-java-worker/wiki/Customize-JRE-used-by-Azure-Functions
【Azure Function】Azure Function中使用 Java 8 的安全性问题的更多相关文章
- 利用VisualVM监测Azure云服务中的Java应用
在做Java开发的时候,我们需要在上线之前对程序进行压力测试,对程序的性能进行全面的监控,了解JVM的CPU,内存,GC,classes,线程等等信息,或者在程序上线运行的过程当中以便于诊断问题或者对 ...
- 【Azure Developer - 密钥保管库 】使用 Python Azure SDK 实现从 Azure Key Vault Certificate 中下载证书(PEM文件)
问题描述 在Azure Key Vault中,我们可以从Azure门户中下载证书PEM文件到本地. 可以通过OpenSSL把PFX文件转换到PEM文件.然后用TXT方式查看内容,操作步骤如下图: Op ...
- Windows Azure 上 Linux VM 中的交换空间 – 第 2 部分
本文章由 Azure CAT 团队的 Piyush Ranjan (MSFT) 撰写. 在前一篇文章 Windows Azure 上Linux VM 中的交换空间第 1 部分中,我介绍了在默认情况下, ...
- 【javascript】javascript中function(){},function(){}(),new function(){},new Function()
和java比起来,javascript真的是松散的无以复加,不过这也让我们在无聊之余,有精力去探讨一些复杂的应用,从而在开发之路上,获得一些新的想法. javascript中的类的构造 javascr ...
- javascript 中function(){},new function(),new Function(),Function 摘录
函数是JavaScript中很重要的一个语言元素,并且提供了一个function关键字和内置对象Function,下面是其可能的用法和它们之间的关系. function使用方式 var foo01 = ...
- javascript 中function(){}(),new function(),new Function(),Function
和java比起来,javascript真的是松散的无以复加,不过这也让我们在无聊之余,有精力去探讨一些复杂的应用,从而在开发之路上,获得一些新的想法. javascript中的类的构造 javascr ...
- 【Azure Developer】使用 adal4j(Azure Active Directory authentication library for Java)如何来获取Token呢
问题描述 使用中国区的Azure,在获取Token时候,参考了 adal4j的代码,在官方文档中,发现了如下的片段代码: ExecutorService service = Executors.new ...
- Javacript中(function(){})() 与 (function(){}()) 区别 {转}
这个问题可以从不同的角度来看,但从结果上来说 :他们是一样的.首先,如果从AST(抽象语法树)的角度来看,两者的AST是一模一样的,最终结果都是一次函数调用.因此,就解析器产生的结果论而言,两者是没有 ...
- JavaScript 中,定义函数时用 var foo = function () {} 和 function foo() {}有什么区别?
对于新手来说(本人也是新手-_-!),好像var foo = function () {} 和 function foo(){}并没有什么区别,意识里可能就认为就是两种不同的写法而已.但是,通过网上查 ...
- jq中$(function(){})和js中window.onload区别
先看下执行代码: $(function(){ console.log("jq");}) $(function(){ console.log("jq1") ...
随机推荐
- Linux的free命令与OOM的简单总结
简介 查看操作系统配置最关键的几个命令是 lscpu 查看CPU信息 以及free 查看内存信息. 不过free信息有一个疑惑点 他的 free的值可能很小. 会让搭建产生误解. 这里简单说明一下. ...
- element-ui表格排序
<el-table :data="TableAwitDoArr" style="width: 100%"> <el-table-column ...
- Go语言的原子操作atomic
atomic 原子操作 Go中原子操作的支持 CompareAndSwap(CAS) Swap(交换) Add(增加或减少) Load(原子读取) Store(原子写入) 原子操作与互斥锁的区别 at ...
- 人工智能创新挑战赛:助力精准气象和海洋预测Baseline[2]:数据探索性分析(温度风场可视化)、CNN+LSTM模型建模
"AI Earth"人工智能创新挑战赛:助力精准气象和海洋预测Baseline[2]:数据探索性分析(温度风场可视化).CNN+LSTM模型建模 1.气象海洋预测-数据分析 数据分 ...
- 3.5 Windows驱动开发:应用层与内核层内存映射
在上一篇博文<内核通过PEB得到进程参数>中我们通过使用KeStackAttachProcess附加进程的方式得到了该进程的PEB结构信息,本篇文章同样需要使用进程附加功能,但这次我们将实 ...
- jetbrains 系列 terminal history 设置
之前的版本中 jetbrains 的 terminal 使用的是 ~/.zsh_history, 改版后使用的不是一个 history, 就会出现在 iterm2 中使用的 command, 在 py ...
- AnyCAD程序无法启动的问题解决方法
在某些电脑上会出现基于AnyCAD开发的程序无法启动的问题,如: System-ArgumentEcception: Please check the dependendes 解决方法 安装最新的VS ...
- 【链表】双向链表的介绍和基本操作(C语言实现)【保姆级别详细教学】
双向链表 文章目录 前言 双向链表的基本介绍 一些链表的分类 带头双向循环链表的基本结构 双向链表的实现 结点的定义.头指针的创建 开辟结点接口 初始化头结点接口 打印接口 尾插接口 尾删接口 头插接 ...
- 48从零开始用Rust编写nginx,搭建一个简单又好看官方网站
wmproxy wmproxy已用Rust实现http/https代理, socks5代理, 反向代理, 负载均衡, 静态文件服务器,websocket代理,四层TCP/UDP转发,内网穿透等,会将实 ...
- 关于Oracle RAC调整网卡MTU值的问题
在Oracle RAC的环境中,如果我们发现OSW监控数据显示包重组失败率过高,就需要引起足够的重视,因为这很可能会引发member kill/Node kill等重大故障,甚至在有些场景会连带影响到 ...