- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章面对 Log4j 漏洞,开发者如何保护程序安全?由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
12月9日,Apache 基金会针对一个名为 Log4Shell 的关键零日漏洞发布了紧急更新,这个在Log4j(一个用于各种Java应用的开源日志框架)中发现的漏洞被认定为CVE-2021-44228,允许攻击者在任何使用Log4j库写出日志信息的系统上执行任意代码。它立即被评为CVSS等级中的最高严重程度10级.
正如 Cloudflare 首席技术官John Graham-Cumming所说:"这可能是自 Heartbleed 和 ShellShock 以来互联网上最严重的漏洞之一。" 。
在漏洞被公布之后,开发人员和维护人员立即着手给他们的 Java 应用程序打上尽可能多的补丁。由16名无报酬志愿者组成的 Apache 软件基金会日志服务团队也第一时间加固 Log4j 本身.
北京时间11月24日,Apache日志服务项目管理委员会(PMC)收到了一封爆炸性的邮件。阿里云安全团队报告了Log4j2 软件中存在一个零日安全漏洞.
软件工程师、PMC 成员 Gary Gregory 表示:“这将是一个重大的问题。” 。
该团队立刻开始修补这个问题,但这个漏洞在12月9日被公之于众后,他们的时间安排迅速加快了.
Gary和其他维护者放下手上的工作,加班加点来修复这个漏洞问题。在发布 2.15 版更新之前,他们很快决定这个更新“不够好”,随后,他们在格林尼治标准时间12月13日晚上10点28分发布了2.16版本.
"我知道他们都有家庭和他们必须做的事情。但他们把一切都放在一边,整个周末都在修复这个漏洞。"前 Log4j 开发者 Christian Grobmeier 告诉彭博社.
到周末的这个时候,PMC的活跃成员已经转向通过私人Slack频道进行沟通,在那里他们继续解决这个问题,并共同努力为操作旧版本 Java 的用户提供更新。他们很快就发布了 2.12.2 版本来解决 Java7 用户的问题。Java6 的修复被证明更棘手,但这是他们的下一个待办事项.
“总的来说,我认为尽管这种漏洞会带来可怕的后果,但事情进展得如经验丰富的开发人员所预料的那样,” Gary 说。“我们收到通知,迅速提供了补丁并在该版本上进行迭代.
另一个在周末迅速行动的小组是亚马逊 Corretto 团队。Corretto 是 Open Java Development Kit (OpenJDK) 的一个发行版,这使 Corretto 团队处于Log4Shell问题的第一线.
在首席软件工程师Volker Simonis的带领下,Corretto团队迅速建立并开源了一个热补丁,供任何无法立即更新的组织使用.
正如GitHub页面上所描述的那样:
"非常感谢亚马逊Corretto团队花了几天、几夜和周末的时间来编写、加固和运行这段代码,"AWS CISO Steve Schmidt在一篇博文中写道。AWS还发布了一份针对受影响产品的特定服务安全更新的详尽清单.
在其他地方,由 Java 首席工程组经理 Martijn Verburg 领导的 Microsoft Java 团队成员帮助评估了该补丁,并为客户发布了更一般的保护自己的建议,包括几个推荐的解决方法,直到可以应用完整的安全更新. 。
谷歌云以更新其Cloud Armor安全产品作为回应,该产品于 12 月 11 日发布了一项紧急 Web 应用程序防火墙 (WAF) 规则,以帮助检测和阻止 CVE-2021-44228 的企图利用.
“为了帮助我们的客户解决 Log4j 漏洞,我们引入了一个名为“cve-canary”的新预配置 WAF 规则,它可以帮助检测和阻止 CVE-2021-44228 的漏洞利用尝试,”Cloud Armor的产品经理Emil Kiner和谷歌的网络专家经理 Dave Reisfeld 在一篇博文中写道.
当这些内部开发人员匆匆忙忙为客户保护他们的软件时,许多最终用户和企业开发人员正争先恐后地评估他们的漏洞并保护他们自己的Java应用程序.
首先要做的是检测Log4j是否存在于你的应用程序中。同样重要的是要注意,不是所有的应用程序都会受到这个漏洞的攻击。任何使用高于6u212、7u202、8u192或11.0.2的Java版本的人都应该是安全的,因为这些版本中增加了对JNDI(Java命名和目录接口)远程类加载的保护.
同样,高于2.10版本的 Log4j 用户应该通过设置系统属性formatMsgNoLookups为true,设置JVM 参数-Dlog4j2.formatMsgNoLookups=true,或从classpath中删除JndiLookup类来缓解这一问题.
由于Log4j漏洞不仅影响Java应用程序,而且还影响使用该库的任何服务,因此Log4Shell的攻击面可能非常大.
正如Lucian Constantin为CSO写的那样:"社区仍在努力评估攻击面,但由于依赖关系的复杂生态系统,它可能是巨大的。一些受影响的组件是非常流行的,被数以百万计的企业应用和服务所使用".
就其本身而言,Apache Logging Services团队将 "继续评估可能存在潜在安全风险的Log4j功能,并将进行必要的修改以删除这些功能。Apache Logging Services团队的成员Ralph Goers告诉InfoWorld,"虽然我们将尽一切努力保持向后兼容,但这可能意味着我们必须禁用他们可能正在使用的功能.
即使无数的开发者在周末不知疲倦地修补Log4j的漏洞,也会有很多人反应较慢。因此,Log4Shell的影响可能是长期和广泛的.
正如安全分析师Tony Robinson在推特上所说。"虽然那些好的公司通过打补丁迅速解决了问题,但还是会有很多地方不会打补丁,或者在一段时间内无法打补丁。" 。
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】 。
原文地址:https://developer.51cto.com/art/202112/696253.htm 。
最后此篇关于面对 Log4j 漏洞,开发者如何保护程序安全?的文章就讲到这里了,如果你想了解更多关于面对 Log4j 漏洞,开发者如何保护程序安全?的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
在C语言中,当有变量(假设都是int)i小于j时,我们可以用等式 i^=j^=i^=j 交换两个变量的值。例如,令int i = 3,j = 5;在计算 i^=j^=i^=j 之后,我有 i = 5,
我为以下问题编写了以下代码: 给定一个由 N 个正整数组成的序列 A,编写一个程序来查找满足 i > A[j]A[i](A[i] 的 A[j] 次方 > A[j] 的 A[i] 次方)。 我的代码通过
这个表达式是从左到右解析的吗?我试图解释解析的结果,但最后的结果是错误的。 int j=10, k=10; j+=j-=j*=j; //j=j+(j-=j*=j)=j+(j-j*j) k+=k*=
给定一个整数数组 A ,我试图找出在给定位置 j ,A[j] 从每个 i=0 到 i=j 在 A 中出现了多少次。我设计了一个如下所示的解决方案 map CF[400005]; for(int i=0
你能帮我算法吗: 给定 2 个相同大小的数组 a[]和 b[]具有大于或等于 1 的整数。 查找不相等的索引 i和 j ( i != j ) 使得值 -max(a[i]*b[i] + a[i] * b
每次用J的M.副词,性能显着下降。因为我怀疑艾弗森和许比我聪明得多,我一定是做错了什么。 考虑 Collatz conjecture .这里似乎有各种各样的内存机会,但不管我放在哪里M. ,性能太差了
假设一个包含各种类型的盒装矩阵: matrix =: ('abc';'defgh';23),:('foo';'bar';45) matrix +---+-----+--+|abc|defgh|23|+
是否有可能对于两个正整数 i 和 j,(-i)/j 不等于 -(i/j)?我不知道这是否可能......我认为这将是关于位的东西,或者 char 类型的溢出或其他东西,但我找不到它。有什么想法吗? 最
假设两个不同大小的数组: N0 =: i. 50 N1 =: i. 500 应该有一种方法可以获得唯一的对,只需将两者结合起来即可。我发现的“最简单”是: ]$R =: |:,"2 |: (,.N0)
我是 J 的新用户,我只是想知道 J 包中是否实现了三次样条插值方法? 最佳答案 我自己不熟悉,但是我确实安装了所有的包,所以 $ rg -l -i spline /usr/share/j/9.02
在 Q/kdb 中,您可以使用 ': 轻松修改动词,它代表每个优先级。它会将动词应用于一个元素及其之前的邻居。例如 =': 检查值对是否相等。在 J 中,您可以轻松折叠 /\ 但它是累积的,是否有成对
嗨,我有一个 4x4 双矩阵 A 1+2i 2-1i -3-2i -1+4i 3-1i -3+2i 1-3i -1-3i 4+3i 3+5i 1-2i -1-4i
刚刚发现 J 语言,我输入: 1+^o.*0j1 I expected the answer to be 0 ,但我得到了 0j1.22465e_16。虽然这非常接近于 0,但我想知道为什么 J 应该
这个问题在这里已经有了答案: With arrays, why is it the case that a[5] == 5[a]? (20 个答案) 关闭 3 年前。 我正在阅读“C++ 编程语言”
当第一行是 1, 1/2 , 1/3 ....这是支持该问题的图像。 是否存在比朴素的 O(n^2) 方法更有效的方法? 我在研究伯努利数时遇到了这个问题,然后在研究“Akiyama-Tanigawa
我写了一段Java代码,它在无限循环中运行。 下面是代码: public class TestProgram { public static void main(String[] args){
for (int i = n; i > 0; i /= 2) { for (int j = 0; j 0; i /= 2) 的第一个循环结果 O(log N) . 第二个循环for (int
如问题中所述,需要找到数组中 (i,j) 对的总数,使得 (1) **ia[j]** 其中 i 和 j 是数组的索引。没有空间限制。 我的问题是 1) Is there any approach w
for l in range(1,len(S)-1): for i in range(1,len(S)-l): j=i+l for X in N:
第二个for循环的复杂度是多少?会是n-i吗?根据我的理解,第一个 for 循环将执行 n 次,但第二个 for 循环中的索引设置为 i。 //where n is the number elemen
我是一名优秀的程序员,十分优秀!