Ctrl K
ComunidadGuías…

SECURITY.md

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
# 安全政策

## 支持的版本

只对最新的正式 Release 提供安全修复。

## 报告漏洞

**请不要用公开 issue 报告安全漏洞**(尤其是涉及 Token 泄露、命令注入、SSRF、
提示词注入绕过权限这类问题)。

请用 GitHub 的 [Private vulnerability reporting](仓库 Security 标签页 →
Report a vulnerability)私下报告,通常 72 小时内会有首次回应。

报告时请附上:复现步骤、影响范围、以及(如果可能)最小化的 PoC。

## 这套系统默认暴露哪些东西

部署时请自查这几类面,均不应直接暴露公网:

- 控制台 HTTP 服务(默认 3210):有 Token 鉴权,但只应通过 SSH 隧道或内网访问;
- OneBot WebSocket/HTTP 端口:只监听 127.0.0.1,供协议端与本程序通信;
- `data/` 目录:config.json(含模型 Key、控制台 Token)、消息库、身份库均为敏感数据,
  权限 0600,请勿放入版本库或公开目录。

## 控制台操作留痕(审计日志)

控制台的关键写操作会留痕到 `data/audit-log/audit-YYYYMM.jsonl`(目录 0700 / 文件 0600,
按自然月切文件,默认保留 6 个月,由 `qq-agent-audit-prune.timer` 每月清理):

- 记录:时间、动作、目标、来源 IP 与 UA、操作凭据指纹(`sha256(控制台令牌)` 前 8 位,
  **不落令牌本身**)、改动前后快照(先脱敏再逐字段截断到 4KB)、成功/失败与错误摘要;
- 不记录:任何明文密钥、令牌、密码 —— 命中 `apiKey` / `token` / `secret` / `password`
  等字段名(以及 `keys` 类凭据映射)的值统一替换为 `[redacted]`;
- 查询:`GET /api/audit?limit=200&before=<ts>`(与其他 `/api/*` 同一套令牌鉴权;
  limit 硬上限 500,不提供全量导出);
- 审计是旁路:写失败只打一条警告,绝不影响控制台功能。

## 模型工具集的权限模型

给模型暴露的工具集**不含**任意命令执行、任意文件写与任意地址抓取;发送类工具的目标由
`ctx.chatKey` 绑定并受访问控制过滤(`src/core/access.js`),模型不能选任意收件人。
因此提示词注入的最坏情形是"把机器人当傀儡用"(重复发言、消耗模型预算),而不是远程代码执行——
这是**有意的取舍**:能力按业务需要最小化,不为了灵活性放开 exec / 任意文件写。
出站请求:抓取类工具以 GET 为主,第三方搜索 provider 按其**固定 API 端点**发请求
(地址来自配置,不由模型指定)。工具清单与实现见 `src/tools/tools-core.js`。

## 处置承诺

确认后按严重程度修复并发布补丁版本;影响已发布 Release 的会在 Release 页说明。