面向开源软件的安全风险分析与防范_第1页
面向开源软件的安全风险分析与防范_第2页
面向开源软件的安全风险分析与防范_第3页
面向开源软件的安全风险分析与防范_第4页
面向开源软件的安全风险分析与防范_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

开源软件的发展越迅猛,其所带来的安全风险越不容忽视。然而现有针对开源软件安全风险的研究多从宏观管理侧展开,其对应的防范措施也不包含技术面防范措施,此外,针对开源软件在关键信息基础设施这一重要应用领域的风险防范研究也有待补充。结合开源软件自身特性和发展历程,综合开源软件在各个场景的应用来研究分析其对现代社会、技术行业的影响,总结梳理开源软件带来的安全风险并提出应对措施,特别是从监管侧出发,开展关键信息基础设施中开源软件的安全风险防范研究,并依靠现有开源平台给出技术侧风险防范研究思路,对保障我国开源软件安全、网络空间安全乃至国家安全具有重要意义。1开源软件风险分析随着开源软件应用范围逐渐扩大,特别是在关键信息基础设施中被广泛采用,开源软件所带来的安全风险也日益严峻,大致可分为以下几个方面。1.1供应链安全风险当下,开源软件供应链中的主要角色为受西方把控的商业科技巨头、开源基金会、开源社区及代码托管平台,其中商业科技巨头和开源基金会大多把持着开源社区及代码托管平台,在开源软件供应链中占据龙头地位。我国开源生态整体水平较弱,国内厂商出于成本、安全、质量、效率的综合考虑,大多直接参与到受国外主导,尤其是受美国主导的成熟开源生态中,但国外开源软件的监管受其主权影响往往会带来不可控的供应链安全风险。在开源基金会方面,Apache基金会明确表明遵循美国出口管制条例,Mozilla基金会则表示其司法管辖权归属美国加利福尼亚州,RISC-V基金会也声明其司法管辖权在美国特拉华州;在开源平台方面,GitHub、SourceForge及GoogleCode等代码托管平台均明确遵守美国出口管制条例,且司法管辖权在美国加利福尼亚州。受美国政府影响,2020年8月,Docker宣布被美国列入实体清单的个人和组织无法使用Docker旗下的服务,如DockerEE和DockerHub。综上,在全球开源软件供应链中自主性较差、依附性较强、处于弱势地位的国家,一旦供应链“命门”被别人掌握,随时可被断供制裁,造成重大安全风险。1.2开源软件源代码安全风险开源软件在广泛普及的同时,其源代码自身带来的安全风险影响也随之扩大,可总结为以下3个方面。1.2.1开源软件代码安全开发规范应用不足,安全漏洞数量居高不下开源软件具有开放、低成本、自由参与、广泛传播等特性,在开源软件的更新迭代过程中,不同时期参与的开发群体,其自身技术能力和安全意识参差不齐,加上开源平台或社区并不对开源代码的安全性进行审核,因此开源软件源代码往往更容易爆发漏洞。据奇安信《2021中国软件供应链安全分析报告》,奇安信代码安全实验室在2020年对2001个自主开发的软件源代码进行了安全检测,检测结果显示源代码的安全风险点密度约为10个/千行,高危风险点密度约为1个/千行;同期对1300多个开源软件源代码所进行的检测结果显示,开源软件整体风险点密度为15个/千行,高危风险点密度为1个/千行。在高危风险点密度大致相等的情况下,开源软件的源代码风险点密度更高,更容易爆发安全漏洞。1.2.2开源代码漏洞影响范围和危害难以估量由于开源软件在众多行业领域内广泛应用,不同开源软件形成你中有我、我中有你的复杂关系,导致开源软件的使用比想象中更广泛,一旦爆发漏洞,其造成的危害远超人们预期。有研究表明,一半以上的企业、政府机构、非营利组织等使用的开源组件包含漏洞。据奇安信报告,在其2020年调研的涉及公共、金融、电信、能源等重要行业的2557个软件中,均有开源软件的存在。因此,当某一个开源软件或组件爆发漏洞时,其覆盖面往往超过人们预期。事实上,前述2557个软件中,约90%的软件存在已知的开源软件漏洞,约80%的软件存在已知的高危漏洞,约70%的软件存在已知的超危漏洞。2014年4月,开源组件OpenSSL被发现存在心脏滴血漏洞(Heartbleed),且该漏洞至少从2012年5月所发布的版本就已经存在,攻击者可利用该漏洞获取可能包含了证书私钥、用户名、用户密码、用户邮箱等敏感信息的数据,在近两年的时间内,该漏洞造成的影响根本难以估量。2021年12月,开源组件ApacheLog4j2被发现存在远程代码执行高危漏洞(Log4Shell),由于ApacheLog4j2组件性能好、利用门槛低,该漏洞短时间内席卷全球,Steam、推特、亚马逊等多家公司或服务平台受到该漏洞影响。综上,一旦不能及时处理开源软件高危漏洞,将很有可能威胁到整个网络空间,甚至危害国家安全。1.2.3开源软件可随时演变为网络攻击武器由于众多开源软件使用者存在“开源等于安全”的错误理念,导致使用者在下载更新开源软件时,往往忽略开源软件自身存在的风险,同时维护者可随时修改代码,将其作为网络攻击媒介。开源Unix系统管理工具Webmin曾被发现存在远程代码执行高危漏洞,且该漏洞并非无意的编码错误,而是开发人员恶意修改代码所导致。同时,在最近的俄乌冲突中,Github平台node-ipc软件包被发现人为注入恶意代码,该恶意代码可根据IP地址定向删除俄罗斯地区用户的文件。1.3开源软件管理安全风险除供应链断供制裁风险、代码安全风险外,在开源软件全生存周期中,还存在着安全责任归属不明、用户安全能力和安全意识不足、末端关联资产排查不清等管理安全风险。1.3.1安全责任归属不明通常,开源社区或平台不承担开源软件的漏洞安全修复责任,而软件使用者同样不承担软件安全责任,仅仅负责维护其自身设备或应用,这使得开源软件安全责任归属不明。在不承担安全责任的基础上,大多数开源软件使用者很难对使用的开源软件进行高质量的安全审计,一旦开源软件存在漏洞,只能被动等待开源软件平台方或维护方主动发布修补通知,导致修复或加固工作滞后。此风险叠加断供制裁风险,将会对我国网络空间安全乃至国家安全造成更加严重的威胁。1.3.2用户安全能力和安全意识不足开源社区的松散式开发维护模式并不对代码的安全机制进行全面审核,使得开源软件能够较为容易地被人为置入后门或恶意程序,而对使用开源软件的用户而言,由于缺少安全风险信息跟踪能力,针对开源软件安全风险防范和修复存在明显的滞后性,严重威胁相关系统的安全运行。此外,开源软件的自由属性使得大多数活跃在开源社区或平台的用户往往注重编程能力培养,而忽视安全能力提升,叠加开源软件的主要使用厂商或贡献厂商往往倾向于忽视安全方面资源经费投入,使得开源软件安全风险防范能力无法有效提高。1.3.3末端关联资产排查不清目前,商业软件供应商通常在未做安全验证的情况下直接引用开源软件,并将其集成和开发至商业软件产品中,导致企业用户信息系统中被动地引入了相关组件。开源软件来源合法性和安全测试验证机制缺失,用户在应用相关产品时存在不可知、不可控的安全风险。在开源软件的开发和使用过程中,不同开源软件之间的复杂依赖关系使得绝大多数厂商无法准确梳理其自身的开源软件使用情况。一方面,软件开发者可能疏于管理,使得已存在漏洞的开源软件代码被整合至新版本软件;另一方面,使用者可能疏于统计,无法准确排查存在风险的开源软件在其设备资产中的具体部署情况。上述情况均会带来一定程度的风险隐患。2开源软件风险防范针对前文所总结的开源软件供应链安全、源代码安全、管理安全等安全风险,本文在政策面上提出打造开源网络安全生态、建设国家级开源平台和项目以发展促安全、面向关键信息基础设施开展开源软件网络安全专项整治等安全防范措施;在技术面上依托开源平台开展软件源代码分析,实现软件缺陷及漏洞预测。最终形成如图1所示的“政策+技术”双驱动开源软件网络安全防范体系。图1“政策+技术”双驱动开源软件网络安全防范体系2.1政策面风险防范措施2.1.1打造开源软件网络安全生态开源软件网络安全生态脱胎于开源软件生态,主要是为开源软件营造安全可靠的发展环境。在开源软件成长周期中,商业科技公司为充分利用开源软件带来的诸多优势,会围绕开源软件进行业务拓展,同时部分开源软件项目也是基于商业利益驱动,进而形成“商业+开源”的利益共同体,演化为各种开源软件生态。基于开源软件生态的成长历程,我国开源软件网络安全生态的构建需要3方面共同发力。一是发起成立全球知名的开源基金会。开源基金会是为开源软件发展提供日常的运营、管理及资金支持的非营利性组织,是生态的重要基石。同时,开源软件基金会为商业公司和开源软件开发者打造交流、合作的平台,自身掌握大量开源代码,为多个重要领域的应用软件提供服务。例如,国外著名的Apache基金会收录了Tomcat、Hadoop等知名开源项目,推动Web服务和大数据的发展,OpenStack基金会旗下的OpenStack项目则是目前应用最为广泛的云计算解决方案。目前我国已成立中国开源云联盟、开放原子开源基金会等组织,助力XuperChain、OpenHarmony等开源项目的发展,但抢占全球开源话语权,构建开源软件网络安全生态,尚需打造更加知名的基金会,并培育更多开源项目,以此奠定我国开源安全生态的基石。二是助力知名软件企业成长为开源行业龙头。据欧盟委员会发布的

