Files
CyberStrikeAI/docs/zh-CN/security-model.md
T
2026-07-07 14:04:18 +08:00

7.0 KiB

安全模型

CyberStrikeAI 面向授权安全测试场景,内置命令执行、MCP 工具、WebShell、C2、批量任务和多代理编排等能力。部署者必须把它当作高权限安全工具管理,而不是普通聊天应用。

信任边界

主要边界:

  • Web 登录用户:可以发起对话、调用工具、修改配置、管理 WebShell/C2/知识库。
  • Agent:根据角色、工具列表、HITL 策略调用内置或外部工具。
  • MCP 工具:可能访问本机文件、执行命令、调用外部服务或操作目标系统。
  • 外部 MCP:由第三方进程或远端服务提供,需单独信任。
  • 机器人入口:企业微信、钉钉、飞书等回调入口不走 Web 登录,但有平台验签和速率限制。

如果一个账号可以登录 Web,就应视为拥有该 CyberStrikeAI 实例的操作权限。

认证与会话

auth.password 是 Web 登录密码。建议:

  • 首次部署立即修改默认密码。
  • 使用长随机密码,并限制分享范围。
  • 将服务放在内网、VPN、堡垒机或反向代理认证后面。
  • 生产环境开启 HTTPS,避免明文传输 Cookie。
  • 结合反向代理限制来源 IP。

登录态有效期由 auth.session_duration_hours 控制。

工具执行风险

工具来源包括:

  • 内置安全执行工具。
  • tools/ 下的 YAML 命令工具。
  • Eino Skills 文件系统工具,如 read_filewrite_fileedit_fileexecute
  • 外部 MCP 暴露的工具。
  • C2 和 WebShell 相关 MCP 工具。

风险控制建议:

  • 只启用当前任务需要的工具。
  • 高风险命令工具不要加入全局白名单。
  • 给角色绑定最小工具集合。
  • 对 destructive、持久化、横向移动、凭证操作保持人工审批。
  • 外部 MCP 尽量使用本地可信进程,远端 MCP 必须有认证和网络隔离。

HITL

HITL 是工具调用前的审批层。常见模式:

  • human:人工审批。
  • audit_agent:审计 Agent 自动审批。
  • review_edit:审计 Agent 可改参后放行。

建议策略:

  • 新环境默认人工审批。
  • 只把只读、低风险、稳定工具加入白名单。
  • 扫描类工具按目标范围配置角色和提示词约束。
  • 写入、删除、执行 payload、C2、WebShell、账号改动等操作必须谨慎审批。

详见 HITL 最佳实践

审计

平台审计由 audit 配置控制,记录登录、配置、资源管理等平台操作。它不记录完整对话正文,也不等同于取证日志。

工具执行记录由监控模块维护,保留时间由 monitor.retention_days 控制。

建议:

  • 开启 audit.enabled
  • 定期导出审计日志。
  • 配置合理保留期。
  • 对失败登录、配置变更、C2/WebShell 操作重点复核。

C2 风险

内置 C2 会启动监听器、生成 payload、接收会话并执行任务。仅在明确授权的靶场、内网演练或红队环境中启用。

建议:

  • 不使用时设置 c2.enabled: false
  • 不在公网暴露 C2 监听端口,除非有明确授权和隔离。
  • 对 payload 文件、回连地址、任务输出进行访问控制。
  • C2 任务建议走 HITL。

WebShell 风险

WebShell 管理允许对已登记连接执行命令和文件操作。建议:

  • 只添加授权目标。
  • 给连接使用清晰名称、标签和备注。
  • 不在共享环境保存真实生产 WebShell。
  • AI 使用 WebShell 前确认目标和命令。
  • 清理失效或不再授权的连接。

数据与隐私

本地会保存:

  • 对话和消息:data/conversations.db
  • 知识库索引:data/knowledge.db
  • WebShell、C2、漏洞、项目、任务等业务数据。
  • 上传附件:chat_uploads/

建议:

  • 限制文件权限。
  • 备份加密。
  • 不上传无授权的敏感数据。
  • 清理不再需要的会话、附件、C2 输出和审计日志。

生产基线

最低建议:

  • 强密码 + HTTPS + 内网访问。
  • audit.enabled: true
  • mcp.auth_header_value 设置随机值。
  • 不需要时关闭 c2.enabled
  • 外部 MCP 最小化启用。
  • 高风险工具不进白名单。
  • 定期备份和更新。

真实威胁模型

威胁 攻击路径 影响 防护点
Web 密码泄露 登录管理面,调用终端/WebShell/C2 完整接管平台能力 强密码、HTTPS、内网、反向代理认证、审计
Prompt Injection 目标页面或文档诱导 Agent 调高权限工具 越权执行工具或泄露数据 角色边界、HITL、工具最小化、知识库来源标注
外部 MCP 恶意 MCP 服务返回误导描述或执行副作用 本机或目标系统受影响 只接入可信 MCP、独立运行用户、网络隔离
工具 YAML 被篡改 改写命令模板或参数 Agent 调用时执行恶意命令 文件权限、代码审查、工具白名单
C2 滥用 生成 payload 或下发任务到非授权目标 法律和业务风险 默认关闭、审批、事件保留、网络隔离
WebShell 误操作 AI 或用户在生产目标执行破坏命令 业务中断或数据损坏 连接命名、人工确认、只读优先、删除过期连接
数据库泄露 复制 data/*.db 或上传目录 对话、目标、漏洞、连接信息泄露 文件权限、加密备份、最小保留

授权边界写法

每个高风险角色都应把授权边界写进提示词,而不是只依赖用户口头说明。示例:

你只能在用户明确给出的目标范围内行动。若需要执行写入、删除、爆破、持久化、凭证访问、C2、WebShell 或横向移动相关操作,必须先说明目的、影响、目标和回滚方式,并等待 HITL 审批。

这段话不能代替技术控制,但能降低 Agent 在模糊任务中扩张行为边界的概率。

HITL 不是万能保险

HITL 的风险在于审批者看到的是“工具名 + 参数 + 上下文摘要”,不是完整现实世界影响。下面几类情况要特别保守:

  • 参数看似只读,但工具本身会触发大量请求或写缓存。
  • 命令通过 bash -c、脚本、base64 包装隐藏真实动作。
  • 外部 MCP 工具描述不可信。
  • WebShell 目标名称模糊,无法确认是否生产环境。
  • C2 payload 生成和分发链路不在平台内。

审计 Agent 适合筛掉普通低风险请求,不适合替代人类批准破坏性动作。

数据最小化原则

不要把这些内容长期留在平台里:

  • 真实客户凭证。
  • 未脱敏报告。
  • 生产数据库导出。
  • 长期有效 Cookie。
  • 无关目标的扫描输出。
  • 已结束项目的 WebShell/C2 会话。

建议按项目结束流程清理:附件、WebShell 连接、C2 payload、临时 workspace、长输出工具记录。

源码锚点

  • 认证会话:internal/security/auth_manager.go
  • 认证中间件:internal/security/auth_middleware.go
  • 限流:internal/security/ratelimit.go
  • Shell 执行:internal/security/executor.go
  • HITL 执行:internal/handler/hitl_execution.go
  • 审计服务:internal/audit/service.go