12 月 10 日凌晨,Apache 开源项目 Log4j2 的远程代码执行漏洞细节被公开,作为当前全球使用最广泛的 java 日志框架之一。该漏洞影响着很多全球使用量前列的开源组件,如 Apache Struts2、Apache Solr、Apache Druid、Apache Flink 等。而且因为该漏洞利用方式简单,一旦有攻击者利用该漏洞,就可以在目标服务器上执行任意代码,给被攻击者造成极大危害。漏洞被公布后,厂商马上发布了新版本 log4j-2.15.0-rc1 对漏洞进行修复,并在之后更新了 log4j-2.15.0-rc2 进一步对漏洞进行了修复。

然而祸不单行,尽管大家修复 Log4j2 可能已经有些手忙脚乱,但是忙碌之余还是要分出精力来看看这个新的消息:微软 Azure 应用服务中存在一个名为“NotLegit”的漏洞,该漏洞影响所有通过“本地 Git”部署的 PHP、Node、Ruby 和 Python 应用。

漏洞详情

Azure 是用于托管网站和 Web 应用的平台,用户只需要选择支持的编程语言和操作系统,再使用 FTP、SSH 或通过从 Git 服务提取源代码在 Azure 托管的服务器上完成部署,就可以在 .azurewebsites.net 域中访问应用。因为使用方便,所以颇受开发者欢迎。而本次漏洞就出现在部署这一步。

正常的情况下,当开发者将 Git 存储库部署到 Web 服务器和存储桶时,因为包含敏感数据,因此不会上传 .git 文件夹。但是 Azure 设定,如果应用是通过本地 Git 部署到 Azure,那你的 Git 存储库就会变成所有人都可以访问的公开目录。当然为了保护敏感数据不暴露,微软在限制公共访问的 .git 文件夹中添加了“web.config”文件,让数据只能由微软 LLS 网络服务器处理。

漏洞就出现这里,因为这个只对用 LLS 部署的 C# 或 ASP.NET 应用有效。因为 Web 服务器无法处理“web.config”文件,因此如果是部署在不同 Web 服务器内的 PHP、Node、Ruby 和 Python 应用,那攻击者只要从目标应用组获取 /.git 目录,就可以得到对应的源代码。

漏洞应对

针对本漏洞,微软进行了以下应对:

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

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

微软已经于 2021 年 12 月 7 日至 15 日之间通过邮件通知了被影响用户,提供了缓解问题的具体指导。

如果您没有收到邮件,您也不用第一时间着急,因为您可能没有被漏洞影响到,不受漏洞影响的范围如下:

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

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

而且微软也备注说明,本次漏洞只影响部署在基于 Linux 的 Azure 服务器上的应用。如果您的应用是托管在 Windows Server 系统上的,也不会受到漏洞影响。

本次漏洞由云安全供应商 Wiz 发现并提供,微软为其提供了 7500 美元的赏金。

最后,如果您有收到微软邮件通知,那还是要尽快根据邮件指导完成漏洞修复哦~

推荐阅读

如何快速搞定生产环境 Ansible 项目布局?

服务端渲染基础

