微软四年前的Azure0Day漏洞泄露了网络应用程序源代码

研究人员说 , 微软 Azure 应用服务有一个已经存在了四年的漏洞 , 该漏洞可能会暴露用 PHP、Python、Ruby 或 Node 编写的网络应用程序的源代码 , 这些应用都是在本地使用 Git 部署的 。
根据 Wiz 的分析 , 该漏洞几乎可以肯定已经作为零日漏洞被在野利用了 。该公司将该漏洞称为 “NotLegit” , 并表示它自 2017 年 9 月以来就一直存在 。
Azure 应用服务(又称 Azure Web Apps)是一个基于云计算的平台 , 主要用于托管网站和网络应用程序 。同时 , 本地 Git 允许开发人员在 Azure 应用服务容器内启动本地的 Git 仓库 , 以便于将代码直接部署到服务器上 。部署后 , 互联网上的任何人都可以在 * 。azurewebsites 。net 域名下访问该应用程序 。
这个漏洞出现的原因是因为当使用本地 Git 时 , Git 文件夹也会被上传并在未打补丁的系统上公开访问;它会被放置在 “/home/site/wwwroot ” 目录中 , 任何人都可以进行访问 。
据该公司称 , 从安全角度来看 , 这有很严重的问题 。
研究人员在本周的一篇文章中指出:” 除了源代码可能包含密码和访问令牌等信息外 , 泄露的源代码往往会被用于进一步的复杂攻击 , 如用来收集研发部门的情报 , 研究内部基础设施 , 以及寻找软件漏洞 。当源代码可用时 , 寻找软件的漏洞就要容易得多了 “ 。
他们补充说 , 基本上 , 一个恶意攻击者所要做的就是从目标应用程序中获取 ‘/ 。git’ 目录 , 并检索其中的源代码 。
拙劣的缓解措施
微软最初确实公布了一个用于缓解该漏洞的方法 , 其方法是在公共目录下的 Git 文件夹中添加一个 “web 。config ” 文件 , 限制公众的访问 。但事实证明这个修复措施并不是一个很好的方法 。
只有微软的 IIS 网络服务器会处理 web 。config 文件 , 但是 [ 如果 ] 你使用了 PHP、Ruby、Python 或 Node…… 这些编程语言会被部署在不同的 webservers(Apache、Nginx、Flask 等)内 , 它们并不会处理 web 。config 文件 , 这也就使得缓解措施对他们没有任何效果 , 因此非常容易受到攻击 。
Wiz 在 10 月份向微软报告了这个长期以来一直存在的漏洞 , 并因这一发现获得了 7500 美元的赏金;而该巨头在 12 月 7 日至 15 日之间通过电子邮件向受影响的用户部署了修复措施 。
可能已经被在野利用
研究人员警告说 , Git 文件夹经常由于工作人员错误的配置(不仅仅是漏洞 , 如本案例)而被暴露在网络上 。因此 , 网络犯罪分子正在积极寻找它们 。
他们说:”Git 文件夹的暴露是一个很常见的安全漏洞 , 用户甚至都没有意识到这一点 。恶意攻击者正在不断扫描互联网 , 寻找暴露的 Git 文件夹 , 他们可以从中收集组织的秘密和其他信息 。”
Wiz 部署了一个有漏洞的 Azure 服务应用程序 , 并将其链接到了一个未使用的域 , 看看是否会有任何攻击人员对其进行利用 。
他们说:” 我们一直耐心地等待 , 看是否会有人试图访问 Git 文件 。” 在部署后的四天内 , 我们毫不惊讶地看到了来自未知攻击者对 Git 文件夹的多个请求 … 。 , 这种利用方法非常容易而且普遍 , 现在正在被犯罪分子大量的利用 。”
据 Wiz 称 , 以下用户应及时评估潜在的风险 , 确保并更新他们的系统 。
1、通过 FTP 或 Web Deploy 或 Bash/SSH 部署代码的用户 , 这会导致文件在任何 git 部署之前 Web 应用中就会被初始化 。
【微软四年前的Azure0Day漏洞泄露了网络应用程序源代码】2、在网络应用中启用 LocalGit 的用户 。
3、用 Git 克隆 / 推送序列发布更新的用户 。
研究人员指出:” 由于安全问题是发生在 Azure 服务中 , 大量的云端用户受到了影响 , 而且他们也不知道或没有受到任何的保护 。

    推荐阅读