Terrance DeJesus

Google Workspace 攻击面

第一部分:概览

阅读时间 21 分钟
Google Workspace Attack Surface

序言

Google Workspace (GW),前身为 GSuite,是 Google 提供的一系列企业工具。许多中小型企业 (SMB) 以及大型组织都在使用 Google Drive、Gmail 和 Google 表单等热门服务。

在谈到安全性时,GW 经常被提及,因为威胁正在滥用或以服务和资源为目标。作为从业者,我们必须考虑相关的风险并相应地规划防御措施。重要的是,微软和亚马逊也提供一些相同的服务:如果在它们之中存在“风险最低”的选择,我们尚未看到证据,而且它们都优先考虑自己的可见性形式。

在这个多部分系列文章中,我们将帮助您了解 GW 是什么,以及需要注意的一些常见风险,同时鼓励您掌控自己的企业资源:- 第一部分 - 概览 - 第二部分 - 使用 Elastic 设置威胁检测 - 第三部分 - 检测常见威胁

在本出版物中,读者将了解更多关于 GW 中常见资源和服务的信息,以及这些资源和服务如何成为威胁的目标。这将概述管理、组织结构、身份访问和管理 (IAM)、开发者资源以及您应该考虑的其他一些主题。

但在我们开始之前,让我们强调组织也应该承担起这个攻击面的所有权的重要性。如果您正在使用这些企业工具,却不认为它们是您企业的一部分,那么首先要克服的挑战就在于此。了解您的可见性范围,了解您可以在该范围内行使哪些能力,并且不要将供应商运营误认为是供应商安全。

威胁攻击的常见服务

GW 中提供的服务和应用程序包括云存储、电子邮件、身份和访问管理 (IAM)、聊天等等。在幕后,开发者可以访问应用程序编程接口 (API),以便以编程方式与 GW 交互。这些服务共同使各种规模的组织都能为用户提供他们自己的可通过互联网访问的虚拟“工作空间”。然而,威胁行为者已经发现了滥用这些服务的简单和高级方法。虽然有很多信息需要介绍,但我们应该从管理入手,因为它提供了 GW 的概述,并将有助于为有关应用程序或开发者资源的更深入的背景信息奠定基础。

管理

除非恰好也是管理员,否则很少有 GW 用户了解管理控制台或它所公开的设置。管理控制台是 GW 管理员管理其组织的服务和资源的中央指挥中心。“组织”一词直接引用在 GW 中注册的主要域,因此是 GW 的根节点。只有具有管理角色的用户帐户才能登录并访问其组织的管理控制台。

GW 采用类似于目录服务的结构,该结构定义了用户、组、组织单元 (OU)、角色和企业的其他属性,以便于导航。虽然管理控制台本身并不构成风险,但具有该级别权限的受损有效帐户 (T1078.004) 会使组织面临更大的风险。

除了 IAM,管理员还可以使用管理控制台来管理可供其组织使用的应用程序。其中最受欢迎的包括 Gmail、云端硬盘和文档、Google Meet、Google 表单、Google 表格和日历。可以添加其他 Google 服务,但大多数服务在设置 GW 时默认启用;例如 Chrome 远程桌面。根据 OU 配置,用户对这些应用程序的权限可以从根 OU 继承。最小权限原则 (PoLP) 和应用程序控制对于降低 GW 内的组织风险至关重要。

管理员还可以通过管理控制台管理移动和端点设备的注册,以及与网络相关的设置。管理员可以通过上传包含序列号的 CSV 文件来添加设备,该序列号可以分配给用户。对于公司拥有的设备,这提供了方便的审计,不幸的是,这可能是必要的。移动设备的通用设置也可用,允许 iOS、Android 和 Google 设备进行数据和设置同步。GW 允许移动设备管理 (MDM),允许管理员使用 开放移动联盟 - 统一资源 (OMA-URI) 应用本地更改。

巧合的是,更改远程企业端点也是攻击者的一个热门目标。

GW 管理员有能力创建和管理 Wi-Fi、以太网、VPN 和蜂窝网络。对于蜂窝设备,这通常通过订阅管理根发现服务 (SM-DP) 完成,该服务用于将 eSIM 设备连接到移动网络。VPN 和代理设置也可以配置,默认情况下通过 Google 的 DNS 基础结构进行路由,或者如果选择自定义路由。

