
Hermes 五层安全防线:从用户授权到供应链安全
AI Agent 的安全困境 AI Agent 拥有执行 Shell 命令、读写文件、调用 API 的能力,这让它极其强大,也极其危险。一个不受控的 Agent 可能删除重要文件、泄露敏感数据、甚至被注入攻击利用。 Hermes Agent 构建了五层安全防线,从内到外形成纵深防御: ┌─────────────────────────────────────────────────────┐ │ 第五层:供应链安全 │ │ 技能市场审核、依赖校验、签名验证 │ ├─────────────────────────────────────────────────────┤ │ 第四层:行为审计 │ │ 操作日志、异常检测、告警通知 │ ├─────────────────────────────────────────────────────┤ │ 第三层:容器隔离 │ │ Docker 沙箱、资源限制、网络策略 │ ├─────────────────────────────────────────────────────┤ │ 第二层:危险命令审批 │ │ 命令分类、风险评分、人工确认 │ ├─────────────────────────────────────────────────────┤ │ 第一层:用户授权 │ │ 身份认证、权限分级、操作范围限制 │ └─────────────────────────────────────────────────────┘ 第一层:用户授权 身份认证 # config.yaml - 认证配置 auth: mode: token # token | oauth | multi # Token 认证 tokens: - token: "hermes-xxxx" user: "alice" role: admin # admin | user | readonly # 多用户支持 users: alice: role: admin allowed_tools: ["*"] allowed_paths: ["/"] bob: role: user allowed_tools: ["shell", "file_read", "file_write"] allowed_paths: ["/home/bob", "/tmp"] guest: role: readonly allowed_tools: ["file_read"] allowed_paths: ["/public"] 权限分级 角色 可用工具 文件访问 危险命令 管理操作 admin 全部 全部 需确认 允许 user Shell/文件/API 用户目录 需确认 禁止 readonly 只读工具 指定目录 禁止 禁止 class AuthManager: """用户授权管理""" def check_permission(self, user, action, resource): role = self.get_role(user) # 检查工具权限 if action.tool not in role.allowed_tools: return False, "tool_not_allowed" # 检查路径权限 if not self._check_path(resource.path, role.allowed_paths): return False, "path_not_allowed" # 检查危险操作 if action.is_dangerous and not role.can_dangerous: return False, "dangerous_not_allowed" return True, "ok" 第二层:危险命令审批 命令分类系统 Hermes 将所有可执行命令分为四个风险等级: ...