Azure App Service是一项完全托管的集成服务,让用户能够为任何平台或设备创建Web和移动应用程序,并将它们与SaaS解决方案和本地应用程序轻松集成起来、使业务流程实现自动化。
据研究人员向知名网站The Hacker News出示的一份安全报告显示,第一个安全漏洞(CVE-2019-1234)是一个服务器端请求欺骗漏洞,该漏洞影响了微软的混合云计算软件解决方案Azure Stack。
一旦被钻空子,该漏洞将使远程黑客能够未经授权即可访问在Azure基础架构上运行的任何虚拟机的屏幕截图和敏感信息——至于是在共享的虚拟机、专用的虚拟机还是隔离的虚拟机上运行,并不重要。
据研究人员声称,该漏洞可以通过微软Azure Stack Portal来钻空子,用户通过该界面来访问使用Azure Stack创建的云。
通过使用一个未经身份验证的内部API,研究人员找到了一种方法,以获取虚拟机名称和ID、硬件信息(比如目标机器的核心和总内存),然后结合使用另一个未经身份验证的HTTP请求以获取屏幕截图,如图所示。
微软Azure屏幕截图
这个漏洞只影响Azure Stack,这也是一条“很有效的攻击途径”,Check Point的安全研究主管Yaniv Balmas说。“实际上,如果某人拥有庞大的Azure Stack环境,且有诸多租户,我就能获取其他机器的屏幕截图。这可能很危险,也可能不危险,得看情况。”
而第二个漏洞(CVE-2019-1372)是一个远程代码执行漏洞,该漏洞影响了Azure Stack上的Azure App Service,这将使黑客能够全面控制整个Azure服务器,进而全面控制一家企业的商业代码。Azure App Service让用户可以使用一种他们选择的编程语言,构建和托管Web应用程序、移动后端程序以及充分利用REST(restful)的API,无需管理基础架构。
更值得关注的是,攻击者可以同时钻这两个漏洞的空子,只需在Azure Cloud创建一个免费用户帐户,并在Azure Cloud上运行恶意函数,或者将未经身份验证的HTTP请求发送到Azure Stack用户门户网站。
Check Point发布了介绍第二个漏洞的详细技术文章,但简而言之,该漏洞存在于动态 WAS服务(DWASSVC)中,这项服务负责管理和运行租户的应用程序和IIS worker进程,而这些进程实际上运行租户的应用程序,并为指定的任务彼此联系。
由于Azure Stack未检查缓冲区的长度就将内存内容复制到缓冲区,攻击者就可以钻该漏洞的空子:只要向DWASSVC服务发送特别创建的消息,让DWASSVC服务能够以最高的NT AUTHORITY / SYSTEM权限在服务器上执行恶意代码。
设计人员说:“那么,攻击者如何才能向DWASSVC(DWASInterop.dll)发送消息?按照设计,运行C# Azure函数时,它在worker进程(w3wp.exe)的上下文中运行。”
“这让攻击者有可能枚举目前打开的句柄(handle)。这样一来,攻击者就可以找到已经打开的命名管道句柄,并发送特别创建的消息。”
Balmas说:“这让人可以全面了解在同一个服务器上运行的每个工作负载。我可以改动,可以删除,可以为所欲为。”
Check Point在博文中仅使用第二个漏洞就演示了如何可以钻该漏洞的空子让DWASSVC崩溃,不过也可以利用该漏洞以提升权限。
Check Point的研究人员Ronen Shustin发现了这两个漏洞,去年他负责任地向微软报告了这些漏洞,防止黑客造成严重破坏和混乱。Shustin在博文中说,研究团队当初开始研究Azure基础架构,是为了反驳“云基础架构很安全”这一观念。
Balmas说:“这是云安全领域的一场恶梦。这动摇了云安全概念。你防止不了,你保护不了自己。唯一能防止、能保护的是云提供商。”
在去年年底给这两个漏洞打上补丁之后,微软按照其Azure漏洞悬赏计划对Shustin奖励了40000美元。