-
身份策略权限管理 CodeArts Governance支持身份策略授权。如表4所示,包括了CodeArts Governance基于策略授权中的所有系统身份策略。 表4 CodeArts Governance系统身份策略 系统身份策略名称 描述 策略类别 CodeArtsGovernanceFullAccessPolicy 拥有开源治理服务所有权限 系统身份策略 CodeArtsGovernanceReadOnlyPolicy 拥有开源治理服务只读权限 系统身份策略 表5列出了CodeArts Governance常用操作与系统身份策略的授权关系,您可以参照该表选择合适的系统身份策略。 表5 常用操作与系统身份策略的关系 操作 CodeArtsGovernanceFullAccessPolicy CodeArtsGovernanceReadOnlyPolicy 查询用户订阅信息 √ √ 创建开源治理服务的套餐订单 √ × 查看资产信息总览 √ √ 查询二进制成分分析版本 √ √ 查看二进制成分分析任务状态 √ √ 获取二进制成分分析任务列表 √ √ 创建二进制成分分析任务 √ × 停止二进制成分分析任务 √ × 删除二进制成分分析任务 √ × 对比二进制成分分析扫描报告 √ × 查询二进制成分分析任务报告概况 √ √ 查询二进制成分分析开源软件漏洞报告 √ √ 查询二进制成分分析开源软件许可报告 √ √ 查询二进制成分分析密钥和信息泄露报告 √ √ 查询二进制成分分析安全编译选项报告 √ √ 查询二进制成分分析安全配置报告 √ √ 查询二进制成分分析恶意软件扫描报告 √ √ 下载二进制成分分析Excel报告文件 √ √ 下载二进制成分分析PDF报告文件 √ √ 查询漏洞信息 √ √ 查询许可证信息 √ √ 更新许可证信息 √ × 查询二进制软件信息 √ √ 查询开源知识库软件信息 √ √ 创建移动应用安全扫描任务 √ × 删除移动应用安全扫描任务 √ × 查看移动应用安全扫描任务信息 √ √
-
角色与策略权限管理 CodeArts Governance支持通过系统角色授权,不支持通过系统策略授权。默认情况下,管理员创建的
IAM 用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 CodeArts Governance部署时通过物理区域划分,为项目级服务。授权时,“授权范围”需要选择“指定区域项目资源”,然后在指定区域(如华北-北京1)对应的项目(cn-north-1)中设置相关权限,并且该权限仅对此项目生效;如果“授权范围”选择“所有资源”,则该权限在所有区域项目中都生效。访问CodeArts Governance时,需要先切换至授权区域。 如表2所示,包括了CodeArts Governance的所有系统权限。 表2 CodeArts Governance系统角色 角色名称 描述 依赖关系 CodeArtsInspector Administrator 拥有开源治理服务的所有权限。 无。 表3列出了CodeArts Governance常用操作与系统权限的授权关系,您可以参照该表选择合适的系统权限。 表3 常用操作与系统权限的关系 操作 CodeArtsInspector Administrator 查询用户订阅信息 √ 创建开源治理服务的套餐订单 √ 查看资产信息总览 √ 查询二进制成分分析版本 √ 查看二进制成分分析任务状态 √ 获取二进制成分分析任务列表 √ 创建二进制成分分析任务 √ 停止二进制成分分析任务 √ 删除二进制成分分析任务 √ 对比二进制成分分析扫描报告 √ 查询二进制成分分析任务报告概况 √ 查询二进制成分分析开源软件漏洞报告 √ 查询二进制成分分析开源软件许可报告 √ 查询二进制成分分析密钥和信息泄露报告 √ 查询二进制成分分析安全编译选项报告 √ 查询二进制成分分析安全配置报告 √ 查询二进制成分分析恶意软件扫描报告 √ 下载二进制成分分析Excel报告文件 √ 下载二进制成分分析PDF报告文件 √ 查询漏洞信息 √ 查询许可证信息 √ 更新许可证信息 √ 查询二进制软件信息 √ 查询开源知识库软件信息 √ 创建移动应用安全扫描任务 √ 删除移动应用安全扫描任务 √ 查看移动应用安全扫描任务信息 √
-
源码成分分析 提供对源码的全面分析功能,通过解压获取源码包中所有待分析源码文件,基于源码特征识别技术,获得相关被测对象的开源软件清单和潜在风险清单,并输出一份专业的分析报告。 多方位风险检测 对软件源码进行全面分析,基于源码特征识别检测规则,检测相关被测对象的开源软件漏洞和许可证合规等潜在风险。 代码克隆检测 提供代码片段级别的代码克隆(TYPE1、TYPE2)检测分析服务,发现潜在的开源软件使用合规风险。 漏洞分析指导 提供全面、直观的漏洞汇总信息,并提供专业的解决方案和修复建议。
-
二进制成分分析 提供软件包/固件全面分析功能,基于各类检测规则,获得相关被测对象的开源软件、信息泄露、安全配置、安全编译选项等存在的潜在风险。 多方位风险检测 对软件包/固件进行全面分析,基于各类检测规则,检测相关被测对象的开源软件漏洞和许可证合规、敏感信息(弱口令、硬编码密码等)、安全配置、安全编译选项等存在的潜在风险。 支持各类应用 支持对桌面应用(Windows和Linux)、移动应用程序(APK、IPA、Hap等)、嵌入式系统固件等的检测。 专业分析指导 提供全面、直观的风险汇总信息,并针对不同的扫描告警提供专业的解决方案和修复建议。 流水线插件 提供流水线(CodeArts Pipeline)插件,支持开源软件漏洞门禁检查(需购买包周期版本)。 恶意代码检查 提供病毒木马等恶意软件的扫描,支持开源软件中敏感信息外发、木马下载执行、反弹shell、恶意命令执行恶意行为检测。
-
二进制成分分析使用限制 表2 二进制成分分析使用限制说明 指标类别 指标项 限制说明 任务管理 语言类型 支持C/C++、Java、Go、JavaScript、Python、Rust、Swift、C#、PHP等语言开源软件已知漏洞检测。 扫描包格式 支持如下类型: 压缩文件格式:Lzma、Xz、Zip、Bz、Tar、arj、lzo、Gzip、lz4、Compress、Pack200、UPX等13种。 文件格式:cramfs、yaffs、squashfs、ubi、Iso 9660/UDF、Windows images、Ext2/3/4、JFFS2、UBIFS、RomFS、Microsoft Disk Image、Macintosh HFS、Vmdk/ova、qcow2、Vdi等20种。 存档格式和安装包格式:tar、Xz、Zip、Bz、arj、lzo、XAR(xar)、7-Zip、deb、rpm、phar等14种。 固件格式:Android OTA Images、Android sparse file system、mot、Intel HEX、RockChip、U-Boot(uimage、fit image、zimage)等7种。 可执行文件格式:PE、ELF。 移动应用文件格式:Android应用、鸿蒙应用、IOS应用。 操作系统及CPU架构 支持如下操作系统下构建生成的二进制文件:Linux、Windows、Android、QNX、MacOS、RTOS。 支持的CPU架构:X86/x64、ARM/ARM64、MIPS、PowerPC。 扫描包上传大小限制 专业版:5GB。 免费版:300MB。
-
产品规格差异 二进制成分分析服务提供免费版和专业版两个版本,其中专业版支持按需套餐包和包年/包月计费模式。相对于按需付费,包年/包月购买方式能够提供更大的折扣,对于长期使用者,推荐该方式。 源码成分分析服务提供基础版和专业版两个版本。 表1 二进制成分分析服务版本规格说明 服务版本 功能特点 免费版 每个用户有5次
免费体验 额度。 扫描文件大小不能超过300MB。 可体验所有检查项功能。 不支持报告下载。 只展示漏洞数排名前10的开源软件信息。 专业版 支持查看完整的扫描结果及专业扫描报告导出。 单次扫描最大支持5GB文件。 表2 源码成分分析服务版本规格说明 服务版本 功能特点 基础版 每月5次免费扫描体验额度。 支持Java/JavaScript语言扫描。 专业版 不限制扫描次数。 支持Java/Go/JavaScript/Python/C等语言。
-
责任共担 华为云秉承“将公司对网络和业务安全性保障的责任置于公司的商业利益之上”。针对层出不穷的
云安全 挑战和无孔不入的云安全威胁与攻击,华为云在遵从法律法规业界标准的基础上,以安全生态圈为护城河,依托华为独有的软硬件优势,构建面向不同区域和行业的完善云服务安全保障体系。 与传统的本地数据中心相比,云计算的运营方和使用方分离,提供了更好的灵活性和控制力,有效降低了客户的运营负担。正因如此,云的安全性无法由一方完全承担,云安全工作需要华为云与您共同努力,如图1所示。 华为云:无论在任何云服务类别下,华为云都会承担基础设施的安全责任,包括安全性、合规性。该基础设施由华为云提供的物理数据中心(计算、存储、网络等)、虚拟化平台及云服务组成。在PaaS、SaaS场景下,华为云也会基于控制原则承担所提供服务或组件的安全配置、漏洞修复、安全防护和入侵检测等职责。 客户:无论在任何云服务类别下,客户数据资产的所有权和控制权都不会转移。在未经授权的情况下,华为云承诺不触碰客户数据,客户的内容数据、身份和权限都需要客户自身看护,这包括确保云上内容的合法合规,使用安全的凭证(如强口令、多因子认证)并妥善管理,同时监控内容安全事件和账号异常行为并及时响应。 图1 华为云安全责任共担模型 云安全责任基于控制权,以可见、可用作为前提。在客户上云的过程中,资产(例如设备、硬件、软件、介质、虚拟机、操作系统、数据等)由客户完全控制向客户与华为云共同控制转变,这也就意味着客户需要承担的责任取决于客户所选取的云服务。如图1所示,客户可以基于自身的业务需求选择不同的云服务类别(例如IaaS、PaaS、SaaS)。不同的云服务类别中,每个组件的控制权不同,这也导致了华为云与客户的责任关系不同。 在On-prem场景下,由于客户享有对硬件、软件和数据等资产的全部控制权,因此客户应当对所有组件的安全性负责。 在IaaS场景下,客户控制着除基础设施外的所有组件,因此客户需要做好除基础设施外的所有组件的安全工作,例如应用自身的合法合规性、开发设计安全,以及相关组件(如中间件、数据库和操作系统)的漏洞修复、配置安全、安全防护方案等。 在PaaS场景下,客户除了对自身部署的应用负责,也要做好PaaS服务中间件、数据库、网络控制的安全配置和策略工作。 在SaaS场景下,客户对客户内容、账号和权限具有控制权,客户需要做好自身内容的保护以及合法合规、账号和权限的配置和保护等。 传统本地部署(On-Prem):由客户在自有数据中心内部署和管理软件及IT基础设施,而非依赖于远程的云服务提供商; 基础设施即服务(IaaS):由云服务提供商提供计算、网络、存储等基础设施服务,如弹性云服务器 E
CS 、
虚拟专用网络 VPN、
对象存储服务 OBS; 平台即服务(PaaS):由云服务提供商提供应用程序开发和部署所需要的平台,客户无需维护底层基础设施,如
AI开发平台 ModelArts、云数据库
GaussDB ; 软件即服务 (SaaS):由云服务提供商提供完整应用软件,客户直接应用软件而无需安装、维护应用软件及底层平台和基础设施,如华为云会议 Meeting。 父主题: 安全
-
相关术语说明 开源(open source) 即开放一类技术或一种产品的源代码,源数据,源资产,可以是各行业的技术或产品,其范畴涵盖文化、产业、法律、技术等多个社会维度。 开源组件(open source component) 是开源软件系统中最小可识别且本身不再包含另外组件的、组件信息可在公共网站获取且可独立分发、开发过程中带有版本号并且可组装的软件实体。 软件成分分析(Software Composition Analysis) 通过分析软件包含的一些信息和特征来实现对该软件的识别、管理、追踪的技术。 PE(Portable Executable) 是Windows系统下的可执行文件的标准格式。 ELF(Executable and Linkable Format) 是一种Unix或Linux系统下的可执行文件,目标文件,共享链接库和内核转储(core dumps)的标准文件格式。 APK(Android application package) 是Android操作系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。 HAP(HarmonyOS application package) 是鸿蒙操作系统使用的一种应用程序包文件格式,用于分发和安装移动应用及中间件。 CVE(Common Vulnerabilities and Exposures) 又称通用漏洞披露、常见漏洞与披露,是一个与信息安全有关的数据库,收集各种信息安全弱点及漏洞并给予编号以便于公众查阅。 CVSS(Common Vulnerability Scoring System) 通用漏洞评分系统,是一个行业公开标准,其被设计用来评测漏洞的严重程度,并帮助确定所需反应的紧急度和重要度,有CVSS 2.0、3.0、3.1标准。 固件(firmware) 是一种嵌入在硬件设备中的软件。 NVD National Vulnerability Database国家安全漏洞库。 CNVD China National Vulnerability Database国家信息安全漏洞共享平台。 CNNVD China National Vulnerability Database of Information Security国家信息安全漏洞库。 组件依赖 保证组件正确运行所依赖的必须加载的其他组件。
-
CodeArts Governance基本操作流程 图1 CodeArts Governance基本操作流程 表1 CodeArts Governance操作流程说明 流程 说明 授权使用CodeArts Governance 介绍如何授权IAM用户使用CodeArts Governance。 访问CodeArts Governance服务首页 介绍如何访问CodeArts Governance控制台首页。 购买CodeArts Governance套餐 介绍如何购买CodeArts Governance套餐包。 配置开源许可证集成风险等级 介绍如何查看开源许可证的信息和自定义开源许可证的风险等级。 添加并执行扫描任务 介绍添加二进制成分分析任务和添加源码成分分析任务的操作指导。 查看扫描报告 介绍如何查看二进制成分分析报告和查看源码成分分析报告。
-
安全配置类问题分析 成分分析会检测用户包中一些安全配置项是否合规,主要如下: 用户上传的软件包/固件中存在的敏感文件,如(密钥文件,证书文件,源码文件,调试工具等)。 用户上传的软件包/固件中操作系统中的用户与组配置、硬编码凭证、认证和访问控制等配置类问题。若不存在操作系统,则不涉及。 二进制成分分析任务执行完成后,导出PDF报告,进行安全配置类检查问题分析: 搜索“安全配置概览”关键字,可以看到各检查项的结果。 pass表示通过。 failed表示未通过。 NA表示不涉及(若无操作系统,则针对操作系统配置检查项为不涉及)。 搜索“安全配置列表”关键字,可以查看具体每项的检查结果。 审视项:检查的方式/方法。 扫描结果:显示扫描的结果,结果为通过、未通过和不涉及。 原因:存在问题的文件列表,若无问题则显示暂无问题。
-
密钥和信息泄露类问题分析 成分分析基于静态风险检测,会对用户上传的软件包/固件进行解压并分析其中的文件,识别包中是否存在信息泄露类风险,如敏感IP、GIT/SVN仓、弱口令、硬编码密钥等风险。 针对已识别的信息泄露类风险,可以通过查看导出报告中的告警详情,如PDF报告,在结果概览中确认是否有信息泄露风险。如果有,则查看相应信息泄露明细,信息泄露问题列表说明如图表2。针对工具扫描出的风险清单,用户可以基于自身实际使用情况判断是否有信息泄露风险,如存在,则采取不同措施屏蔽或修改即可。 表2 信息泄露问题列表说明 告警项 告警说明 文件路径 发现信息泄露的文件在包中的全路径。 上下文内容 发现风险的文本行内容,包含风险内容和上下文内容。 匹配内容 实际发现的风险内容。 匹配位置 在文件中x行,x位置发现的信息泄露风险。
-
开源软件漏洞分析 成分分析基于静态风险检测,会对用户上传的软件包/固件进行解压并分析其中的文件,识别包中文件包含的开源软件清单,并分析是否存在已知漏洞、许可证合规等风险。如果检测结果存在漏洞或者风险,单击“组件名称”可以查看漏洞的详细信息。 单击开源软件漏洞报告页面中的“漏洞刷新”可以刷新漏洞,每天最多刷新1次。漏洞刷新后,需要重新生成和下载报告。 单击“CVE”漏洞名称可以查看相应漏洞的“漏洞详情”、“漏洞简介”、“解决方案”、“漏洞修复参考”和“参考链接”。 服务提供告警在线分析能力,支持用户针对有漏洞的扫描结果进行自主分析。 单击告警分析列中的“确认”对告警进行分析,选择“影响类别”、“原因”,输入备注后单击“确认”。如果有多个已知漏洞,先选择需要确认的文件名称,再选择需要确认的漏洞名称,单击“批量确认漏洞”可以进行批量确认。单击告警分析列中的“删除”删除已确认的漏洞信息。 用户扫描完成后,建议按照以下步骤进行分析排查: 开源软件分析,分析开源软件是否存在以及软件版本是否准确。 基于报告详情页面或导出的报告中开源软件所在文件全路径找到对应文件,然后分析该文件中开源软件是否存在或准确(可由相关文件的开发或提供人员协助分析),如果否,则无需后续分析。 图1 查看文件对象路径 已知漏洞分析,分析已知漏洞是否准确。 通过NVD、CVE、CNVD等社区搜索相关CVE已知漏洞编号,获取漏洞详情。 概要分析:查看影响的软件范围,如CVE-2021-3711在NVD社区中的Known Affected Software Configurations,如图2,确认漏洞是否影响当前使用的软件版本,如果当前使用的软件版本不在影响范围内,则初步说明漏洞可能不涉及/影响。 图2 查看软件版本示例 精细化分析:漏洞通常存在于某些函数中,可以通过社区中的漏洞修复补丁确认漏洞详情、涉及函数以及修复方式,如下图,用户可以结合自身软件对于相关开源软件功能的使用,判断是否涉及相关漏洞。 图3 查看漏洞详情示例 许可证合规分析。基于报告中开源软件及对应的许可证分析软件是否合规,满足公司或准入要求。 风险解决方式: 已知漏洞:如果当前使用的软件版本存在漏洞,可通过升级软件版本至社区推荐版本解决。紧急情况下也可以通过社区推荐的patch修复方式临时解决。 许可证合规:如果使用的软件存在合规风险,则需要寻找相似功能且合规的开源软件进行替代。
-
安全编译选项类问题分析 成分分析会检查用户包中的C/C++、Go文件在构建编译过程中是否添加了保护性的编译选项,来保护文件运行时免受到攻击者的攻击。 安全编译选项类问题分析指导: 导出Excel报告,查看安全编译选项Sheet页。 根据filepath列寻找目标文件在扫描包中位置,确认文件来源。 查看目标文件对应的安全编译选项结果。 如果对应项结果底色为绿色或结果值为“YES”或“NA”(rpath项禁选结果值为“No”或“NA”),则说明目标文件满足安全编译选项要求,无需处理。 对于不满足要求的项,排查目标文件的构建脚本,添加对应的编译选项,其中Ftrapv和FS两项由于可能影响性能,请根据实际情况确认是否添加对应选项。 表3 安全编译选项检查项参考说明 检查项 检查项描述 安全编译选项参数 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
-
二进制成分分析扫描报告模板说明 下载扫描报告后,您可以根据扫描结果,对漏洞进行修复,报告模板主要内容说明如下(以下截图中的数据仅供参考,请以实际扫描报告为准): 概览 查看目标软件包的扫描漏洞数。 图1 查看任务概览信息 结果概览 统计漏洞类型及分布情况。 图2 查看结果概览信息 组件列表 查看软件的所有组件信息。 图3 查看组件列表信息 漏洞列表 您可以参考每个组件扫描出的漏洞详细信息修复漏洞。 图4 查看漏洞列表信息 密钥和信息泄露问题列表 图5 查看密钥和信息泄露问题 安全编译选项问题列表 图6 查看安全编译选项问题列表 安全配置检查列表 图7 查看安全配置检查列表 恶意软件扫描问题列表 图8 查看恶意软件扫描问题
-
查看二进制成分分析总览 总览页展示扫描结果的汇总分析信息,统计近30天的统计数据以及最近一次检测情况。 我的资产 展示最近30天被扫描的软件包个数,以及有风险和未完成的软件包个数。 风险信息 TOP5 展示前五项组件风险信息,可查看组件名称、组件版本、语言类型、版本时间、漏洞数、超高危漏洞数、集成风险和引用数量。 最近一次二进制成分分析扫描 展示最近一次扫描详细情况,参数说明如表1所示。 表1 二进制成分分析扫描参数说明 参数 说明 扫描对象 被扫描的软件包/固件,单击可进入本次任务的扫描详情。 文件大小 被扫描的文件的大小。 开始时间 开始扫描的时间。 扫描耗时 扫描耗费的时长。 任务状态 任务扫描状态,包括:等待中、进行中、已完成、已停止、已失败。 检测结果风险统计 显示各检查项的检测项目风险文件总数。 安全漏洞风险项 显示不同风险等级的漏洞个数,风险等级包括:超危、高危、中危、低危。 检测项目合规统计 显示检测项目的合规占比(合规项/总检查项)。 开源许可证 TOP6 显示数量排名前六的开源软件使用许可证。 恶意软件扫描 显示各检查项的病毒扫描和恶意代码扫描风险总数。 父主题: 使用CodeArts Governance完成二进制成分分析