跳到正文
原文
arXiv:越狱、提示注入、投毒与防御· arXiv:2609.29757· Karina Elzer·本站收录· 原文发表

OllamaDrama:用蜜罐测量暴露 LLM 基础设施遭受的攻击

OllamaDrama: Designing and Deploying a Honeypot to Measure Attacks on Exposed LLM Infrastructure

论文速读

分析与理论

据论文 PDF 整理(AI 生成),以原文为准

作者部署 Ollama 蜜罐 Ollure,84 天、4 个实例记录 290,887 次交互,多数为侦察,同时见到基础设施与 LLM 层利用尝试。

问题
公开暴露的自托管 LLM 基础设施攻击面在扩大,但真实世界如何被瞄准仍不清楚。Ollama 等服务常无默认认证,并存在路径穿越与 SSRF 等已知问题。
方法
Ollure 用 Python 与 FastAPI 模拟 Ollama API,不挂后端 LLM。低交互只返回静态结构;中交互加入会话跟踪、动态模型列表,以及词典和正则回复。四实例部署于云与校园网络。
实验与结果
84 天记录 290,887 次交互、2,793 个源 IP。79.36% 打在模型与服务信息端点。作者还记录模型管理滥用、路径穿越与 SSRF、挖矿向 RCE、资源耗尽、提示注入和智能体工具调用;MITRE ATLAS 中未见权限提升与横向移动。
局限与可以继续做的
作者称后续将扩展到更多 LLM 框架与智能体架构,并在更多样网络上做更长部署。测量覆盖 4 个实例、84 天;蜜罐无后端模型,训练时攻击、间接提示注入和把基础设施当下游代理均未观察到。
实验设置Ollure(LIH/MIH)、DigitalOcean Frankfurt 等 · 交互次数、唯一源 IP 数 等
基准
Ollure(LIH/MIH)DigitalOcean Frankfurt大学网络Ollama API 端口 11434
指标
交互次数唯一源 IP 数IP 回访率端点命中数提示词类别计数
AI 导读研究者设计并部署了 Ollure 蜜罐,模拟 Ollama API 但不接入后端 LLM,在云和大学网络共四处部署运行 84 天,记录到来自 2,793 个独立源 IP 的 290,887 次交互。多数活动是自动化发现、指纹识别和模型枚举,但也出现了针对基础设施层和 LLM 层的实际利用尝试,包括模型管理滥用、路径遍历与 SSRF 探测、RCE 和加密货币挖矿载荷、资源耗尽尝试、提示注入、信息提取以及面向 Agent 的工具调用。论文称这些结果提供了暴露的自托管 LLM 服务在真实世界所受威胁的经验性观察。

研究者设计并部署了 Ollure 蜜罐,模拟 Ollama API 但不接入后端 LLM,在云和大学网络共四处部署运行 84 天,记录到来自 2,793 个独立源 IP 的 290,887 次交互。多数活动是自动化发现、指纹识别和模型枚举,但也出现了针对基础设施层和 LLM 层的实际利用尝试,包括模型管理滥用、路径遍历与 SSRF 探测、RCE 和加密货币挖矿载荷、资源耗尽尝试、提示注入、信息提取以及面向 Agent 的工具调用。论文称这些结果提供了暴露的自托管 LLM 服务在真实世界所受威胁的经验性观察。

深度解读

