OpenAtom OpenHarmony三方库创建发布及安全隐私检测
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
OpenAtom OpenHarmony三方库创建发布及安全隐私检测的更多相关文章
- 如何创建私有pod三方库
1.先登录github或者开源中国码云,创建远程仓库,用来存放库文件代码 仓库创建完成,得到远程仓库地址,并保存备用 2.创建本地代码库 打开终端,cd到你想创建的文件夹下,使用命令:pod lib ...
- iOS:iOS开发非常全的三方库、插件等等
iOS开发非常全的三方库.插件等等 github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自git ...
- three.js是JavaScript编写的WebGL第 三方库
three.js是JavaScript编写的WebGL第 三方库.提供了非常多的3D显示功能.Three.js 是一款运行在浏览器中的 3D 引擎,你可以用它创建各种三维场景,包括了摄影机.光影.材质 ...
- Qt动态连接库/静态连接库创建与使用,QLibrary动态加载库
版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt动态连接库/静态连接库创建与使用,QLibrary动态加载库 本文地址:https ...
- iOS:二叉树多级表格的使用,使用三方库TreeTableView-master实现对json解析数据的递归遍历整理成树状结构
在项目中,我们有时需要使用二叉树来实现多级表格的递归遍历查询,如果对二叉树比较懂,那么写起来其实也不费事,为了节省开发时间,下面介绍一下第三方库TreeTableView-master,这个三方库上给 ...
- does not contain bitcode ShardSDK等三方库
今天升级了XCode到7.0 重新编译项目出现了下面这些错误提示, ShardSDK/ShareSDK.framework/ShareSDK' does not contain bitcode. ...
- python常用三方库 - openpyxl
目录 python常用三方库 - openpyxl 读取Excel文件 写入Excel文件 python常用三方库 - openpyxl openpyxl是一个第三方库, 可以处理xlsx格式的Exc ...
- 使用CLI 3 创建发布Web Components
本文翻译自:codementor 翻译不当之处,欢迎指正交流 Web Components是web平台的未来吗?关于这一问题支持和反对的观点有很多.事实上浏览器对Web Components的支持正在 ...
- iOS - .a静态库的打包(包括打包的文件中用到了一些别人的三方库和分类的处理)
一.概念篇 什么是库? 库是程序代码的集合,是共享程序代码的一种方式 根据源代码的公开情况,库可以分为2种类型 开源库 公开源代码,能看到具体实现 比如SDWebImage.AFNetworking ...
- 网络请求三方库——OkHttp
我们知道在Android开发中是可以直接使用现成的API进行网络请求的,就是使用 HttpClient 和 HttpURLConnention ,而Android 4.4 之后 HttpClient ...
随机推荐
- Metasploitable3 渗透测试
1.信息手机阶段 信息收集经常使用的软件 功能也比较强大的Nmap Nmap nmap -p- -sS -sV -n -v --reason --open -oX demon.xml 192.168. ...
- apt-get upgrade 和apt-get dist-upgrade区别
kali linux系统或者 debian等系统 以及centos 在系统升级后经常会出现系统无法启动,或者启动之后GUI功能没有的问题: 笔记: 区别这两种用法 apt-get update ...
- Advanced .Net Debugging 3:基本调试任务(对象检查:内存、值类型、引用类型、数组和异常的转储)
一.介绍 这是我的<Advanced .Net Debugging>这个系列的第四篇文章.今天这篇文章的标题虽然叫做"基本调试任务",但是这章的内容还是挺多的.由于内容 ...
- JVM(一)-内存结构
我们都知道,我们写的Java程序需要先经过编译,生成了.class文件(字节码文件).然而,计算机并不能直接解释.class文件里面的内容,这时候就需要一个能加载.解释.class文件并且能按.cla ...
- Zabbix“专家坐诊”第198期问答汇总
问题一 Q:请问一下,自带的思科SNMP交换机模板,怎么不监控down的接口? A1:这种一般在自动发现规则里加个过滤器,过滤出IFSTATUS匹配(1|3)的就能实现只发现up的端口了. A2: 1 ...
- Zabbix“专家坐诊”第182期问答汇总
问题一: Q:像烽火.浪潮这种没有ilo的设备怎么监控他们的硬件状态呢? A:如果没有ilo,可以使用其他硬件监控软件,例如HP Insight Manager.IBM Director.Dell O ...
- gitee的 私人令牌 就是 Gitee Open API 的 access_token
gitee的 私人令牌 就是 Gitee Open API 的 access_token
- SPEAK 510全向麦克风无线蓝牙拾音器产品体验及评测
产品简介 大家开会的时候,很多人都直接使用手机app了,比如,zoom,腾讯会议等.既方便又快捷.由于手机设备拾音距离有限,也不是针对会议场景做的,所有,在多人会议的时候,问题就出来了.这个时 ...
- 记一次maven不下来的经历
起因:自己手动搭建个项目,参考公司项目使用了很多依赖,但是当自己maven时候发现一个依赖怎么也down不下来,就此展开了一番折腾 这个依赖叫 <dependency> <group ...
- mysql迁移到pqsql笔记
在将MySQL迁移到PostgreSQL的过程中,遇到了一些问题,下面是一些简单的解决方案. 使用命令,初始化数据库,并设置postgres的密码 bin\initdb -E UTF-8 -A md5 ...