安全模型

July 11, 2026 · View on GitHub

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

信任边界

主要边界:

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

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

认证与会话

Web 登录凭据由 RBAC 用户管理(默认内置 admin 账号)。建议:

  • 首次部署后立即修改 admin 初始密码(控制台首次启动会输出)。
  • 使用长随机密码,并限制分享范围。
  • 将服务放在内网、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