当前位置: 首页 > 编程日记 > 正文

「屋漏偏逢连夜雨」,Log4j 漏洞还没忙完,新的又来了

整理 | 郑丽媛、禾木木

出品 | CSDN

这几天,Apache Log4j 2 绝对是众多 Java 程序员提到的高频词之一:由于 Apache Log4j 2 引发的严重安全漏洞,令一大批安全人员深夜修 Bug、打补丁。此次漏洞更是因为其触发简单、攻击难度低、影响人群广泛等特点,被许多媒体形容为“核弹级”漏洞。

自 12 月 9 日 Apache Log4j 2 漏洞曝光以来,尽管各大企业都为此紧急引入了保护机制,但黑客依旧在想法设法绕过限制利用漏洞。

据研究人员称,著名的勒索软件团伙 Conti 已经扩大了利用 Apache Log4j 漏洞的力度,很可能将这一广泛存在的缺陷视为新一波攻击的基础。

网络安全公司 Qualys 和 AdvIntel 的研究人员称,他们观察到 Conti 最近几天利用 Log4j 日志记录软件中的关键漏洞而进行的活动。

Qualys 的恶意软件威胁研究主管 Travis Smith 在一封邮件中表示,Qualys 已经观察到试图进行的勒索软件攻击,并且其中有一些已经成功了,袭击的细节还没有透露。

与此同时,调查结果表明 Conti 已经围绕 Log4Shell 漏洞组装了完整的攻击链,并发起了初步攻击尝试。目前为止,还没有公开披露由 Log4j 漏洞引起的成功勒索软件漏洞。

然而,不仅仅是一波又一波的漏洞,被勒索软件团伙的高度关注,就是前一波漏洞还没忙完,新的漏洞又出现了!据云安全供应商 Wiz 报告,微软 Azure 应用服务中存在一个名为“NotLegit”的漏洞——该漏洞将影响所有通过“本地 Git”部署的 PHP、Node、Ruby 和 Python 应用。

漏洞自 2017 年 9 月便一直存在

微软旗下的 Azure 应用服务是一个基于云计算、用于托管网站和 Web 应用的平台,因其易于使用,颇受企业及开发者的欢迎:用户需先选择支持的编程语言和操作系统,再使用 FTP、SSH 或通过从 Git 服务(如 GitHub 或私有 Git 存储库)中提取源代码在 Azure 托管的服务器上部署即可。部署成功后,所有人都可以在 .azurewebsites.net 域中访问该应用。而本次 Wiz 研究团队发现的漏洞就是在部署这一步

一般而言,当开发者将 Git 存储库部署到 Web 服务器和存储桶时,是不会上传 .git 文件夹的,因为其中包含源代码、开发者邮件和其他敏感数据。但 Azure 应用服务有个奇怪的设定:当应用通过“本地 Git”(在 Azure 应用服务容器内启动本地 Git 存储库,即可将代码直接推送到服务器)部署至 Azure 应用服务时,其 Git 存储库是在所有人都可以访问的公开访问目录 (/home/site/wwwroot) 中创建的。为了保护其敏感数据不会暴露,微软会在限制公共访问的 .git 文件夹中添加一个“web.config”文件,只可由微软的 IIS 网络服务器处理

但 Wiz 研究团队发现,这一措施只对同样用 IIS 部署的 C# 或 ASP.NET 应用有效,对部署在不同 Web 服务器(如 Apache、Nginx、Flask 等)中的 PHP、Node、Ruby 和 Python 应用则有一个 Bug:这些 Web 服务器无法处理“web.config”文件,导致攻击者只要从目标应用中获取“/.git”目录,就可以检索其源代码,应用开发者也就面临信息泄露的风险

Wiz 方面将该漏洞称为“NotLegit”,自 2017 年 9 月以来便一直存在,很可能已被利用。Wiz 指出,唯一不受“NotLegit”漏洞影响的是基于 IIS 的应用,具体影响范围包括:

  • 自 2017 年 9 月以来,在 Azure 应用服务中使用“本地 Git”部署的所有 PHP、Node、Ruby 和 Python 应用;

  • 从 2017 年 9 月起,在应用容器中创建或修改文件后,使用 Git 源代码部署在 Azure 应用服务中的所有 PHP、Node、Ruby 和 Python 应用;

