OpenAtom OpenHarmony三方库(以下简称“三方库”或“包”),是经过验证可在OpenHarmony系统上可重复使用的软件组件,可帮助开发者快速开发OpenHarmony应用。三方库根据其开发语言分为2种,一种是使用JavaScript和TypeScript语言的三方库,通常以源码或OpenHarmony HAR/HSP的方式引入,在应用开发中使用。另一种是C和C++语言的三方库,通常在应用开发中通过N-API暴露JS接口的方式使用,或直接编译在OpenHarmony操作系统镜像中。
鼓励开发者通过OpenHarmony三方库中心仓(地址为:https://ohpm.openharmony.cn/,以下简称“OHPM平台”或“本平台”)来分享自己的三方库(无论是否已经开源),能让更多的开发者免费使用,繁荣OpenHarmony应用生态。本文将具体介绍三方库的发布与安全隐私检测。
一、创建及发布三方库
1.1 创建三方库
创建OpenHarmony三方库,支持通过DevEco Studio(以下简称IDE)界面创建和OHPM命令行创建两种方式。
方法1:通过IDE界面创建
在应用工程中,新创建Module,选择"Static Library"模板,创建完成后,完善oh-package.json5的信息,其中名称、版本等信息根据实际情况填写。
方法2:通过OHPM命令行创建
OHPM命令行创建,可通过三方中心仓指导文档操作,链接地址:https://ohpm.openharmony.cn/#/cn/help/createfile
1.2 编译打包HAR/HSP
开发完库模块后,选中模块名,然后通过DevEco Studio菜单栏的Build > Make Module ${libraryName}进行编译构建,生成HAR/HSP。HAR/HSP可用于工程其它模块的引用,或将HAR/HSP上传至OHPM平台,供其他开发者下载使用。若部分源码文件不需要打包至HAR/HSP中,可通过创建.ohpmignore文件,配置打包时要忽略的文件/文件夹。
1.3 发布三方库
(一)敏感信息自检
将敏感信息发布到本平台可能会损害您的用户、危及您的开发基础架构、造成高昂的修复成本,并使您面临法律诉讼的风险。我们强烈建议在将三方库发布到本平台之前,删除敏感信息,例如私钥、密码、个人信息和信用卡数据等。
(二)OHPM公钥配置
OpenHarmony 三方库中心仓 和 ohpm-cli 命令行工具的通信(查询、下载、发布),需要建立可信的安全通道,可以按如下步骤进行配置 OHPM 公钥。
1. 在进行 publish 发布前,请先确保在OpenHarmony三方库中心仓上已经创建了帐号,且利用工具 ssh-keygen 生成公、私钥文件,可执行以下命令:
ssh-keygen -m PEM -t RSA -b 4096 -f ~/.ssh_ohpm/mykey
说明: ~/.ssh_ohpm/mykey 为私钥文件mykey的文件路径,按照实际情况指定。指定的私钥存储目录必须存在。追加了.pub后缀的相应公钥文件会在与私钥相同的目录中生成。
注意:OHPM包管理器只支持加密密钥认证,请在生成公私钥时输入密码。
2. 请将公钥上传至OpenHarmony三方库中心仓【个人中心】-【认证管理】下:点击页面左上角的“新增”按钮,并将公钥文件(mykey.pub)的内容粘贴到公钥输入框中。
3. 请将对应私钥文件路径配置到 .ohpmrc 文件中 key_path 字段上,可执行以下命令进行配置:
ohpm config set key_path ~/.ssh_ohpm/mykey
最后登录本平台,从 【个人中心】页面中【复制发布码】,并配置到 .ohpmrc 文件中 publish_id 字段上,可执行如下命令:
ohpm config set publish_id your_publish_id
(三)发布
执行如下命令发布HAR,<HAR路径>请指定为待发布HAR的具体路径
ohpm publish <HAR路径>
publish 命令其他使用方法及相关规则,请参阅 ohpm publish 常用命令章节。
发布成功之后,本平台将会给您的账号发送“创建上架审核单成功”通知,您可登录本平台,进入个人中心界面,关注【消息】通知。
(四)等待审核
审核通过之后将会给您的账号发送 “审核通过”通知,您可登录本平台个人中心管理界面,关注【个人中心】-【消息】通知。
上架审核通过通知消息示例:
(五)管理已发布的三方库
登录本平台,在【个人中心】-【Package】管理界面,查看已发布的三方库审核、上下架状态。
二、三方库安全隐私检测
安全是OHPM平台的核心原则之一,为此,我们将基于OHPM平台行为准则对您的账号及使用该账号提交上架审核的内容。三方库审核流程主要包括自动化工具扫描和人工审核,对三方库进行监测和分析,以识别可能存在的恶意行为。
图1 三方库审核流程
2.1 工具扫描
其中,工具扫描包括完整性检查与安全性检查两部分。完整性检查将基于创建三方库的具体要求进行三方库目录、内容审核,如果您提交的三方库缺少必要性文件,三方库将被退回,请您根据提示完善三方库内容后再次提交上架审核;安全性检查将结合目前已有的安全检测工具,对三方库进行定期检测。支持的风险类型包括:
1. 安全漏洞检测
安全漏洞检测工具可以对三方库进行实时漏洞检测,并融合网络环境、威胁情报、漏洞影响、poc、时间因子、CVSS评分等多个风险评估因子对漏洞进行风险评估,以便及时对高危漏洞进行处理或修复,确保尽快实现漏洞的发现、修复及验证工作。
2. 恶意软件检测
安全检测工具利用恶意性聚类、深层关联关系挖掘的手段,针对特种木马及恶意程序进行检查分析,可以检测多种样本类型,能识别出伪装成图片或其他正常文件的木马,以及各种恶意软件包。然后利用依赖检测分析发现项目、软件依赖关系,帮助企业发现使用的开源包(开源库)的依赖项,以及当前存在的已知安全漏洞,提高三方库的透明度和安全性。如果发现安全隐患,三方库将被退回,并提示审核不通过的原因;
3. 其他安全扫描
除以上两种安全检测,三方包在上架前必须经过以下几个维度扫描:
(1)敏感函数的调用:通过构建所有潜在的调用栈,分析程序的敏感行为。
(2)权限滥用:包含敏感权限,高风险权限的声明,声明未使用,或者使用未声明。
(3)存在风险的网络连接:包括URL,IP检测。
(4)数据跨境的检查:跨境分级,规避法律风险。
(5)内容的合规:比如内嵌图片,文字是否存在黄赌毒,涉政,涉敏等。
(6)个人数据的搜集:围绕工信部定义的个人数据列表,进行分析处理。
(7)污点分析:通过污点分析技术,得出个人数据是否存在被发送出去的可能。
(8)SDK侦测:源码级别和配置文件级别的SCA。
(9)关联启动和常驻行为:检测非用户主动发起的关联启动行为,或者退出进程常驻行为。
2.2 人工复审
人工复审会对提交的三方库进行功能性测试,如果三方库没有真正的功能实现或其功能无法在OpenHarmony上验证,将被视为无效三方库,三方库将被退回,并提示审核不通过的原因。
更多信息请参考:https://ohpm.openharmony.cn/#/cn/help/introduction