开源让软件更加安全了吗?-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 129959
  • 博文数量: 73
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 745
  • 用 户 组: 普通用户
  • 注册时间: 2020-04-05 10:50
文章分类
文章存档

2020年(73)

我的朋友
相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: 网络与安全

2020-05-19 19:14:48

  近日,软件和芯片设计公司 synopsys 发布《》,指出不安全的开源软件已无处不在。一方面,99% 的审计代码库中至少包含一个开源组件,另一方面,经过审核的代码库中有 75% 包含具有已知安全漏洞的开源组件,老化和废弃的开源组件也无处不在。
  3 月,安全和许可证合规性管理凯发app官方网站的解决方案提供商 whitesource 同样发布了一份《》。统计显示,2019 年公开的开源软件漏洞数量激增至 6000 多个,增幅达近 50%,原因包含开源软件应用的扩大。
  两份报告指向同个现象——开源软件的应用已非常广泛,开源和“我们必须只使用专有代码”的想法间的战争已经结束了,取而代之的是对开源软件是否安全的讨论。
  关注和应用的增加带来更多安全问题
  whitesource 在报告中说明,开源软件漏洞数量的上升可以归因于开放源组件的广泛采用,过去几年开源社区的大量增长,以及媒体对最近一些数据泄露事件的报道,(使得人们)对开放源代码安全的关注提高。
  正如 synopsys 公司的报告中所提到的,开源组件和库是每个行业每个应用程序的基础。
  synopsys 公司的开源安全工具和审计团队——黑鸭审计针对 17 个行业的 1253 个代码库进行审计,具体包括企业服务/saas,保健,生命科学,金融服务,物联网,电信,计算机硬件等行业,其中 99% 包含开源组件,有 9 个行业的审计代码库中 100% 包含开源组件。此外,synopsys 在 2015 年审计中发现,开源代码占比为 36%,这一比例到 2019 年几乎翻了一番,达到 70%。具体数量上,2019 年每个代码库平均有 445 个开源组件,较 2018 年的 298 个显著增加。
  “开源(之前)一直被视为爱好者和修补者的领域,但它现在已经是现代经济的组成部分,是智能手机、汽车、物联网和许多关键基础设施等日常技术的基本组成部分”,linux 基金会和哈佛大学年初也发布了一份开源软件安全性审查结果,其联合主任弗兰克·纳格尔表示开源应用已非常广泛。
  同时,开源社区的力量也正在壮大。曾经极力反对开源的微软,2019 年已成为 github 上开源贡献最多的企业,紧随其后的还有 google、red hat、ibm、intel 等科技巨头。
  随应用一起扩大的还有风险。synopsys 的报告显示,49% 的已审计代码库中包含高风险漏洞。
  但开源软件安全引起广泛而激烈的讨论是由于 2014 年的一个安全漏洞。当时网景公司旗下开源密码库 openssl 中的 heartbleed 安全漏洞被发现。这个漏洞影响了近 20%,即 50 万的 web 服务器,中国也有超过 3 万台主机受到影响。据搜索引擎商 shodan 报告,该漏洞截至 2019 年底,引起了 91000 多起脆弱性事件。
  heartbleed 甚至直接导致 linux 基金会启动了一项“核心基础设施计划”(cii),以支持开源软件项目安全性。而且 cii 在过去 6 年中,已为开源安全筹集了数百万美元。
  另外,2017 年,apache sturts 的一个漏洞被发现。struts 是一种开源的 mvc 框架,用于创建基于 java 的 web 应用。apache struts 团队很快打了补丁,并关闭了该问题。但 5 月,有人利用该漏洞开始攻击征信企业 equifax,两个月后才被发现。期间,equifax 有 20.9 万名客户的信用卡号被访问,数据泄露,最终涉及到 1.45 亿用户。事后,equifax 被重罚 7 亿美元,时任 ceo 引咎辞职。
  这两个漏洞被 synopsys 的报告称为是“臭名昭著”的,因此他们也专门做了追踪,而在这次的审计中,两个漏洞都未出现,“尽管我们取得了成果,但心脏出血(heartbleed)依旧是个全球问题……自 2015 年以来,经审计的代码库中发现漏洞的平均年龄略低于 4.5 年,存在超过 10 年的漏洞占比为 19%,审计中发现的最古老的漏洞已经存在 22 年,为 cve-1999- 0061。”
  该报告还显示,91% 的代码库中包含已经过时超过 4 年或者过去 2 年内都没有开发迹象的开源组件。除了增加安全风险外,在版本控制中落后太远的危险是——更新到最新版本的简单行为会带来不必要的功能更改,例如关键功能的消失。在过去两年中,有 88 个代码库的组件没有开发活动,面临更高的漏洞风险。
  开源依旧被认为可提高软件安全性
  不过,对于 heartbleed 事件以及开源软件漏洞,有开发者认为,闭源软件如 windows 系统及其 iis 服务中,漏洞较之开源软件更多。有时,这些漏洞也更严重。开源并不会导致更多风险。
  1 月,美国国家安全局公布了一个 windows 10 的漏洞,该漏洞使全球约 10 亿多台 pc 易受攻击。这一漏洞被叫做“永恒之黑”,有人称其为微软又一“史诗级”漏洞。早在 2017 年 4 月 14 日,可以利用 windows 系统的 smb 漏洞获取系统最高权限的“永恒之蓝”网络攻击工具被发布,5 月 12 日,不法分子通过改造“永恒之蓝”制作了 wannacry 勒索病毒,英国、俄罗斯、整个欧洲以及中国国内多个高校校内网、大型企业内网和政府机构专网被勒索,需支付高额赎金才能解密恢复文件。
  上个月,kenna security 发布了《 》报告,分析 microsoft、linux 和 mac 资产的风险状况。报告显示,微软资产的 70% 至少具有一个高风险漏洞,其余未修补的 3600 万个漏洞要高于 max、linux 和 unix 资产的总和。微软还拥有最高的封闭式高风险漏洞百分比,为 83%,linux 中这一比例仅有 40%。不过报告也指出,microsoft 可以更快地修复漏洞。
  在一些场景中,开源依旧被认为是保障安全的有效方式。开源“圣经”《大教堂与集市》中也提到开源可以保障安全的原因:开源社区最强大的一个强项是非中心化的同行评审,所有致力于细节不被疏漏的传统方法,都无法和它相比。
  近期,特朗普称一些外国电力设备可能会利用美国大功率电力系统的漏洞进行攻击,因此他签署了一项电力设备禁令。对此,美国的一项开放源代码电力系统计划公司 lf energy 的 ceo 表示,电力设备风险并不完全是硬件的问题,应该更加关注的是攻击面和风险点的所在,比如嵌入系统的固件问题。因此,应该开源设备中的硬件和软件,甚至直接对整个堆栈进行开源:“在未来,无论是民族国家还是大型能源公司,恶意攻击者都可以访问和攻击 oem 的黑盒,而想要检验电网唯一的方法就是使用开源,在一个开放的社区中,具有开放的治理和完全的透明度。
  美国军方国防高级研究计划局年初推出“开放可编程安全 5g”(ops-5g)新计划。计划承诺创建支持安全 5g 以及后续移动网络(比如 6g)的开源软件和系统。原因在于,开源软件在安全方面的一大优势就是提高了代码可见性,这意味着可以检查、分析和审核代码,这项工作可以手动进行,也可借助自动化工作进行。此外,开源的可移植性有助于硬件生态系统和软件生态系统相脱离,大大提高了供应链攻击的难度
  有观点认为,开源软件更方便使用者检查有无后门,这对一些国家级的大型项目来说,可保证高度可控。此外,软件可信性仅和分发途径有关,软件本身的质量与软件厂商关系更大,而开源开发在很多情形下,因为有“同行评审”,所以更加安全。
  多份报告建议公司重视管理开源软件
  开源软件安全问题多被认为是源于管理上的疏漏。多项研究在讨论开源软件安全问题的时候,都反复提到这一点。
  “随着开源软件越来越受欢迎,识别和减轻已知的漏洞,是开放源码管理的一个关键因素”,synopsys 在报告中表示。此外,gartner 分析师 dale gardner 在分析软件组成现状时说,“成熟的组织正在扩大开放源码管理,以包括根据给定软件包的来源和支持,对软件整体‘健康’的评估。”
  在 synopsys 发布《2020 年开源安全和风险分析报告》和奇安信代码安全事业部发起“开源项目检测计划”,linux 基金会联合哈佛大学 2 月发布的《》,以及《》中,均总结了一些开源软件出现安全问题的原因。撇去一些存在于所有软件中的通病,如开发人员的技术能力和安全知识问题等,大致可以归为以下几点:
  许多问题都指向公司对开源软件缺乏正确的管理。而这些报告也同样给出了一些防患开源软件漏洞的措施。
  开源开发往往被认为是“常发布”(release often)以及“更少漏洞”的,但近期的几份报告将目光放到更广泛的开源应用中去,得出相反的结论——使用者往往不能及时更新软件,这可能造成安全风险。
  关于开源比闭源安全还是更危险,一直以来都会引起激烈的讨论,你觉得开源能让软件中的漏洞得到更快修补,更好地保障软件安全吗?
阅读(2936) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图