Windows 端点也可以通过 GW 进行管理,并具有修改设置和与 Active Directory (AD) 或现有 LDAP 服务器同步数据的功能。这可以通过 GW 的 Google Cloud Directory Sync (GCDS) 来完成。可以将设置应用于每个端点,例如 BitLocker、自动更新或通过 Google Credential Provider for Windows (GCPW) 进行身份验证。GCPW 允许用户使用其 Google 帐户登录到 Windows 端点进行身份验证。具有足够权限的用户可以通过配置自定义策略,通过配置服务提供商 (CSP) 对远程企业端点进行更改。这在 Windows 10 企业平台上是可行的,该平台公开了端点配置设置,允许 GW 作为 MDM 服务读取、设置、修改或删除配置设置。Microsoft 有一个广泛列表,其中列出了通过自定义策略进行管理而公开的 CSP 设置。虽然平台之间的集成对于日常运营至关重要,但这项服务使攻击者能够将其入侵扩展到 Windows 生态系统。

组织结构

GCP 或 GW 中企业的数字结构通常是分层的:已注册的域是顶层、父级或根,此下的任何嵌套组织都用于分组和权限范围限定。

对于 GW 而言,一个需要理解的重要主题是 OU,它可以被视为组织内的“部门”,并且可以有附属 OU。层次结构从顶层 OU 开始,通常来自主要域注册和组织名称,可以在其中根据需要添加子单元。如果未指定,则从顶层 OU 继承服务和应用程序访问权限。分配给 OU 的用户将有权访问任何继承的服务和资源。

作为替代方案,管理员可以创建和管理访问组,以增加基于资源的控制层。分配给访问组的用户将继承该组本身设置的访问权限,这可能会绕过对其分配的 OU 设置的限制。例如,如果工程 OU 没有访问云端硬盘和文档的权限,则分配到可以访问云端硬盘和文档的访问组的用户可以绕过子 OU 设置。

GW 的组织结构和分层访问控制方法使管理员能够更轻松地为用户确定角色范围。不幸的是,不完整或配置错误的访问控制可能会允许从顶层 OU 继承意外的权限。访问限制可能会被预期访问组之外的用户意外绕过,从而通过额外的云角色引入内部威胁风险 (T1098.003)。

身份访问和管理

身份与帐户

用户在使用 Google 服务时的身份是所用帐户的身份,通常是电子邮件地址。身份与用户帐户略有不同,用户的身份是唯一的,而用户帐户是一个数据结构,用于跟踪与 Google 服务交互时的配置、属性、活动等等。

独立的 Gmail 地址 (@gmail.com) 是通常供私人使用的消费者帐户,而带有注册域名的 Gmail 地址是托管用户帐户,因为它们的生命周期和配置完全由组织管理。因此,当我们在本出版物中讨论 IAM 时,上下文通常是指托管用户帐户,其身份和数据由 GW 组织管理。

但是,身份和帐户之间的关系不必是 1:1 的关系,这意味着一个电子邮件地址或身份可以与两个单独的用户帐户相关联。如果组织不为其用户强制执行新的、单独的身份,那么风险就会围绕着由用户自己而不是组织管理的私人用户帐户。在此示例中,广泛使用有效的被盗帐户会削弱防御者识别这是恶意行为还是良性行为的能力。

机器帐户

机器帐户存在,允许开发人员以编程方式与 Google 服务和资源进行交互。这些帐户不是在 GW 中管理的,而是通过服务帐户在 Google Cloud Platform (GCP) 中管理的。GW 和 GCP 之间以域范围委托的形式存在桥梁。

此功能授权 GCP 服务帐户通过应用程序 API 访问 GW 内的数据、资源、服务等等。OAuth2 是 GCP 服务帐户和 GW 之间进行身份验证的协议。

这种方法最常见的风险是服务帐户凭据的存储和使用。由于服务帐户通常由于其自动化和编程意图而具有较高的权限,因此攻击者会优先查找这些凭据,例如 Linux 云工作者。通常,公钥/私钥对会不安全地存储在本地脚本或使用它们的程序中。然后,攻击者可以从文本文件中发现不安全的凭据 (T1552),从内存、环境变量甚至日志文件中提取它们。一旦被盗用,攻击者就可以通过一个有效的服务帐户从 GCP 进入 GW,而该服务帐户的监控可能不如用户帐户那么仔细。

