bob体育客户端下载平台的博客

多云和多区域时代的网络安全

2022年8月30日 产品

分享这篇文章

到2021年,超过四分之三的企业拥有基础设施多个云.这一趋势没有显示出放缓的迹象,因为混合在家工作政策以及企业需要分散其过度依赖单一云提供商的风险(例如。OSFI第三方风险管理指南).即使在单一的云提供商内部,大多数企业也会有意地在多个地区拥有基础设施,以实现灾难恢复和数据主权合规。

如果您是信息安全领导者,您如何监控多个云和区域中的基础设施并确保其安全?如果你是一个构建安全产品和服务的工程师或产品领导者,你如何在不增加代码库和开发过程复杂性的情况下支持多个云和区域?如果您是托管安全服务提供商,您如何在尊重各种客户数据隔离政策和边界的同时获得规模经济?

一种选择是在每个云和区域中使用SIEM解决方案。另一种选择是将所有日志合并到一个云和一个区域中的单个SIEM解决方案中。第一种选择具有尊重数据主权法规的优势,但存在以下挑战:

  • SIEM解决方案必须在每个云提供商中得到支持——很少有SIEM以这种方式实现真正的多云。
  • 您的devops团队必须管理SIEM解决方案的许多实例——每个云和区域都有一个实例。如果您在不同的云环境中使用不同的云原生SIEM解决方案,那么devops工作将变得更具挑战性!

第二个选项简化了devops工作,但将面临不同的挑战:

  • 安全日志是大量的(例如。AWS cloudtrails)和将日志合并到一个位置将导致高昂的出口成本(请参阅每个云供应商的数据传输定价)
  • 日志数据整合可能会违反某些地区的数据主权规定。

一定有更好的办法。

多云、多区域网络安全湖屋

多云、多区域网络安全湖屋图

多云和多区域的网络安全架构。

Databricks湖屋平台可用于构建联邦网络安全bob体育客户端下载湖屋,让您:

  • 将安全数据保存在云和原始区域中,以限制出口成本,同时为SOC分析师和威胁猎人提供对组织所有数据的单一统一视图
  • 最大限度地减少devops工作:使用托管的Databricks服务,而不是在每个云中使用不同的安全解决方案
  • 尊重数据主权法规和数据驻留要求:Databricks提供了对联邦数据表和字段的细粒度访问控制
  • 从单个接口对每个云和区域中的所有数据执行联邦威胁检测或搜索查询-仅对查询结果产生出口成本
  • 在低成本的云对象存储(AWS S3, Azure ADLS,谷歌云存储)上以开放和高性能的格式存储您的数据

这篇博客将告诉你如何做。

建立联合湖屋的概述

在每个云和区域中,系统管理员需要:

  1. Provision 1 Databricks工作空间
  2. 配置现有的安全数据收集基础设施,将数据导出到云存储或消息总线系统(如kafka或事件集线器)。
  3. 将日志摄取到Databricks工作区中。使用Databricks数据管道从原始安全文件创建表。
  4. [可选]使用Delta Live Tables或您选择的提取-负载转换(ELT)工具执行转换。这包括用于创建警报或命中表的任何自动威胁检测逻辑。
  5. 为要联合的表配置访问控制策略。
  6. 创建用于联邦查询的服务帐户/主体和相关的个人访问令牌(PAT)。

单个Databricks工作空间(从今以后称为“主”工作空间)用于配置安全应用程序和工具,以进行威胁搜索和/或事件响应。在这个主工作区中,系统管理员需要:

  1. 为每个要联合的远程表创建外部JDBC/ODBC表
  2. 在(外部)JDBC表上创建任何所需的视图
  3. 为JDBC表和相关视图配置访问控制策略

一旦系统管理员在主Databricks工作空间中设置了JDBC表和相关视图,具有适当权限的Databricks用户将能够使用Databricks SQL、笔记本、仪表板、JDBC/ODBC API和其他API查询联邦数据。

