- 支持 Windows Agent 构建、安装脚本和统一上报协议 - 增强 RDP 剪贴板、虚拟盘和文件传输能力 - 新增 AIOps 上下文工具、告警 RCA trace 落库和回放接口 - 重构 docs 模块文档并补充终端、堡垒机、监控、AI Agent 设计
136 lines
3.8 KiB
Markdown
136 lines
3.8 KiB
Markdown
# 05 - 安全治理与审计
|
|
|
|
> Agent CLI 是能调用真实工具的 AI,因此安全边界必须在工具执行前、输出落库前和审计查询时同时生效。// Logan.Li
|
|
|
|
---
|
|
|
|
## 风险模型
|
|
|
|
OWASP LLM Top 10 中和 AIOps Agent CLI 最相关的是:
|
|
|
|
| 风险 | AIOps 对应点 |
|
|
|------|--------------|
|
|
| Prompt Injection | 用户输入或远程日志诱导模型绕过规则 |
|
|
| Sensitive Information Disclosure | 工具输出、日志、环境变量里含密钥 |
|
|
| Insecure Plugin Design | 工具参数过宽、权限不足、缺少校验 |
|
|
| Excessive Agency | 模型拥有过多自主执行能力 |
|
|
| Model Denial of Service | 超长日志、循环调用、昂贵模型反复请求 |
|
|
|
|
治理目标是把这些风险转成代码里的 guardrail、策略和审计。
|
|
|
|
---
|
|
|
|
## 当前安全链路
|
|
|
|
```text
|
|
工具注册最小化
|
|
→ DynamicRiskTool 评估风险
|
|
→ safety.Controller 按模式判断
|
|
→ critical 硬拒
|
|
→ high/medium 触发 WebSocket 确认
|
|
→ 执行结果落库
|
|
```
|
|
|
|
安全模式:
|
|
|
|
| 模式 | 确认阈值 |
|
|
|------|----------|
|
|
| `strict` | medium 及以上 |
|
|
| `balanced` | high 及以上,默认 |
|
|
| `permissive` | critical 仍硬拒,其他尽量放行 |
|
|
|
|
---
|
|
|
|
## WebSocket 确认
|
|
|
|
高危工具调用时:
|
|
|
|
```text
|
|
core.Agent
|
|
→ ConfirmFn
|
|
→ controller 生成 confirm_id
|
|
→ 推送 confirm 事件
|
|
→ 前端展示工具、参数、风险、目标
|
|
→ 用户批准 / 拒绝
|
|
→ controller 唤醒执行线程
|
|
```
|
|
|
|
确认不能替代审批。生产环境里,确认适合“本次操作者即时确认”,审批适合“跨角色授权和留痕”。
|
|
|
|
---
|
|
|
|
## 审计落点
|
|
|
|
当前落点:
|
|
|
|
| 表 | 内容 |
|
|
|----|------|
|
|
| `agent_cli_sessions` | 用户、目标、模型、状态、轮次、耗时、token |
|
|
| `agent_cli_messages` | 输入、思考、工具调用、工具结果、最终答案、错误 |
|
|
|
|
建议增加统一审计关联:
|
|
|
|
| 字段 | 来源 |
|
|
|------|------|
|
|
| `trace_id` | 一次 Agent run 的全链路 ID |
|
|
| `session_id` | Agent CLI 会话 |
|
|
| `user_id` | JWT 用户 |
|
|
| `target_type` | server / cluster / pod |
|
|
| `target_id` | 资产或集群 ID |
|
|
| `tool_name` | 工具名 |
|
|
| `tool_args_hash` | 参数摘要,敏感参数不明文索引 |
|
|
| `risk` | 风险等级 |
|
|
| `decision` | auto / approved / rejected / denied |
|
|
| `approval_id` | 审批单,可选 |
|
|
|
|
OpenAI Agents 的 tracing 思路也说明,生产 Agent 应能追踪 LLM 生成、工具调用、guardrail 和自定义事件。AIOps 可以用现有 DB 先实现轻量 trace。
|
|
|
|
---
|
|
|
|
## 脱敏策略
|
|
|
|
落库前必须处理:
|
|
|
|
| 类型 | 示例 |
|
|
|------|------|
|
|
| Token | `Bearer ...` |
|
|
| 密码 | `password=...`、`passwd: ...` |
|
|
| AK/SK | 云厂商访问密钥 |
|
|
| Cookie | `Cookie:`、`Set-Cookie:` |
|
|
| 私钥 | PEM 私钥块 |
|
|
| 数据库连接串 | `mysql://user:pass@host` |
|
|
| K8s Secret | base64 secret data |
|
|
|
|
脱敏应同时作用于:
|
|
|
|
1. 前端展示。
|
|
2. `agent_cli_messages`。
|
|
3. 统一审计。
|
|
4. Evolver 记忆。
|
|
|
|
---
|
|
|
|
## 策略中心
|
|
|
|
企业化阶段建议接入统一策略:
|
|
|
|
| 策略 | 示例 |
|
|
|------|------|
|
|
| 用户策略 | 普通用户只读,高级运维可确认高危 |
|
|
| 资产策略 | 生产资产 strict,测试资产 balanced |
|
|
| 命令策略 | 禁止磁盘格式化、系统级删除、批量杀进程 |
|
|
| 时间策略 | 非变更窗口禁止重启和扩缩容 |
|
|
| 审批策略 | high 风险创建审批,approved 后继续执行 |
|
|
| 数据策略 | 敏感资产输出强制脱敏,不进入 Evolver |
|
|
|
|
---
|
|
|
|
## 治理成熟度
|
|
|
|
| 阶段 | 能力 |
|
|
|------|------|
|
|
| 当前 | 动态风险、critical 硬拒、Web 确认、会话落库 |
|
|
| 可用堡垒机 | 输出脱敏、只读模式、统一审计、trace_id |
|
|
| 企业堡垒机 | 策略中心、审批流、RBAC 工具剪枝、合规留存 |
|
|
| 智能闭环 | Agent 质量评测、风险评分、自动 Runbook 生成前审批 |
|