角色和组

在 GW 中,基于角色的访问控制 (RBAC) 仅存在于管理级别。这意味着可以在管理控制台中设置和配置默认角色和自定义角色,但是,可用的权限主要是管理权限。正如我们之前讨论的那样,Google 的层次结构是自上而下的,从根 OU 开始,然后是子 OU;资源和服务是按每个 OU 启用或禁用的。默认情况下,非管理用户属于根 OU,因此会继承根级别显式设置的任何访问权限,而全局权限应最小。

不要与 Google 的 Group 应用程序混淆,访问组允许管理员在用户级别设置对资源和服务的特定访问权限和特权,类似于角色级控制。通常,会创建一个组,然后分配对资源和服务的特权。然后,将用户添加为这些特定组的成员,从而覆盖或取代从 OU 继承的特权。

外部身份

如前所述,Gmail 的电子邮件名称是唯一 ID,因此用户可以使用相同的 ID 同时用于他们的消费者帐户和使用外部身份提供商 (IdP) 管理的用户帐户。此过程通常需要通过安全断言标记语言 (SAML) 进行单点登录 (SSO),因此 IdP 必须先识别身份才能登录。

身份验证从 GW 中继到 SAML IdP,并且依赖于信任外部提供商的身份验证。对于那些成为外部权威来源的活动目录 (AD) 服务或 Okta 也是如此。SAML SSO 过程中传输的数据存在最大的风险,并且截获的对 IdP 的 SAML 响应可用于通过伪造的凭据进行身份验证 (T1606.002)。

开发者资源

有两种以编程方式与 GW 交互的方法:Google Apps ScriptREST API。Google Apps Script 是一个应用程序开发平台,用于快速轻松地构建业务应用程序,以更好地与 GW 集成。而 REST API 提供了一种与 GW 直接通信的方法,通常是在集成不快速或不轻松的情况下。与 GW 的外部交互是 REST API 的另一个好处,因为 Apps Script 旨在供内部使用。

Apps Script

通过 Apps Script,开发人员可以使用 JavaScript 以及对每个 Google 应用程序特定的内置库的访问权限。“快速”一词经常被强调,因为该平台可在域 script.google.com 上使用,并直接绑定到用户登录的组织,无需任何安装。此工具对于在 GW 中完成与现有应用程序、管理设置等相关的任务非常有用。

你在 Apps Script 中创建的每个编码应用程序都称为项目,并且可以被其他 GW 工具使用。在该项目中,你可以随意编写 JavaScript 代码。从其控制台中,你可以运行、调试或查看执行日志。

该项目还可以作为 Web 应用程序、API 可执行文件、附加组件或库部署到你的 GW 中,并带有版本控制。脚本也可以作为库部署,从而使代码可以在项目之间共享。最后但并非最不重要的一点是,可以为每个项目设置触发器,在特定时间运行特定函数,从而允许开发人员选择执行哪些代码块以及何时执行。

应用程序

在 GW 中,对组织的主要吸引力通常是 Google 提供的丰富的原生应用程序。Google 的云端硬盘、文档、Gmail、表格和表单只是其中一些可供用户用于通信、存储、文档或数据收集和分析的应用程序。所有这些应用程序构成了用户的工作区,但也因其受欢迎程度和彼此之间的无缝集成而成为攻击者的目标。

因此,必须了解,虽然应用程序在 GW 中相互补充,但它们通常需要彼此之间的 授权,用户必须显式授予访问权限。虽然安全从业人员通常可能对需要访问权限的应用程序持怀疑态度,但普通用户可能不会并且会毫不犹豫地授予访问权限。这随后允许恶意应用程序(例如 Google 表格中包含的 Apps Script 函数)访问每个应用程序背后的私有数据。

Gmail

Gmail 无疑是 GW 提供的最受欢迎的应用程序,历史上一直被攻击者滥用,作为恶意附件或链接的传递机制。对于那些不熟悉的人来说,Gmail 是 Google 的免费电子邮件服务,根据 statista 的一份 报告,截至 2018 年,拥有近 15 亿活跃用户。

网络钓鱼 (T1566) 通常是攻击者借助 Gmail 进行的最常见技术,其目标是窃取有效的凭据。受害者会收到包含恶意附件或链接的电子邮件,其中可能会安装恶意软件,或者将用户重定向到要求登录凭据的虚假网站。如果发生帐户泄露,这会导致内部鱼叉式网络钓鱼 (T1534) 攻击,可能会以现有管理员为目标。

