本文分享自天翼云开发者社区《WEB系统安全之开源软件风险使用评估》,作者:Coding
中国信息通信研究院(China Academy of Information and Communications Technology,以下简称“中国信通院”)在2021年举办的“ OSCAR 开源产业大会”上,发布了《开源生态白皮书》,在其中虽然没有专门阐述开源软件的风险如何防范,但是在其中说明了开源软件的风险和挑战,以及我国在开源治理上的经验。
在对WEB系统的开源软件风险进行评估时,需要参考白皮书中的开源治理要求。不管是直接使用开源软件,或者购买使用了开源技术的商业软件都需要去考虑开源技术带来的风险,但是这两种情况规避风险的责任主体不同。
在风险评估时,按照违约风险、知识产权风险、技术锁定风险、数据安全风险几个方面进行分析。
1.违约风险
在WEB系统使用开源软件时,如果没有遵守开源软件的法律要求,可能会面临法律诉讼、产品召回、声誉损失等风险。
2.知识产权风险
开源软件提倡的开源精神内核是公开、自由、创新,为产业发展注入了巨大的活力。但是WEB系统在使用时如果不了解知识产品和开源软件的开源许可证声明内容,可能会侵犯开源软件权利人的知识产权,会给WEB系统所属的企业或者个人带来经济与声誉损失。
而且多数的开源软件许可证中都存在免责条款,声明作者不提供任何担保责任。如果开源软件依赖了第三方私人技术,WEB系统因为使用了私人技术遭受诉讼,开源软件作者不承担任何责任。
3.技术锁定风险
一些开源软件可能存在技术锁定问题,如果WEB系统过于依赖该软件,可能导致后续无法剥离,对业务的发展产生不利影响。
4.数据安全风险
开源软件存在的安全缺陷相比其它软件多,当前很多企业在使用时没有完全按照规范,甚至可能无法列出使用的开源软件清单。类似系统信息泄露、密码管理、资源注入、跨站请求伪造、跨站脚本、HTTP 消息头注入、SQL 注入、越界访问、命令注入、内存泄漏等安全缺陷都有可能被引入到WEB系统中。
为了降低风险,更好地使用开源软件,需要按照以下方式对上述的风险进行规避。
1.规避违约风险
严格遵守开源软件许可证的要求,避免违规使用。
2.规避知识产权风险
正确处理知识产权问题,评估开源软件依赖的技术,加强知识产权意识。
3.规避技术锁定风险
避免过于依赖单个开源软件,在选取和使用时要考虑尽可能使用多个开源软件,避免技术锁定。
4.规避数据安全风险
定期检查WEB系统以及系统依赖的开源软件是否存在安全漏洞,及时修复漏洞。