何为同源分析?
软件领域引用医学领域的DNA基因序列检测中的同源性分析。在软件领域,是指对软件中引用的构件是否来自于同一个构件发布源的代码分析和检测技术。
在目前开源文化日益盛行的今天,开源软件已经被大量应用到软件开发环节,提升了研发效率,但是由于对开源认识上的不全面,导致对开源软件的发布、管理、运用等存在着诸多问题,尤其是对软件系统安全带来了极大的风险。在引用开源组件的同时,也把组件中的安全漏洞或恶意后门带入到系统中,通过传统的测试工具和测试手段又无法检测,所以不管是作为企业自行维护的软件系统、发布的软件产品还是采购供应商的系统,或者说对于软件供应链的大多环节都带来了影响。
开源软件不等于是免费软件。使用不当,面临侵权诉讼风险,负面宣传、增加开发,增加支持成本。除此之外,使用开源组件面临的挑战有哪些呢?
- 如何选择正确的第三方库/组件
- 如何提升软件生产效率
- 如果开源软件纳入软件研发管理范畴,如何管控
例如:安卓(Android) 包含165个组件,83个外部程序。安卓项目对外宣称许可证使Apache 2.0子组件中包含19而不同的许可证,外部组件,例如Webkit采用互惠型许可证(GPLv2、LGPL)。非OSI批准的许可证也被使用,包括OpenSSL和Bzip2
如果对开源软件进行管控,则首先需要制定企业级开源软件使用规范,引入代码成分工具,对开发项目进行分析,识别开源组件引用情况,同时检测是否还有安全漏洞。为企业带来好处:
- 搜索应用程序中可以使用的构件
- 在不同应用程序中构建的使用和影响
- 使用经过授权的构件,发现未授权使用的构件
- 跟踪软件安全漏洞
- 提升代码的可见性
- 建立企业自身的代码库
- 提升系统长期维护能力
灏博(HoBOT)同源分析工具,是国内首个推向市场的针对开发软件进行分析和检测的企业级应用。
1、处理开源项目的“长尾效应”
2、先进的搜索引擎和模式匹配技术
3、持续扩展安全漏洞库和第三方库/组件
4、客户代码生成DMA,建立自有知识库
5、每日对代码配置库安全漏洞巡检,风险感知和预警
灏博(HoBOT)采用代码DNA技术,对千亿行代码建立DNA后,纳入HoBot知识库,也就是基准库。灏博能够对于一个代码文件或函数/方法生成DNA,产生的代码DNA具有唯一性。如果对第三库/开源组件部分修改,则可以通过DNA相似性比较分析,并分析修改对整个项目的影响。代码DNA不支持反向工程,代码DNA和源代码通过映射建立关联。通过比较代码配置库中的源代码与HoBot知识库的代码DNA对比,检查匹配组件、文件和代码片段,匹配后,检索出对应的安全漏洞。
开源软件代码在企业代码库中占有空间越来越大,且最关键的是成分未知,安全漏洞未知。作为软件生产者企业,应把关注开源组件中的成分和安全漏洞的管理放在首要位置。灏博(HoBOT)提供企业级的产品、服务及战略规划,帮助企业在商业竞争日益严重的软件企业促进开源软件的使用,对开源软件进行管控,提升开发效率的同时,保证研发的安全、可靠。
(完)