一、软件供应链安全
一个软件是由多个组件组成,涉及到软件供应商、软件开发人员、团队和其他公司的内部与外部系统。软件供应链指在软件开发中所涉及到的组件、开发流程、投入生产和最终软件产品分发的过程。软件供应链安全可以定义为软件生产的整个过程中如编码过程、工具、设备、供应商以及最终交付渠道等所共同面临的安全问题。
目前软件供应链由于开源和云原生时代的到来越来越趋于复杂化和多样化,软件供应链安全风险不断加剧。软件供应链已是网络空间攻防对抗的焦点,对关键基础设施和重要信息系统安全有着直接的影响。
随着软件技术的发展,软件已经成为现代社会不可或缺的一部分,软件的广泛应用也带来了前所未有的安全挑战。随着软件变得越来越复杂,确保其可靠性和安全性变得更加困难。无论是购买的软件、专有软件还是作为服务交付的软件,都无法避免漏洞问题,而开源软件更是如此。但开源的优势相较于传统开发模式更加突出,即更快的上市时间、更多的创新机会、更低的开发成本以及与全球开发人员社区更密切的联系。然而企业有时会忽略与开源使用相关的安全和风险管理挑战,其中包括开源软件使用不规范、软件交付渠道不可控等。引入开源软件虽然为敏捷开发带来极大便利,如众多的代码克隆可以极大提升软件开发速度;但是从另一方面来看,开源项目引用过程中缺乏对漏洞、恶意代码的检测、修复,代码复用产生的漏洞成为软件供应链的重大安全威胁。
在注重网络安全方面,我们也必须要顾全到软件的安全性。考虑到当前这种情况,库博CoBOT所提供的SAST、SCA工具能检测软件源码及开源组件中的漏洞,确保整个应用的安全性,提高软件的质量和可靠性,保证软件供应链安全。
二、什么是SAST
SAST,即静态应用程序安全测试(Static Application Security Testing),是一种测试方法,主要用于在软件开发期间检测应用程序源代码中的缺陷和漏洞。它通过对源代码或编译后的中间码进行扫描、检测和分析,查找代码中违反安全编码规则、语义缺陷、运行时缺陷以及安全漏洞。
SAST是一种白盒测试,可以在不执行应用程序的情况下,面向所有源码进行检测,发现编码规范问题、缺陷及安全漏洞。它的工作原理是基于高级算法和检测规则集来识别安全漏洞,如SQL注入、跨站点脚本(XSS)和缓冲区溢出等。通过在开发过程的不同阶段运行SAST测试,可以确保构建的应用程序从一开始就是安全的。SAST可以应用于软件生命周期的不同阶段,包括开发人员编码阶段、代码集成阶段、系统发布阶段和系统上线之后。
SAST广泛应用于各种软件开发项目中,特别是在对安全性要求较高的应用程序中,如Web应用程序、移动应用程序和嵌入式系统等。通过SAST,开发人员可以及早发现并修复安全漏洞,提高应用程序的安全性。
三、库博静态代码分析工具(CoBOT SAST)
库博静态代码分析工具(英文简称CoBOT SAST),是由北京大学联合北京北大软件工程股份有限公司研发的一款源代码检测工具,是应用多种国际先进代码分析、深度学习技术研发的源代码检测系统,将源代码检测融入企业的研发流程,实现了源代码编码规则检测、运行时缺陷检测、安全漏洞检测、度量统计、克隆检测、逆向架构图自动生成,并提供了检测器自主研发接口等功能,帮助组织快速构建源代码安全自主检测体系和能力。
CoBOT SAST支持C/C++、Java、Python、C#、Objective-C、Ruby、Cobol等20多种语言的检测;支持GJB 5369、GJB 8114、MISRA 2004/2008/2012/2023、CERT JAVA、GB/T 34943/34944/39412等检测标准;支持包括注入、资源泄露、缓冲区溢出等共一万多条检测规则。
CoBOT SAST可以在软件开发阶段就发现潜在的安全问题,从而提高软件供应链的安全性,减少在软件生命周期的后期阶段发现漏洞所带来的成本和风险。
2015年,CoBOT SAST通过CWE符合性认证,成为中国首家通过该认证的软件安全检测工具,打破了国外产品在软件缺陷检测和安全漏洞分析领域的垄断地位,推动了国内软件代码安全检测行业的发展。
图1 CoBOT SAST查看检测结果
图2 CoBOT SAST展示缺陷跟踪
四、什么是SCA
SCA,即软件成分分析(Software Composition Analysis),是一种用来识别分析某一个软件中所使用的组件与第三方库的来源、版本、许可证信息的技术。用于识别、跟踪和管理开源组件、库和依赖项在软件应用程序中的使用情况,这些组件和库可能来源于开源社区、商业供应商或是企业自行开发,其存在很多潜在的安全合规问题。
SCA工具通过扫描代码库,检测项目中所使用的所有开源组件,并生成一个详细的清单或“物料清单”(Bill of Materials,BOM),列出所有组件及其版本、许可证和已知的安全漏洞等信息。
SCA工具在原理上首先分析软件的代码和依赖关系,来确定其中包含的组件和第三方库信息。然后,将这些组件和库的信息与已知的漏洞、安全威胁和许可证条款进行比较,识别任何潜在的安全或合规问题,使用户可以更好地了解他们使用的软件中存在的潜在漏洞和风险,从而采取相应的措施来保护数据安全和合规性。
五、库博软件成分分析与同源漏洞检测工具(CoBOT SCA)
库博软件成分分析与同源漏洞检测工具(英文简称CoBOT SCA),是基于代码大数据、相似哈希等技术,研发的新一代代码同源分析系统,将代码第三方库检测融入企业的研发流程,实现了软件成分分析、自主研发率分析、两两对比分析、成分中的已知漏洞分析及评估、许可证分析、漏洞范围影响分析等功能,帮助组织快速构建代码安全保障体系。
CoBOT SCA采集和分析了来自GitHub、SourceForge、Google Code等主流开源网站百万个以上的开源项目,千万个以上的版本,百亿行以上的代码;包含CVE、CNVD、CNNVD等著名漏洞库,及百个著名项目私有漏洞库中的百万个漏洞,同时支持80种以上许可证分析。
CoBOT SCA是确保软件供应链安全的重要工具,可以帮助开发团队管理第三方依赖关系,识别和处理潜在的安全问题,提高整体软件安全性,并维护供应链的透明性和稳定性。
2019年,CoBOT SCA正式对外发布。该工具首次打破国外工具在中国市场的长期垄断,为软件企业和组织提供软件成分分析和安全漏洞检测。
图3 CoBOT SCA查看项目组件
图4 CoBOT SCA查看项目漏洞