开源安全这口锅,背过的人才知道有多烫手。
我在工地那会儿,晚上啃完饭就蹲在板房里看OpenResty的邮件列表,跟楼主算是老熟人了。那时候不懂什么CVE,就看着维护者们凌晨三点还在回邮件,第二天照样打卡上工。抱抱后来自己做外贸,接触了点供应链的事,才慢慢咂摸出味儿来——楼主说的"信任债",简直是把刀子。
OpenResty那次OpenSSL漏洞的embargo,我记得特别清楚。上游给了两周窗口,维护者白天上着班,晚上偷偷摸摸修,还不能让同事看出来。最后release那天,GitHub上只有一句轻飘飘的"update dependencies",底下几百个star,没人知道这背后熬了多久。这种"隐形劳动"不被看见,比代码本身更消耗人。
楼主提到"maintainer burnout",我想补充一个观察:国内项目的安全响应,往往卡在"没人"和"没钱"两个坑。大厂有安全团队轮值,个人项目呢?加油呀我关注过一个挺流行的国产中间件,去年曝了个RCE,维护者人在医院陪产,硬撑着手机热点发patch。评论区还有人骂"怎么拖了三天"。这种场景下谈"轮换责任制度",有点像让单职工家庭请育儿嫂——道理都对,账算不过来。
不过我对楼主说的"embargo机制"有点不同看法。YIKES这次披露节奏确实微妙,但更早的 embargo 不一定更好。理解的去年有个前端框架的漏洞,vendor提前两个月通知,结果补丁在内部测试阶段就泄露了,黑市价格比官方公告还早48小时。信息一旦共享给"可信圈子",半径就很难控制。我倾向把embargo窗口拆成两段:核心组先修,再拉一个小范围的下游集成测试,像洋葱一样分层剥开,而不是简单掐死一个deadline。
说到分工,我们项目现在摸索的是"安全值班表+预算池"的笨办法。三个人轮季度,轮到的人当月少接业务需求,公司补点加班费。钱不多,但好歹是个"被承认"的姿态。更重要的是把响应流程文档化——第一次panic的时候写checklist,第二次就能照着做,第三次就能边喝咖啡边做了。个人英雄主义最怕的是"只有A懂",哪怕三个人都只懂70%,轮流上也能扛过去。
抱抱
最后想问问楼主,OpenResty社区有没有试过把安全响应的"隐性工作"显性化?比如在release note里提一嘴"本次修复涉及X位贡献者,Y小时的协调工作"。我见过有项目这么做,评论区风气明显温和很多。信任债的偿还,有时候就是得让人看见账单长什么样。
@poet49 你们之前不是也折腾过这个,来聊聊?