- docs/ARCHITECTURE.md: 系统架构说明 - docs/MODULES.md: 模块清单与职责 - docs/blackbird_project_profile.md: 项目画像 - docs/blackbird_project_evaluation.md: 项目评估 - docs/reports/fsys_public_frontend_research_20260810.md: fsys 公开前端调研
3.1 KiB
3.1 KiB
Blackbird / micro_servers 项目红队评估
评估对象:
docs/blackbird_project_profile.md(2026-08-10 advisory 整合稿) 评估视角:材料红队(事实 / 推断 / 未知 + 矛盾与缺证) 评估时间:2026-08-10
一句话结论
架构主张清晰、文档可审计性极高的自托管轻量微服务框架;但"安全评级 A-"缺乏代码级实证,3 项高危整改全部处于 human_review_pending,当前不适合暴露于多租户或不可信内网。
优势(已确认事实)
- 定位成立:砍掉 K8s 的服务注册/编排/消息总线,保留微服务拆分与统一入口收益,自托管 + MIT,价值主张自洽。
- 可审计性远超同类个人项目:41+ 篇安全/分析文档 + 24 篇逐模块审计报告,风险闭环有基底。
- 协议基石扎实:pymsg/libmsg 字节级兼容的
[4B 长度][UTF-8 JSON]帧,支撑 v1/v2 双栈平滑迁移。 - 认证设计不弱:PBKDF2 10 万轮、常数时间比较、RSA 签名 Token、Cookie 安全属性、fail-closed 边界。
关键风险(矛盾与缺证)
- 评级名实不符:称"B+→A-",但 3 高危(WAF 失效 / core root RCE / 内部零信任缺失)均未核实修复。A- 更像目标而非现状。
- WAF 实际不拦截:定位"唯一对外入口 + coraza",但
waf/rules/local/custom.conf的 6 条 SecRule 全被注释、无crs/目录 → 实际仅 TLS 终止 + 响应头,SQLi/XSS/命令注入零防护。 - core 本地 root RCE:
parse_data_from_mq对 list/kill/exec 未鉴权即经/bin/sh -c执行,且 core 以 root 运行。这是致命项却被标human_review_pending。 - 内部零信任缺失:pymsg 无握手/无鉴权/明文无 TLS,db
execute接受任意 action/table/where,完全依赖 127.0.0.1 隔离。 - 端口口径漂移:MODULES.md 记 gateway:8443,README 记 8445,未同步。
- 密钥变量静默失效:
.env.example写OPENAI_API_KEY,代码读DEEPSEEK_API_KEY。 - 质量债:v1/v2 双实现(db/db2、dnfs/dnfs2、pymsg/libmsg…)并存,无单元测试、无 CI(无
.github/workflows),回归与语义漂移风险高。 - 部署半成品:docker-compose 仅纳 3 服务,生产以 systemd 为准——容器化链路不完整。
缺证项(需人工复核)
- 3 高危是否在 2026-08-08 之后的提交中已修复(研究报告基于快照,文档未给代码证据)。
- docker-compose 补全状态、MODULES.md 端口同步状态。
优先级建议(收口路径)
- P0:启用 WAF 规则 + 补
crs/(直击高危 1)。 - P0:core MQ 落地
verify_admin_token并降权运行(直击高危 2)。 - P1:内部服务加调用方鉴权 / pymsg 上 mTLS 或 Unix socket(直击高危 3)。
- P2:ai_review
/review加鉴权 + 结构化提示词;统一DEEPSEEK_API_KEY;引入单元测试与 CI;双实现收口单轨。
成熟度判定
个人/小团队可信内网自用 = 可用;暴露公网或多租户 = 不建议。 文档完备度是亮点,代码整改完成度与测试覆盖是短板。