-
扫描报告 开源治理服务中二进制成分分析对用户制品扫描以后生成的扫描结果,用户需要关注如下几种类型的风险结果: 开源软件漏洞:用户制品文件中包含的开源软件清单以及相关开源软件版本对应的漏洞信息,用户需要分析是否存在风险以及通过打补丁或升级软件方式进行风险处理。 密钥和信息泄露:用户制品文件中包含的疑似敏感信息,如弱口令、硬编码密钥、IP等信息,用户需要结合上下文信息分析是否存在风险。 安全编译选项:用户制品文件中编译型语言(如C/C++、Go)的构建产物是否在构建过程中添加对应的保护性编译选项以避免程序运行时受到攻击(如缓冲区溢出攻击等),用户需要结合报告分析有风险文件的构建/编译脚本,添加对应的安全编译选项。 安全配置:检测用户制品包中是否存在配置类风险,如凭据类风险、认证问题风险等,用户可基于报告详情中的问题描述和修复指导进行分析处理。 开源许可证:用户制品中开源软件包含的许可证清单,部分许可证存在开源风险,而许可证之间也可能会存在兼容性问题,同时引用互斥许可证软件会导致违反开源协议,需用户关注。
-
二进制成分分析使用限制 表2 二进制成分分析使用限制说明 指标类别 指标项 限制说明 任务管理 语言类型 支持C/C++/Java/Go/JavaScript/Python/Rust/Swift/C#/PHP等语言开源软件已知漏洞检测。 扫描包格式 支持上传.7z、.arj、.cpio、.phar、.rar、.tar、.xar、.zip、.jar、.apk、.war、.rpm、.deb等格式文件,以及Android OTA Images、Android sparse、Intel HEX、RockChip、U-Boot等固件。 扫描包上传大小限制 专业版:5GB。 免费版:300MB。
-
产品规格差异 二进制成分分析服务提供免费版和专业版两个版本,其中专业版支持按需套餐包和包年/包月计费模式。相对于按需付费,包年/包月购买方式能够提供更大的折扣,对于长期使用者,推荐该方式。 源码成分分析服务提供基础版和专业版两个版本。 表1 二进制成分分析服务版本规格说明 服务版本 功能特点 免费版 每个用户有5次
免费体验 额度。 扫描文件大小不能超过300MB。 可体验所有检查项功能。 不支持报告下载。 只展示漏洞数排名前10的开源软件信息。 专业版 支持查看完整的扫描结果及专业扫描报告导出。 单次扫描最大支持5GB文件。 表2 源码成分分析服务版本规格说明 服务版本 功能特点 基础版 每月5次免费扫描体验额度。 支持Java/JS语言扫描。 专业版 不限制扫描次数。 支持Java/Go/JS/Python/C等语言。
-
开源治理服务权限 默认情况下,新建的
IAM 用户没有任何权限,您需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 开源治理服务部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域(如华北-北京4)对应的项目(cn-north-4)中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问开源治理服务时,需要先切换至授权区域。 权限根据授权精细程度分为角色和策略,策略是角色的升级版。 角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。由于各云服务之间存在业务依赖关系,因此给用户授予角色时,可能需要一并授予依赖的其他角色,才能正确完成业务。角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。例如:针对E
CS 服务,管理员能够控制IAM用户仅能对某一类云服务器资源进行指定的管理操作。多数细粒度策略以API接口为粒度进行权限拆分。 如表1所示,包括了开源治理服务的所有系统权限。 表1 开源治理服务系统权限说明 系统角色/策略名称 描述 类别 依赖关系 CodeArtsInspector Administrator 拥有开源治理服务的所有权限。 系统角色 无。 Tenant Administrator 拥有开源治理服务的所有权限。 系统角色 无。
-
成分分析的主要扫描规格有哪些? 支持的编程语言类型:C/C++/Java/Go/JavaScript/Python/Rust/Swift/C#/PHP。 支持的文件:.7z、.arj、.cpio、.phar、.rar、.tar、.xar、.zip、.jar、.apk、.war、.rpm、.deb等格式文件,以及Android OTA Images、Android sparse、Intel HEX、RockChip、U-Boot等固件。 支持上传的文件大小:不超过5GB。 平均扫描时间预估:根据不同的压缩格式或者文件类型扫描时长会有一定的差异,平均100MB/6min。 服务采用基于软件版本的方式检测漏洞,不支持补丁修复漏洞场景的检测。 父主题: 二进制成分分析类
-
如何解决Roles with READONLY_USER或其他角色权限报错问题? 用户需要具有Tenant Administrator或CodeArtsInspector Administrator权限才能使用二进制成分分析相关业务,请分别联系具有Tenant Administrator或CodeArtsInspector Administrator权限的用户进行授权。请参考如何查看用户组是否具有Tenant Administrator或CodeArtsInspector Administrator权限,及如何对用户组进行授权?查看具有权限的用户。 使用具有Tenant Administrator或CodeArtsInspector Administrator权限的账号登录华为云,在右上角单击“控制台”。 鼠标移动至右上方的账号名,在下拉列表中选择“
统一身份认证 ”。 在“用户”页面选择待授权的用户,在操作栏单击“授权”。 在“授权”页面,授权方式选择“继承所选用户组的策略”,然后勾选具有Tenant Administrator或CodeArtsInspector Administrator权限的用户组。 单击“确定”完成授权。 父主题: 二进制成分分析类
-
成分分析的安全配置类问题如何分析? 成分分析会检测用户包中一些安全配置项是否合规,主要如下: 用户上传的软件包/固件中存在的敏感文件,如(密钥文件,证书文件,源码文件,调试工具等)。 用户上传的软件包/固件中操作系统中的用户与组配置、硬编码凭证、认证和访问控制等配置类问题。若不存在操作系统,则不涉及。 安全配置类检查问题分析指导: 导出PDF报告,搜索“安全配置检查概览”关键字,可以看到各检查项的结果,pass表示通过,failed表示未通过,NA表示不涉及(若无操作系统,则针对操作系统配置检查项为不涉及)。搜索“安全配置检查”关键字,可以查看具体每项的检查结果。 检查结果说明: 审视项:检查的方式/方法。 问题:存在问题的文件列表,若无问题则显示暂无问题。 建议值:针对检查出的问题给出的修改建议。 描述:审视项描述。 父主题: 二进制成分分析类
-
成分分析的任务扫描失败怎么办? 任务扫描失败可能由多种原因造成,需要针对具体情况进行分析,常见的失败原因如下: 表1 常见失败原因分析 失败原因 解决方案 文件解析异常 文件本身存在不完整、结构异常等问题,导致服务无法正常解析。提供通用的压缩、固件、包格式文件重新创建扫描任务即可。 文件上传中损坏 文件在传送过程中损坏,导致无法正确解析。重新创建扫描任务进行扫描即可。 其他原因导致任务失败 多次重复创建任务后扫描任务仍然失败,可联系服务运维团队。 若用户使用“按需套餐包”创建正式版任务,如果任务扫描失败,不会扣除套餐包配额;若用户使用免费版配额创建免费版任务,如果任务扫描失败,不会扣除免费版配额。 父主题: 二进制成分分析类
-
如何查看用户组是否具有Tenant Administrator或CodeArtsInspector Administrator权限,及如何对用户组进行授权? 登录华为云,在右上角单击“控制台”。 鼠标移动至右上方的账号名,在下拉列表中选择“统一身份认证”。 选择“用户组”,单击用户组名称即可查看角色授权记录。 如果该用户组缺少相应角色权限,单击“授权”。 在“授权”页面,模糊搜索“Tenant Administrator”或“CodeArtsInspector Administrator”权限的关键字,勾选相应策略。 单击“下一步”,设置最小授权范围,然后单击“确定”,即可完成用户组角色授权。 父主题: 二进制成分分析类
-
成分分析的扫描原理是什么,主要识别哪些风险? 对用户提供的软件包/固件进行全面分析,通过解压获取包中所有待分析文件,基于组件特征识别技术以及各种风险检测规则,获得相关被测对象的组件BOM清单和潜在风险清单。主要包括以下几类: 开源软件风险:检测包中的开源软件风险,如已知漏洞、许可证合规等。 安全配置风险:检测包中配置类风险,如硬编码凭证、敏感文件(如密钥、证书、调试工具等)问题、OS认证和访问控制类问题等。 信息泄露风险:检测包中信息泄露风险,如IP泄露、硬编码密钥、弱口令、 GIT/SVN仓泄露等风险。 安全编译选项:支持检测包中二进制文件编译过程中相关选项是否存在风险。 图1 风险项 父主题: 二进制成分分析类
-
成分分析的安全编译选项类问题如何分析? 成分分析会检查用户包中的C/C++、Go文件在构建编译过程中是否添加了保护性的编译选项,来保护文件运行时免受到攻击者的攻击。 安全编译选项类问题分析指导: 导出Excel报告,查看安全编译选项Sheet页。 根据filepath列寻找目标文件在扫描包中位置,确认文件来源。 查看目标文件对应的安全编译选项结果。 如果对应项结果底色为绿色或结果值为“YES”或“NA”(rpath项禁选结果值为“No”或“NA”),则说明目标文件满足安全编译选项要求,无需处理。 对于不满足要求的项,排查目标文件的构建脚本,添加对应的编译选项,其中Ftrapv和FS两项由于可能影响性能,请根据实际情况确认是否添加对应选项。 表1 安全编译选项检查项参考说明 检查项 检查项描述 安全编译选项参数 BIND_NOW 立即绑定 -Wl、-z、now NX 堆栈不可执行 -WI、-z、noexecstack PIC 地址无关 -fPIC PIE 随机化 -fPIE或-pie RELRO GOT表保护 -WI、-z、relro SP 栈保护 -fstack-protector-strong或-fstack-protector-all NO Rpath/Runpath 动态库搜索路径(禁选) 脚本中删除--rpath FS Fortify Source(缓冲区溢出检查) -D_FORTIFY_SOURCE=2 Ftrapv 整数溢出检查 -ftrapv Strip 删除符号表 -s 父主题: 二进制成分分析类
-
成分分析的开源软件风险如何分析? 成分分析基于静态风险检测,会对用户上传的软件包/固件进行解压并分析其中的文件,识别包中文件包含的开源软件清单,并分析是否存在已知漏洞、许可证合规等风险。用户扫描完成后,建议按照以下步骤进行分析排查: 开源软件分析,分析开源软件是否存在以及软件版本是否准确。 基于报告详情页面或导出的报告中开源软件所在文件全路径找到对应文件,然后分析该文件中开源软件是否存在或准确(可由相关文件的开发或提供人员协助分析),如果否,则无需后续分析。 已知漏洞分析,分析已知漏洞是否准确。 通过NVD、CVE、CNVD等社区搜索相关CVE已知漏洞编号,获取漏洞详情。 概要分析:查看影响的软件范围,如CVE-2021-3711在NVD社区中的Known Affected Software Configurations,如下图,确认漏洞是否影响当前使用的软件版本,如果当前使用的软件版本不在影响范围内,则初步说明漏洞可能不涉及/影响。 精细化分析:漏洞通常存在于某些函数中,可以通过社区中的漏洞修复补丁确认漏洞详情、涉及函数以及修复方式,如下图,用户可以结合自身软件对于相关开源软件功能的使用,判断是否涉及相关漏洞。 许可证合规分析。基于报告中开源软件及对应的许可证分析软件是否合规,满足公司或准入要求。 风险解决方式: 已知漏洞:如果当前使用的软件版本存在漏洞,可通过升级软件版本至社区推荐版本解决。紧急情况下也可以通过社区推荐的patch修复方式临时解决。 许可证合规:如果使用的软件存在合规风险,则需要寻找相似功能且合规的开源软件进行替代。 父主题: 二进制成分分析类
-
步骤6:查看插件执行结果 流水线执行完成后,进入详情页面。 单击“二进制成分分析”阶段的“下载制品产物”任务,弹出侧滑框。 在侧滑框的“任务日志”页面,单击“详情”,页面跳转到开源治理服务对应构建包的扫描详情页面,即可查看扫描结果。 在侧滑框的“任务结果”页面,单击“二进制软件成分分析”可以直接查看部分扫描结果。 单击准出条件,可查看扫描结果是否满足设置的规则,从而控制流水线执行。 当扫描结果满足条件时,流水线继续执行。 当扫描结果不满足条件,流水线停止执行。
-
查看扫描结果 扫描任务执行后,可在二进制成分分析页面的任务列表查看当前任务状态。 单击对应任务的任务名称,也可以单击任务列表操作列的“查看报告”,查看扫描报告。扫描报告主要包括:任务概况、开源软件漏洞、开源许可证、密钥和信息泄露、安全编译选项、安全配置、恶意软件扫描。 图1 扫描报告 在扫描报告页面,单击右上角的“生成PDF报告”或“生成Excel报告”,可以生成更详细的扫描报告。单击“生成SBOM报告”可以生成国际通用的SBOM报告。 扫描报告生成完成后,单击右上角的“导出PDF”或“导出Excel”,可以下载扫描报告。 扫描报告主要内容如下:任务概览、结果概览、组件列表、漏洞列表、密钥和信息泄露问题列表、安全编译选项问题列表、安全配置列表、恶意软件扫描问题列表。 SBOM报告生成后,单击右上角的“导出SBOM报告”可以下载SBOM报告。
-
软件成分分析总览 软件成分分析总览页主要展示:资产信息和最近一次检测情况。 我的资产 展示最近30天被扫描的软件包个数,以及有风险和未完成的软件包个数。 风险信息 TOP5 展示前五项组件风险信息,可查看组件名称、组件版本、语言类型、版本时间、漏洞数、超高危漏洞数、集成风险和引用数量。 最近一次二进制成分分析扫描 展示最近一次扫描详细情况,参数说明如表1所示。 表1 二进制成分分析扫描参数说明 参数 说明 扫描对象 被扫描的软件包/固件,单击可进入本次任务的扫描详情。 文件大小 被扫描的文件的大小。 开始时间 开始扫描的时间。 扫描耗时 扫描耗费的时长。 任务状态 任务扫描状态,包括:等待中、进行中、已完成、已停止、已失败。 检测结果风险统计 显示各检查项的检测项目风险文件总数。 安全漏洞风险项 显示不同风险等级的漏洞个数,风险等级包括:超危、高危、中危、低危。 检测项目合规统计 显示检测项目的合规占比(合规项/总检查项)。 开源许可证 TOP6 显示数量排名前六的开源软件使用许可。 恶意软件扫描 显示各检查项的病毒扫描和恶意代码扫描风险总数。