当前位置: 首页 > 科技观察

Azure应用服务漏洞泄露数百个源代码存储库

时间:2023-03-15 09:40:12 科技观察

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