在同一集群中安全管理多个Jupyter实例

2024-09-04 09:32:47 浏览数 (2)

零信任是防止数据泄露、未经授权访问以及其他对 Jupyter 笔记本中敏感数据威胁的关键。

译自 Manage Multiple Jupyter Instances in the Same Cluster Safely,作者 Manas Chowdhury。

Jupyter 笔记本是交互式、高效的工具,允许数据科学家探索数据集并有效地添加模型。许多组织(最近 JetBrains 研究的 42%)利用 Jupyter 笔记本 为用户提供对敏感数据资产的编程访问权限。

Jupyter 笔记本已成为数据科学和研究中的主打工具,原因包括:

  • 交互性
  • 灵活性
  • 集成
  • 协作
  • 易用性

但是,您是否想过这种模型对数据安全构成的威胁?攻击者或不道德的用户可以利用它来获取对敏感信息的未经授权的访问权限。

在本文中,我将带您了解常见的 Jupyter 笔记本威胁,并解释如何使用 零信任安全 来保护它们。

由于 Jupyter 笔记本被广泛使用且很受欢迎,因此防止安全威胁不仅有利,而且是必要的。

常见的 Jupyter 笔记本威胁和漏洞利用

攻击者可以使用 Python 修改操作系统,这允许 Jupyter 笔记本更改系统设置和文件。这会带来重大的安全风险,并可能影响本地资产。

以下是 Jupyter 笔记本由于其设计而可能面临的一些最常见的安全威胁。

远程命令注入

当攻击者利用 Jupyter 笔记本环境中的漏洞在主机服务器上运行任意命令时,就会发生远程命令注入。

这可以通过未经适当清理的输入或恶意笔记本发生。一旦攻击者获得命令执行权限,他们就可以控制服务器,访问敏感数据,甚至移动到网络中的其他系统。这会导致重大损害和数据泄露。

对远程受信任实体的未经授权的访问

通过获取对 Jupyter 笔记本信任的外部服务或系统的未经授权的访问权限,攻击者可以利用漏洞或错误配置。他们可以使用此访问权限来冒充合法用户或服务,以访问敏感数据或执行其他未经授权的操作。这不仅危及受信任实体的安全性,而且破坏了 Jupyter 环境中数据和操作的完整性。

对同一命名空间中另一个 Jupyter 用户 Pod 的未经授权的访问

在多个用户共享 Jupyter 部署的环境中(例如 Kubernetes 命名空间),攻击者会利用漏洞来获取对另一个用户 Pod 的未经授权的访问权限。这使他们能够执行任意代码,窃取数据或破坏其他用户的操作。此类违规行为会导致重大的安全事件,尤其是在数据隔离至关重要的多租户环境中。

通过远程 C&C 服务器进行控制和信标

攻击者可以建立一个命令和控制 (C&C) 服务器来远程控制受感染的 Jupyter 笔记本实例。通过这样做,他们可以在没有直接访问环境的情况下发出命令、窃取数据并执行其他恶意活动。这种类型的攻击可能特别隐蔽且持久,因为 C&C 服务器可以持续指示受感染的笔记本执行有害操作。

通过命名空间逃逸对另一个客户 Pod 的未经授权的访问

命名空间逃逸攻击发生在攻击者利用漏洞突破其隔离环境(命名空间)并访问其他客户的 Pod 时。这在多个客户共享相同底层基础设施的云环境中尤其令人担忧。此类攻击会导致未经授权的数据访问和系统操作,并可能危及整个基础设施的安全性。

通过恶意资源进行数据泄露

数据泄露涉及将数据从 Jupyter 笔记本环境未经授权地传输到外部位置。攻击者使用恶意笔记本或脚本读取敏感数据并将其发送到受控服务器。这种类型的攻击会导致重大数据泄露,暴露机密信息,并对受影响的组织造成财务和声誉损失。

供应链攻击

攻击者可以通过将恶意代码注入 Jupyter 笔记本环境中使用的受信任软件组件或库来破坏软件供应链。当这些组件集成时,恶意代码会执行,使攻击者能够破坏系统。这种类型的攻击可能特别阴险,因为它利用了对广泛使用的软件组件的固有信任。

对连接到远程外部受信任实体的 MITM 攻击

当攻击者拦截并可能更改 Jupyter 笔记本与远程受信任实体之间的通信时,就会发生中间人 (MITM) 攻击。这使攻击者能够窃听敏感信息、注入恶意数据并破坏通信的完整性。这种类型的攻击会损害数据交换的机密性和可靠性,从而导致重大的安全风险。

在同一个 K8s 集群中安全地管理多个 Jupyter 实例

为了演示这些威胁如何影响数据科学环境,我将使用一个示例部署场景并分享一些最佳实践。

首先,在 Kubernetes (K8s) 集群中为数据科学工作负载设置 Jupyter 笔记本实例。

K8s 设置: 部署使用具有三个节点的 Kubernetes 集群 Google Kubernetes Engine (GKE)。该集群使用常规通道提供的默认配置进行设置,并且使用 容器优化 操作系统映像来提高效率和性能。