警惕!PHP、Node、Ruby 和 Python 应用,漏洞还没结束!的更多相关文章

  1. 新版PHP 7效能實測:Drupal 7能快70%,碎形計算大勝Ruby和Python

    PHP 7才剛在12月3日正式釋出,網頁開發框架Zend公司立刻發表了一份PHP新舊版效能大車拼報告,除了PHP 7和PHP 5.6之外,也把HHVM 3.7版納入一起比較. Zend公司選擇了幾套知 ...

  2. Ruby与Python开发的环境IDE配置(附软件的百度云链接)

    Ruby开发环境配置 1.Aptana_RadRails(提示功能不好,开发Ruby不推荐) 链接:http://pan.baidu.com/s/1i5q96K1 密码:yt04 2.Aptana S ...

  3. ruby和Python简单对比

    前不久学了ruby,发现ruby和Python非常像,于是自个测试对比了下,测完了才知道网上有现成的……下面是测试结果   序列(包括列表和元组等)有分片的特点:可能会比较方便的提取其中特定元素,暂时 ...

  4. [翻译] 比较 Node.js,Python,Java,C# 和 Go 的 AWS Lambda 性能

    [翻译] 比较 Node.js,Python,Java,C# 和 Go 的 AWS Lambda 性能 原文: Comparing AWS Lambda performance of Node.js, ...

  5. python S2-45 漏洞利用工具

    初学python脚本,写个工具练练手.第一次写勿喷.呃...忘了截图了,补上了. 程序对于处理 JSON post 有些问题,其他地方还没发现有啥问题. #coding:utf-8 import ch ...

  6. Java平台编写运行Ruby和Python

    Java不仅是一门编程语言,还是一个平台,通过JRuby和Jython,我们可以在Java平台上编写和运行Ruby和Python程序.

  7. Ruby 和 Python 分析器是如何工作的?

    你好! 我作为一名编写Ruby profiler的先驱,我想对现有的Ruby和Python profiler如何工作进行一次调查. 这也有助于回答很多人的问题:“你怎么写一个profiler?” 在这 ...

  8. Ruby. Vs . Python

    前言:从语言的本质上来分析,我对Ruby持反对态度,毕竟语言是为了交流,在表达的效率层面为了正确性必须适当放弃复杂性.且有句老话说的好,Ruby In Rails 才是语言,而Ruby只是这个语言的工 ...

  9. 对比Node.js和Python 帮你确定理想编程解决方案!

    世上没有最好的编程语言.有些编程语言比其他编程语言用于更具体的事情.比如,你可能需要移动应用程序,网络应用程序或更专业化的系统,则可能会有特定的语言.但是我们暂时假设你需要的是一个相对来说比较简单的网 ...

随机推荐

  1. Python中的随机采样和概率分布(二)

    在上一篇博文<Python中的随机采样和概率分布(一)>(链接:https://www.cnblogs.com/orion-orion/p/15647408.html)中,我们介绍了Pyt ...

  2. C++ 中的多重继承的问题

    如何正确使用C++多重继承 BY R12F · PUBLISHED 2011年06月17日 · UPDATED 2012年03月11日   原创文章,转载请注明:转载自Soul Apogee本文链接地 ...

  3. midi的一些概念,包括一些音乐的概念

    参考:http://www.yueqixuexi.com/jita/20180918205363.html https://blog.csdn.net/meicheng777/article/deta ...

  4. 深入理解java动态代理机制

    动态代理其实就是java.lang.reflect.Proxy类动态的根据您指定的所有接口生成一个class byte,该class会继承Proxy类,并实现所有你指定的接口(您在参数中传入的接口数组 ...

  5. 监控Linux服务器网站状态的SHELL脚本

    1,监控httpd状态码的shell脚本代码. #!/bin/sh #site: www.jquerycn.cn # website[0]=www.jquerycn.cn/chuzu/' #网站1 m ...

  6. css clip样式 属性功能及作用

    clip clip 在学前端的小伙伴前,估计是很少用到的,代码中也是很少看见的,但是,样式中有这样的代码,下面让我们来讲讲他吧! 这个我也做了很久的开发没碰到过这个属性,知道我在一个项目中,有一个功能 ...

  7. 用graphviz可视化决策树

    1.安装graphviz. graphviz本身是一个绘图工具软件,下载地址在:http://www.graphviz.org/.如果你是linux,可以用apt-get或者yum的方法安装.如果是w ...

  8. 使用plantuml,业务交接就是这么简单

    使用plantuml,业务交接就是这么简单 你好,我是轩脉刃. 最近交接了一个业务,原本还是有挺复杂的业务逻辑的,但发现交接过来的项目大有文章,在项目代码中有一个docs文件夹,里面躺着若干个 pum ...

  9. redis实例cpu占用率过高问题优化

    目录 一.简介 一.简介 前情提要: 最近接了大数据项目的postgresql运维,刚接过来他们的报表系统就出现高峰期访问不了的问题,报表涉及实时数据和离线数据,离线读pg,实时读redis.然后自然 ...

  10. 【antd】如何自定义antd组件form表单中Form.Item里的内容组件

    需求:现有一个form表单,但是其中一个元素比较复杂,并不是简单的输入框或者下拉框之类的.但是我又希望能通过form.validateFields().then()去获得它的值,就不需要在当前页面写大 ...