谷歌云平台(Google Cloud Platform)是谷歌所提供的一套公有云计算服务。该平台包括一系列在 Google 硬件上运行的用于计算、存储和应用程序开发的托管服务。软件开发人员、云管理员和其他企业 IT 专业人员可以通过公共互联网或专用网络连接访问 Google Cloud Platform 服务。
但谷歌云平台占有的市场份额只有6%(Canalys 2020年5月统计数据),因为缺乏具有深厚Google Cloud经验的安全专家以及庞大的客户群体,导致谷歌云平台运营不够成熟,也缺乏足够的安全功能广度。
在这样的背景下,2018年起谷歌云平台遭黑客滥用。2018 年 12 月 29 日,第一波攻击发起,目标是 D-Link DSL-2640B、D-Link DSL-2740R、D-Link DSL-2780B和 D-Link DSL-526B,将其重定向到加拿大的流氓 DNS服务器。2019 年 2 月 6 日发起的第二波攻击也针对这些相同类型的 D-Link 调制解调器。3 月 26 日,第三次攻击是针对的是 ARG-W4 ADSL 、DSLink 260E、Secutech 和 TOTOLINK 的路由器。该劫持攻击导致路由器流量被重定向并发送到恶意网站。安全研究员表示,有超过14000台D-Link DSL-2640B路由器与2265台TOTOLINK路由器暴露在公网上,并指出在过去几年中,DNSChanger恶意软件已经高产到为网络犯罪分子提供了多达1400万美元的收入。
研究发现,上述攻击都使用了Google Cloud的主机,攻击者先是使用谷歌的云服务功能来扫描可能被利用的目标路由器;然后,利用谷歌云平台将路由器远程配置到他们自己的DNS服务器上。
因此,谷歌云平台的安全性受到极大质疑。研究员表示该平台很容易被滥用,任何拥有谷歌帐户的人都可以轻松访问“Google Cloud Shell”,这项服务可为用户提供相当于Linux VPS(虚拟专用服务器)的服务,直接为他们提供在Web 浏览器中的root权限。安全研究员Mursch表示:“作为一家大型云服务提供商,处理滥用行为对谷歌来说是一个持续的过程。然而,与竞争对手不同,谷歌让犯罪分子很容易滥用他们的平台。”
对此,有开发人员整理了发现谷歌云平台漏洞的方式。谷歌运行有一个名为Google Service Management的管理服务,谷歌通过它来管理各种应用谷歌系统的内外部接口和用户自行创建的云端服务。在Google Service Management下,用户可以在自己的云平台项目中对使用到的Maps API、Gmail API、private APIs等个人接口服务进行个性化启用关闭,并且能通过接口配置文件对各种服务进行实时管理控制。通常来说,开发人员大多交互操作都是通过云端控制台Google Cloud Console或命令行(如启用/关闭服务),或通过API管理接口Google Cloud Endpoints来完成,但该管理服务提供一个特殊的API接口。
该API接口不仅能实现上述服务管理功能,还可以去访问一些谷歌服务的隐藏功能。
这些隐藏功能可以用多种方式来发现,但最简单最容易的一种就是,在用户的谷歌云平台项目Google Cloud Platform project中,启用Service Management的API接口,并开启用于项目流量过滤的组合框。在该API可实现功能菜单里面就包含了一些隐藏方法。
所谓隐藏方法就是,不允许非谷歌客户端对其进行访问,当非谷歌客户端尝试对其进行访问时,就会返回404错误。但这种404错误不是以HTML页面一般那种‘这里出错’的提示出现,而是以JSON方式被给出的,它会提示该方法不存在。同样,在API本身中也存在一些隐藏方法,它们是一些公开方法中接收的隐藏参数,但相对来说,这些隐藏更难发现。对隐藏方法和隐藏参数来说,它们都使用了一种叫做“Visibility”的谷歌服务功能,该功能记录可从公开文档中查询,但只作为谷歌内部使用。但是,也有一些隐藏功能,如果可成功利用,就会被认为是一种安全漏洞。例如,在访问谷歌云端控制台Google Cloud Console时,分析其中产生的HTTP请求。该漏洞的出现会对谷歌服务产生重要影响,一些重要的流程使用服务配置中的服务名称来执行除权限检查之外的任意操作,所以,如果配置中加入了不同的服务名称后,攻击者就可以在不同的服务中执行一些重要的操作。
诸多漏洞导致在谷歌云平台上保存的数据受到了极大的安全威胁。