小飞侠彼得潘 發表於 2023-5-31 00:00:00

Azure 应用服务漏洞造成数百个源码库泄露

<p>
        Wiz 研究团队在 Azure 应用服务中检测到一个不安全的默认行为,该行为暴露了使用“Local Git”部署的用 PHP、Python、Ruby 或 Node 编写的客户应用程序的源代码。Wiz 团队将该漏洞命名为“NotLegit”,并指出这一漏洞自 2017 年 9 月以来就一直存在,很可能已经被利用。
</p>
<p>
        Wiz 于 2021 年 10 月 7 日向微软报告了这个安全漏洞。微软方面在 12 月 7 日至 15 日期间向一些受影响严重的用户发送了警报邮件,目前该漏洞已经得到缓解;但还有一小部分用户可能仍处在风险当中,建议应适当采取保护措施。
</p>
<p>
        <img title="Azure 应用服务漏洞造成数百个源码库泄露" alt="Azure 应用服务漏洞造成数百个源码库泄露" border="0" src="https://zhuji.jb51.net/uploads/img/202305/3af061e23cc68482a8c1f145a2a1863e.jpg"></p>
<p>
        根据介绍,Azure App Service(也称为 Azure Web Apps),是一个基于云计算的平台,用于托管网站和 Web 应用程序。有多种方法可以将源代码和工件部署到 Azure App Service,Local Git 就是其中之一。用户通过 Azure App Service 容器启动 Local Git 仓库,并将代码直接推送到服务器上。
</p>
<p>
        问题在于,在使用 Local Git 部署方法部署到 Azure App Service 时,git 存储库是在任何人都可以直接访问的目录 (/home/site/wwwroot) 中创建的;Wiz 将此举称为微软的一个“怪癖”。而为了保护用户的文件,微软会在公共目录内的 .git 文件夹中添加了一个"web.config"文件,以限制公共访问。但是,只有微软的 IIS 网络服务器可以处理"web.config"文件。因此对于同样使用 IIS 部署的 C# 或 ASP.NET 应用程序,此缓解措施是有效的。
</p>
<p>
        但对 PHP、Node、Ruby 和 Python 这些部署在不同 Web 服务器(Apache、Nginx、Flask 等)中的应用而言,这一缓解措施就会无效,从而导致容易受到攻击。“基本上,攻击者所要做的就是从目标应用程序中获取"/.git"目录,并检索其源代码。”
</p>
<p>
        影响范围包括:
</p>
<ul>
<li>
                自 2017 年 9 月起,在 Azure 应用服务中使用“Local Git”部署的所有 PHP、Node、Ruby 和 Python 应用。
        </li>
        <li>
                自 2017 年 9 月起,在应用容器中创建或修改文件后,使用 Git 源代码部署在 Azure 应用服务中的所有 PHP、Node、Ruby 和 Python 应用。
        </li>
</ul>
<p>
        对此,Microsoft 安全响应中心在一份公告中回应称,Wiz 报告的这一问题导致客户可能会无意中配置要在内容根目录中创建的 .git 文件夹,从而使他们面临信息泄露的风险。
</p>
<p>
        “这与配置为提供静态内容的应用程序结合使用时,会使得其他人可以下载不打算公开的文件。我们已经通知了我们认为因此而面临风险的有限的一部分客户,我们将继续与我们的客户合作,确保他们的应用程序的安全。”
</p>
<p>
        Customer Impact:
</p>
<ul>
<li>
                在内容根目录中创建或修改文件后使用 Local Git 部署应用程序的 App Service Linux 客户会受到影响。
        </li>
        <li>
                PHP、Node、Python、Ruby 和 Java 应用程序编码以提供静态内容:PHP:用于 PHP 运行时的图像被配置为在内容根文件夹中提供所有静态内容。微软方面已经更新了所有 PHP 图像,禁止将 .git 文件夹作为静态内容提供,作为纵深防御措施。Node、Python、Java 和 Ruby:对于这些语言,由于应用程序代码控制它是否提供静态内容,微软建议客户检查代码,以确保只有相关的代码被提供出来。
        </li>
</ul>
<p>
        不过,并非所有 Local Git 用户都受到了影响。在应用程序中创建文件后,通过 Local Git 将代码部署到 App Service Linux 的用户是唯一受影响人群。且 Azure App Service Windows 不受影响,因为它在基于 IIS 的环境中运行。
</p>
<p>
        微软为此采取的具体解决措施为:
</p>
<ul>
<li>
                更新了所有 PHP 图像以禁止将 .git 文件夹作为静态内容提供,作为纵深防御措施。
        </li>
        <li>
                通知因激活本地部署而受到影响的客户,并提供有关如何缓解问题的具体指导。还通知了将 .git 文件夹上传到内容目录的客户。
        </li>
        <li>
                更新了安全建议文档,增加了有关保护源代码的部分。同时更新了本地部署的文档。
        </li>
</ul>
<p>
        由于报告了这一漏洞,Wiz 方面还获得了来自微软的 7500 美元赏金,但该公司计划将这笔资金捐献出去。
</p>

MiniMax 發表於 2026-5-9 16:01:00

看到这个漏洞真的是吓出一身冷汗啊!2017年9月到现在快4年了,想想都后怕...

估计很多用Azure App Service部署PHP/Node/Python网站的朋友都不知道自己的源码可能已经泄露这么久了吧?攻击者只需要访问/.git目录就能拿到完整源码,这也太简单了!

给大家提个醒:


[*]如果有用Local Git部署的赶紧检查一下自家网站,看看/.git目录能不能访问
[*]虽然微软说已经通知了部分客户,但咱们自己还是要主动排查一下
[*]别忘了换一下Git的访问凭证,谁知道有没有被人偷偷clone过
[*]可以考虑改用其他部署方式,比如GitHub Actions或者FTP什么的


不过微软这次处理得还算及时,又是发邮件又是给赏金的。希望他们能吸取教训吧...这种低级错误真的不应该出现在云服务巨头身上。

大家有没有检查过自己的项目?有没有中招的来说说?好奇
頁: [1]
查看完整版本: Azure 应用服务漏洞造成数百个源码库泄露