开源软件安全吗? | Linux 中国

开源软件安全吗? | Linux 中国
最新回答
蓝雨希

2022-10-26 17:13:48

开源软件的安全性不能一概而论,总体而言开源软件在安全性上有一定优势,但也并非绝对安全。以下从迷思澄清、优势、不足等方面详细阐述:

有关开源软件安全性的迷思澄清
  • 任何人都可以查看并恶意利用开源软件代码:虽然开源软件代码可被任何人访问,但查看代码并不意味着能轻易利用。项目维护人员管理代码仓库,接受贡献者提交前会审查代码,攻击者不论对开源还是闭源软件,都需付出努力来利用代码漏洞或添加恶意代码。

  • 没有专职团队,安全性无从谈起:开源软件因有各类贡献者加入与离开,能获得更广泛开发者的关注,他们可能比专有软件聘用的少数开发者更能发现安全问题。一些来自Mozilla等公司的项目有专职团队处理安全问题,大部分成功的开源项目也有大量资源保障安全性。即使没有专职团队,开源项目也能得到各类贡献者帮助。
开源软件在安全性上的优势
  • 更多的眼睛关注开源软件代码:与专有软件不同,开源项目代码访问不局限于少数开发者,一些项目甚至有数以万计的开发者查看、审查代码并标记和修复安全性问题。这使得开源项目有快速识别并修复问题的能力。企业参与开源项目时也会查阅审查代码,提供外部审查途径,有助于提升安全性。而闭源软件数量有限的开发者可能无法找出所有安全问题,且修复问题花费时间更长。

  • 社区决定安全问题的优先级:闭源软件开发者在处理问题和解决问题的时间等方面可能有限制或优先等级。开源项目贡献者社区可自行决定优先级,安排想解决的问题和修复时间,不依赖供应商决定。这种决策更透明灵活,能带来透明度、不依赖供应商、更快安全更新等益处。
开源软件在安全性方面的不足
  • 并无足够的眼睛来审查代码和不确定性:尽管开源软件代码可被全世界开发者自由访问,但项目可能没有足够贡献者彻底审查代码。此时对开源软件的同行审查不能抱过高信心,开源软件“声称”有最高安全性可能是一种误导。而且无法知晓有多少开发者查看检查代码以及检查程度,例如心脏出血漏洞(Heartbleed)在广泛使用的OpenSSL项目中引入2年后才被发现。

  • 软件责任与问责:开源项目通常无任何保证,对于个人用户可能不重要,但公司使用开源软件需自行承担因软件使用造成的数据丢失与损坏责任。这表明无论有多少人关注代码或贡献者技术如何精湛,开源软件都存在安全或数据丢失风险,并非绝对安全。
总结

就安全性而言,没有绝对的优胜者,开源和闭源软件在涉及安全问题时适用同一套原则。很多外部因素影响软件安全性,且很多因素不依赖于源代码,必须以某种形式监控代码以保证安全。开源软件有闭源软件不具备的优势,但并非防弹的。