开源软件在当今科技生态中扮演着不可替代的角色。大量的应用、系统和服务都依赖于开源组件,推动了创新与协作。然而,在开源领域,安全工作的特殊性经常被高度强调,许多人认为只有少数维护者才能胜任安全相关的职责,这种刻板印象不仅影响了安全保障的效果,也给维护者带来了巨大的压力和孤立感。事实上,开源安全工作并非“特殊”,它可以像其他领域的开源贡献一样被更多人参与和共享,从而实现安全职责的分担和生态的可持续发展。要理解这一点,我们首先需要回顾开源为何如此伟大。开源的核心价值在于开放、协作和透明。
任何有时间、热情和技能的人都能够对项目做出贡献,包括修复漏洞、完善文档或者改进社区治理。对于小型项目尤其如此,维护者资源有限,他们需要社区支持才能保证项目健康发展。然而,安全工作往往被视为只能由少数专家掌握的秘密领域。漏洞报告的处理、包管理配置、发布流程的安全保障都被严格限定在少数人手中。维护者因此背负了不可见且庞大的安全责任,尽管他们往往是项目领域专家,但在安全方面可能经验有限。这种模式带来严重的孤立问题。
维护者无法了解其他项目是如何处理安全事件的,缺乏分享和互助,容易陷入恐惧,担心因错误决策导致用户面临风险。安全工作的私密性和闭塞环境加剧了这种状况,限制了经验积累和广泛学习。维护者在面对大量华而不实的安全报告时,更是难以独自消化和甄别。举例来说,Starlette的维护者曾收到一些由大型语言模型生成的虚假安全报告,这类“垃圾安全报告”其实在多个重要项目中都存在。若没有跨项目的交流与协作,维护者群体很难建立起有效的防御和响应机制。在开源软件生态中,小型项目数量庞大且普遍资源不足。
它们无法像大型项目一样花费大量时间和精力去定制安全工具或构建自动化流程。多达35%的热门GitHub开源包归属于个人用户而非组织,这直接影响了项目拥有的治理能力和可用功能,也限制了谁有能力真正处理安全事务。各种安全工具和漏洞报告系统存在很强的不对称性,往往生成大量工作任务而实际解决问题的效率却不高。维护者常常面临选择困境:接受安全扫描工具可以及时发现潜在风险,但由此带来的持续工作负担却可能加重压力,这最终导致维护者出现倦怠感,从而使安全保障更加脆弱。有些项目如libexpat公开指出人手不足,期望社区能在漏洞披露的标准90天宽限期内提供帮助。这也反映出当前模式下安全工作承担者的巨大缺口。
如何打破这种现状,实现安全工作的去“特殊化”,成为了行业关注的热点。一个有效的解决方案是推广“安全贡献者”角色,这些贡献者可以是具备安全知识的维护者或其他开源项目贡献者,也可以是基金会成员或企业工程师,参与到非自家项目的安全维护中。这种模式取消了安全工作必须由项目维护者单独完成的假设,建立起跨项目甚至跨社区的安全合作网络。实现这一模式需要大家一起重新思考并改造现有的安全工作流程与文化。尽管对安全贡献者的信任问题经常受到质疑,比如众所周知的XZ-utils事件被用来反驳信任开放社区的合理性,但现实是攻击和后门风险早已存在,关键在于采用技术手段如可重现构建、构建溯源和能力分析等,提升所有贡献者的可信度,减少单一身份风险。拒绝合作只会导致社区分裂和孤立,不利于整体安全生态发展。
通过推动信任的建立,开源社区能够更好地分担安全工作,缓解维护者的压力。培养积极健康的安全文化极为重要。分享经验、讨论安全挑战是消除孤立和恐惧的有效途径。让更多维护者感受到自己并非孤军奋战,他们可以随时寻求帮助与建议,安全工作便不会成为心理负担。对于公开的安全贡献者而言,主动展现自己,提升可见度和亲和力,有助于在社区中建立信任关系。线下会议和面对面交流提供了理想环境,让参与者敞开心扉,坦诚分享自身经历和困惑,这对于建设包容、协作的安全生态至关重要。
目前互联网和网络安全领域依赖TLS和公钥基础设施实现大规模的信任机制。同样道理,开源社区也需发展更多能够扩展信任的技术和平台。其中包括集成到包管理器和构建工具的安全技术,比如构建可重现性、构建溯源以及能力分析,这些都显著降低了由多名贡献者带来的潜在风险。平台和工具厂商必须更新默认假设,支持多元化的安全贡献者角色,为安全工作注入活力。将维护责任和安全工作分开不仅对项目本身有益,也是让更多用户能够参与贡献的有效途径。并非所有项目都具备治理架构支持由一人向多人转变,部分维护者希望继续主导项目的路线规划和愿景。
对于企业而言,推动开源安全贡献模型可作为衡量开源项目供应链安全的具体体现,尤其有助于中小型项目获得更多关注和资源支持。虽然不可否认这一转变不会迅速完成,但挑战的存在正推动社区在安全工作模式上不断创新和调整。信任才是开源安全的核心,而非神秘的“特殊技能”或稀缺身份。无论你是开源用户、安全工作者,还是社区工具开发者,都应重新思考安全工作应如何被定义和执行,致力于建立一个更加开放、协作且可持续的安全生态。开启这段旅程,意味着以更加包容的态度看待安全贡献,促进知识共享和信任扩散,让开源世界更加稳固与繁荣。如今,正是我们共同行动的时候。
用你的经验和声音强化安全文化,推动工具和平台的信任机制,鼓励更多人参与到开源安全中,开创更加美好的未来。无论是通过线上交流,还是线下活动,都能够在实践中不断推动变革。安全工作不应再是少数人的苦役,而应成为整个社区共同托举的责任。