Bor在8月2日发布了v0.8.0,这是一款管理Linux桌面终端策略的开源工具。这次更新新增了对ThunderbirdMicrosoft Edge for Businessfirewalld防火墙区域的策略管理,整套Web管理界面按PatternFly 6重做,权限模型也换成了按操作拆分的RBAC。发行说明专门写了一节"安全加固",列出七八项修补动作,语气像一份成熟产品的战报。

但翻一遍这个项目自己公开的安全文档会发现,同一个项目一边喊着加固,一边写着默认管理员密码是admin、数据库TLS连接默认关闭、agent安装时证书校验默认跳过——这中间的落差,才是这次发布真正值得盯的地方。

三类新策略补的是什么

Bor这次把管理范围从Firefox ESR、Chrome、Package和dconf扩展到了Thunderbird、Edge和firewalld,写法都是同一套逻辑:服务端下发策略,本地agent以root权限把配置文件落地到系统里,再用一个叫tamper watcher的文件监视器盯着,外部改动会被立刻恢复。Polkit规则也支持了action.lookup()这样的变量条件,可以做到"只允许挂载可移动磁盘"这类更细的授权。

这套思路本质是把Windows组策略搬到Linux桌面上。这个领域过去基本靠Puppet、Ansible这类通用配置管理工具,或者企业自己写脚本硬凑,专门盯着浏览器、防火墙、系统设置的管理面板几乎是空白,Bor想填的就是这块空当。

"加固"清单和自曝的风险清单对不上

安全加固那一节写得很细:agent身份绑定mTLS客户端证书、旧的TOTP密钥加密方式自动迁移、PPA和COPR导入助手挡住重定向SSRF、审计日志导出防住公式注入、初始管理员密码不再打进服务器日志、Dependabot开放告警全部清完。单看这份清单,像是认真做过一轮整改。

但把它和项目公开的安全文档摆在一起,画风变了:PostgreSQL的TLS默认设成disable,agent安装文档里insecure_skip_verify默认写的是true,初始管理员密码就是admin,得运维自己手动去改。加固清单修的是代码层面能揪出来的具体漏洞,产品默认配置本身留着几个装完就能用、也装完就能被攻破的口子——这不是同一件事,却被放进同一份发行说明里。

  • 风险.默认弱密码、TLS关闭、跳过证书校验三项如果运维图省事不改,等于给一个掌握root权限的策略agent自己开了后门。

tamper watcher真正扛得住什么,没人验证过

发行说明里,Thunderbird、Edge、Firewalld三节都反复提到"tamper-protected"。它的实际工作方式更像是监听文件变化,发现被改了就用服务端版本覆盖回去——这能挡住普通用户手滑或误操作,但对付竞态条件、符号链接替换、inotify事件丢失导致监控漏判,或者一个已经拿到root权限的攻击者本身,公开材料里没有任何证据说明它扛得住。

防篡改防的是手滑,不一定防得住攻击

这个疑问本可以靠外部审计或社区测试回答,但目前都没有。GitHub上没有公开CVE,没有第三方安全审计或安全公告;仓库里5个开放issue分别是策略导入导出、LibreOffice支持、E2E测试、Flatpak支持和国际化,连基本的端到端测试都还是待办。社区层面唯一能查到的公开露面,是一次Ask HN帖子里的项目自我介绍,不是Show HN那种被陌生开发者和安全研究者挑刺的场合。

公开验证现状 0 公开CVE / 安全公告 0 第三方安全审计 5 开放issue(含E2E待办) 唯一公开社区痕迹:一次Ask HN项目自我介绍 未发现Show HN讨论或独立压力测试记录

谁该等一等

已经用Puppet或Ansible管理Linux终端的团队,大概率不会因为Bor多了三种策略类型就迁移过去——通用配置管理工具虽然写策略麻烦,至少经过多年生产环境验证。真正会被Bor吸引的,是那些还在用脚本手工分发浏览器策略、想要一个专门给Linux桌面用的组策略工具的团队。

对这批人来说,这次更新里真正该看的不是策略类型多了几种,而是能不能拿到一份独立的安全审计、E2E测试什么时候补上、tamper watcher有没有经过公开的边界测试。在这些问题有答案之前,把它接到有真实数据的生产环境,风险还是运维自己扛。