docs: 各模块安全审计报告 + 补充 .gitignore 忽略规则
This commit is contained in:
1 parent
12ece9020c
commit
cebef9fe70
15 files changed
+1467
-297
No files matched your search
@@ -0,0 +1,89 @@
|
||||
# core(Nidus)模块安全审计报告
|
||||
|
||||
**审计日期**: 2026-08-01
|
||||
**审计范围**: `src/main/`、`src/shared/`
|
||||
**代码版本**: dev_qing 分支
|
||||
|
||||
---
|
||||
|
||||
## 修复进度
|
||||
|
||||
| 优先级 | 总数 | 已修复 | 待修复 |
|
||||
|--------|------|--------|--------|
|
||||
| P0 | 2 | 0 | 2 |
|
||||
| P1 | 3 | 0 | 3 |
|
||||
| P2 | 3 | 0 | 3 |
|
||||
|
||||
---
|
||||
|
||||
## 🔴 P0 — 严重问题
|
||||
|
||||
### P0-1: PMC HTTP 管理接口无认证,可执行任意系统命令
|
||||
- **位置**: `src/main/HttpTask.cpp`
|
||||
- **问题**: Core(PMC)作为进程管理器,暴露了 HTTP 管理接口(`/exec` 等),**无任何认证**:
|
||||
- 任意能访问管理端口的本地/远程攻击者可执行任意 shell 命令
|
||||
- 可启停任意托管服务、读取日志、获取运行状态
|
||||
- 当前缓解:应仅绑定 127.0.0.1,需确认配置
|
||||
- **修复建议**:
|
||||
1. 确保管理接口仅监听 127.0.0.1
|
||||
2. 添加强认证(预共享 Token 或 Basic Auth over localhost)
|
||||
3. 危险命令(exec、kill)要求二次确认
|
||||
4. 记录所有管理操作审计日志
|
||||
|
||||
### P0-2: init.txt 配置文件无完整性校验,可注入恶意命令
|
||||
- **位置**: `src/main/main.cpp` init.txt 解析
|
||||
- **问题**: init.txt 定义了启动哪些子进程及参数,若文件被篡改:
|
||||
- 可添加任意启动条目,执行恶意二进制
|
||||
- 命令行参数可被注入
|
||||
- **修复建议**:
|
||||
1. init.txt 添加数字签名/校验和验证
|
||||
2. 运行时监控 init.txt 修改,变更需管理员确认
|
||||
3. 文件权限设为 0600,仅 root/运行用户可写
|
||||
|
||||
---
|
||||
|
||||
## 🟠 P1 — 高危问题
|
||||
|
||||
| # | 问题 | 位置 |
|
||||
|---|------|------|
|
||||
| P1-1 | 子进程异常退出无次数限制,可被反复重启消耗资源 | 进程监控逻辑 |
|
||||
| P1-2 | 日志路径穿越:子进程日志文件名可控时可能写入任意位置 | 日志配置 |
|
||||
| P1-3 | C++ HTTP 解析器需审计缓冲区溢出 | libhttp 库(shared 模块) |
|
||||
|
||||
---
|
||||
|
||||
## 🟡 P2 — 中危问题
|
||||
|
||||
| # | 问题 |
|
||||
|---|------|
|
||||
| P2-1 | 信号处理函数中使用非异步安全函数(如 printf、log) |
|
||||
| P2-2 | 线程池任务队列无上限,可 OOM |
|
||||
| P2-3 | 崩溃 core dump 可能包含敏感信息(密码、Token) |
|
||||
|
||||
---
|
||||
|
||||
## ✅ 已有安全机制
|
||||
|
||||
1. ✅ **进程生命周期管理**: 自动重启异常退出的子进程,保障服务可用性
|
||||
2. ✅ **线程池模型**: 固定线程数,防止无限线程创建
|
||||
3. ✅ **日志集中管理**: 统一日志格式和输出
|
||||
4. ✅ **C++ RAII 内存管理**: 使用智能指针减少内存泄漏风险
|
||||
5. ✅ **依赖审计**: 使用经过审计的 libth 线程库、libhttp HTTP 库、libcrypt 加密库
|
||||
|
||||
---
|
||||
|
||||
## 修复路线图
|
||||
|
||||
### 立即(24小时)
|
||||
- [ ] 确认 PMC HTTP 接口仅绑定 127.0.0.1
|
||||
- [ ] 检查 init.txt 文件权限
|
||||
|
||||
### 短期(72小时)
|
||||
- [ ] PMC HTTP 接口添加认证
|
||||
- [ ] 子进程重启频率限制(指数退避或熔断)
|
||||
- [ ] 审计 libhttp HTTP 解析器
|
||||
|
||||
### 中期
|
||||
- [ ] init.txt 完整性校验
|
||||
- [ ] 管理操作审计日志
|
||||
- [ ] 信号处理函数安全改造
|
||||
Reference in new issue
Block a user