安全架构概览

🔒

DM 配对

8 位配对码,1 小时有效期,速率限制,5 次失败锁定

🖥

容器隔离

Docker 安全加固,只读根文件系统,资源限制,网络隔离

🛡

SSRF 防护

阻止私有网络访问,阻止云元数据端点,域名白名单

🔍

Tirith 扫描

工具执行前的预安全扫描

🔐

环境变量控制

技能作用域隔离,配置驱动传递,MCP 凭证过滤

🚫

网站黑名单

可配置的网站访问黑名单

DM 配对

DM 配对机制防止未授权用户通过消息平台与代理交互:

yaml
security:
  dm_pairing:
    enabled: true
    code_length: 8              # 配对码长度
    ttl: 3600                   # 有效期(秒)= 1 小时
    rate_limit: 5               # 每分钟尝试次数限制
    max_failures: 5             # 最大失败次数后锁定

配对流程

  1. 用户在消息平台发送私聊消息给 Bot
  2. Bot 返回一个 8 位配对码和说明
  3. 用户在 CLI 或管理界面输入配对码完成配对
  4. 配对成功后,用户可以正常与代理交互
  5. 配对码在 1 小时后过期

容器隔离

使用 Docker 后端执行终端命令时,应用以下安全加固:

yaml
terminal:
  backend: docker
  docker:
    image: ubuntu:22.04
    auto_remove: true

    security:
      # 只读根文件系统
      read_only_root: true

      # 禁止权限提升
      no_new_privileges: true

      # 资源限制
      resource_limits:
        memory: "512m"
        cpu: "1.0"
        pids: 100

      # 网络隔离
      network_mode: none

      # 命令白名单
      allowed_commands:
        - python3
        - node
        - npm
        - git
        - pip

      # 安全选项
      security_opt:
        - no-new-privileges:true
        - seccomp:default

SSRF 防护

防止服务端请求伪造(SSRF)攻击:

yaml
security:
  ssrf_protection:
    # 阻止私有网络地址
    block_private_networks: true

    # 阻止云元数据端点(169.254.169.254)
    block_cloud_metadata: true

    # 允许的域名白名单(空 = 允许所有非阻止域名)
    allowed_domains: []

    # 阻止的额外 IP 范围
    blocked_ip_ranges: []

Tirith 预执行扫描

Tirith 是 Hermes 的安全扫描引擎,在工具执行前进行安全检查:

环境变量安全

技能作用域隔离

每个技能只能访问其被授权的环境变量:

yaml
# 技能级别的环境变量控制
skills:
  my-skill:
    env:
      allowed:
        - PUBLIC_API_URL
        - MY_SKILL_TOKEN
      blocked:
        - ADMIN_PASSWORD
        - DATABASE_URL

MCP 凭证处理

上下文文件注入防护

防止通过上下文文件注入恶意内容:

智能审批

三级审批模式控制工具执行的自动授权:

模式说明
manual所有工具调用都需要手动确认
smart低风险操作自动批准,高风险操作需要确认
off所有工具调用自动批准(仅限可信环境)
yaml
security:
  approvals:
    mode: smart
    auto_approve_tools:
      - search
      - session_search
      - memory
      - skills
      - todo

网站黑名单

yaml
security:
  website_blocklist:
    enabled: true
    domains:
      - malwaresite.example.com
      - phishing.example.com

生产环境安全检查清单

在生产环境部署 Hermes Agent 前,请确认以下安全措施已到位:

项目建议
DM 配对启用,设置合理的 TTL 和失败限制
终端后端使用 Docker 容器隔离
Docker 安全启用 read_only_root、资源限制、命令白名单
SSRF 防护启用私有网络和云元数据阻止
审批模式使用 smart 或 manual 模式
API 密钥存储在 .env 文件中,不提交到版本控制
环境变量配置技能作用域隔离
网络访问Docker 容器使用 network_mode: none
日志启用安全事件日志记录
Tirith启用预执行安全扫描
更新定期更新 Hermes 和依赖
权限以最低必要权限运行