Files
CyberStrikeAI/docs/zh-CN/hitl-best-practices.md
T

4.9 KiB

人机协同(HITL)最佳实践

English

人机协同用于在 Agent 执行工具前做审批拦截。它适合控制高风险操作、保留审计痕迹,并在人工审计压力过大时让审计 Agent 接管常规审批。

配置入口

Web 端进入 系统设置 → 人机协同,可配置:

  • 全局默认审批方:humanaudit_agent
  • 审计 Agent 专用模型:hitl.audit_model
  • 已决策审计日志保留天数
  • 免审批工具白名单:hitl.tool_whitelist
  • 审批模式与审查编辑模式的审计提示词

对应的 config.yaml 示例:

hitl:
  default_reviewer: human
  audit_model:
    provider: ""
    base_url: ""
    api_key: ""
    model: "" # 可填小模型;留空复用默认 AI 通道的模型
  retention_days: 90
  tool_whitelist: [read_file, ls, glob, grep, tool_search, get_project_fact, list_project_facts, search_project_facts, list_vulnerabilities, get_vulnerability, get_asset, query_assets, list_knowledge_risk_types, get_tool_execution, wait_tool_execution, batch_task_list, batch_task_get, asm_list_resources, manage_webshell_list, c2_event, c2_file]

audit_model 的字段可以只填一部分。空字段会自动继承默认 AI 通道解析后的模型配置,因此常见做法是只填 model,让审计 Agent 使用更便宜的小模型。

推荐审批策略

1. 默认人工,逐步放权

刚开始建议:

  • default_reviewer: human
  • 仅把明显只读工具加入 tool_whitelist
  • 对写文件、执行命令、C2 任务、WebShell 操作保持人工审批

运行一段时间后,观察审计日志,把重复、低风险、误报少的工具加入白名单。

2. 人工审不过来时,用小模型接管常规审批

当待审批积压明显时,可以切换为:

hitl:
  default_reviewer: audit_agent
  audit_model:
    model: "your-small-reviewer-model"

建议让小模型处理:

  • 只读查询
  • 信息收集
  • 端口与服务扫描
  • 目录枚举
  • 无破坏性的验证命令

仍建议人工处理:

  • 删除、覆盖、清空数据
  • 修改权限、密码、账号
  • 持久化、横向移动、C2 高风险任务
  • 对生产目标的写入操作

3. 用提示词定义组织策略

审计 Agent 的提示词应该写成策略,而不是泛泛地说“谨慎审批”。建议明确:

  • 默认放行哪些低风险操作
  • 必须拒绝哪些破坏性操作
  • 哪些情况需要人工升级
  • 审查编辑模式下允许怎样收窄参数

示例策略片段:

常规信息收集、只读查询、端口扫描默认 approve。
涉及删除文件、清空数据库、修改账号权限、写入持久化后门、停止关键服务时必须 reject。
若目标范围超出用户授权范围,应 reject。
审查编辑模式下,可将路径、目标、命令参数收窄后 approve,但不得扩大攻击面。

4. 白名单只放稳定低风险工具

白名单工具会跳过审批,因此要保守维护。推荐放:

  • read_file
  • ls
  • glob
  • grep
  • tool_search
  • 项目与漏洞查询:get_project_factlist_project_factssearch_project_factslist_vulnerabilitiesget_vulnerability
  • 资产与知识元数据查询:get_assetquery_assetslist_knowledge_risk_types
  • 执行与任务状态查询:get_tool_executionwait_tool_executionbatch_task_listbatch_task_get
  • 本地管理元数据查询:asm_list_resourcesmanage_webshell_listc2_eventc2_file

上述内置 MCP 查询仍受 RBAC 和资源范围约束;白名单只跳过 HITL 审批,不扩大访问权限。list_dir 仅在实际工具名为该值时有效;Eino 文件系统的目录列表工具名是 ls

不建议直接全局白名单:

  • 任意 shell 执行工具
  • 文件写入/删除工具
  • C2 任务工具
  • WebShell 命令执行工具
  • 会向目标或外部服务发起请求的“只读”工具,例如 webshell_file_readwebshell_file_listsearch_knowledge_base 和 ASM 远程任务查询
  • 同一工具名同时包含读写 action 的复合工具,例如 c2_sessionc2_listenerc2_profilec2_task_manage

模式选择

模式 适用场景
关闭 本地实验、完全信任工具链
审批模式 只需要通过/拒绝
审查编辑 希望审计 Agent 收窄参数后放行

如果你已经配置了小模型审计,推荐从 审批模式 开始。只有当你希望 AI 自动收窄路径、目标范围或命令参数时,再开启 审查编辑

运维建议

  • 定期查看 人机协同 → 审计日志,调整白名单和提示词。
  • 高风险环境下保持 default_reviewer: human,只让审计 Agent 辅助给出建议。
  • 小模型审批失败时默认保守拒绝,这是预期行为。
  • 修改 hitl.audit_model 后先在页面点击 测试审计模型
  • 对生产、客户、真实业务系统操作前,应保留人工最终确认。