6个问题,点开问题读完整回答

  1. 这篇论文试图解决什么问题?

    用无后端 LLM 的 Ollama 蜜罐,测量暴露自托管 LLM 服务上的真实攻击。

    公开暴露的自托管 LLM 基础设施如何被瞄准,真实攻击的兴趣程度与手法仍缺少实证测量。

    • 场景:作者称,降本、隐私与控制推动开源模型及 Ollama 等网关普及,实例可能被无意暴露。Shodan 显示近 2 万个公开 Ollama 实例 [21];Xu et al. [25] 在 362 天内累计观察到 152,137 个 Ollama 端点。这些端点可能缺少原生认证,并受 SSRF [16]、缺少认证 [15]、路径穿越 [14] 影响,后果包括敏感数据泄露、未授权资源消耗乃至主机被攻陷。
    • 现有不足:作者称,网络欺骗与 LLM 交叉文献主要是用 LLM 增强诱饵 [3],或欺骗攻击 LLM 的一方 [2]。行业报告已见针对暴露 LLM 基础设施的自动化侦察与指纹识别 [5],但学术上的 LLM 蜜罐与基于蜜罐的实证测量才刚出现。最近的 HIVE-AI [26] 侧重加固的多阶段威胁狩猎流水线,其单点、20 天部署主要用于验证防御流水线,详细攻击映射仍未做。
    • 核心观察:任何与无正当业务用途的诱饵的交互本身都可疑。Ollama 默认无认证,可在不挂真实模型的情况下模拟 API,从而同时拦住基础设施层与 LLM 交互层的请求。
    • 本文提出:低交互与中交互蜜罐 Ollure,模拟 Ollama API 且无后端 LLM。作者在云与大学网络共四个观测点部署 84 天,分析交互流量与攻击尝试,并计划公开代码与伪匿名数据集。
  2. 有哪些相关研究?

    相关工作分欺骗蜜罐、LLM 与 Ollama、AI 安全分类,以及刚出现的 LLM API 蜜罐。

    网络欺骗与蜜罐

    • 蜜罐交互等级 [13]:按功能复杂度分为低交互(基本服务骨架)、中交互(部分功能)和高交互(完整系统)。
    • 用 LLM 增强诱饵 [3]:近年把 LLM 用于提高蜜罐交互性并扩大自动化防御,而不是把 LLM 基础设施本身当目标。

    LLM、Ollama 与安全分类

    • 开源权重与消融拒答:作者讨论开源权重模型可修改内部权重以抑制拒答、同时保留核心能力,即 abliterated models [1];Ollama [18] 在端口 11434 提供自有端点及 OpenAI 兼容的 /v1/ 格式 [17]。
    • MITRE ATLAS [12]:把针对 AI 系统的行为整理为侦察、资源开发、AI Attack Adaptation、初始访问、AI Model Access、执行、持久化、权限提升、防御规避、凭据访问、发现、横向移动、收集、命令与控制、渗出和影响等战术。
    • OWASP 与智能体分类:OWASP GenAI LLM Top 10 2026 [19] 把提示注入、敏感信息泄露和过度代理列为关键风险。Tamuka et al. [24] 把针对基于 LLM 的智能体的攻击分成五类:提示级注入与指令劫持、恶意输出与动作诱导、信息泄露、资源耗尽、对抗性输入变换。

    LLM API 蜜罐与 Web API 蜜罐

    • HIVE-AI [26]:覆盖 OpenAI、Anthropic Claude、Ollama、HuggingFace Inference 和 ClawBot 五个门面,并带基于 LLM 的分析流水线。作者称其架构虽有五个接口,重点在下游分析流水线及抵御间接提示注入,而不是蜜罐实现本身;20 天、单点收集 16,682 条攻击请求、1,229 个唯一 IP,用于验证防御流水线,而不是宽口径被动测量。
    • 传统与 LLM 生成式 Web API 蜜罐:ApiPot [22] 用基本 JSON 捕获 HTTP 头和载荷以引诱授权尝试;Leaden et al. [10] 的低交互 REST 蜜罐只返回 404。Galah [7]、Hoang et al. [6] 和 DecoyPot [20] 用 LLM 或 RAG 为通用 Web 或 API 合成 HTTP 响应。作者称这些系统面向固定系统或通用流量,不覆盖专用 LLM API 的请求/响应结构。

    基线与数据

    • 对比对象:论文未设攻击成功率类基线方法。测量对照主要是 HIVE-AI 的部署规模,以及本文自己的 LIH 与 MIH、云与校园四个实例。流量按 Ollama 端点记录,模型名与提示词用正则和人工归类(Table 2–4)。

    作者把本文定位为专门模拟 Ollama 生态、支持多级交互,并在两个网络、四个观测点上做更长的被动测量和攻击实证分析;目标是补上“显式模仿 LLM API”的蜜罐空白。

  3. 论文如何解决这个问题?

    Ollure 无后端模型,低交互给静态骨架,中交互用会话、动态列表和正则回复。

    Ollure 用 Python 与 FastAPI 模拟 Ollama REST API,不挂后端 LLM 或执行引擎,以便在基础设施层和 LLM 交互层截获请求,并避免高资源开销与宿主机被攻陷。

    问题设定与交互等级

    • 部署面:两个变体都在标准端口 11434 上开放全部端点,不设认证,对应作者所引的缺少默认认证(CVE-2025-63389 [15])。
    • 低交互(LIH):只提供端点骨架、正确响应结构、错误信息和静态内容。模型列表固定(文中举例 llama3.1:70b、qwen3.6:35b、mistral:7b),管理请求返回静态响应且不改状态,推理请求同样静态,且不使用先前调用的上下文。
    • 中交互(MIH):在 LIH 上增加会话跟踪,以及对模型管理和推理的更灵活响应。Figure 1 把可观察攻击分成 AI 基础设施攻击和 LLM 特定攻击两类,蓝色标出 MIH 增补组件。

    时延与会话

    • 人工时延:因 FastAPI 快于部分 Ollama 响应,作者对每个端点执行十次调用以确定时延区间。提示端点使用三条短提示,初始化阶段 281–357 ms,提示评估阶段 2.1–2.9 s;模型未载入内存时再加 52–54 s 以模拟换模。拉取与创建用 gemma3:1b、llama3.1:8b 和 deepseek-v4-pro:cloud 测试:已有或云模型 0.5–2 s,新模型从 22 秒起随时长线性增加(按十亿参数计)。作者举例,拉取 80 亿参数模型会延迟 512 秒。其余端点随机延迟 91–152 ms。
    • 会话:同一客户端以 IP 与 User-Agent 标识,30 分钟内无新端点调用则结束 [4,9]。会话保存当前模型列表、对该客户端可用的运行中模型、最近调用时间、IP 和 User-Agent,用于动态模型列表、配置变更的状态跟踪和推理时的上下文一致。

    推理回复与记录

    • 词典与正则:作者在观察真实提示结构后设计两种回复。词典收录常见提示。正则覆盖两类:复读请求抽出所要求的词或短语再回显;基本数学表达式计算后返回。作者举例,提示 “Say hi” 会得到 “hi”。词典和正则都可扩展。
    • 作者给出的替代:作者称,由于面向私有部署、暴露在互联网上的 LLM 的推理被动测量仍然有限,设计依赖初期观察;若请求演化,未来可考虑高交互蜜罐、更强的动态生成,或轻量后端 LLM。
    • 日志:交互写入日志,供后续按端点、模型名和提示词归类。模型名与提示的具体归类规则在测量一节,用正则匹配加人工检查。

    部署形态

    • 运行环境:Linux 上的加固 Docker 容器,把 11434 直接暴露到互联网。每个交互等级各部署在 DigitalOcean(法兰克福)和校园网络,共四个实例。
    • 成功判定:本文不做攻击是否打穿真实模型的自动评分。作者把无生产用途的蜜罐上的交互视为可疑,同时写明不能把所有面向互联网的流量自动当成恶意,因为存在 Shodan、Censys 等研究扫描器。攻击观察靠端点、参数、模型名和提示的人工与正则归类,并映射到 MITRE ATLAS(Table 5)。
  4. 论文做了哪些实验?

    84 天四实例共 290,887 次交互;信息端点占 79.36%,并见到多类利用尝试。

    实验设置

    • 被测对象:不是若干聊天模型的红队评测,而是四个 Ollure 实例:DigitalOcean LIH、DigitalOcean MIH、大学 LIH、大学 MIH。蜜罐本身无后端 LLM。
    • 时间与规模:2026-06-29 至 2026-09-20 连续 84 天,共 290,887 次交互、2,793 个唯一源 IP(Sec. 4.1)。
    • 记录维度:按端点统计次数与唯一 IP(Table 1);IP 是否跨实例重叠(Fig. 3);回访率、每 IP 请求量、请求间隔与持续时长(Fig. 4、Fig. 5;附录 Fig. 6、Fig. 7 按部署地点)。
    • 归类:模型名分标准、abliterated、云、探针、Drakonchik、CVE/漏洞、其他、空、路径、外部 URL、内部 URL(Table 2,示例 Table 3)。提示分 Math、Other、Repeat、System/Model Information 等(Table 4)。攻击行为映射到 MITRE ATLAS(Table 5)。
    • 回访率定义:为比较 LIH 与 MIH,作者把每次新交互都当成回访,回访率 =(访问次数 >1 的 IP–主机对)/(唯一 IP–主机对)×100。论文未报告自动恶意判定模型或人工一致性。
    • 评审:无 LLM 评审阈值。分类为正则加人工检查。

    主结果

    据 Table 1(次数,括号内为唯一 IP):

    表格较宽,可左右滑动

    端点DO LIHDO MIHUNI LIHUNI MIH合计
    /api/tags67,924 (542)17,288 (562)12,984 (304)4,599 (364)102,795 (979)
    /v1/models23,477 (101)13,831 (124)21,074 (65)2,567 (66)60,949 (203)
    /api/generate27,570 (433)13,527 (492)5,551 (231)6,346 (313)52,994 (1,013)
    /api/version29,288 (248)7,072 (256)3,551 (154)2,872 (166)42,783 (515)
    /api/ps3,282 (87)7,224 (260)3,033 (78)2,938 (81)16,477 (348)
    全部端点156,169 (1,411)67,119 (1,423)47,134 (717)20,465 (866)290,887 (2,793)
    • 作者称,模型与服务信息端点(/api/tags、/v1/models、/api/ps、/api/show、根路径、/api/version)占全部交互的 79.36%。根路径只有 3,429 次、1,072 个唯一 IP,不到总唯一 IP 的一半;作者认为行动者可能用第三方索引预过滤、分阶段使用不同 IP 池,或跳过根路径直接打 Ollama API。
    • 唯一零流量端点是 /api/copy。模型管理修改尝试共 3,983 次;其中下载 /api/pull 为 3,832 次,仅 45 个唯一 IP。推理三类端点合计 56,063 次,/api/generate 占其中 94.53%。
    • LIH 与 MIH:唯一 IP 为 1,799(LIH)对 1,859(MIH)。LIH 原始交互量更高;Fig. 4 中 LIH 最大 63,690、均值 95、中位数 2、Q3 为 5,MIH 最大 16,233、均值 38、中位数 3、Q3 为 6。回访率 MIH 68.63%,LIH 62.59%,总体 65.72%。

    IP 重叠与时间

    • 跨实例:Fig. 3 中 65.38% 的 IP 只接触一个实例,8.27% 接触全部四个。图上交集尺寸标注包括 670、667、265、255、231、224 等。作者认为大规模扫描要么由少数行动者实施,要么通过使用不同 IP 池的分布式基础设施进行。
    • 间隔:Fig. 5 中复访 IP 的请求间隔中位数为数分钟量级;LIH 均值间隔 2.8 天、中位数 17.1 分钟,MIH 均值 1.5 天、中位数 2.9 分钟。持续时长(t_last − t_first)均值 LIH 8.1 天、MIH 6 天,主要落在一周窗口内,少数离群点几乎覆盖整个部署期。
    • 地点:附录 Fig. 6 中 DO 最大请求 63,690、均值 78,UNI 最大 28,258、均值 42,两者中位数均为 2。Fig. 7 中间隔均值 DO 2.6 天、UNI 1.3 天;持续时长均值 DO 8.1 天、UNI 5.0 天。作者称地点对比模式相似,得不出额外结论(附录 A.2)。

    模型名、提示与攻击映射

    • 模型名(Table 2):Pull 上标准模型 729(15 个唯一)、abliterated 501(8)、云模型 282(6)、探针 2,232(5)、路径 55(4)、外部 URL 17(17)、内部 URL 10(9)。Generate 上标准模型 43,199(14)、云模型 9,329(25)。Create 上有 Drakonchik 5 次(2 个唯一)和 CVE/漏洞名 10 次(10 个唯一)。探针关键词类交互共 2,232 次。作者记录 29 次复用官方模型名、6 次删除已实例化的自定义模型、27 次与 begware 相关的 messages/system 参数、3 次用 template 访问内部或外部 URL。from 参数中 62 次为字符串 nonexistent,44 次为合法模型名,1 次为 __gguf_header_overflow__。路径示例指向云厂商凭据、SSH 私钥或本地口令文件;多数外部 URL 形如带 oast 与 rogue 路径的回调域名,另有 3 例指向端口 39111。
    • 提示(Table 4):Generate 上 Math 31,639(2,674 唯一)、Repeat 5,592(35)、Reverse 1,536(1,531)、System/Model Information 3,753(50)、Hi 1,247(21)、Previous Message 138(3)、Toxic 4(1)。Chat 上 Hi 1,741(15)、System/Model Information 395(22)、Remember 144(11)、Assistant 29(8)、Toxic 15(8)。作者称简单任务可能是在确认 API 可达或指纹识别模型能力。毒性提示相对 abliterated 模型的拉取与查询量很低。Chat 有 131 个唯一会话;8 条较长的人设引导提示。Generate 上 172 条系统提示都要求假装成另一高能力模型(文中点名 kimi-k2.7-code 或 glm-5.2)。Chat 中出现 ping、get_weather、get_current_time、read_file、write_file 等工具。Embed 共 228 次,只有三种载荷:input 为 ping、带 probe 的对象、空请求。提示语言包括英语、中文、西班牙语、俄语、斯洛伐克语、印尼语、葡萄牙语和法语。Sec. 4.4 称 System/Model Information 合计 4,148 条、72 条唯一。
    • ATLAS(Table 5):作者把端点探测、供应链式外部模型拉取、abliterated 模型获取、模型冒充、未认证访问、挖矿向 RCE、路径穿越、智能体工具滥用、工件删除、多语言提示、内部 SSRF、对话状态重建、OAST、云资源滥用与上下文/token 耗尽等映射到相应战术。权限提升与横向移动两栏为“-”,作者称蜜罐设计限制了前者(例如凭据无法被使用)且未观察到尝试,后者不被部署设计覆盖且未观察到尝试。资源耗尽示例包括 num_ctx 取极大整数、num_predict = −1,以及将 “test” 重复 12,288 次。未观察到的还有训练流水线攻击(数据投毒、模型反演,含 OWASP 的向量与嵌入弱点)、间接提示注入,以及把基础设施当作攻击第三方的 AI 代理。作者称行为覆盖 Tamuka et al. 的全部高层类别,并见到十项 OWASP Top 10 LLM 中的九项。

    其他消融与分析

    • 论文没有参数消融。Fig. 2 为四主机日日志量的对数坐标时间线,正文未给出逐日数值。
    • 模型创建端点被用于注入 modelfile 载荷,作者将其描述为 RCE 与 XMRig 挖矿;同一端点还有冒用合法模型名的模型欺骗,以及 begware 式索要加密货币的系统提示。附录给出了一条多向量活动示例(Listing 1.2)和 Drakonchik 人设提示(Listing 1.3),说明单源可并行尝试 SSRF、路径穿越和模板注入。
    • /api/embed 交互少且模式单一,作者将其解释为自动化诊断探测而不是功能性嵌入。
  5. 有什么可以进一步探索的点?

    作者计划扩展框架、智能体架构和更长、更多样的网络部署。

    作者指出的局限与后续方向

    • 动态回复可能不够:推理请求可能演化,词典和正则需要扩展;作者提出未来可设计高交互蜜罐、更强动态生成,或轻量后端 LLM(Sec. 3.2)。
    • 架构未面向高级利用:蜜罐没有明确针对自主多智能体系统,也不允许高级利用,因此虽记录到智能体提示和工具使用,利用深度受设计限制(Sec. 4.4,Unobserved Vectors)。
    • 两类战术受架构约束:权限提升与横向移动因隔离架构和交互设计而自然受限,遥测中未出现(Sec. 4.4,Table 5)。
    • 训练时与部分 OWASP 向量不在观测范围:按设计排除针对训练流水线的威胁(如数据投毒或模型反演),其中包括 OWASP 的向量与嵌入弱点;遥测中无间接提示注入,也无把基础设施用作攻击第三方的 AI 代理(Sec. 4.4)。
    • 后续测量:作者称未来工作将把 Ollure 扩展到更多 LLM 框架和智能体架构,并在更多样的网络上评估更长期的部署(Sec. 5)。代码与伪匿名数据集由作者给出以支持后续测量;论文中一处为公开仓库,附录脚注为匿名链接,本文不转写地址。

    实验覆盖范围

    • 部署为四个实例、两种交互等级、两类网络(DigitalOcean 法兰克福与一所大学),窗口为 2026-06-29 至 2026-09-20 共 84 天,290,887 次交互、2,793 个唯一源 IP(Sec. 4.1,Table 1)。
    • 端点统计覆盖 Table 1 所列 Ollama 与兼容路径;唯一无流量的暴露接口是 /api/copy。
    • 攻击归类使用正则与人工检查,并映射 MITRE ATLAS(Table 5)以及 Tamuka et al. 的五类和 OWASP GenAI LLM Top 10 中的九项;论文未报告评审模型、恶意判定阈值或与人工的一致性。
    • 回复机制限于静态响应、词典和两类正则(复读与基本数学);无后端 LLM,也不执行模型管理所请求的真实状态变更以外的仿真边界,LIH 明确不改变系统状态。
    • 地点对比在附录 A.2(Fig. 6、Fig. 7),作者称与交互等级对比模式相似、无额外结论。论文未报告每个条件的重复实验次数。
  6. 总结一下论文的主要内容

    Ollure 在 84 天四实例上记录暴露 Ollama API 的侦察与多种利用尝试。

    Ollure 是面向暴露 Ollama API 的低、中交互蜜罐,用来测量自托管 LLM 基础设施上的野外流量。

    • 问题:自托管 LLM 网关增多且常无默认认证,已知问题包括路径穿越、缺少认证和 SSRF,但真实瞄准方式缺少学术上的被动测量。
    • 做法:用 FastAPI 模拟端口 11434 上的 Ollama 端点,不挂后端模型。LIH 返回静态列表与静态推理结果;MIH 按 IP 与 User-Agent 做 30 分钟会话,维护动态模型列表,并用词典和正则回答复读与简单数学。时延按十次实测区间注入。四个实例分置于法兰克福云主机和校园网络。
    • 流量:84 天(2026-06-29 至 2026-09-20)共 290,887 次交互、2,793 个源 IP。模型与服务信息端点占 79.36%。65.38% 的 IP 只打一个实例,8.27% 打满四个。LIH 与 MIH 的唯一 IP 接近(1,799 对 1,859),LIH 单 IP 最大请求达 63,690,MIH 为 16,233。
    • 利用尝试:/api/pull 有 3,832 次(45 个 IP),含探针名、路径、内外 URL 和 abliterated/云模型。推理端点 56,063 次,以简单数学、复读和问候为主,同时有系统与模型信息探询(合计 4,148 条)、少量毒性提示、人设与工具调用。作者将路径穿越、SSRF/OAST、挖矿向 RCE、模型冒充、资源耗尽和提示级信息抽取映射到 MITRE ATLAS;权限提升与横向移动未见。
    • 作者的结论:多数活动是自动化发现、指纹识别和模型枚举,但基础设施层与 LLM 层都有具体利用尝试。作者认为释放蜜罐与伪匿名数据可为后续测量提供基础,并计划扩展到更多框架、智能体架构和更多样、更长期的网络部署。
阅读原文arxiv.org