电子邮件收集 (T1114) 是攻击者使用的另一种技术,他们的作案手法 (MO) 可能只是收集敏感信息。在 GW 中,管理员有权为特定用户、组或 OU 设置自定义全局邮件路由,而用户也可以创建自己的转发规则。攻击者执行此操作的能力(无论是手动还是以编程方式)都取决于有效的帐户泄露,因此稍后可能会在入侵过程中发现此活动的迹象。

更进一步地说,攻击者还可以将 GW 的 Web 服务 (T1102) 用于命令和控制目的,正如 ESET 研究人员在 2020 年的 ComRAT v4 后门方面 确定的那样。归因于高级持续威胁 (APT) 组织 Turla,对 Gmail 的滥用也是更高级别威胁的一种工具。

云端硬盘

Google 云端硬盘,作为拥有活跃 Gmail 帐户的免费数字存储服务,也是攻击者的常见目标。如果有效帐户被泄露,攻击者有能力窃取存储在 Google 云端硬盘中的私有数据。在 Google 云端硬盘中共享文档依赖于信任模型,用户可以在其中创建自定义的可共享链接并邀请其他人。管理员也可以启用和公开其组织中的公共共享云端硬盘。访问权限和特权取决于所有者或组织设置的共享权限,以及可共享链接或有权访问这些共享对象的 Google 云身份的预期接收者。

我们不要忘记,GW 允许管理员为移动设备设置企业移动管理 (EMM) 和移动设备管理 (MDM)。然后,这些移动设备可以访问组织 Google 云端硬盘空间中的私有共享云端硬盘。攻击者可以利用这一点,通过这些远程服务 (TA0039) 获取对移动设备的未授权访问。如果滥用此类服务,还可以从这些服务中获取移动设备或最终用户的地理坐标。

通过与 Google 云端硬盘的双向通信进行命令和控制 (T1102.002) 是攻击者的另一个选择,他们可能正在使用该服务来托管和部署恶意有效载荷,就像来自 APT29 的那些一样。通常,这反映了仅仅通过一个有效的帐户和启用的 Google 云端硬盘 API 泄露了 Web 服务 (T1584.006)。当攻击者可能会利用 Google 云端硬盘以编程方式暂存泄露的数据,然后再将其传输到最终目的地时,通常会出现这种情况。

文档

与 Google Drive 集成的是 Google 文档,这是一个免费的在线文字处理服务,用户可以在其中创建文档,然后将其存储在 Google Drive 中。为了方便协作,文档具有广泛的标记功能,例如评论,但最近这些评论被滥用于传播网络钓鱼和恶意软件。Check Point 公司 Avanan 讨论的这项技术允许攻击者简单地创建一个文档,并在其中添加包含目标电子邮件地址和恶意链接的评论,从而帮助他们绕过垃圾邮件过滤器和安全工具。将这种网络钓鱼活动与诸如 GW 中的 Apps Script 之类的原生 JavaScript 应用程序开发平台结合使用,可以以最低的成本扩大传播范围。幸运的是,恶意 Google 文档的范围仅限于恶意链接,但认为攻击者最终不会开发滥用该服务的新技术是不成熟的。

表格

与 Google 文档一样,Google 表格是攻击者经常滥用的另一种服务,用于传递恶意链接或有效负载。Google 表格是一个电子表格程序,类似于 Microsoft 的 Excel。可以使用宏创建自动化任务,当然也可以创建触发器来执行这些宏。虽然存在内置函数,但可以通过 Google 的 Apps Script 平台创建自定义函数,然后将其导入到 Google 表格文档本身。Apps Script 具有用于与其它 Google 服务及其各自 API 交互的原生 JavaScript 库。因此,如果攻击者要将他们喜欢的 Google 表格文档武器化,那么资源开发将从使用 Apps Script 构建的自定义函数开始。该函数被导入到 Google 表格中,然后通过评论其电子邮件地址并允许访问与目标共享。一旦触发,该函数中的恶意代码将被执行并继续入侵过程。

