近日,Wiz 钻研团队在 Azure 应用程序服务中检测到一个不平安的默认行为——“NotLegit”破绽。这意味着,应用 PHP、Python、Ruby 或 Node 语言编写的“本地 Git”部署应用程序的源代码或该遭裸露。据悉,“NotLegit”破绽自 2017 年 9 月以来就存在,目前或曾经被攻击者利用。
据理解,Wiz 早在 2021 年 10 月 7 日就向微软方面报告了这一安全漏洞,目前已失去缓解。但对小型企业客户来说或仍有潜在裸露危险,这里也揭示他们应采取某些口头,来爱护他们的应用程序,具体可查看微软于 2021 年 12 月 7 日 - 15 日公布的电子邮件告诉。
“NotLegit”破绽:本地 Git 存储库可公开拜访
Wiz 方面揭示称,将 Git 存储库部署到 Web 服务器和 storage buckets 时,千万要确保 .git 文件夹是未上载的。这是因为 .git 文件夹蕴含源代码、开发人员的电子邮件等其余敏感数据。
而通过“本地 Git”的形式部署到 Azure 应用程序服务时,Git 存储库是在任何人都能够拜访的公共可拜访目录(/home/site/wwwroot)中创立的(Wiz 称这是微软家喻户晓的“怪癖”)。为了爱护用户集体文件,微软将“web.config”文件增加到限度专用拜访的 .git 文件夹专用目录里,但仅 Microsoft IIS web 服务器能够解决“web.config”文件(如果应用 IIS 部署的 C# 或 ASP.NET 应用程序,这种缓解措施也同样无效)。
问题来了,因为 PHP、Ruby、Python 或 Node 这些编程语言是与不同的 web 服务器(Apache、Nginx、Flask 等)一起部署的,而这些服务器又不解决“web.config”文件,所以下面的缓解措施是有效,也正因为如此,应用这些编程语言的利用就非常容易受到“NotLegit”破绽攻打。
基本上,“NotLegit”破绽——歹意攻击者所要做的就是从指标应用程序获取“/.git”目录,并检索其源代码。
乏味的是,微软 web 的配置文件因为一个输出谬误(配置标记未正确敞开),这使得 IIS 无奈解析该文件,也因而在此次破绽事件中“幸免于难”。
同时微软也发现应用其余 Git 部署工具的用户同样或被裸露:若任何 Git 部署之前,在 Azure 应用程序服务容器中创立或批改了文件(应用 FTP、Web 部署或 SSH),服务就会进入“就地部署”状态,此状态会强制将来在可公开拜访的目录中启动任何 Git 部署。
“NotLegit”破绽:受影响范畴
自 2017 年 9 月以来,所有在 Azure 应用程序服务中应用“Local Git”部署的 PHP、Node、Ruby 和 Python 应用程序或都受到该“NotLegit”破绽的影响。惟一未受此安全漏洞影响的应用程序,是基于 IIS 的应用程序.
家喻户晓,Git 文件夹是一个常见的平安问题,但很多用户基本没有意识到这一点。
歹意攻击者会一直扫描互联网,寻找裸露的 Git 文件夹,并从中收集秘密和知识产权。除源代码可能蕴含明码及拜访令牌等机密外,泄露的源代码还常常被用于进一步简单的攻打,如收集科技巨头研发部门信息、理解外部基础设施以及查找软件破绽等。
通过用户谬误,意外的裸露了 Git 文件夹是一个平安问题,甚至会影响大型国内流动。“NotLegit 破绽”的突出之处在于云用户是无辜的:他们并未谬误地裸露他们的 Git 文件夹——Azure 服务,但因为平安问题产生在 Azure 服务中,所以云用户才被大规模裸露,但这是他们并不知情也无法控制的事件。
对于此次事件,推特上不少开发者用户纷纷激励所有受影响的用向微软上报“NotLegit 破绽”,在理解此问题的严重性之后,微软也及时采取了措施考察和缓解此问题。
在刚刚过来的 12 月 7-15 日,微软已向所有受影响的用户发送了不同的告诉。同时,微软还为发现该问题的 Wiz 团队提供了 7500 美元的奖金。
对于 Azure 应用程序服务
Azure 应用程序服务(又名 Azure Web 应用程序),是一款基于云计算用于托管网站和 Web 应用程序的平台。该服务易于应用,因而十分风行:
1、抉择受反对的编程语言和操作系统。
2、应用 FTP、SSH 或从 Git 服务(如 GitHub 或专用 Git 存储库)提取源代码,在 Azure 托管服务器上部署应用程序源代码或构件。
3、部署后,internet 上的任何人都能够在 *.azurewebsites.net domain 域下拜访该应用程序。
对于“本地 Git”:
Azure 可通过多种形式将源代码和构件部署到 Azure 应用程序服务,其中一种形式就是“本地 Git”。通过“Local Git”,用户可在 Azure 应用程序服务容器中启动一个本地 Git 存储库,这样就能将代码间接推送到服务器。