为了评估“NotLegit”暴露的可能性,Wiz 研究团队还为此创建了一个具有该漏洞的 Azure 托管网站进行测试,结果在 4 个小时内发现了 5 个不同的攻击者访问了暴露的源代码和 .git 文件。Wiz 对此表示:“这种漏洞的利用方法极其简单、常见,且正被积极利用。”

(Wiz 还放了个小彩蛋:微软的 web.config 文件其实有一处拼写错误,使配置标记未正确关闭,导致 IIS 无法解析。巧的是,这个错误正好阴差阳错地阻止了攻击者对整个目录的访问......)

67dcc4524882177cd5592517419cd3a2.png

微软已采取相关措施

发现“NotLegit”后,Wiz 在 2021 年 10 月 7 日向微软报告此事,而微软在了解问题严重性后很快便采取了相关必要措施。Azure 应用服务团队进行深入调查找到了根结所在,随后为大部分受影响客户修复应用,并在 2021 年 12 月 7 日至 15 日之间通过邮件通知所有仍然暴露的客户。微软为此采取的具体措施包括:

  • 更新了所有 PHP 图像,禁止将 .git 文件夹作为静态内容提供,以作为深度防御措施。

  • 通知因激活本地部署而受到影响的客户,并提供有关如何缓解问题的具体指导,还通知了将 .git 文件夹上传到内容目录的客户。

  • 更新了安全建议文档,增加了有关保护源代码的部分,还更新了本地部署的文档。

并非所有本地 Git 用户都受到影响。”微软补充道:“只有部署在基于 Linux 的 Azure 服务器上的应用会受到影响,那些托管在 Windows Server 系统上的应用,因为在基于 IIS 的环境中运行,所以不会受到漏洞影响。”

为感谢 Wiz 发现这一漏洞,微软还向 Wiz 提供了 7500 美元的赏金——Wiz 计划将其全额捐赠。

最后,如有近期收到微软邮件通知的 Azure 用户,最好尽快根据指导修复漏洞,以避免造成信息泄露。

参考链接:

https://msrc-blog.microsoft.com/2021/12/22/azure-app-service-linux-source-repository-exposure/

https://www.wiz.io/blog/azure-app-service-source-code-leak 

https://venturebeat.com/2021/12/22/log4j-flaw-gets-big-attention-from-ruthless-ransomware-gang/

相关文章:

利用gevent实现异步执行任务

import gevent def task(pid):gevent.sleep(2)print ("task %s done"%pid)def asynchronous():threads [gevent.spawn(task,i) for i in xrange(5)]gevent.joinall(threads)if __name__ __main__:print ("asynchronous")asynchronous()执行结果&#xff…

清理SQL多余登录信息

服务器列表、登陆帐户、密码等信息都记录在 %AppData%\Microsoft\Microsoft SQL Server\100\Tools\Shell\SqlStudio.bin (2008)%AppData%\Microsoft\Microsoft SQL Server\90\Tools\Shell\mru.dat(2005)直接删除后重新启动 SSMS …

AI 真的能够理解人类语言吗?

作者 | Melanie Mitchell 译者 | 弯月 出品 | CSDN(ID:CSDNnews) 2011年,IBM 的人工智能系统沃森参加综艺节目《危险边缘》,并获得了冠军,当时他们宣称:“沃森能够理解自然语言的所有歧义和复杂…

【贪心】Google Code Jam Round 1A 2018 Waffle Choppers

题意:给你一个矩阵,有些点是黑的,让你横切h刀,纵切v刀,问你是否能让切出的所有子矩阵的黑点数量相等。 设黑点总数为sum,sum必须能整除(h1),进而sum/(h1)必须能整除(v1)。 先考虑横行&#xff0…

友盟数据—值得手游创业者关注的玩家数据

