由于受检测限制,全文无法在公众号发布,可在文末链接处免费下载阅读
目录
0 前言2
1 概述2
2 Ollama是什么?3
2.1 Ollama远程调用3
2.2 Ollama远程调用的目的4
2.3 Ollama远程调用风险5
3 CNNVD-202503-081基础解读7
3.1 敏感模型资产窃取7
3.1.1. 模型窃取攻击7
3.1.2. 提示注入攻击(Prompt Injection Attacks)11
3.1.3. 数据投毒攻击(Data Poisoning Attacks)(CVE-2024-39720)16
3.1.4. 对抗攻击18
3.1.5. 框架软件漏洞23
3.2 虚假信息投喂24
3.2.1 概述24
3.2.2. 攻击方式25
3.3.3. 漏洞实例25
3.3.4. 防御措施26
3.3.5 CVE列表26
3.3 模型计算资源滥用与拒绝服务27
3.4 系统配置篡改29
3.5 扩大利用31
3.5.1 配置漏洞:一个默认的疏忽,足以毁掉整个系统32
3.5.2 模型诱导:几句话就能让模型崩溃32
3.5.3 数据投毒:让模型自己变成敌人32
3.5.4 信任与依赖:技术生态的脆弱性33
3.5.5 解决的出路:技术、治理与信任缺一不可33
3.5.6 大模型扩大利用漏洞的利用手段及途径34
附录1 Ollama远程调用API/show端口示例38
附录2 越狱攻击39
一、越狱攻击的定义与核心原理40
二、主要攻击类型与典型案例40
三、攻击技术的演进趋势41
四、防御措施与挑战41
五、总结与展望42
尾注43
0 前言
本文为非官方不专业文稿,仅作为个人学习大模型安全中的笔记,全文均由kimi与DeepSeek搜集整理而成,因笔者不关注大模型技术,仅为了解大模型安全现状,结合国家信息安全漏洞库发布的CNNVD-202503-081漏洞进行深度学习过程中形成本文。
本文中多枚举的所有可以利用漏洞及相关描述仅作为参考,请勿用于非法用途,本文及作者不承担后续相关法律责任。请读者勿对本文过度解读,可作为大模型安全科普读物进行阅读和学习。
1 概述
2025年03月03日国家信息安全漏洞库(CNNVD) 发布Ollama 安全漏洞(CNNVD-202503-081)情况的报告 。未经授权的攻击者可在远程条件下调用Ollama服务接口,执行包括但不限于敏感模型资产窃取、虚假信息投喂、模型计算资源滥用和拒绝服务、系统配置篡改和扩大利用等恶意操作。Ollama所有版本均受此漏洞影响。目前,Ollama暂未发布修复措施,但可以参考临时修复办法缓解漏洞带来的危害。
Ollama是一个本地私有化部署大语言模型(LLM,如DeepSeek等)的运行环境和平台,简化了大语言模型在本地的部署、运行和管理过程,具有简化部署、轻量级可扩展、API支持、跨平台等特点,在AI领域得到了较为广泛的应用。Ollama存在安全漏洞,该漏洞源于默认未设置身份验证和访问控制功能,未经授权的攻击者可在远程条件下调用Ollama服务接口,执行包括但不限于敏感模型资产窃取、虚假信息投喂、模型计算资源滥用和拒绝服务、系统配置篡改和扩大利用等恶意操作。影响Ollama所有版本均受此漏洞影响。
由于目前,Ollama官方暂未发布修复措施,国家信息安全漏洞库建议参考临时修复办法缓解漏洞带来的危害。并提供官方临时修复办法链接:https://github.com/ollama/ollama/blob/main/docs/faq.md
2 Ollama是什么?
“Ollama”是一个开源的大型语言模型(LLM)平台,旨在让用户能够轻松地在本地运行、管理和与大型语言模型进行交互。它提供了简单的方式来加载和使用各种预训练的语言模型,支持文本生成、翻译、代码编写、问答等多种自然语言处理任务。Ollama的特点在于它不仅提供了现成的模型和工具集,还提供了方便的界面和API,使得从文本生成、对话系统到语义分析等任务都能快速实现。与其他NLP框架不同,Ollama旨在简化用户的工作流程,使得机器学习不再是只有深度技术背景的开发者才能触及的领域。
Ollama支持多种硬件加速选项,包括纯CPU推理和各类底层计算架构(如Apple Silicon),能够更好地利用不同类型的硬件资源。它支持在多个操作系统上运行,包括Windows、macOS和Linux,这样无论是开发者在本地环境调试,还是企业在生产环境部署,都能得到一致的体验。Ollama是一个开源项目,这意味着开发者可以查看源代码,进行修改和优化,也可以参与到项目的贡献中。此外,Ollama有一个活跃的社区 ,开发者可以从中获取帮助并与其他人交流经验。
2.1 Ollama远程调用
远程调用 Ollama 服务接口,指的是在远程环境下,通过网络请求的方式,利用 Ollama 提供的 API 接口来访问和使用已部署的大模型。具体配置步骤为:
修改监听地址 :通过设置环境变量 OLLAMA_HOST,使 Ollama 监听所有网络接口,而非仅本地。例如,在 Windows 系统中,可使用命令setx OLLAMA_HOST "0.0.0.0:11434"进行设置;在Linux/macOS系统中,可使用命令export OLLAMA_HOST=0.0.0.0:11434。
允许跨域访问 :设置 OLLAMA_ORIGINS 为 *,以避免浏览器跨域限制。在 Windows 系统中,使用命令setx OLLAMA_ORIGINS "*";在 Linux/macOS 系统中,使用命令export OLLAMA_ORIGINS=*。
防火墙开放端口 :Ollama 默认使用 11434 端口,需在防火墙中放行。如在 Windows 系统中,可使用命令netsh advfirewall firewall add rule name="Ollama" dir=in action=allow protocol=TCP localport=11434;在 Linux 系统中,可使用命令sudo ufw allow 11434/tcp。
远程调用可以通过命令和编程语言调用两种模式进行
1.使用 curl 命令 :在远程设备上,通过 curl 命令向 Ollama 服务发送请求。例如,curl http://[服务器IP]:11434/api/generate -d '{"model": "qwen2.5:7b-instruct","prompt": "what can you do?","stream":false}',即可获取模型生成的文本。
2.通过编程语言调用 :如使用 Python 的 OpenAI 库,可创建一个 OpenAI 客户端对象,并指定base_url为 Ollama 服务的地址,api_key为ollama,然后通过该客户端调用模型进行对话等操作。
2.2 Ollama远程调用的目的
Ollama远程调用的目的主要包括以下几个方面:
1.多设备协作与资源共享
a)不同设备间共享模型服务:通过远程调用,用户可以在局域网内的手机、平板、其他电脑等设备上共享本地运行的AI模型服务。
b)充分利用硬件资源:远程调用使用户能够根据设备的硬件能力合理分配任务,充分发挥各设备的计算潜力。
2.功能扩展与集成
a)与其他应用或服务集成:远程调用允许开发者将Ollama与其他应用程序或服务集成,从而扩展其功能。例如,可以将Ollama集成到聊天机器人、智能客服系统等应用中,实现更智能的对话交互。
b)实现更复杂的应用场景:通过远程调用,开发者可以结合多个模型或服务,实现更复杂的应用场景。例如,在一个自然语言处理项目中,可以同时调用Ollama的文本生成模型和情感分析模型,为用户提供更全面的文本分析服务。
3.解决数据隐私与安全
a)本地数据处理:远程调用使用户能够在本地网络内使用模型,避免了数据上传到云端可能带来的隐私风险。
b)控制数据流向:用户可以通过配置远程调用的权限和限制,更好地控制数据的流向和访问。
4.提高效率与降低成本
a)减少重复部署:通过远程调用,用户可以在一个设备上部署模型,并供其他设备使用,减少了在多个设备上重复部署模型的工作量。
b)节省硬件成本:用户无需为每个设备都配备强大的计算硬件,只需在一台性能较好的设备上部署模型,其他设备通过远程调用即可使用。
2.3 Ollama远程调用风险
大模型的远程调用 Ollama 服务接口会存在以下风险:
未授权访问风险 :Ollama 默认未设置身份验证和访问控制功能,攻击者可在远程条件下调用 Ollama 服务接口,执行敏感资产获取、虚假信息投喂、拒绝服务等恶意操作。
直接访问高危接口:由于 Ollama 默认未设置身份验证和访问控制功能,攻击者可以直接访问 Ollama 的高危接口,如模型管理接口(拉取 / 删除模型文件)、模型推理接口(执行任意 Prompt 指令)、系统配置接口(篡改服务参数)等,从而窃取敏感业务数据或滥用模型推理资源。
获取模型信息:通过特定接口,如 /api/show 接口,攻击者能够获取模型的 license等敏感信息,以及其他接口获取已部署模型的相关敏感数据信息。
数据泄露风险 :攻击者可通过特定接口访问并提取模型数据,引发数据泄露风险,如通过 /api/show 接口,攻击者能够获取模型的 license 等敏感信息,以及其他接口获取已部署模型的相关敏感数据信息。
未授权访问导致接口暴露:Ollama默认启动的Web服务会开放11434端口,且无任何鉴权机制,攻击者可直接通过公网访问该端口,调用模型服务接口,获取模型信息或执行恶意操作146。例如:攻击者无需认证即可通过/api/show接口获取模型的许可证(license)、配置参数等敏感信息。
历史漏洞的利用:Ollama框架存在多个历史漏洞(如CVE-2024-39720/39722/39719/39721),攻击者可利用这些漏洞发起数据投毒、参数窃取或恶意文件上传,进一步窃取模型核心数据或破坏算法完整性。
接口滥用引发数据窃取:通过/api/pull或/api/push等接口,攻击者可能远程下载或上传模型文件,窃取私有化部署的模型权重或训练数据。特定接口(如/api/chat)若未限制调用频率,可能被用于DDoS攻击,间接导致服务中断或数据泄露。
资源滥用风险 :攻击者可远程访问 Ollama 服务接口,调用私域大模型计算资源,窃取知识库、投喂虚假甚至有害信息等,导致计算资源被盗用,电力成本增加,设备损耗加速,带宽资源消耗。
系统配置篡改风险 :攻击者可能通过未授权访问篡改 Ollama 服务参数,影响系统配置。
远程代码执行风险 :在 Ollama 0.1.34 之前的版本中存在远程代码执行漏洞(CVE-2024-37032),攻击者无需身份验证即可通过接口操控服务器,实现任意代码执行。
数据保护规定风险 :企业使用 Ollama 部署大模型时,若出现数据泄露等问题,可能违反数据保护规定,面临法律责任。
服务级别协议风险 :计算资源管理失控,可能违反服务级别协议,影响企业与客户之间的信任关系。
原文始发于微信公众号(老烦的草根安全观):Ollama 安全漏洞(CNNVD-202503-081)解析灰皮书
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论