甲方安全之第三方组件问题概览

文摘   科学   2024-11-16 17:47   四川  

基本介绍

第三方组件分为开源组件和闭源组件,开源组件(Open-Source Software)是由各个公司、软件开发者基于各种协议公布的源代码,只要遵守对应的协议就可以使用。闭源组件一般都是三方的商业公司开发提供,方便研发人员实现业务功能而进行统一定制化的,包括依赖库、SDK等,大多数是需要付费购买并且没有源代码。企业在使用第三方组件是需要从安全维度法律许可维度进行考量

安全风险

研发在项目开发过程中引入使用三方组件可以提高研发效率、缩短项目上线的时间并且有效的降低了开发的成本,如果项目中使用的三方组件依赖库、SDK本身就存在安全风险漏洞,那么便会严重威胁到业务安全,而这也是在OWASP TOP 10列表中反复强调的"使用含有已知漏洞的组件",关于三方组件的安全风险检测主要从以下两个维度展开

(1) 检测制度

建立第三方组件引入检测制度规范来对项目中引入的三方组件进行卡点,例如:项目新业务功能上线时如果涉及到新的第三方组件的引入则需要对第三方组件的安全风险进行风险评估,如果存在关联的安全漏洞则强制要求对第三方组件进行安全升级,直到最后不存在安全风险时再允许上线

(2) 检测方式

第三方组件的检测可以通过商用工具(例如:JFrog)或者开源工具(例如:Dependency Track)进行检测

https://dependencytrack.org/

协议许可

开源许可证时复合开源定义的许可证,它们允许软件自由使用、修改和共享,开源许可证时软件的作者和使用者之间具有法律约束力的合同,开源许可证的引入会伴随着许可证合规性或兼容性风险,从而导致产生知识产权风险

GPL协议

GNU通用公共许可证(GNU General Public License,GPL)是一种常见的开源软件许可证,它由自由软件基金会(Free Software Foundation)创建和维护,GPL协议要求任何使用、复制、修改、分发受GPL保护的软件必须遵循GPL的规定——必须公开源代码并且允许任何人自由使用、复制、修改和分发该软件,GPL适用于许多知名的开源项目,例如:Linux和GCC

AGPL协议

GNU Affero通用公共许可证(GNU Affero General Public License,AGPL)是一种常见的开源软件许可证,它是GPL的一个衍生版本,AGPL协议要求任何使用、复制、修改、分发受GPL保护的软件必须公开源代码,AGPL适用于SaaS(软件即服务)提供商,因为他们需要在运行软件的同时提供源代码

LGPL协议

GNU较宽松公共许可证(GNU Lesser General Public License,简写为LGPL)是一种开源软件许可证,它主要设计用于库(library)和组件,LGPL允许商业软件使用受LGPL保护的库函数而不需要公开商业软件的源代码

ZLIB/LIBPNG

ZLIB/LIBPNG许可证是一种针对压缩库和图像处理库的开源许可证,它要求任何使用、复制、修改或分发受ZLIB/LIBPNG保护的代码必须遵循一定的要求——保留版权声明和许可证文本,ZLIB/LIBPNG许可证适用于许多开源项目,例如:libpng和zlib

MIT License

MIT许可证(Massachusetts Institute of Technology License)是一种非常流行的开源软件许可证,它有麻省理工学院制定,MIT许可证允许用户自由使用、复制、修改、合并、出版和分发该软件及其副本,在分发软件或其衍生作品时必须包含原始的版权声明和许可证文本,MIT许可证非常适合商业用途,允许开发者将其作为闭源软件的一部分进行销售或分发而无需公开源码

Apache License

Apache许可证是一种广泛使用的开源软件许可证,它由Apache软件基金会开发和维护,Apache许可证允许您在商业产品中自由使用、修改和再分发受许可的软件,无需支付费用或遵守其他限制,根据Apache许可证您可以对受许可软件进行修改并将这些修改后的代码私有化而不需要公开源代码,这使得Apache许可的软件更具灵活性

参考链接

https://choosealicense.rustwiki.org/appendix/

https://www.ruanyifeng.com/blog/2011/05/how_to_choose_free_software_licenses.html


 推 荐 阅 读

    


横向移动之RDP&Desktop Session Hija

七芒星实验室
未知攻,焉知防,以攻促防,共筑安全!
 最新文章