至顶网软件与服务频道消息:毋庸置疑,我们处于一个开源无处不在的世界,开源不光主导了软件业,也主导了整个IT产业。但是在这背后,开源安全、许可证合规性和操作风险依然很普遍,新思科技近日发布的《2020年开源安全和风险分析》报告(OSSRA)为我们披露了更多开源中的趋势和模式,帮助企业从安全性、许可证合规性和操作角度更好地管理开源风险。
该报告由新思科技网络安全研究中心(CyRC)制作,研究了由Black Duck审计服务团队执行的对超过1250个商业代码库的审计结果。新思科技软件质量与安全部门高级安全架构师杨国梁表示,2020 OSSRA报告中所有审计的代码其实都是真正被用于商业中的,这些审计都是基于事实为依据的。
2020 OSSRA报告重申了开源在当今软件生态系统中的关键作用,揭示了过去一年中经过审计的所有有效代码库(99%)至少包含一个开源组件,其中开源占所有代码的70%。值得注意的是,老化或废弃的开源组件仍然被广泛使用,91%的代码库中包含的组件已经过期四年以上或过去两年中没有开发活动。
开源软件是任何人都可以自由访问、使用、更改和共享(以修改或未修改的形式)的软件。开源软件由许多人制作并根据符合开源定义的许可进行分发。
杨国梁表示,我们可以看到开源在现今的软件组成里面占了很大的比重,商业软件中自研与开源总是交织在一起。“开源其实并不是免费午餐。你要交付软件,遵循许可证的义务就此产生了。 ”
我们也知道市面上存在很多基于开源软件提供商业服务的公司,但是他们并不能完全解决开源的风险。对于开源来说,其实根本没有所谓的开源供应商。商业厂商一般会提供补丁升级软件,但是开源需要自己解决这些问题。因此开源治理至关重要。
开源组件在很多情况下时被研发人员引入的,在编写软件的时候,封装好的开源库和组件非常方便,可以被直接使用。另外,企业在采购商业化软件的时候并不知道软件里面包含了多少开源组件。例如银行会把系统外包给第三方来开发,系统里面有多少开源软件你也不知道,所以开源的使用其实已经非常广泛。
在这样的情况下,安全的问题也就不可避免了。比如新思科技CyRC研究中心发现Heartbleed安全漏洞的主体其实是OpenSSL这样一个开源组件。如果看下Github上的OpenSSL的代码迭代,你会发现它的版本和代码变化非常庞大。
“我们今天说代码里面包含哪些第三方的开源组件,如果你没有一个第三方厂商来配合,你可能根本就没有办法触及到具体的内容。比如说开源组件用了哪个版本,这个版本是否有安全漏洞等。 ”杨国梁说。
在这样的情况下,新思科技Black Duck审计服务支持帮助企业从法律风险、安全风险、质量风险等三个维度实现软件采购中的风险管控。
法律风险涉及开源许可证,要遵循什么样的条件才能合法使用;安全风险就是用到的开源组件到底有哪些安全漏洞;质量风险,如果开源组件出了问题,你其实只能依赖这些社区修复这些问题。 但是如果这个社区不是足够活跃了,可能这个组件两三年都没有人再维护,那么这样的开源组件如果出了问题,对于企业的运维和替换这个组件的风险其实是非常大的。
杨国梁表示,2020 OSSRA报告覆盖的行业包括企业级软件/SaaS、健康医疗、网络安全、金融科技、大数据、虚拟现实等行业。报告中最值得注意的开源风险趋势包括:
开源采用率持续增长。99%的代码库包含至少一些开源,每个代码库中平均有445个开源组件,比2018年的298个有显著增加。被审计的代码中有70%是开源代码,这一数字从2018年的60%增至目前,并且自2015年(36%)以来几乎翻了一番。
相比于2018年,2019年至少包含一个开源组件代码库的行业,很多都达到了100%。对于开源的接纳程度,各个行业是越来越高。不过目前我们对开源的治理,不管是从安全还是从合规,完全跟不上使用量的上涨。
过期和“废弃”的开源组件非常普遍。91%的代码库包含已经过期四年以上或者近两年没有开发活动的组件。除了存在安全漏洞的可能性增加之外,使用过期的开源组件的风险在于更新它们还会带来不必要的功能和兼容性问题。
对于这个问题,杨国梁建议企业应该“自查”,第一是识别,盘点全部软件资产;第二是定制策略管控,通过一个统一的平台持续进行监控,包括安全漏洞、许可协议变动、版本更新等,实时解决新出现的问题。
易受攻击的开源组件的使用再次呈上升趋势。2019年,包含易受攻击的开源组件的代码库的比例从2017年的78%下降至2018年的60%之后增至了75%。同样地,包含高风险漏洞的代码库的比例由2018年的40%增至49%。幸运地是,2019年审计的代码库中都没有受到臭名昭著的Heartbleed漏洞或2017年困扰Equifax的Apache Struts漏洞的影响。
杨国梁说,提升意识是改善现状的关键。如果不知道代码库里有什么,修复也就无从谈起。另外,开源不仅与源码有关,而且与共享重用有关。二进制存储库简化了编码,但是加剧了安全风险。
所谓的“开源供应商”是不存在的,商业化的安全模式并并非总是奏效。这件事情只能依靠你自己来做,你自己约束你的上下游,大家共同提升开源使用的合规程度,才能更好地促进开源的使用。
开源许可证冲突持续使知识产权面临风险。尽管开源软件拥有“免费”的优势,但它与其它软件一样都要受到许可证的约束。67%的代码库包含某种形式的开源代码许可证冲突,33%的代码库包含没有可识别许可证的开源组件。许可证冲突的发生率因行业而异,从最高的93%(互联网和移动应用程序)到相对较低的59%(虚拟现实、游戏、娱乐和媒体)。
杨国梁表示,业界对于合理合规使用开源组件这件事情已经开始重视起来。前20个最受欢迎的开源许可证可能涵盖了你使用的98%的开源代码库,如果把这些许可证的违规情况治理好,那很大程度上你的代码也就合规了。
针对上述情况,2020 OSSRA报告也给出了建议,告诉企业如何从开源受益?第一,开源软件推动现代创新,企业需要培训开发和运营团队识别关键开源组件的使用,认识到开源和商业软件的不同管理方式,指定强大的企业战略从中受益。
第二,开源治理始于开发人员,企业应该培训所有开发人员了解许可证的含义,定义开源使用的补丁策略,列出所有软件清单(BOM)以供开源使用,而不只是源代码。
第三,积极与开源社区互动。开源由社区主导,并得到供应商的支持。在团队中培养参与感和共享所有权,增强分布式开发中固有的协作技能。
“商业厂商和开源社区的一个良好互动,让他们能够更加团结协作。这会让不管是治理信息还是安全信息,能够更加流畅在厂商和社区之间被沟通和分享,那才是一个比较好的使用开源的方向。”杨国梁如是说。
好文章,需要你的鼓励
火箭实验室(Rocket Lab)宣布计划以现金加股票方式,斥资80亿美元收购主要卫星运营商铱星通信(Iridium Communications),交易预计于2027年中完成。铱星目前运营着由66颗活跃低轨卫星组成的星座网络,拥有约255万活跃用户,2024年营收达8.717亿美元。收购完成后,Rocket Lab计划借助其新型重型运载火箭Neutron及Lightning卫星平台,扩大铱星星座规模,开拓未被覆盖的市场并降低发射成本。
谷歌研究院开发的论文助手工具PAT,利用分阶段深度推理流水线自动审查学术论文,在真实错误检测任务上达到89.7%召回率,并已在STOC和ICML两大顶会完成超4700篇论文的真实部署。
音乐流媒体平台Tidal宣布,将于7月中旬启用自动化工具,对完全由AI生成的音乐添加"AI"标识,并移除具有欺诈性质的曲目。平台还将取消AI生成音乐的版税资格,仅向真人创作、演唱的原创音乐开放变现渠道。此外,Tidal明确将高频异常上传、干扰真实艺术家等行为列为欺诈活动。Deezer、Spotify等竞争对手此前已推出类似检测机制,流媒体行业正加速构建AI内容治理体系。
香港大学与武汉大学联合开发的EO-WM系统,将地球观测卫星图像预测重新定义为天气驱动的世界建模问题,通过把气象信号拆解为气候基线、天气异常和累积压力三层,显著提升了对极端干旱和热浪事件下植被退化的预测准确性。