使用 Google Workspace 数据实现安全可观测性

导航至

本文最初发表于 The New Stack

Security observability

确保系统安全是一项永无止境的挑战。不仅需要监控和保护您自己的技术堆栈,而且公司使用的每项新服务都会为不良行为者尝试利用其自身目的创造另一种潜在途径。

时间序列数据即安全数据

幸运的是,有一种数据类型提供了关于人们与任何系统或服务交互方式的关键数据:时间序列数据。

每个事件都发生在时间背景下。例如,登录尝试发生在特定时间。该事件的数据被添加时间戳。此带时间戳的数据告诉您谁尝试了登录、尝试发生的地理位置等等。当您想到所有这些关键数据都具有时间戳时,很明显,时间序列数据就是安全数据。

将时间作为安全性的恒定背景,通过扩展安全性的含义范围,可以更深入地了解您的安全状况。

系统监控可以实时揭示安全威胁。但是,与法庭剧不同,在安全威胁方面很少有“啊哈!”时刻。这就是为什么安全漏洞可能会长期未被发现。是的,单个事件可能很重要。这就是异常检测存在的原因。但这些事件往往发生得很快,这使得它们更容易被错过。将事件置于其他事件和模式的背景下,可以创建更全面的安全配置文件。

使用时间序列数据构建安全解决方案

使用时间和历史记录可以帮助您识别活动模式。然后,您可以使用这些模式来测试发生异常时的情况。在 InfluxData,我们的安全团队正在开发一种解决方案,该解决方案使用 InfluxDB 收集和处理时间序列数据,以构建安全配置文件。

凭据泄露是 主要的攻击媒介,因此从身份验证数据开始是有道理的。这也很方便,因为身份验证数据涵盖我们团队的每位成员,并且每个人都会生成大量数据。因此,您可以开始快速查看身份验证数据的模式,因为人们往往具有一致的习惯。InfluxDB 使我们能够详细跟踪每个人的这些模式。例如,如果某人通常在家工作,但有一天下午去咖啡店工作,那么这个新位置会创建一个新的数据系列,并更改该人的身份验证活动基数。

有时,缺少模式也可能是一种模式。经常出差工作的人可能有许多地理位置分散的身份验证活动。但是,知道这些人经常出差可以缓解 IP 地址位置等异常的紧迫性。

跟踪身份验证活动还可以帮助我们消除误报。如果同一团队成员在星期一早上有两到三次登录尝试失败,我们可以将其标记为潜在问题,然后在我们将其识别为独特模式后,将该异常放在一边。(当然,在尝试登录前喝咖啡可能会有所帮助!)

人多力量大

作为一家使用数十个 SaaS 提供商的公司,每个提供商都为我们提供了机会,可以为员工安全配置文件和模式添加背景信息和粒度。

访问单个 SaaS 提供商的身份验证数据可能具有挑战性。我们发现的一个关键解决方案是跟踪 Google Workspace (GW) 身份验证。当团队成员使用与其 Gmail 关联的电子邮件地址登录我们使用的任何服务时,我们可以使用该交互生成的数据来跟踪原本不可用的使用情况和身份验证。

Google 身份验证非常有用,尤其是在时间序列数据方面,因为每笔交易都会生成多个数据点,例如请求、响应和实际授权等。某些交易可能会生成数百个数据点,具体取决于用户尝试完成的操作。

我们想要捕获的基本信息包括

  • 身份验证时间戳
  • 公司帐户 ID
  • 用户名
  • 用户 ID
  • 用户域
  • 身份验证类型
  • 身份验证结果

出于我们的目的,我们将键映射到静态事件或 Google Workspace 事件字段。

  • time: GWs.id.time
  • service_source: "G Suite"
  • service_domain: "influxdata.com"
  • source_address: GWs.ipAddress
  • email_address: GWs.actor.email
  • saas_account_id: GWs.actor.profileId
  • customer_id: GWs.id.customerId
  • application: GWs.id.applicationName
  • auth_results: GWs.events[X].name
  • login_type: GWs.events[X].parameters[Y].value

捕获此数据一直都是可能的,但将其用于安全配置文件无法很好地扩展。使用 InfluxDB 使我们能够轻松摄取和处理这些交易产生的所有数据,因为它旨在处理这种带时间戳的数据。

当我们引入新的团队成员时,我们立即开始识别他们的模式并构建他们的安全配置文件。这有助于确定基线使用配置文件,然后我们将其与已建立员工和其他新员工加入公司后的使用模式进行比较。

我们在 InfluxDB 中可视化此数据,并使用 Flux 来生成每个单独元素的值。

持续开发

目前,我们正在探索如何将布林带与此数据一起使用。这涉及使用简单移动平均线周围的标准偏差来建立正常范围。当我们跟踪每周、每天、每小时等的正常含义时,这些阈值还可以提供对该数据的更精细的理解。

这种类型的安全监控的潜力是巨大的。随着我们继续开发和构建此解决方案,我们将能够监控整个公司的整个供应链。例如,包括来自 GitHub 的交易数据意味着我们将能够跟踪 GitHub 仓库克隆之类的活动。如果有人从可疑位置发起克隆请求,则会很快变得可见,我们可以采取适当的对策。

纵向跟踪和警报仍在开发中,因为它们的功能取决于布林带建立的容差水平。但是 InfluxDB 的本机警报功能可以处理这些类型的事件。

最终,这里的目标是开发一个用于监控安全威胁的整体且可扩展的系统。由于一切都发生在时间过程中,因此所有安全数据都是时间序列数据。我们正在利用时间序列数据和 InfluxDB 来维护这种背景。