使用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
  • 登录类型:GWs.events[X].parameters[Y].value

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

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

我们直接在InfluxDB中可视化这些数据,并使用Flux为每个个别元素生成值。

持续开发

目前,我们正在探索如何使用布林带与这些数据结合。这涉及使用简单移动平均线周围的平均值来确定正常范围。这些阈值还提供了对数据的更细粒度理解,因为我们追踪每周、每天、每小时等正常含义。

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

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

最终,我们的目标是开发一个全面且可扩展的安全威胁监控系统。因为所有事情都是随着时间的推移发生的,所以所有安全数据都是时间序列数据。我们利用时间序列数据和InfluxDB来保持这种上下文。