机器学习(ML)的应用在过去几年中呈指数级增长,被用于分析和解释数据的模式及结构,以实现无需人工交互即可完成学习、推理和决策等行为的目的。已经为人工智能诸多领域提供了支持,包括情感分析、图像分类、面部检测、威胁情报等。
随着越来越多的机器学习模型被开发,针对机器学习模型的网络攻击也层出不穷,更多涉及机器学习训练、部署、管理的组件被黑客关注,并爆出各种各样的漏洞和风险。
01
—
▌漏洞描述
▌漏洞复现
靶场环境搭建:
- modeldb:https://github.com/VertaAI/modeldb
-
直接使用docker启动,docker-compose -f docker-compose-all.yaml up
漏洞POC:
▌漏洞成因
对artifact_path参数未进行进行校验。
▌影响范围
<= modeldb 2.0.4
▌塞讯验证规则
02 —
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 密钥。
▌攻击流程
-
Add secret text into C://Users/test/.ssh/id_rsa
-
创建mlfloui文件夹,从.当前目录下运行mlflow
-
运行 mlflow uiin C://Users/test/mlflowui
-
写入 内容 curl命令
curl -X PUT –data-binary test “http://127.0.0.1:5000/api/2.0/mlflow-artifacts/artifacts/C:../.ssh/id_rsa”
-
读取内容curl命令
curl -vv “http://127.0.0.1:5000/api/2.0/mlflow-artifacts/artifacts/C:../.ssh/id_rsa”
▌漏洞修复
▌漏洞PoC
▌塞讯验证规则