友盟数据—值得手游创业者关注的玩家数据 你知道“辣妈”是什么游戏的忠诚玩家吗?你知道“大龄玩家”都喜好怎样的游戏?你知道哪类玩家最“多金”?2015年,不仅宅男、宅女们爱玩游戏,辣妈和奶爸们也成了手游行业的主力军…

这个 AI 模型火上 GitHub 热榜第一,在线修复照片

编译 | 禾木木出品 | AI科技大本营(ID:rgznai100)AI 正在对照片编辑产生重大的影响,但结果是还存在很大分歧。支持者说,人工智能释放了新的艺术历年,减少了创作者花在单调工作上的时间。然而,批评者认为这些…

【我的Android进阶之旅】解决SDK升级到27.0.3遇到的GLIBC_2.14 not found、no acceptable C compiler found in $PATH等问题...

一、问题一:Failed to find Build Tools revision 27.0.3 1.1、问题描述 最近公司的Android项目都要进行SDK升级,目前在本地编译的时候将SDK升级到了27.0.3,本地运行正常,然后在jenkins服务器上跑的时候就会出现异常。异常如下所示…

解析大型.NET ERP系统 设计异常处理模块

异常处理模块是大型系统必备的一个组件,精心设计的异常处理模块可提高系统的健壮性。下面从我理解的角度,谈谈异常处理的方方面面。我的设计仅仅限定于Windows Forms,供参考。 1 定义异常类型 .NET 框架定义很多异常类型,ERP系统中…

内含福利|CSDN 携手字节跳动:云原生Meetup北京站报名热烈启动,1月8日见!

伴随云原生技术的成熟与落地,越来越多框架、中间件等开源项目相继涌现,帮助开发者和企业有效解决业务问题。2022年1月8日,CSDN携手字节跳动基础架构,将在北京举办第四场云原生线下Meetup。在这里,您可以与众多开源技术…

用Thymeleaf在前台下拉列表取值

转自:https://blog.csdn.net/u013600907/article/details/76165748转载于:https://www.cnblogs.com/sharpest/p/8875698.html

PHP使用JSON

