​开源产业生态繁荣发展背后 开源代码也为攻击者打开新的攻击窗口

首页 / 业界 / 资讯 /  正文
作者:藏青
来源:安全419
发布于:2022-02-16
安全419注意到,2月14日,国家工业信息安全发展研究中心发布了一份《2021中国开源发展年度观察》报告。
 
报告指出,在《十四五规划和2035年远景目标纲要》、“十四五”软件和信息技术服务业发展规划等政策环境的保障下,开源技术在各行业各领域得到广泛应用,在推动产业数字化转型方面发挥重要作用,行业开源软件治理体系逐步优化,产业界形成开源生态推进合力,2021年是我国开源生态全局推进、多点开发的关键一年。
 
 
开源引领软件和信息技术迭代创新
 
报告提到,随着制造强国、网络强国、数字中国等国家信息化战略的深入推进,软件对经济社会高质量发展的支撑引领作用日益凸显,我国开源软件迎来快速发展的重大机遇期。国内软件企业和开发者实现了从开源使用者到参与者、贡献者的转变,初步形成了开源基金会、开源项目、开源社区、开源托管平台、开发者等要素齐备的开源产业生态,在全球开源体系中影响力日益显著,我国开源开发者的社区贡献度增速已位居全球首位,已成为推动国内开源社区加速发展的重要力量者。
 
此外,随着我国加快数字化转型的战略布局,政府、医疗、电信、能源、交通物流、制造业在内的众多传统行业也正在不断拥抱开源,开源技术与数字基础设施深入融合,开源主导基础软件研发创新,开源协作模式在大数据、云计算、人工智能、区块链、物联网等领域加速技术迭代创新,云原生开源生态也取得积极进展,国内深度学习框架技术正在加快追赶世界先进水平。

 
开源产业繁荣发展背后 安全风险也愈发严峻
 
但在一片欣欣向荣背后我们也注意到,安全问题已经成为了开源领域关注的重点。作为信息安全生态的重要组成部分,事实上开源一直是软件安全之痛。开源产业的繁荣是否会让软件供应链安全问题更加复杂?企业开发人员在享受便利性和高效率的同时,如何有效降低安全风险?为此,围绕这些问题,安全419采访了开发安全厂商——酷德啄木鸟,邀请他们从开发安全的角度进行了简单解读。
 
酷德啄木鸟总经理杨临庆在采访时告诉安全419,我国在软件基础方面还比较薄弱,当前常见的一些开发语言、操作系统、开发环境等等软件的底层技术大多都掌握在国外手中,如果想要突破技术‘卡脖子’的问题,实现弯道超车,那么就需要借助开源的力量,来进一步提高国家整体的软件开发速度和水平,这也是国家层面上鼓励开源发展的背景。
 
但随着开源组件的不断增多,大量的第三方开源组件被放到软件中,导致软件供应链变得越来越复杂,安全风险也前所未有的严峻。
 
杨临庆表示,一方面,虽然开源项目的知识产权问题正在得到越来越多开发者的关注和重视,但这方面仍然存在部分认知问题。“此前国内对于开源的认知是只要一提到开源第一时间就会想到免费,但实际并非如此。很多开源项目的作者都会通过开源协议来保护自己的软件产权,比如他允许开发者个人免费使用以开发软件,但假如将其用于商业产品中,可能就会构成侵权,无意中为企业带来安全合规方面的风险。”
 
另一方面,开源供应链的安全风险也不可小觑。他表示,由于开源软件之间的关联依赖关系非常复杂,一旦某个开源的框架本身存在代码缺陷或其他未知的安全漏洞,那么将会导致所有与之存在关联依赖关系的其他软件系统出现同样的漏洞,漏洞的攻击面将会由点及面呈现出爆炸式的放大效果,不久前爆发的Apache开源项目Log4j2远程代码执行漏洞事件就已经为人们敲响了警钟。
 

开源代码为攻击者打开新的攻击窗口
 
杨临庆指出,除了高危漏洞外,软件供应链攻击更值得开发者引起重视。“开源固然让开发者带来了便利,但也同样让网络攻击更加便捷和高效。当前有一些高水平的黑客组织,包括一些境外的APT组织,他们会潜伏到开源的社区里面,去寻找一些应用度广泛的开源框架,在其基础上研究漏洞,同时也植入后门和漏洞,再将其包装成为一个新版本发布出去,以借机攻击政府单位、企业的网络。”
 
在开源社区中,社区用户会不断的为开源世界做贡献,在一个固定的框架基础上进行维护,并自发的推出新功能。因此,在很多时候,开发者会更加关注开源框架的实际功能和应用效果,忽视了隐藏在其中的代码缺陷和后门,进而为自身所在单位引入了危险,也为攻击者打开了攻击的窗口。
 
“像之前爆发的SolarWinds供应链攻击事件就是一个典型的例子,如果开发者不小心引入了带有恶意代码和后门的开源框架,那么攻击者就可以伺机潜伏下来,并有预谋的发起定向攻击,这样带来的危害性远比常见的漏洞更大。”
 
多管齐下 为青年开源开发者赋予安全能力
 
《报告》关于开源开发者画像特征部分提到,我国开源开发者主要为从事互联网行业,接触开源3-5年的青年群体,那么相比一些资深开发人员来说,是否这部分青年开发人员会在安全意识方面有所欠缺?
 
杨临庆解释到,开发行业中确实存在从业人员年轻化、人员流动快等特点,不同的开发人员表在安全经验和能力方面存在差异。从开发安全的角度来看,软件之所以会出现漏洞,大多是因为开发者在编码过程中因工期紧张或是经验不足等问题,往往只考虑了功能需求,而忽略了安全的编码规范,或是引入了一些不合适的框架等等,最终构成了一些代码缺陷。
 
“针对这些问题,站在一个开发安全厂商的角度,当前业内厂商已经能够在开发安全方面为企业和组织提供较为完善的解决方案和安全工具,来帮助他们整体提升安全开发的水平,提前规避掉可能出现的风险和漏洞。”他补充道。
 
在他看来,企业和单位可以从安全开发流程建设和安全意识教育两方面入手,来推动安全开发的更好落地。首先是通过结合具体的安全工具来建立一套代码检测的流程,在代码开发的过程中,将IAST/SAST/DAST、SCA等安全相关的工作内容嵌入开发流程的各个节点,在软件开发到一定程度的时候,只有通过了相关的安全检测,解决了相应的安全问题后才允许进入到下一环节,最终通过这样一种安全的制度和流程,让开发人员承担起相应的安全责任,以消除潜在的安全风险。
 
其次是加强安全意识教育,软件安全与开发人员的安全意识密切相关,企业组织需要通过人员培训等方式帮助开发人员建立起对安全的认知和重视,帮助他们建立正确的安全防范意识。
 
杨临庆表示,随着开源产业的蓬勃发展,未来还会有更多的开源项目、开源框架产生,其中依旧可能隐藏着未知的漏洞和风险,每个开发人员也都需要补足安全能力,才能对风险进行更好的管控。