Jupyter 笔记本设置: 在 Kubernetes 集群中创建了两个命名空间,每个命名空间都托管自己的 Jupyter 笔记本实例。当用户登录时,系统会动态地启动一个名为 Jupiter-<username> 的用户特定 Pod。这确保每个用户都有自己的隔离环境来运行他们的 Jupyter 笔记本,从而增强安全性并分配资源。

请遵循以下最佳实践,以在同一个集群中管理多个 Jupyter 实例:

  • 运行多个实例: 为了在同一个 Kubernetes 集群中运行多个 Jupyter 笔记本实例,请为每个实例创建单独的 Docker 映像。然后为这些实例设置 Kubernetes 部署和服务。
  • 命名空间隔离: 命名空间隔离用于确保每个 Jupyter 笔记本实例都在其自己的隔离环境中运行。这有助于防止不同用户或项目之间潜在的安全问题和资源冲突。
  • 安全措施: 实施安全措施涉及配置 Kubernetes 集群和 Jupyter 笔记本以最大程度地减少漏洞。这可能包括设置网络策略、基于角色的访问控制以及监控潜在威胁。
  • 资源分配: 正确的资源分配可确保每个 Jupyter 笔记本实例都能获得其所需的 CPU、内存和存储资源,而不会影响其他实例。这对于在多用户环境中保持性能和可靠性至关重要。
  • 威胁缓解策略: 制定了特定的策略来缓解诸如未经授权的访问、数据泄露和命令注入等威胁。这可能涉及使用安全配置、定期更新软件以及监控可疑活动。

使用零信任安全保护 Jupyter 笔记本

我们使用数字技术的方式正在快速变化,这使得旧的基于周边的网络安全防御措施变得无效。周边无法跟上数字变化的动态性质。只有 零信任安全 才能通过仔细检查和批准网络各个部分的访问请求来应对这些挑战。

最小权限原则确保没有用户或系统可以完全访问整个网络。每个访问请求都会根据用户身份、设备健康状况以及尝试访问的位置等因素进行持续检查。这减少了未经授权访问的可能性,并保护了重要的数据和系统。

如果发生安全漏洞,微分段至关重要。它将网络划分为更小的部分,阻止网络内的任何横向移动。这种遏制限制了黑客造成的损害。

使用零信任不仅可以提高安全性,还可以满足当今企业对灵活性和增长以及强大的数据保护的需求。通过使用这些策略,企业可以保护其数字资产免受新威胁,同时保持其运营安全高效。

零信任如何帮助保护 Jupyter 笔记本

全面的零信任 云原生应用程序保护平台 (CNAPP) 解决方案 通过以下功能提供卓越的保护和控制:

  • 细粒度控制: 实现对用户操作的精确管理,以有效降低安全事件的风险。
  • 实时保护: 持续监控系统活动,并通过主动安全措施及时处理任何未经授权的操作。
  • 用户友好型配置: 安全策略易于设置和调整,确保不同专业水平的用户都能使用。

零信任解决方案的关注点

如果您已决定使用零信任安全策略来保护组织数据,那么选择合适的服务提供商至关重要。

最重要的因素是服务提供商是否提供在线安全攻击后缓解

虽然攻击后缓解似乎提供了类似的安全级别,并且可能价格合理,但从长远来看,它可能会让您的企业付出更多代价。

攻击后缓解在利用后做出反应;一旦发生安全事故,它就会识别并阻止它。另一方面,在线安全或运行时安全在攻击发生之前应对潜在攻击。与攻击后缓解相比,它提供了一种更主动、更实时的威胁缓解方法。

以下是一些其他需要寻找的功能:

  • 用户执行控制: 限制用户将二进制文件执行到特定预定义路径的能力至关重要。此功能有助于防止对关键系统二进制文件的未经授权访问,并通过控制用户操作来增强整体系统安全性。
  • 路径限制: 定义明确的路径,例如/usr/local/bin/bin/,用于执行至关重要。控制二进制文件执行范围可最大程度地降低潜在漏洞的风险,并将用户限制在受信任的路径中,从而降低恶意活动的可能性。
  • 禁止新二进制文件: 实施规则以禁止在指定路径中创建新二进制文件是一项重要的安全措施。这通过控制二进制文件添加来降低引入未知可执行文件的风险并保护系统免受潜在威胁。
  • 执行规则的强制执行: 强大的安全提供商应识别并强制执行从基本路径执行二进制文件的规则。从路径(如/usr/local/bin/bin/)定义严格的二进制文件执行措施,可以显着增强系统的安全性。
  • 防止写入操作: 应用严格措施以防止对关键路径进行任何写入操作,从而确保系统完整性。这种方法符合零信任的原则,这对于维护安全环境至关重要。

结论

  • Jupyter Notebook 是使用最广泛的数据科学集成开发环境 (IDE),但它存在重大安全风险。组织必须了解这些漏洞才能有效地缓解威胁。
  • 零信任安全是保护 Jupyter Notebook 环境的最佳方法之一。通过验证每个访问请求并假设零信任,组织可以防止未经授权的访问和数据泄露。
  • 如果您决定与零信任服务提供商合作,请选择提供实时威胁缓解和在线安全措施的解决方案。

0 人点赞