审计日期:2026-07-23 至 2026-08-16
本轮覆盖 npm 依赖与锁文件、Git 当前文件和历史、控制 API、HTTP/WS 业务监听、HTTP/WS 外发、配置与密钥持久化、本地命令/脚本执行、日志及 Windows 便携发布链路。方法包括静态 调用点审阅、自动凭据模式扫描、npm 漏洞/签名审计、许可证与安装脚本检查、单元/E2E/ 浏览器测试和发行物完整性验证。
| 领域 | 结论 | 已落实控制 |
|---|---|---|
| 依赖 | 通过 | 锁文件来源、SHA-512、许可证、生产安装脚本检查;npm 漏洞和签名审计 |
| 运行时 | 已修复 | 源码推荐 Node.js 24.18.1;便携包固定版本并校验官方 SHA-256 |
| 凭据 | 已修复 | 当前文件和 Git 历史扫描;实际配置全量忽略;明文敏感配置保存拒绝 |
| 控制 API | 已加固 | 来源、Origin、角色令牌、时序安全比较、审计日志、通用 500 响应 |
| 入站 HTTP/WS | 已加固 | 来源/Origin、正文与消息上限、超时、请求头及连接数限制 |
| 外发 HTTP/WS | 已加固 | 协议、主机/IP、端口白名单;禁 URL 凭据;不跟随重定向;大小限制 |
| 本地进程 | 已加固 | 绝对可执行文件白名单、真实路径目录边界、无 Shell、环境隔离、输出上限 |
| 存储与日志 | 已加固 | 受管路径、原子写入、历史摘要、密钥/请求头/目标 URL 脱敏、轮转 |
| 发布 | 已加固 | 固定运行时、npm ci --ignore-scripts、SBOM、文件清单、ZIP 摘要、验证器 |
最终审计时 npm audit --audit-level=low 与生产依赖审计均报告 0 个已知漏洞。完整依赖树
验证了 356 个注册表签名和 62 个来源证明;便携包生产树会在每次发行时重新执行漏洞、
签名和 SBOM 审计。该结论是审计时点快照,不能替代后续版本的定期重跑。
- 旧便携包会直接复制构建主机的 Node.js,可把过期运行时带入发行物。
- 外发请求缺少统一地址/端口策略,HTTP 路径可改变客户端 Origin,重定向可能泄露请求头。
- HTTP 正文、响应、WS 消息、连接数和命令输出存在无界或过大的资源消耗面。
- 本地进程继承全部环境变量,工作目录和脚本路径未对符号链接后的真实路径做边界检查。
- 队列与状态日志可能保存带查询参数的目标 URL,服务器 500 响应可能泄露内部异常细节。
- 原始配置可保存敏感字段或敏感 URL 查询参数的明文。
- 最终打包首次运行时,新发布的
GHSA-c96f-x56v-gq3h高危公告使安全门主动失败;find-my-way已从 9.6.0 更新至修复版 9.7.0,并重新执行干净安装和全部审计。 - 2026-08-15 复审发现
brace-expansion、fast-uri、js-yaml、nanoid和postcss的新公告;锁文件已更新至修复版本,并通过干净安装、完整审计和全部测试。 - Node.js 2026-07 安全发布后,源码推荐版本与便携运行时已从 24.18.0 提升至 24.18.1; 源码版本偏差仅警告,便携发行运行时仍严格固定并校验。
npm run check通过,包括运行时建议、仓库与锁文件审计、格式、静态检查、类型检查、 构建、64 个单元测试、7 个端到端测试和 9 个浏览器测试。- 端到端覆盖根目录开发启动器的前后端联合启动、动态 WebUI 回环端口与 CORS、密钥初始化 迁移、控制 API、自动化执行、持久化和服务重启;测试工程位于临时目录,不读取本机配置。
- 便携包固定使用 Node.js 24.18.1,并在每次构建时生成 CycloneDX SBOM。
- 发行验证器复核暂存目录与 ZIP 解压内容的逐文件摘要,确认不含私有运行时文件,并在
隔离临时目录完成初始化、启动和
/api/health烟雾测试。
- 程序不提供 TLS;跨主机明文 HTTP/WS 不应承载令牌或敏感消息。
- 显式允许的公共域名存在检查后由底层客户端再次解析的时间窗口;高安全场景应使用固定 地址、可信 DNS 和出口防火墙。
- 入站端点没有通用业务级身份协议或全局速率限制。默认回环白名单可降低风险;对局域网 开放时应由上游鉴权、代理限流和防火墙补足。
- 预定义命令仍以服务账户权限运行。白名单只能约束入口,不能证明被允许程序或脚本无害。
- 凭据扫描基于已知模式,无法证明任意业务文本中不存在秘密;发布前仍需人工审阅。
- 本轮不是第三方渗透测试,也没有对所有外部 QQ 插件或自定义脚本进行供应链审计。