让我们通过一个示例深入了解关键细节。

创建JDBC表

假设我们在三个云环境或区域中有三个要联合的工作区:

  1. Demo-aws-useast.www.neidfyre.com(主或驱动程序工作区)
  2. demo-aws-europe.www.neidfyre.com
  3. demo-azure.databricks.net。

进一步假设您已经运行了02 _ioc_matching笔记本电脑IOC匹配溶液加速器来创建和填充iochits表。对于本例,您希望联合iochits表格

您将需要JDBC URL而且个人访问令牌(PAT)用于两个远程工作空间来配置JDBC表。其余步骤将在主工作空间中使用安装了JDBC驱动程序的集群执行(安装说明在提供的文件中)笔记本).注意,最佳实践是将PAT存储在砖的秘密穹窿。收集这些信息后,您可以使用以下命令创建JDBC表:

下降表格如果存在ioc_matching_lipyeow_lim.iochits_aws_europe;创建表格ioc_matching_lipyeow_lim.iochits_aws_europe使用org.apache.spark.sql.jdbc选项(url“jdbc:砖:/ / demo-aws-europe.www.neidfyre.com: 443; httpPath = sql / protocolv1 / o / 2556758628403379/0730 - 172948 runts698;运输方式= http; ssl = 1; AuthMech = 3; UseNativeQuery = 0; UID =令牌;PWD =[编辑]'数据表“ioc_matching_lipyeow_lim.iochits”司机“com.databricks.client.jdbc.Driver”);下降表格如果存在ioc_matching_lipyeow_lim.iochits_azure;创建表格ioc_matching_lipyeow_lim.iochits_azure使用org.apache.spark.sql.jdbc选项(url“jdbc:砖:/ / demo-azure.databricks.net: 443; httpPath = sql / protocolv1 / o / 5206439413157315/0812 - 164905 tear862;运输方式= http; ssl = 1; AuthMech = 3; UseNativeQuery = 0; UID =令牌;PWD =[编辑]'数据表“ioc_matching_lipyeow_lim.iochits”司机“com.databricks.client.jdbc.Driver”);

创建union-all视图

创建JDBC表之后,在JDBC和本地表上创建一个联合所有视图。为什么我们要创建一个union-all视图?原因是它抽象出了底层的JDBC表,并为普通威胁分析人员提供了一个更简单的用户界面,这些分析人员实际上并不关心表是否被联合。

创建取代视图ioc_matching_lipyeow_lim.iochits_federated作为选择ioc_matching_lipyeow_lim.iochits联盟所有选择ioc_matching_lipyeow_lim.iochits_aws_europe联盟所有选择ioc_matching_lipyeow_lim.iochits_azure;

请注意,您可以在视图定义中包含标识符字符串文字(例如' aws_europe ', ' azure '等)作为源表标识符列,该列将显示视图中每一行的源表。

使用顺序查询进行完整性检查

检查JDBC表是否正常工作是个好主意。在每个本地表和JDBC表上按顺序运行以下查询,作为健全性检查。注意运行时间。

选择ioc_matching_lipyeow_lim.iochits在哪里matched_ioc“192.168.202.75”选择ioc_matching_lipyeow_lim.iochits_aws_europe在哪里matched_ioc“192.168.202.75”选择ioc_matching_lipyeow_lim.iochits_azure在哪里matched_ioc“192.168.202.75”

联合并发查询

这是我们努力的高潮。使用联邦联盟-all视图,任何人类分析师或任何威胁搜索应用程序只需查询联邦视图,就可以搜索多个云和多个区域中的所有日志!联邦查询将自动外包到本地和远程工作空间,并并发执行。运行以下查询并记录运行时间。您应该观察到,运行时间大约是按顺序运行三个查询所观察到的时间的三分之一。

选择ioc_matching_lipyeow_lim.iochits_federated在哪里matched_ioc“192.168.202.75”

