目录
什么是开源代码检测?
开源软件是提高生产力和软件质量的关键因素,正确的使用开源软件,可以提高产品的竞争力,但是在产品功能不断更新、开发周期不断缩短的压力下,很多公司难以有效的对代码中的开源软件进行有效的识别和管理。而失去管理的开源软件可能会带来多种风险。最主要的风险有以下两种:
风险一:许可证违规
风险二:安全漏洞
想避免上述风险,就需要进行开源代码检测。清楚的了解您所使用的开源软件,是对开源软件进行管理的前提。了解您所使用的开源软件有两层含义:一是了解您的软件代码中都用到了哪些开源代码;二是了解这些开源代码本身的情况及其可能造成的风险。
有哪些开源代码检测工具?
Black Duck 和 FOSSID
Black Duck
最早进行开源代码检测工具开发的公司,其产品包括Protex 和HUB,Protex 强调检测的精度和准确性,而HUB 强调检测的速度和易用性。
HUB 是Black Duck 的一款简单易用的开源代码检测工具,为用户提供一种粗粒度(开源组件级别)的开源代码检测能力,但其速度更快,使用简便,对于代码检测精度需求不高的用户较为适合,而且HUB 除了可以检测开源合规性之外,还能够发现用户使用的开源软件存在的漏洞。
HUB 依托于Black Duck 的开源知识库(KB)和美国国家漏洞数据库(NVD),能够快速的检测出用户代码库中包含的开源软件。可用于:
• 扫描代码,以识别并清点盘存使用 中的特定开放源码
• 自动识别在使用中的开放源码的已知漏洞,并监控对您造成影响的新漏洞
• 评估开源许可证(License)的冲突
HUB 的部署方式为云端部署,开源知识库部署于云端,由Black Duck 公司的专业团队维护,用户测只需安装HUB 的扫描服务器,用户本地的扫描服务器将用户代码的特征值(Hash 值)上传到云端的服务器,云端服务器否则将用户代码与开源代码进行比对,并将匹配结果传回用户测的扫描服务器进行分析和展示。HUB 相比Protex,提供更丰富的API ,便于与其它系统进行集成。
FOSSID
是由瑞典FOSSID 公司开发的一款开源代码检测和管理工具,能够全面、准确、高效的发现用户代码库中的开源代码及其风险。
相关名字缩写释义
缩写 | 全称 | 含义 |
NVD | 美国国家漏洞数据库 | |
CNNVD | 国家信息安全漏洞库 | |
CVE | Common Vulnerabilities & Exposures | 通用漏洞和风险 |
KB | KnowledgeBase | 开源知识库 |
CVE
通用漏洞和风险,是国际著名的安全漏洞库,也是对已知漏洞和安全缺陷的标准化名称的列表,它是一个由企业界、政府界和学术界综合参与的国际性组织,采取一种非盈利的组织形式,其使命是为了能更加快速而有效地鉴别、发现和修复软件产品的安全漏洞。
NVD中CVE信息解读,一个完整的CVE信息包含六部分:元数据,漏洞影响软件信息,漏洞问题类型,参考和漏洞祭扫,配置信息,漏洞影响和评分。CVE安全漏洞库构建如下图。
KnowledgeBase
- 包含超过1000亿行开源源代码
- 囊括1,000,000+ 开源软件项目,包括所有版本
- 表述超过2,400 种独一无二的许可证(License)
- 收集了超过70,000 个安全漏洞
- 数据来自6,500+ 个站点
- 由专业团队负责维护,持续的更新