
微软基于Azure的数据集成服务Azure Data Factory在利用开源工作流编排平台Apache Airflow时发现的三个漏洞,可能使攻击者获得公司Azure云基础设施的管理员控制权,从而导致数据泄露、恶意软件部署和未经授权的数据访问。
Palo Alto Networks的Unit 42研究人员发现了这些漏洞——其中两个是配置错误,第三个涉及弱认证——都与Azure Data Factory的Apache Airflow集成相关。
尽管微软将这些漏洞归类为低危漏洞,Unit 42的研究人员发现,成功利用这些漏洞可能使攻击者获得持续的“影子管理员”访问权限,控制整个Airflow Azure Kubernetes Service(AKS)集群。他们在12月17日发布的博客中揭示了这一点。
具体来说,Data Factory中的漏洞包括:Airflow集群中的Kubernetes基于角色的访问控制(RBAC)配置错误;Azure内部Geneva服务的密钥处理不当,Geneva负责管理关键日志和指标;以及Geneva的弱认证。
未经授权的Azure云访问已被缓解
研究人员解释道,Airflow实例使用默认的、不可更改的配置,再加上集群管理员角色附加到Airflow运行程序上,“造成了一个安全问题”,攻击者可利用该问题“控制Airflow集群和相关基础设施”。
如果攻击者能够突破集群,他们还可以操纵Geneva,允许攻击者“篡改日志数据或访问其他敏感的Azure资源”,Unit 42的AI和安全研究经理Ofir Balassiano与高级安全研究员David Orlovsky在博客中写道。
总体而言,这些漏洞凸显了在云环境中管理服务权限和监控关键第三方服务操作的重要性,以防止未经授权访问集群。
Unit 42已将这些漏洞报告给微软Azure,最终微软安全响应中心解决了这些问题。研究人员未具体说明如何修复这些漏洞,微软也未立即回应评论请求。
网络攻击者如何获得初始管理员访问权限
一个初步的攻击场景是攻击者能够获得未经授权的写入权限,从而篡改Apache Airflow使用的有向无环图(DAG)文件。DAG文件以Python代码定义工作流结构;它们指定任务的执行顺序、任务之间的依赖关系和调度规则。
攻击者有两种方式可以访问并篡改DAG文件。首先,他们可以通过利用具有写入权限的主账户获得包含DAG文件的存储帐户的写入权限;或者他们可以使用共享访问签名(SAS)令牌,该令牌授予对DAG文件的临时且有限的访问权限。
在这种情况下,一旦DAG文件被篡改,“它会处于休眠状态,直到DAG文件被受害者导入”,研究人员解释道。
第二种方法是通过泄露的凭证或配置错误的代码库获得对Git仓库的访问权限。一旦发生这种情况,攻击者可以创建恶意的DAG文件或修改现有文件,并且包含恶意DAG文件的目录会被自动导入。
在他们的攻击流程中,Unit 42研究人员使用了Git仓库泄露凭证的场景来访问DAG文件。“在这种情况下,一旦攻击者篡改了被破坏的DAG文件,Airflow就会执行它,攻击者获得一个反向Shell,”他们在博客中解释道。
因此,基本的利用流程是:攻击者首先制作一个DAG文件,打开到远程服务器的反向Shell,并在导入时自动运行。恶意DAG文件随后被上传到与Airflow集群连接的私有GitHub仓库。
“Airflow会自动从连接的Git仓库导入并运行DAG文件,在Airflow工作节点上打开反向Shell,”研究人员解释道。“此时,我们通过与Airflow工作节点关联的Kubernetes服务账户获得了集群管理员权限。”
接下来,攻击者可以通过这种方式控制集群;使用影子管理员权限创建影子工作负载来进行加密货币挖矿或运行其他恶意软件;从企业云中窃取数据;并利用Geneva访问其他Azure端点以进行进一步的恶意活动,研究人员写道。
云安全应超越集群范围
云端攻击通常从攻击者利用本地配置错误开始,而此次攻击流程再次突显了如何通过攻击单个节点或集群的漏洞,暴露整个云环境的风险。
这一场景证明了不仅要确保云集群的边界安全,还需要采取更加全面的云安全策略,考虑到攻击者突破边界后可能发生的后果,Unit 42表示。
这一策略应包括“在环境内部确保权限和配置安全,并使用策略和审计引擎帮助检测和防止未来在集群内和云中发生的事件,”研究人员写道。
企业还应保护与云中不同服务交互的敏感数据资产,了解哪些数据正在与哪些数据服务一起处理。他们补充道,这将确保在确保云安全时考虑到服务依赖关系。