此外,底层表上的谓词或过滤器将被下推到远程工作区,因此没有数据的出口,只有过滤后的结果的出口。您可以通过使用explain命令检查查询计划来验证这种行为。

解释选择ioc_matching_lipyeow_lim.iochits_federated在哪里matched_ioc“192.168.202.75”物理计划联盟-1) ColumnarToRow+-PhotonResultStage+-PhotonFilter (isnotnull (matched_ioc #480(matched_ioc #480192.168.202综合成绩))+-PhotonAdapter+-文件可以parquet ioc_matching_lipyeow_lim.iochits[detection_ts# .477, src #478,生#479, matched_ioc #480, ioc_type #481批处理:真正的, DataFilters: [isnotnull(matched_ioc# .480), (matched_ioc #480192.168.202综合成绩)],格式:Parquet,位置:PreparedDeltaFileIndex(1路径)[dbfs:/tmp/ioc_matching/数据/lipyeow.lim@databrickscom/iochits], PartitionFilters: [], PushedFilters: [IsNotNull(matched_ioc), EqualTo(matched_ioc,192.168.202综合成绩)], ReadSchema: struct<detection_ts:时间戳src:字符串,原料:字符串,matched_ioc:字符串,ioc_type:字符串>-2)扫描JDBCRelation(ioc_matching_lipyeow_lim.iochits) [numPartitions .iochits1] ioc_matching_lipyeow_lim.iochits_aws_europe [detection_ts #143, src #144,生#145, matched_ioc #146, ioc_type #147]推送过滤器:[IsNotNull (matched_ioc),等于(matched_ioc192.168.202综合成绩)], ReadSchema: struct<detection_ts:时间戳src:字符串,原料:字符串,matched_ioc:字符串,ioc_type:字符串>+-3.)扫描JDBCRelation(ioc_matching_lipyeow_lim.iochits) [numPartitions .iochits1] ioc_matching_lipyeow_lim.iochits_azure [detection_ts #148, src #149,生#150, matched_ioc #151, ioc_type #152]推送过滤器:[IsNotNull (matched_ioc),等于(matched_ioc192.168.202综合成绩)], ReadSchema: struct<detection_ts:时间戳src:字符串,原料:字符串,matched_ioc:字符串,ioc_type:字符串>[…剪掉)

注意,谓词已下推到Scan JDBCRelation操作符中。

数据主权的数据治理

这种多云、多区域网络安全湖屋的一个关键方面是能够在联邦工作空间上执行数据主权规则。实际上,在以下几个级别中,您可以强制执行访问权限:

  • 要联合的工作空间中的源表或视图的访问权限
  • 主工作区中的JDBC表的访问权限
  • 在主工作区中union-all视图的访问权限

访问权限由Databricks对象权限并且可以通过SQL grant语句进行配置。以下是一些建议:

  • 在要联合的工作空间中创建单独的用户或服务帐户。然后,您可以使用该帐户控制对表和视图的访问权限。参见Databricks文档对象特权
  • 确保JDBC URL绑定到高并发(HC)集群。注意,JDBC URL绑定到与PAT关联的用户/服务帐户和集群。JDBC连接的特权将绑定到与PAT关联的帐户。
  • 要在主工作空间强制执行访问特权,必须确保用户只允许使用高并发(HC)集群查询视图和JDBC表。参见Databricks文档集群政策
  • 使用源/联邦工作区中的视图来控制或屏蔽对具有受保护信息的列的访问。然后将根据视图创建主工作区中的JDBC表。参见Databricks文档动态视图函数

你现在就可以试试!

可以使用。尝试这种多云、多区域的解决方案笔记本电脑提供的一部分IOC匹配溶液加速器.将笔记本下载到Databricks工作区。我们很乐意与您一起进行概念验证,请通过(电子邮件保护)如果你有任何问题。

免费试用Databricks

相关的帖子

看到所有产品的帖子