当前位置: 首页 > article >正文

Azure Airflow 中配置错误可能会使整个集群受到攻击

图片

网络安全研究人员在 Microsoft 的 Azure 数据工厂 Apache Airflow 中发现了三个安全漏洞,如果成功利用这些漏洞,攻击者可能会获得执行各种隐蔽操作的能力,包括数据泄露和恶意软件部署。

“利用这些漏洞可能允许攻击者以影子管理员的身份获得对整个 Airflow Azure Kubernetes 服务 (AKS) 集群的持久访问权限,”Palo Alto Networks Unit 42 在本月早些时候发布的分析中表示。这些漏洞如下:

  • Airflow 集群中的 Kubernetes RBAC 配置错误

  • Azure 内部 Geneva 服务的机密处理配置错误

  • Geneva 的弱身份验证

除了获得未经授权的访问外,攻击者还可以利用 Geneva 服务中的缺陷来篡改日志数据或发送虚假日志,以避免在创建新的 Pod 或账户时引起怀疑。

初始访问技术包括创建一个有向无环图(DAG)文件,并将其上传到连接到 Airflow 集群的私有 GitHub 存储库中,或者修改现有的 DAG 文件。最终目标是在导入后立即向外部服务器反弹 shell。

要实现此目的,攻击者必须首先通过使用遭到入侵的服务主体或文件的共享访问签名 (SAS) 令牌来获得对包含 DAG 文件的存储账户的写入权限。或者,他们可以使用泄露的凭据进入 Git 仓库。

尽管发现以这种方式获得的 shell 在 Kubernetes Pod 中的 Airflow 用户上下文中以最低权限运行,但进一步分析确定了一个具有 cluster-admin 权限的服务账户连接到 Airflow 运行程序 Pod。

这种错误配置,再加上可以Pod访问互联网,攻击者可以下载 Kubernetes 命令行工具 kubectl,并最终通过“部署特权 Pod 并突破到底层节点”来完全控制整个集群。

图片

然后,攻击者可以利用对主机虚拟机 (VM) 的 root 访问权限进一步深入云环境,未经授权访问 Azure 管理的内部资源,包括 Geneva,其中一些资源授予了对存储账户和事件中心的写入权限。

“这意味着老练的攻击者可以修改易受攻击的 Airflow 环境,”安全研究人员 Ofir Balassiano 和 David Orlovsky 说。“例如,攻击者可以创建新的 Pod 和新的service 账户。他们还可以将更改应用于集群节点本身,然后将虚假日志发送到 Geneva,而不会发出警报。

“这个问题凸显了谨慎管理服务权限以防止未经授权的访问的重要性。它还强调了监控关键第三方服务运营以防止此类问题的重要性。

此次披露正值 Datadog 安全实验室详细介绍了 Azure Key Vault 中的权限提升方案,该方案可能允许具有 Key Vault 参与者角色的用户读取或修改 Key Vault 内容,例如 API 密钥、密码、身份验证证书和 Azure 存储 SAS 令牌。

此问题在于,虽然具有 Key Vault 参与者角色的用户无法通过配置了访问策略的 Key Vault 直接访问 Key Vault 数据,但发现该角色确实具有将自身添加到 Key Vault 访问策略和访问 Key Vault 数据的权限,从而有效地绕过了限制。

“策略更新可能包含列出、查看、更新和通常管理密钥仓库内数据的能力,”安全研究员 Katie Knowles 说。“这造成了这样一种情况:具有 Key Vault 参与者角色的用户可以访问所有 Key Vault 数据,尽管没有 [RBAC] 权限来管理权限或查看数据。”

随后,Microsoft 更新了其文档以强调访问策略风险,并指出:“为了防止未经授权访问密钥保管库、密钥、secret和证书,必须在访问策略权限模型下限制参与者角色对密钥保管库的访问。


http://www.kler.cn/a/464641.html

相关文章:

  • Elasticsearch:减少 Elastic 容器镜像中的 CVE(常见的漏洞和暴露)
  • python3GUI--智慧交通监控与管理系统 By:PyQt5
  • 基于Spring Boot的IT技术交流和分享平台的设计与实现源码
  • Lianwei 安全周报|2025.1.2
  • 逻辑推理算法
  • 多文件比对
  • NextCloud服务安装与配置教程
  • 课程思政元素收集系统|Java|SSM|JSP|
  • Lianwei 安全周报|2025.1.2
  • Junit4单元测试快速上手
  • docker 更换存储路径
  • 【K8S问题系列 | 21 】K8S中如果PV处于Bound状态,如何删除?【已解决】
  • 应用架构模式-总体思路
  • dash中update_yaxes函数怎样控制yaxis2
  • 基于 element-plus 的表格组件二次封装:思路与使用指南
  • HTML——52.布局淘宝网
  • DVWA靶场Brute Force (暴力破解) 漏洞low(低),medium(中等),high(高),impossible(不可能的)所有级别通关教程
  • LeetCode算法题——螺旋矩阵ll
  • 35.回车触发事件 C#例子 WPF例子
  • 可由 (5V) 单片机直接驱动的模块
  • Datawhale AI冬令营(第二期)动手学AI Agent--Task3:学Agent工作流搭建,创作进阶Agent
  • 访谈分析方法
  • DRAM 的类型
  • 【大模型系列】Mobile-Agent(2024.04)
  • 【Devops】什么是Devops?(Development+Operations)和运维的区别?
  • Java-多种方法实现多线程计数