别让黑客攻陷你的机器学习平台!ModelDB和MLflow机器学习安全漏洞分析

近日,ModelDB和MLflow分别爆出安全漏洞,如果成功利用漏洞,攻击者可以从系统中窃取机器学习模型等机密数据,甚至控制整个机器学习系统。

机器学习(ML)的应用在过去几年中呈指数级增长,被用于分析和解释数据的模式及结构,以实现无需人工交互即可完成学习、推理和决策等行为的目的。已经为人工智能诸多领域提供了支持,包括情感分析、图像分类、面部检测、威胁情报等。

随着越来越多的机器学习模型被开发,针对机器学习模型的网络攻击也层出不穷,更多涉及机器学习训练、部署、管理的组件被黑客关注,并爆出各种各样的漏洞和风险。

威胁的增加促使 OWASP 发布了机器学习Top10漏洞列表。其中ML05-2023 模型窃取排在了第五位。

01

ModelDB 安全漏洞(CVE-2023-6023)
 

漏洞描述

ModelDB是一个用于机器学习模型版本控制、元数据和实验管理的开源系统,可以对机器学习模型进行版本转换,包括它们的组成代码、数据、配置和环境,并在模型生命周期中跟踪ML元数据。
ModelDB 存在CVE-2023-6023安全漏洞,该漏洞源于artifact_path URL参数存在远程文件包含(LFI)漏洞。攻击者可利用该漏洞读取ModelDB服务器文件系统上的任何文件。

漏洞复现

靶场环境搭建:
漏洞POC:

漏洞成因

对artifact_path参数未进行进行校验。

▌影响范围

<= modeldb 2.0.4

▌塞讯验证规则

12月12日,针对该漏洞的攻击模拟已经加入到塞讯安全度量验证平台中,您可以在塞讯安全度量验证平台中搜索关键词“ModelDB”“CVE-2023-6023”获取相关攻击模拟验证动作,从而验证您的安全防御体系是否能够有效应对该漏洞,平台以业界独有方式确保您的验证过程安全无害。


02

MLflow 安全漏洞(CVE-2023-6015)

 

 

漏洞描述

MLflow是一个能够覆盖机器学习全流程生命周期(从数据准备到模型训练到最终部署)的开源机器学习平台,它提供了一组工具,可以帮助数据科学家和工程师跟踪实验、重现结果、部署模型并共享代码。MLflow 是由 Databricks 公司开发并开源的,目前已经成为机器学习领域中最受欢迎的平台之一。
MLflow 存在CVE-2023-6015安全漏洞,该漏洞源于允许攻击者通过路径遍历访问操作系统中的任意文件。

▌渗透(绕过)思路

  • 如果不清楚在 Windows 上以 C: 开头的路径,一般情况下 Windows 上路径以 C: 开头,可以删除开头删除驱动器号和冒号。

  • 例如,将路径 C:../.ssh/id_rsa 将转换为 ../.ssh/id_rsa。这样我们就可以突破根目录直至第一层。

  • 到达根 mlflow 目录的一个最好的办法是 /api/2.0/mlflow-artifacts/artifacts 路径。

  • 我们假设目录根是 C://Users/User/mlflowui,那么查询路径 /api/2.0/mlflow-artifacts/artifacts 允许我们到达根 C://Users/User/mlflowui 目录并从 C://Users/User 获取文件,其中可以包含 SSH 密钥。

▌攻击流程

攻击生成的文件会存储在 C://Users/test/.ssh/id_rsa
  1. Add secret text into C://Users/test/.ssh/id_rsa

  2. 创建mlfloui文件夹,从.当前目录下运行mlflow

  3. 运行 mlflow uiin C://Users/test/mlflowui

  4. 写入 内容 curl命令

    curl -X PUT –data-binary test “http://127.0.0.1:5000/api/2.0/mlflow-artifacts/artifacts/C:../.ssh/id_rsa”

  5. 读取内容curl命令

    curl -vv “http://127.0.0.1:5000/api/2.0/mlflow-artifacts/artifacts/C:../.ssh/id_rsa”

▌漏洞修复

升级版本至 mlflow – 2.8.1

▌漏洞PoC

使用PUT进行发包,成功写入文件
docker文件中成功创建文件id_rsa
配合读取漏洞,正确读取到PUT写入的文件。

▌塞讯验证规则

12月12日,针对该漏洞的攻击模拟已经加入到塞讯安全度量验证平台中,您可以在塞讯安全度量验证平台中搜索关键词“MLflow”“CVE-2023-6015”获取相关攻击模拟验证动作,从而验证您的安全防御体系是否能够有效应对该漏洞,平台以业界独有方式确保您的验证过程安全无害。