免责声明:本公众号 太乙Sec实验室 所提供的实验环境均是本地搭建,仅限于网络安全研究与学习。旨在为安全爱好者提供技术交流。任何个人或组织因传播、利用本公众号所提供的信息而进行的操作,所导致的直接或间接后果及损失,均由使用者本人负责。太乙Sec实验室及作者对此不承担任何责任
近期大量Ollama模型服务器裸奔、云端部署的Ollama模型网络安全何解?
主机 |
IP |
账号 |
|
云主机 |
xxx |
查看FOFA资产Ollama部署在公网的情况
根据互联网上披露,2024 年 6 月 24 日, CVE-2024-37032 Ollama 目录遍历致代码执行漏洞。由于通常情况下 Ollama 没有认证授权,攻击者可利用相关 API 结合目录遍历漏洞造成远程代码执行,控制服务器。
漏洞影响
Ollama < 0.1.34
看到返回对应的版本号,就说明上面的漏洞太老了。
ollama -v //0.5.7
// 搭建平台
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:0.1.33
import requests
# 设定目标服务器的主机名
HOST = "dev-1.lan.bi0x.com"
# 组合出目标服务器的完整 URL,包含协议和端口号
target_url = f"http://{HOST}:11434"
pull_url = f"{target_url}/api/pull"
push_url = f"{target_url}/api/push"
requests.post(pull_url, json={"name": vuln_registry_url, "insecure": True})
requests.post(push_url, json={"name": vuln_registry_url, "insecure": True})
/by 腾讯朱雀实验室
下载地址:https://github.com/Tencent/AI-Infra-Guard/releases
用法
本地扫描
./ai-infra-guard-localscan
单一目标
./ai-infra-guard-target [IP/Domain]
多个目标
./ai-infra-guard-target [IP/Domain] -target [IP/Domain]
从文件读取
./ai-infra-guard-file target.txt
人工智能分析
./ai-infra-guard-target [IP/Domain] -ai -token [Hunyuan token]
./ai-infra-guard-target http://:11434//扫描服务器
可以让Nginx 通过配置域名、https、反向代理、 IP 白名单,可以限制只有特定 IP 地址的客户端才能访问 Ollama 服务。
# Nginx反向代理配置
location /api/ {
auth_request /auth; # 对/api/路径下的请求进行身份验证,将请求转发到/auth路径进行处理
proxy_pass http://ollama-backend; # 将经过身份验证的请求转发到Ollama后端服务
}
location = /auth {
internal; # 该路径只能被Nginx内部调用,不允许外部直接访问
proxy_pass https://keycloak/auth/realms/ollama/protocol/openid-connect/token/introspect; # 将身份验证请求转发到Keycloak的令牌验证端点
proxy_pass_request_body off; # 不转发请求体
proxy_set_header Content-Length ""; # 清空Content-Length请求头
proxy_set_header X-Original-URI $request_uri; # 设置X-Original-URI请求头,记录原始请求的URI
}
//定义 IP 白名单
http {
# 定义 IP 白名单
geo $allow_ip {
default 0;
192.168.1.0/241;
10.0.0.0/81;
}
server {
listen 80;
server_name your_domain.com;
location / {
if ($allow_ip = 0) {
return403;
}
proxy_pass http://backend_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
}
// 配置 SSL 证书和密钥
server {
listen 443 ssl;
server_name your_domain.com;
# 配置 SSL 证书和密钥路径
ssl_certificate /path/to/your_domain.com.crt;
ssl_certificate_key /path/to/your_domain.com.key;
# 配置 SSL 协议和密码套件,使用较安全的组合
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
location / {
if ($allow_ip = 0) {
return 403; # 如果不在 IP 白名单内,返回 403 禁止访问
}
proxy_pass http://backend_server;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
往期精彩回顾
零基础:从本地部署到云端上线,打造你的DeepSeek网络安全专家
关注我,了解更多知识,别忘了关注+点赞哦!
原文始发于微信公众号(太乙Sec实验室):深度修复 DeepSeek 云端部署潜在威胁漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论