摘要:
克隆技术已在软件代码溯源分析领域得到广泛应用,而轩宇软件成分分析系统基于溯源分析和同源分析技术,通过先进的特征向量提取、相似性匹配、高效检索引擎等多项技术,帮助企业高效识别代码来源、评估自主可控率,并优化代码复用和变更情况。该系统具备强大的知识库支持,能够快速定位潜在安全漏洞和许可合规问题,为企业提供全面的软件成分管理和安全保障方案。
【研究背景】
在过去十年中,开源软件已成为现代软件开发的基石。根据Gartner的统计,到2024年,超过90%的商业软件项目将包含开源代码。然而,随着开源软件的普及,合规与安全挑战也愈加严峻。根据国家信息安全漏洞库(CNNVD)的数据显示,仅2024年上半年就新增了20,436个安全漏洞,其中6月份的新增漏洞数为3,075个。开源软件的广泛应用虽然推动了技术创新,但也引发了安全漏洞、恶意代码、以及合规性问题的日益增加。
《2023年开源安全与风险分析报告》(OSSRA)指出,在被分析的1,067个代码库中,有84%包含至少一个已知的开源漏洞,其中74%的代码库存在高风险漏洞。与2022年的48%相比,这一比例显著增加。开发人员在每4次下载开源软件时,就可能引入一个安全漏洞隐患。此外,企业不仅面临着引入开源代码所带来的风险,还需应对由于代码复用、新代码开发而引发的安全漏洞或业务缺陷问题。因此,企业需要一套综合的解决方案,以应对开源软件带来的0day漏洞、Nday漏洞、恶意后门、木马及代码投毒等问题,同时有效管理和复用私有软件资产。
【研究现状】
轩宇高效软件成分分析系统(SunwiseSCA),基于航天领域二十多年的软件测试和测评鉴定经验,针对工业软件自主可控测评和军用软件鉴定测评中的需求,开发出一套全面的SCA(Software Composition Analysis)解决方案。该系统不仅在源代码溯源分析、安全缺陷检测、许可合规分析、自主可控分析方面具备卓越能力,还支持组织级可信软件资产库的建立、复用分析和变更分析,成为具备综合检测和评测能力的企业级产品。SunwiseSCA系统完全自主可控,兼容国产软硬件,支持本地离线部署和外场快速检测,能够在不泄露被测源码的前提下提取代码特征进行检测。
溯源分析:深度追踪代码来源和演变历史
SunwiseSCA的溯源分析功能通过追踪代码的来源、演变历史及成分,保障软件的合规性和安全性。该功能不仅能够识别代码库中开源组件和复用软件的来源,还通过分析项目和组件的元数据(如版本信息、作者信息、提交历史、缺陷版本、修复版本)来理解其演变过程。这种深度分析有助于企业在合规审计、自主研发评估及安全漏洞检测中获取全面的视图。
SunwiseSCA拥有庞大的知识库,支持私有库,并允许用户建立可信资产库。系统通过项目级、组件级、文件级、函数级和代码片段级五个维度建立特征向量库。在特征向量提取过程中,SunwiseSCA利用卷积神经网络(CNN)的卷积层和池化层,提取64位固定长度的特征向量,并构建了上千万的项目和组件、数亿级别的文件以及上百亿级别的函数和代码片段特征向量信息库。通过Simhash技术的高效性和鲁棒性,系统能够快速进行相似性搜索,通过汉明距离判断项目、组件、文件、函数和代码片段之间的相似性,极大地减少了检索次数,将分析复杂度从O(n^2)降低到O(n)。
复用分析:优化代码的复用效率
SunwiseSCA的复用分析功能是业界独有的模块,主要依赖同源分析技术。该功能帮助企业快速建立私有资产库,识别和评估代码的复用情况。通过对私有资产库的全面扫描,系统能够识别被复用的项目、文件和函数,分析其复用频率及代码与原始项目的差异性,并提供优化建议。复用分析为企业提供自动化、可视化、可量化的手段,从而优化研发资源、提高生产效率。
在代码克隆检测技术中,SunwiseSCA结合2型克隆检测(语法上相同但标识符或常量不同)来满足企业对溯源精度的要求。对于企业内部的代码复用,1型克隆检测(完全相同的代码片段)能够更好地帮助企业高效地分析代码复用情况。
SunwiseSCA通过聚变分析和相似性匹配技术,将相似代码片段进行聚类,识别代码来源。此外,API同源分析及通信协议识别增强了这一过程,通过识别项目和组件使用的API、库、通信协议及传输方式,系统能够精确定位最相似的项目和组件,并进一步分析其潜在的安全风险和许可合规问题。这些功能帮助企业建立可信、可靠的软件资产库。
变更分析:追踪代码变更与演化
在SunwiseSCA中,变更分析功能与溯源分析、复用分析紧密相连,通过追踪代码的变更路径,识别关键的变更点,帮助企业有效管理软件资产库,提升软件质量和可维护性。SunwiseSCA通过逐层分析项目、文件和代码片段的变化历史,识别出哪些变更可能引入了安全漏洞或业务缺陷,进而为企业提供最佳的修复方案。
【系统简介】
SunwiseSCA软件成分分析工具是北京轩宇信息技术有限公司自主研发的一款软件溯源分析和安全缺陷检测工具,主要面向工业软件自主可控测评和军用软件鉴定测评中对软件源代码成分识别和自主可控率评估的需求,突破了精确高效的源代码特征提取技术、海量代码特征快速匹配技术等关键技术推向市场的新一代软件成分分析工具产品。该产品具备软件源代码溯源分析、安全缺陷分析、许可证合规分析、自主可控分析之外,同时支持建立组织级可信软件资产库、支持复用分析和变更分析等具有综合检测、评测能力的企业级产品。本产品完全自主可控,兼容国产软硬件,支持本地离线部署和外场快速部署、快速检测,支持在不泄露被测源码情况下提取代码特征指纹进行检测。利用本产品可以帮助用户快速透明的掌握被检测项目的软件成分和来源,分析源码的自主可控情况和软件资产复用情况,定位和识别安全漏洞,可作为军工软件研制单位、第三方软件测评机构和安全测评机构的核心利器。
软件成分分析产品SunwiseSCA
SunwiseSCA登录界面
【产品特性与优势】
1、精确高效的源代码溯源分析
SunwiseSCA提供精确高效的软件源代码溯源分析,支持项目级、文件级、代码片段级等全维度的溯源检测,精确给出各个层级的代码溯源分析详情清单,并定位到溯源文件的来源和位置。通过精确高效的源代码特征提取技术和多级粒度的代码相似度对比技术,片段级检测的精度可达到10行;通过海量代码特征快速匹配技术检测速度可达每分钟检测超过1万行。
源代码溯源结果详情
精确定位溯源代码
2、同时支持安全漏洞和本地私有库缺陷的检测分析
SunwiseSCA提供公开的安全漏洞分析和本地私有库领域缺陷分析。SunwiseSCA根据代码溯源分析的结果,依据第三方组件信息快速匹配安全漏洞库,查询到这些组件的已知安全漏洞,并将安全漏洞的详细信息展示给用户,并给出详尽的解决方案。同时,SunwiseSCA还允许用户建立私有软件资产的领域知识库和本领域的缺陷库,如果用户复用了本地私有库中存在缺陷的软件资产,工具将举一反三,自动识别并提醒用户。
安全漏洞分析
3、符合检测标准的自主可控评估分析
SunwiseSCA提供对软件源码自研率分析和标准的符合性检测。源码自研率分析支持项目级、文件级和代码行数级三种粒度的自研率。标准的符合性检测依据工业软件自主可控测评和军用软件鉴定测评要求,可以给出源码自研率满足自主可控的等级,帮助用户提高源代码的自主可控等级。同时可以设置项目自研率门限阈值,对于不满足自研率阈值要求的软件进行自动预警。
4、组织级软件资产复用分析
SunwiseSCA支持建立本地私有库,可以对本单位的所有软件资产进行统一管理。通过构建私有库中软件资产依赖关系、软件资产复用、软件版本演化等的知识图谱,对被检测软件资产进行代码溯源分析,同时对于复用代码中潜在缺陷/漏洞进行影响分析,以降低存在风险软件资产的复用,提升高可用、高可信、高可靠软件资产的复用率。
5、无人值守的自动化检测
SunwiseSCA通过代码入库自动触发、编程语言自动识别、多任务调度管理、检测报告自动生成等多种自动化手段,无需人工干预,实现从代码入库到检测结果生成全链条的自动化运行检测。
可视化的自动检测结果概览
【应用场景】
1、第三方软件测评、安全测评
适用场景
软件第三方测评机构对送测软件合规性、标准符合性、安全性、自主可控等方面的安全测评。
场景需求
(1)第三方测评机构对送测软件进行合规性检测、标准符合性检测和自主可控检测时,需要客观、全面、精确的发现送测软件中不同来源的成分、所占比例、潜在风险及开源许可证使用情况;
(2)送测软件类型繁杂、规模庞大,通常需要在较短时间内对大量软件进行自动检测;
(3)可以快速出具详尽的检测报告,减少人工编写报告的工作量。
2、军工、工业软件研制单位
适用场景
军工、工业软件研制单位对软件质量控制、软件供应链安全治理和软件资产分析。
场景需求
(1)为了提高软件研制效率,使用了大量的开源代码组件或复用了私有资产库中历史资产,但对引入的比例,安全漏洞缺陷等风险不清晰;
(2)对复用或引入的代码或组件进行透明化管理,实现对企业软件资产信息的全面收集与管理,实现企业级、部门级、及项目级的软件资产分布可视化;
(3)减少开发人员与安全人员的风险排查时间成本,加快开发进程。
【结语】
SunwiseSCA将溯源分析、复用分析和变更分析有机结合,为企业提供了全面的软件管理解决方案。这不仅帮助企业应对开源代码引入的安全和合规挑战,还通过优化代码复用和变更管理,提高软件开发效率和质量。SunwiseSCA是企业在现代软件开发中不可或缺的利器。(结束)