docs(security): 修正安全审计文档与代码不一致

- core: MQ kill/exec 实际未禁用,修正错误声明;HttpTask.cpp 行号 L53→L58
- gateway: 更新 20+ 处行号偏移(_KEYGEN/handleProxy/is_safe_target 等)
- aibox: shell=True 4处→3处,handle_connection/WebSocket 行号更新
- DEPS: WebSocketServer.cpp 已删除,fuzz 需求转移至 HttpServer_WsSession
- 加固计划: Phase 1.1 (127.0.0.1 绑定) 标记为已完成
- captcha/libhttp: 修正轻微行号偏移
This commit is contained in:
qing committed 2026-08-06 15:25:07 +00:00
1 parent 7ff73b7d07
commit 7f288f1c09
7 files changed
+61 -59

No files matched your search

@@ -20,10 +20,10 @@
## 🔴 P0 — 严重问题
### P0-1: PMC HTTP 管理接口无认证,可执行任意系统命令
- **位置**: `src/main/HttpTask.cpp` L53、L130-142
- **位置**: `src/main/HttpTask.cpp` L58、L130-142
- **当前状态**: ⚠️ 部分修复
- ✅ 管理接口已绑定 `127.0.0.1`(`HttpTask.cpp` L53),仅本地可访问
- ✅ MQ 通道的 `kill`/`exec` 操作已注释禁用(`main.cpp` L282-296),注释标注"在身份验证之前禁止操作"
- ✅ 管理接口已绑定 `127.0.0.1`(`HttpTask.cpp` L58),仅本地可访问
- ❌ MQ 通道的 `kill`/`exec` 操作**仍在活跃执行**(`main.cpp` L283-296),L282 注释标注"在身份验证之前禁止操作"但代码未实际禁用
- ❌ **HTTP 端点 `/exec`、`/kill`、`/list` 仍无任何认证**(`HttpTask.cpp` L130-142),本地任意进程可调用
- ❌ 无操作审计日志
- **修复建议**:
@@ -73,8 +73,8 @@
3. ✅ **日志集中管理**: 统一日志格式和输出
4. ✅ **C++ RAII 内存管理**: 使用智能指针减少内存泄漏风险
5. ✅ **依赖审计**: 使用经过审计的 libth 线程库、libhttp HTTP 库、libcrypt 加密库
6. ✅ **管理接口本地绑定**: HTTP 管理接口仅监听 `127.0.0.1`(`HttpTask.cpp` L53)
7. ✅ **MQ 通道危险操作已禁用**: `kill`/`exec` 通过消息队列的路径已注释,等待认证机制就绪(`main.cpp` L282-296)
6. ✅ **管理接口本地绑定**: HTTP 管理接口仅监听 `127.0.0.1`(`HttpTask.cpp` L58)
7. ❌ **MQ 通道危险操作未禁用**: `kill`/`exec` 通过消息队列的路径**仍在活跃执行**(`main.cpp` L283-296),L282 注释标注"在身份验证之前禁止操作"但代码未实际注释禁用
---
@@ -82,6 +82,7 @@
### 立即(24小时)
- [x] 确认 PMC HTTP 接口仅绑定 127.0.0.1 → ✅ 已确认
- [ ] **禁用或保护 MQ 通道 kill/exec**(`main.cpp` L283-296 当前仍活跃,注释标注禁止但未实际执行)
- [ ] PMC HTTP 接口 `/exec`、`/kill` 添加认证(当前仅绑定 localhost 不足以防御本地恶意进程)
- [ ] 检查 init.txt 文件权限
@@ -117,7 +118,7 @@
| 编号 | 状态 | 代码位置 | 验证说明 |
|------|------|----------|----------|
| P0-1 | ⚠️ 部分 | `HttpTask.cpp` L53, L130-142 | 已绑定 127.0.0.1;MQ 通道 kill/exec 已注释;但 HTTP 端点 `/exec`/`/kill` 仍无认证 |
| P0-1 | ⚠️ 部分 | `HttpTask.cpp` L58, L130-142 | 已绑定 127.0.0.1;但 MQ 通道 kill/exec **未禁用**(`main.cpp` L283-296 仍活跃);HTTP 端点 `/exec`/`/kill` 仍无认证 |
| P0-2 | ❌ 未修复 | `pmc_mtd.cpp` L90-118 | `parse_self_init_list` 无完整性校验、无大小限制、无命令内容校验 |
| P1-1 | ❌ 未修复 | `PPool.cpp` | `crtp()` 无熔断/频率限制;`ProcessTask.cpp` 在 `#ifdef __NEW_VER` 下未启用 |
| P1-2 | ❌ 未修复 | `pmc_mtd.cpp` L90-118 | init.txt 解析未校验子进程日志路径参数 |
@@ -130,6 +131,6 @@
| 措施 | 代码位置 | 说明 |
|------|----------|------|
| MQ 通道危险操作禁用 | `main.cpp` L282-296 | `kill`/`exec` 通过消息队列的路径已注释,注释标注"在身份验证之前禁止操作" |
| HTTP 管理接口本地绑定 | `HttpTask.cpp` L53 | 显式绑定 `127.0.0.1`,非 `0.0.0.0` |
| MQ 通道危险操作**未禁用** | `main.cpp` L282-296 | `kill`/`exec` 通过消息队列的路径**仍活跃**,L282 注释标注"在身份验证之前禁止操作"但未实际注释代码 |
| HTTP 管理接口本地绑定 | `HttpTask.cpp` L58 | 显式绑定 `127.0.0.1`,非 `0.0.0.0` |
| init.txt 注释行支持 | `pmc_mtd.cpp` L105-107 | 支持 `#` 注释行跳过,可禁用特定启动项 |