OllamaDrama:用蜜罐测量暴露 LLM 基础设施遭受的攻击
OllamaDrama: Designing and Deploying a Honeypot to Measure Attacks on Exposed LLM Infrastructure
作者部署 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大学网络Ollama API 端口 11434
- 指标
- 交互次数唯一源 IP 数IP 回访率端点命中数提示词类别计数
研究者设计并部署了 Ollure 蜜罐,模拟 Ollama API 但不接入后端 LLM,在云和大学网络共四处部署运行 84 天,记录到来自 2,793 个独立源 IP 的 290,887 次交互。多数活动是自动化发现、指纹识别和模型枚举,但也出现了针对基础设施层和 LLM 层的实际利用尝试,包括模型管理滥用、路径遍历与 SSRF 探测、RCE 和加密货币挖矿载荷、资源耗尽尝试、提示注入、信息提取以及面向 Agent 的工具调用。论文称这些结果提供了暴露的自托管 LLM 服务在真实世界所受威胁的经验性观察。
深度解读
这篇论文试图解决什么问题?
用无后端 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 天,分析交互流量与攻击尝试,并计划公开代码与伪匿名数据集。
有哪些相关研究?
相关工作分欺骗蜜罐、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”的蜜罐空白。
论文如何解决这个问题?
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)。
论文做了哪些实验?
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 LIH DO MIH UNI LIH UNI MIH 合计 /api/tags 67,924 (542) 17,288 (562) 12,984 (304) 4,599 (364) 102,795 (979) /v1/models 23,477 (101) 13,831 (124) 21,074 (65) 2,567 (66) 60,949 (203) /api/generate 27,570 (433) 13,527 (492) 5,551 (231) 6,346 (313) 52,994 (1,013) /api/version 29,288 (248) 7,072 (256) 3,551 (154) 2,872 (166) 42,783 (515) /api/ps 3,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 交互少且模式单一,作者将其解释为自动化诊断探测而不是功能性嵌入。
有什么可以进一步探索的点?
作者计划扩展框架、智能体架构和更长、更多样的网络部署。
作者指出的局限与后续方向
- 动态回复可能不够:推理请求可能演化,词典和正则需要扩展;作者提出未来可设计高交互蜜罐、更强动态生成,或轻量后端 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),作者称与交互等级对比模式相似、无额外结论。论文未报告每个条件的重复实验次数。
总结一下论文的主要内容
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 层都有具体利用尝试。作者认为释放蜜罐与伪匿名数据可为后续测量提供基础,并计划扩展到更多框架、智能体架构和更多样、更长期的网络部署。