The

2021

EUIndustrialResearchandDevelopmentScoreboard

统计,全球2020年研发投入排名前十的企业中,我国仅有华为一家上榜,而同期美国谷歌、微软、苹果、脸书、英特尔共5家公司位列前十。在对包含开源软件在内的研发投资总体规模上,我国大型科技企业对比国际知名科技巨头更是处于明显劣势。受此劣势影响,我国科技产业赖以生存的底层操作系统、数据库等核心软件,均严重依赖受国外主导的开源社区或商业科技公司。三是打造各方认可的开源安全文化。开源安全文化是我国开源软件网络安全生态长久发展的内在价值观及外在行动力的综合体现。其不仅依赖于开源开发群体具有较强的安全开发能力,也依赖于开源基金会、大型科技公司等共同营造开源安全开发氛围,包括开展企业安全管理、安全开发培训、代码安全检测、开源安全应用等实际行动,此外更需要社会各方在政策扶持、知识版权保护、标准完善等方面一同发力,助力开源安全文化发展。2.1.2建设国家级开源平台和项目以发展促安全国家级开源平台和项目的建设与全球知名开源基金会的成立同等重要,其目的都是全面推进开源软件产业化、规模化。2020年,开源中国联合国家工业信息安全发展研究中心等单位,华为、奇安信、浪潮等科技公司,北京理工大学、西南科技大学等高校,依托码云Gitee建设中国独立的开源托管平台。同时,基于华为打造的HarmonyOS系统,由开放原子开源基金会孵化及运营的OpenHarmony开源项目也已在Gitee平台上繁荣发展。目前OpenHarmony开发成员数235、仓库数401、贡献数2400、代码库复制数25600,已成为Gitee平台最有价值的开源项目之一。在此工作基础上,应当持续打造我国自主掌握的高质量开源托管平台,脱离对国外成熟开源平台的依赖,培育更多助力我国软件产业发展的核心开源软件项目,在平台侧和软件侧同时引领创新,有力遏制开源供应链断供制裁风险。2.1.3面向关键信息基础设施开展开源软件网络安全专项整治关键信息基础设施,是指公共通信和信息服务、能源、交通、水利、金融、公共服务、电子政务、国防科技工业等重要行业和领域的,以及其他一旦遭到破坏、丧失功能或者数据泄露,可能严重危害国家安全、国计民生、公共利益的重要网络设施、信息系统等。关键信息基础设施的保护是国家推进数字经济发展的重要保障,目前开源软件已渗透到各行各业的网络设施和信息系统中,基于关键信息基础设施的重要性,梳理开源软件在关键信息基础设施中的使用情况尤为迫切。面向关键信息基础设施开展开源软件网络安全专项整治需各部门协同发力,常态化开展整治工作,建立本部门、本行业、本领域关键信息基础设施开源软件资产清单,掌握开源软件供应链情况,定期开展开源软件应用安全培训及系统安全威胁检测,及时验证并修复漏洞。2.2技术面风险防范措施基于政策面建设国家级开源平台的措施,可通过同步在开源平台侧开展源代码静态分析,进而实施代码缺陷和漏洞预测,来实现在软件生命周期的初始阶段为开发者和使用者提供漏洞风险预警及排查参考。开展源代码静态分析并实施漏洞检测具有以下优点。一是源代码静态分析可用于代码中的函数单元,这使得某些较为明显的漏洞可在开发阶段被及时发现。二是检测速率高,能够检测代码数量大的软件。源代码静态分析不依赖人工,当前基于词语法分析、符号执行、模型检验、机器学习、深度学习等理论的长足发展,也使得源代码静态分析能力得到快速提高。2.2.1开展源代码静态分析技术基础针对开源代码开展静态分析以检测其存在的漏洞或其他风险隐患,主要基于两种技术。一种技术为不同代码间的特征比对,该技术的本质为用同一种特征提取手段分别提取目标代码Code_A的特征Ca与参考代码Code_R的特征Cr并进行对比,如果代码特征相同,则意味着代码内容一致,其风险点也一致。在进行特征比对时,比对结果的准确性依赖于代码特征提取及比对方法、代码特征库(参考代码库)的全面性和准确性两个方面。另一种技术为不同代码之间的依赖关系比对,该技术通常需要对完整代码而非截取代码片段进行分析,其主要基于比对不同代码中依赖的外部函数库或组件,如果目标代码Code_A引用了已知存在风险点的代码库或函数Code_B,则目标代码通常会存在相同的风险点。其中,为Code_A存在的风险点,为Code_B存在的风险点。在进行依赖关系比对时,比对结果的准确性依赖于对代码依赖的外部函数库或组件的识别能力、代码依赖的递归分析能力两个方面。2.2.2基于深度学习的开源代码静态分析目前,开源平台上源代码数据快速增长,使得基于机器学习和深度学习的静态分析技术快速发展,自动化对比特征提取识别技术愈发成熟。在基于机器学习的漏洞检测方面,率先利用机器学习方法实现了对敏感信息泄露漏洞的自动检测,则致力于寻找在跨项目中影响漏洞检测准确率的特征,其发现选用复杂度作为特征指标,比选取耦合度更能预测漏洞,同时提出了新的耦合度量——内嵌漏洞标题(IncludedVulnerableHeader,IVH)度量,使得漏洞检测准确率从60.9%提高到87.4%。在基于深度学习的漏洞检测方面,模型特征不能准确捕获程序的语义是影响预测准确率的重要原因,故其利用精确的图形表示程序执行流,并利用深度神经网络自动学习缺陷特征。Song等人

利用深度信任网络程序的抽象语法树中提取的令牌向量自动学习语义特征,并利用10个大型开源项目进行验证,结果表明与传统特征

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论