scottblydotcom/hermia

GitHub: scottblydotcom/hermia

Hermia 是一款厂商无关的本地 LLM 推理栈行为评估工具,用于检测模型在不同硬件、后端和运行时环境下的安全性与行为偏差。

Stars: 8 | Forks: 1

# Hermia [![CI](https://static.pigsec.cn/wp-content/uploads/repos/cas/39/39faa54be350a1dab8afd3b2fb8c1c83e4d9cff84abfef2374d19a18053687c4.svg)](https://github.com/scottblydotcom/hermia/actions/workflows/ci.yml) [![安全](https://static.pigsec.cn/wp-content/uploads/repos/cas/31/3182eccd67715b6b1bf46236ece7b7252dafc1e332af959acd19e63f1f3698a5.svg)](https://github.com/scottblydotcom/hermia/actions/workflows/security.yml) [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/) [![许可证:MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) 针对本地 LLM 的结构化行为评估。分析的基本单位不是模型二进制文件,而是推理技术栈。 你根据基准测试分数选择了一个模型。那个基准测试是在别人的硬件上运行的, 使用的是他们的驱动栈、他们的运行时版本。而不是你的。 一次 ROCm 更新就能让一项安全测试从 PASS 翻转为 FAIL。Hermia 能捕捉到这一点——因为它 运行在你的技术栈上,而不是云代理上。 ## 它的功能 Hermia 针对本地 Ollama 模型运行结构化行为评估,并在安全性、推理和工具使用维度上对结果 的准确性进行评分。结果直接映射到既定的 AI 安全框架,因此调查结果具备有据可查的出处——而不仅仅是“看起来没问题”。 实时系统指标(CPU、RAM、GPU、VRAM、tokens/sec)在每次评估期间同步运行。冷加载基准测试测量从干净的 VRAM 状态(而非缓存的推理状态)下实际的模型加载时间。 因为“它到底有多快”和“它预热后有多快”是完全不同的问题。 **v0.1 范围:** 针对兼容 Ollama 的本地 endpoint 进行单轮、确定性的结构化评估。细粒度的意图评估和多轮支持将在 v0.3 中推出。 **Fleet mode**(`--fleet FILE`)通过 YAML 配置运行无界面的多主机评估——相同的测试套件,并行针对多个 Ollama endpoint。在同一个模型上比较 CUDA 与 Metal。查看你的推理技术栈在哪里出现了偏差。 ## 为什么会有 Hermia [Garak](https://github.com/NVIDIA/garak) 由 NVIDIA 构建——就是那家目前市值大约相当于一个中等国家 GDP 的公司。它拥有数百个 probe、多年的社区贡献、严肃的研究支持,以及一个全职工作就是做这个的团队。你应该使用它。 Hermia 构建于一家咨询公司的实验室中。规模不同。真正要解决的问题也不同。 Garak 问的是:*这个模型容易受到已知攻击模式的攻击吗?* Hermia 问的是:**这个模型在你的推理技术栈上行为是否正确——并且在它运行时,你的硬件实际上在做什么?** - 它会拒绝被禁止的操作吗——是一以贯之地拒绝,而不是仅仅看心情? - 当一个结构化的工作流试图跨越边界时,它能守住安全边界吗? - 如果用户询问得足够巧妙,它会泄露 system prompt 的凭证吗? - 它能正确路由一个看似安全但实际上并不安全的请求吗? 这些都不是假设性的。它们是安全从业者在一个模型拥有真实工具和真实权限的环境中进行部署前会问的问题。 Garak 扫描漏洞。Hermia 则根据映射到你可以在风险评估中实际引用的框架的结构化 pass/fail 标准来评估行为的正确性。它们做的是不同的事情。两者都运行。 从业者背景是其特色,而不是缺陷——这是由一位在分布式推理集群中运行模型的安全顾问构建的,他关心硬件成本,需要不向云 API 发送数据即可工作的评估。如果这听起来符合你的情况,那么 Hermia 就是为你的场景而构建的。 ## 框架覆盖范围 | 框架 | Hermia 映射目标 | |---|---| | **OWASP LLM Top 10 (2025)** | LLM01 prompt injection(直接 + 间接),LLM06 过度授权 / 范围升级 | | **MITRE ATLAS v5.1** | AML.T0051 直接注入,AML.T0054 间接注入,AML.T0099 工具数据投毒,AML.T0100 结构化字段注入 | | **CSA MAESTRO** | L1 基础模型鲁棒性,L3 agent 框架路由与通道逃逸 | | **NIST AI RMF** | 衡量功能:ME 2.3 类部署环境基准测试,ME 2.4 生产监控,ME 3.1 回归检测 | ## 评估维度 | 维度 | 测试内容 | |---|---| | `security` | 注入抗性、凭证保护、范围升级拒绝、system prompt 提取抗性、结构化字段注入 | | `tool-use` | 有效的工具调用、正确的工具选择、具备依赖感知的多步骤链接 | | `reasoning` | 多步分解、错误恢复与后备规划、部分失败处理 | | `constraint` | 严格的 schema 合规性、数值正确性、对抗性输入鲁棒性 | | `routing` | 请求分类、通道路由逃逸检测 | | `memory` | 跨回合上下文保留 | | `domain` | 智能家居 agent、结构化数据提取 | ## 要求 - Python 3.11+ - 在本地运行 [Ollama](https://ollama.ai)(`ollama serve`) - 至少拉取一个模型:`ollama pull llama3.2` 或任何兼容模型 无需云 API 密钥。数据不会离开你的机器。 ## 硬件支持 | 平台 | GPU | 状态 | |---|---|---| | Linux | AMD ROCm (gfx900 / RX 系列) | ✅ 已测试 | | Linux | NVIDIA CUDA (sm_89 / RTX 系列) | ✅ 已测试* | | macOS | Apple Silicon (M1 / M2 / M3 / M4) | ✅ 已测试 | | Linux | Intel iGPU | ⚠️ 尽力而为 | | Linux / macOS | 仅 CPU(无独立 GPU) | ✅ 支持 | | Windows | 任意 | ❌ 暂不支持 | *NVIDIA 指标在 Linux 评估客户端上进行了测试。Windows Ollama 服务器作为集群目标通过 `--host` 受到支持;目前在 Windows 上直接运行 Hermia 尚未得到支持。 ## 安装 推荐方式(通过 pipx): ``` pipx install hermia pipx ensurepath # ensures ~/.local/bin is on PATH (one-time; restart terminal after) ``` 或使用 pip: ``` pip install hermia ``` 或从源码构建: ``` git clone https://github.com/scottblydotcom/hermia cd hermia pip install -e . ``` ## 快速开始 ``` # 如果 Ollama 未运行,则启动它 ollama serve # 启动 Hermia hermia ``` Hermia 将打开一个 TUI。从列表中选择一个模型,选择要运行的评估维度,然后按 **Run**。结果将随系统指标实时显示。每次运行都会写入 `results/eval_TIMESTAMP.jsonl` 和 `results/eval_TIMESTAMP.csv`。 请参阅[入门指南](docs/usage.md)以获取完整的操作说明:结果解释、`--repeat N` 一致性评分、集群模式、回归检测以及 Postgres 导出。 ## 路线图 **v0.2 — Endpoint Bus**(目标约 2026-06-15):Hermia 将能评估任何兼容 OpenAI 协议的系统——LiteLLM、OpenAI、Anthropic、Google、Bedrock,以及本地的 Ollama。支持通过配置文件进行多主机集群运行;通过 GPU 架构和运行时版本进行后端栈标记。 **v0.3 — Eval Bus**(目标约 2026-08):Hermia 将成为其他工具可集成的平台。用于 Garak、PyRIT 和 HarmBench 的 Probe 适配器会将它们的结果连同 Hermia 自身的 probe 一起,拉入 Hermia 的硬件关联、框架映射视图中。LLM-as-judge 评分;Sink 接口用于自定义输出目标(Prometheus、webhook、S3)。 请参阅 [docs/roadmap.md](docs/roadmap.md) 了解完整计划。 ## 项目状态 **v0.1.1** — 稳定且已经过测试。核心评估套件、集群模式、审计追踪和结果分析 pipeline 均已发布。安全 pipeline(gitleaks、trivy、bandit、pip-audit、ruff、mypy)比研究工具严格要求的更加严密。这是有意为之的。 可在 [PyPI](https://pypi.org/project/hermia/) 上获取:`pipx install hermia` ## 名称由来 **Hermia** = **Hermes**(希腊神话中的信使神、 trickster、旅行者的守护神——曾偷走阿波罗的牛)+ **Pythia**(德尔斐神谕者,传达阿波罗旨意的人)。 这个工具从神谕者那里偷取答案,并告诉你该相信哪一个。 ## 文档 - [入门指南](docs/usage.md) — 安装、运行、解释结果、集群模式、Postgres 导出 - [路线图](docs/roadmap.md) — v0.2 endpoint bus、v0.3 eval bus、完整待办事项 ## 安全性 Hermia 通过 `/api/tags`、`/api/generate` 和 `/api/ps` 与 Ollama 通信。 它从不上传模型文件,且不受模型上传相关 CVE 的影响。 (CVE-2026-7482、CVE-2026-5757)。 **保护你的 Ollama 实例:** - 在绑定到 `127.0.0.1` 的情况下运行 Ollama(默认设置)——切勿公开暴露 11434 端口 - 保持 Ollama 升级;0.17.1+ 修复了 CVE-2026-7482(CVSS 9.1,通过精心构造的 GGUF 上传导致堆内存泄露,绰号 "Bleeding Llama") - CVE-2026-5757(同一攻击类别,截至 2026 年 5 月尚无上游补丁)——在网络或防火墙层面限制对 `/api/create` 的访问 - 集群部署:使用 `hermia-fleet.yaml` 的 `auth` 块或 Tailscale overlay,以防止对远程 Ollama endpoint 的未经身份验证的访问 Hermia 会在运行时的预检日志中以 `SEC ⚠` 警告形式提示已知的 Ollama 版本漏洞。 ## 许可证 MIT — 见 [LICENSE](LICENSE)。
标签:AI安全, AI风险缓解, Blue Team, Chat Copilot, DLL 劫持, 反取证, 大语言模型, 安全评估, 本地推理, 模型评估