更进一步的做法可能是与他们共享一个副本链接,而不是编辑链接,这将把包含恶意宏的表格复制到他们自己的 Google Drive 中,并在执行时以用户身份执行预定的任务,因为表格的所有者现在是目标。对于传播,访问用户在 GW 组织内的联系人可能会带来类似蠕虫病毒的功能,正如 Sophos 在 2017 年发现的那样。

市场

GW 的市场是一个在线应用程序商店,其中包含可以集成到组织中并由用户访问的其它企业应用程序。管理员负责管理应用程序的可访问性并调查与此类应用程序相关的风险。这些应用程序中的很大一部分是第三方应用程序,Google 明确声明了其作为贡献者的政策。GW 市场中第三方应用程序相关的风险是访问来自信息存储库的私有数据 (T1213) 或每个应用程序背后用户和/或组织的常驻数据。

当然,对于管理员而言,在浏览应用程序时,可以在安装之前通过应用程序本身查看权限访问。这样,管理员可以查看从此类访问继承的风险是否值得它可能提供的解决方案。

报告

与大多数云控制台和环境一样,GW 具有原生报告功能,可帮助管理员捕获其环境中的活动。管理员在 GW 的管理控制台中的“报告”下具有以下选项。

  • 亮点 - GW 环境基本指标的仪表板
  • 报告 - 以基本仪表板指标或有关用户帐户的表格数据的形式报告应用程序、成本、用户和设备
  • 审计和调查 - 按活动分类的所有日志的位置
  • 管理报告规则 - 重定向到规则空间,筛选“报告”规则,这些规则是自定义的
  • 电子邮件日志搜索 - 在组织内所有用户的 Gmail 帐户中搜索。筛选器包括日期、发件人、发件人 IP、收件人、收件人 IP、主题和邮件 ID
  • 应用程序正常运行时间 - GW 中启用的应用程序的正常运行时间。正常运行时间与 Google 的基础设施相关。

在此报告中,Google 在提供有关 GW 中用户状态和帐户活动的表格数据方面做得不错,例如双重验证状态和密码强度以及其它安全指标。例如,已在域外访问的 Google 资源的共享链接。有关 Google 的其它用户报告文档,请此处查看。

最可靠的数据是 GW 的原生日志,可在“审计和调查”下找到。如前所述,这些日志根据活动、应用程序、身份或资源组织成各自单独的文件夹。

日志以表格格式存储,默认情况下会记录日期、事件、描述、操作者和 IP 地址。描述包含有关发生了什么活动的另一层详细信息,通常包括 JSON 键和值对,用于从 GW 中提取的用于报告的特定值。

关于威胁,攻击者通常会尝试通过清除审核日志来删除任何潜在的踪迹 (T1070) 来删除指标,但是,GW 审核日志由 Google 管理,并且仅具有保留策略。因此,必须将来自 GW 的审核日志通过存储桶路由到本地或云存储解决方案,例如 GCP。有关 Elastic 的 GW 集成如何路由审核日志的更多信息,请访问此处

规则

虽然 GW 提供了一个侧重于记录组织数字环境中的活动的报告功能,但它也具有检测规则功能。

这些功能并未直接作为安全信息和事件管理 (SIEM) 工具进行营销,但具有该功能。GW 中的“规则”功能附带一些默认规则,允许管理员自动监视特定活动并设置特定操作。每个规则都允许您自定义规则的匹配条件,当然还有满足条件时要执行的操作。规则分为报告、活动、数据保护、系统定义或信任规则,其中自定义创建和查看需要特定的权限。

在粒度方面,管理员在创建自定义规则时受制于来自审核日志的数据,而 Google 提供的系统定义规则具有其它数据源洞察力。规则警报可直接通过 GW 中的安全警报中心功能访问,在那里可以编辑进一步的分析、分配、状态等。

结论

通过对 GW 作为攻击面的介绍,我们希望您能更好地了解与这些企业资源相关的风险。强大的虚拟工作空间已成为分布式生产力的重要功能,这既确立了它们的实用性,又使其面临威胁。随着攻击者继续滥用 GW,企业最好了解其安全性,同时承担起改进它的责任。适当的管理、强大的策略设置、IAM 以及利用他们拥有的可见性是我们提供的一些建议。

我们将很快发布本系列的第二部分,并向您展示如何使用 Elastic 组件为 GW 设置威胁检测实验室。在我们的第三篇出版物中,我们将深入探讨揭示特定防御策略的攻击场景。