Log4j 漏洞还没忙完,新的漏洞又出现了!
本月 9 日,Apache Log4j 2 被曝存在“核弹级”漏洞引起巨大风波,全球近一半企业均受到影响,大批安全人员为此深夜加班修 Bug。十多天过去了,该漏洞的修复工作仍未停止,甚至安全公司还接连发现其中的另外两个安全漏洞,不禁让人为这些天连日修 Bug 的工程师们捏一把汗。
然而“屋漏偏逢连夜雨”,Log4j 2 的漏洞还没解决完,新的漏洞又出现了:据云安全供应商 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 无法解析。巧的是,这个错误正好阴差阳错地阻止了攻击者对整个目录的访问......)
微软已采取相关措施
发现“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