产品固件里面具体使用了哪些开源组件,每一款组件又分别对应着什么样的许可证,以及目前有没有踩到许可证合规方面的风险,这些事情如果仅仅依赖研发人员用手工的方式去逐一整理,是很难保证没有遗漏的。Cybellum这个平台,就能够把固件二进制文件、它对应的源代码,还有来自外部的SBOM信息结合起来,自动去识别软件的组成情况,并且把许可证信息也提取出来。同时,平台还能够让预设好的许可证策略,跟软件分析后得到的结果进行匹配,这样对于发现开源软件里存在的许可证缺口,会很有帮助。
一、Cybellum许可证清单怎么查看
要查看许可证清单,必须严格按照产品版本来区分,因为一个产品的开发版本、量产版本和售后维护版本,它们内部包含的组件很可能是不一样的,所以千万不要把好几个固件包的分析结果混在一起看。
1、先进入目标产品版本
首先,我们得在平台里打开对应的那个产品对象,然后确认好它的具体型号、固件的版本号、程序分支,以及扫描的时间点。Cybellum原本就支持根据产品版本和分支,来对SBOM进行管理,并且能够把来自不同数据源的信息进行合并、去除重复、修正错误,再做一次校验。
2、查看许可证管理区域
然后,我们再找到跟软件许可证管理相关的那一页,在这里,就能看到当前这个版本已经被识别出来的许可证有哪些,跟它们相关联的组件是哪些,还有策略状态是怎样的。因为平台的不同版本,菜单的名称可能会有细微差别,所以在实际动手操作的时候,还是要以你自己当前部署的界面为准。Cybellum的许可证管理功能,会基于SBOM和产品系统的数据,替我们找出许可证上的缺口。
3、按组件筛选结果
接下来,我们可以通过筛选功能,挨个去查看组件的名称、版本号、许可证类型、数据来源,以及它来自哪个产品。要是碰到有重名的组件,可不能仅仅靠一个名字就下结论,还得去看清楚它的版本和实际文件所存放的位置。通常,二进制分析、源代码分析,还有外部提供的SBOM,这几条途径可能会同时提供数据,而平台则会将多个来源的信息合并到产品的资产清单里面去。
4、导出复核清单
当我们需要把清单拿去给他人评审的时候,建议是把当前这个版本的许可证清单导出来,并且记得在文件里标明产品的版本、SBOM的版本、扫描的日期,还有使用的策略版本。这个清单里,不应该只记录许可证的名称,还要包括对应的组件和当前的处理状态,这样以后回头去查看时,才有完整的脉络。
二、Cybellum许可证清单异常怎么处理
许可证清单里的异常,大多表现为许可证信息缺失、同一个组件多次出现、版本辨识有误、与策略相冲突,或者是供应商给的SBOM资料不够完整。在开始处理之前,一般应该先去检查一下数据是从哪儿来的,然后再判断它到底构不构成真实的合规风险。
1、许可证字段为空
如果看到许可证那一栏是空白的,就要先弄清楚,这个组件是通过二进制分析找到的,还是源代码扫描出来的,又或者是来自供应商的SBOM。假如组件的名称已经被认出来了,可许可证却空缺着,这时就得把供应商那边的补充说明、源代码里的声明文件,或者是组件本身的元数据补上,补完之后,还要把SBOM重新校验一次。
2、同一组件重复出现
有时候,明明是同一个组件,却因为名称的拼写方式、版本号的格式,或者来源渠道不一样,结果被系统当成多条不同的记录给列了出来。这时候,我们就需要进入SBOM管理区域,去仔细核对它的包名、版本、文件路径和供应商信息,然后再决定是不是需要将它们合并,或者把多余的部分去掉。好在Cybellum本身就具备了合并、去重、自动修正以及验证SBOM的能力。
3、许可证策略提示冲突
平台可以让用户选择使用内置的许可证策略,也支持按照企业自己的规定去定制策略。一旦系统提示说存在冲突,我们首先要检查的,是这个组件的许可证是不是真的落入了被限制的范围,然后再去确认产品后续的用途、分发的方式,以及法务部门的具体要求。千万不要只为了把那个冲突提示给消掉,就轻易地放宽了策略。
4、供应商资料和扫描结果不一致
还有一种情况,就是供应商SBOM里记录的版本号,跟固件分析出来实际识别的版本号不一样。解决的办法,是返回到交付的原始包、文件的哈希校验值,还有构建记录那里去核对清楚。如果有必要,可以让供应商再补发一份说明过来,而不要随意地将其中的一条记录直接覆盖掉,否则会把问题掩盖掉。
三、Cybellum许可证清单怎么持续维护
对于许可证清单的维护,可不是把它导出来一次就算完事了。之后只要软件组件更新了、供应商换了,或者固件进行了升级,每一次都得重新把变化的差异给比对一遍。
1、每个版本保留快照
在每一次新版本发布以前,都应该把当时的这份许可证清单、SBOM的版本号,以及策略校验的结果,当作一份快照给保存起来。等到新版本成功上线之后,再拿它跟上一次的版本做个比较,看看有哪一些组件是新加的,哪些是被删除的,以及许可证状态发生了怎样的改变。
2、区分新增问题和历史问题
对于因为新加入组件而引出的许可证风险,要优先进行处理;而那些已经存在很久的组件,如果其许可证状态突然也发生了变化,那就需要去搞清楚,这到底是因为策略本身更新了,还是识别结果被修正了,又或者只是供应商补充了资料所导致的。
3、保留处理依据
不管对某一个组件采取的处理方式是允许使用、限制使用、需要替换,还是移交法务去确认,都要把做出这个决定的理由和相关的证据给保留下来。Cybellum也非常强调,要留存好能够应付审计还有争议处理环节的那些证据记录。
总结
总而言之,要查看Cybellum里的许可证清单,关键就是要进入到正确的产品版本中去,再根据组件、许可证和策略状态,来复核分析出的结果。而在处理许可证清单异常的时候,核心思路是先查清楚数据的源头,然后逐一去解决许可证缺失、组件重复、版本不一致,还有策略冲突这些问题。要是能把每个版本的SBOM、许可证清单和处理依据,都妥善地保存下来,那么后续无论进行产品升级,还是接受审计,都用不着再从头把所有的线索都排查一遍了。