JSON 基础 简 单地说,JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序。这个字符串看起来有点儿古怪(稍后会看…

(原创)Python文件与文件系统系列(5)——stat模块

stat模块中定义了许多的常量和函数,可以帮助解释 os.stat()、os.fstat()、os.lstat()等函数返回的 st_result 类型的对象。 通常使用 os.path.is*() 这类函数来测试一个文件的类型,这些方法对同一个文件进行多次测试时,stat()系统调用都是不可…

Azure Neural TTS能让AI语音自然逼真到什么程度?

摘要:微软Azure Neural TTS让AI语音像真人一样富有感情,自然逼真。 Neural TTS(神经网络文本转语音)是微软Azure认知服务的强大语音合成功能,自推出以来,已被广泛应用于从语音助手、新闻阅读到有声读物创作…

ReentrantLock与synchronized

1、ReentrantLock 拥有Synchronized相同的并发性和内存语义,此外还多了 锁投票,定时锁等候和中断锁等候线程A和B都要获取对象O的锁定,假设A获取了对象O锁,B将等待A释放对O的锁定,如果使用 synchronized ,如…

EXT按钮事件

在EXT中,当我们要为按钮点击添加处理function的时候,可以看到一般人的实现分成2类:1.使用onClick: function xx()2.使用handler: function xx()完成后,我们会发现,无论用哪一种实现,再点击按钮时都能触发xx…

浅谈HTTP中Get与Post的区别

Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而H…

达摩院年终预测重磅出炉:AI for Science 高居榜首,2022 十大科技趋势!

整理 | 郑丽媛出品 | CSDN(ID:CSDNnews)作为“一所探索科技未知的研究院”,阿里巴巴达摩院成立至今已经四年了。这四年来,达摩院秉持着“探索科技位置,以人类愿景为驱动力,开展基础科学和颠覆式…

TensorFlow——入门基础

TensorFlow原理: TensorFlow使用Graph来描述计算任务,图中的节点被称之为op.一个op可以接受0或多个tensor作为输入,也可产生0或多个tensor作为输出.任何一个Graph要想运行,都必须借助上下文Session.通过Session启动Graph,并将Graph中的op分发到CPU或GPU上,借助Sessi…

EXT iconCls说明

今天学习ext 看examples中的事例,其中有一个地方是这样写的: new ButtonPanel( Icon Only, [{ iconCls: add16 },{ iconCls: add24, scale: medium },{ …

25个好用到爆的一行 Python 代码,建议收藏

作者 | 欣一来源 | Pyhton爱好集中营在学习Python的过程当中,有很多复杂的任务其实只需要一行代码就可以解决,那么今天小编我就来给大家介绍实用的一行Python代码,希望对大家能够有所帮助。1.两个字典的合并x {a: 1, b: 2} y {c: 3, d: 4}将…

【工业串口和网络软件通讯平台(SuperIO)教程】七.二次开发服务驱动

SuperIO相关资料下载:http://pan.baidu.com/s/1pJ7lZWf 1.1 服务接口的作用 围绕着设备驱动模块采集的数据,根据需求提供多种应用服务,例如:数据上传服务、数据请求服务、4-20mA服务、短信服务、LED服务以及OPC服务等。保障数…

usermod命令,用户密码管理和mkpasswd命令

2019独角兽企业重金招聘Python工程师标准>>> usermod 设置扩展组 概念:更改用户属性的一个命令。 用法:usermod [选项] 后面跟你需要操作的内容 [用户名] 选项:-c, --comment 注释 GECOS 字段的新值-d, --home HO…

extjs关于jsonreader

在JavaScript中,JSON是一种非常重要的数据格式,key:value的形式比XML那种复杂的标签结构更容易理解,代码量也更小,很多人倾向于使用它作为EXT的数据交换格式。JsonReader支持分页,与JSON数据对应格式如下:t…

求逆元 - HNU 13412 Cookie Counter

Cookie Counter Problems Link: http://acm.hnu.cn/online/?actionproblem&typeshow&id13412&courseid0 Mean: 将N分为D份,每份不超过X,有多少种分法? analyse: 首先我们想到的是迭代,但是数据太大,…

IEEE 发布年终总结,AI 奇迹不再是故事

编译 | 禾木木 出品 | AI科技大本营(ID:rgznai100) 2021 年,人工智能奇迹不再只是故事! 人工智能正在迅速融入各行各业,IEEE Spectrum 总结了 2021 年 10 篇最受读者欢迎的 AI 文章,按时间排名,…

一则利用内核漏洞获取root权限的案例【转】

转自:https://blog.csdn.net/u014089131/article/details/73933649 目录(?)[-] 漏洞描述漏洞的影响范围漏洞曝光时间漏洞产生的原因漏洞的利用exploit代码分析kernel 最近出了一个新的本地提权安全漏洞CVE-2013-1763,影响范围比较广泛,ubunt…

Ext.data库

Ext.data 库主要包括以下几个类:Ext.data.Store >DataSetExt.data.Record >DataSet.RowExt.data.DataProxy >SqlConnectionExt.data.DataReader >SqlDataAdapter以下分别进行介绍:1.Ext.data.Record可以用来定义一行数据的格式,它有几个重要的属性和方法…

2021年最有用的数据清洗 Python 库

作者 | 周萝卜来源 | 萝卜大杂烩大多数调查表明,数据科学家和数据分析师需要花费 70-80% 的时间来清理和准备数据以进行分析。对于许多数据工作者来说,数据的清理和准备也往往是他们工作中最不喜欢的部分,因此他们将另外 20-30% 的时间花在抱…

组合与继承之重写方法和字段

为什么80%的码农都做不了架构师?>>> 接上篇blog,scala里的字段和方法属于相同的命名空间,这让字段可以重写无参数方法。例如,你可以通过改变ArrayElement类中contents的实现将其从一个方法变为一个字段,而…

20165334 四则运算阶段性总结(第二周)

四则运算阶段性总结(第二周) 结对对象 学号 :20165334 姓名 : 李天龙 担任角色 (驾驶员):李天龙 (副驾驶):陈国超 一、实验实现步骤 整数计算类分数计算类自动…