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三方库创建发布及安全隐私检测的更多相关文章

  1. 如何创建私有pod三方库

    1.先登录github或者开源中国码云,创建远程仓库,用来存放库文件代码 仓库创建完成,得到远程仓库地址,并保存备用 2.创建本地代码库 打开终端,cd到你想创建的文件夹下,使用命令:pod lib ...

  2. iOS:iOS开发非常全的三方库、插件等等

    iOS开发非常全的三方库.插件等等 github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自git ...

  3. three.js是JavaScript编写的WebGL第 三方库

    three.js是JavaScript编写的WebGL第 三方库.提供了非常多的3D显示功能.Three.js 是一款运行在浏览器中的 3D 引擎,你可以用它创建各种三维场景,包括了摄影机.光影.材质 ...

  4. Qt动态连接库/静态连接库创建与使用,QLibrary动态加载库

    版权声明:若无来源注明,Techie亮博客文章均为原创. 转载请以链接形式标明本文标题和地址: 本文标题:Qt动态连接库/静态连接库创建与使用,QLibrary动态加载库     本文地址:https ...

  5. iOS:二叉树多级表格的使用,使用三方库TreeTableView-master实现对json解析数据的递归遍历整理成树状结构

    在项目中,我们有时需要使用二叉树来实现多级表格的递归遍历查询,如果对二叉树比较懂,那么写起来其实也不费事,为了节省开发时间,下面介绍一下第三方库TreeTableView-master,这个三方库上给 ...

  6. does not contain bitcode ShardSDK等三方库

    今天升级了XCode到7.0   重新编译项目出现了下面这些错误提示, ShardSDK/ShareSDK.framework/ShareSDK' does not contain bitcode. ...

  7. python常用三方库 - openpyxl

    目录 python常用三方库 - openpyxl 读取Excel文件 写入Excel文件 python常用三方库 - openpyxl openpyxl是一个第三方库, 可以处理xlsx格式的Exc ...

  8. 使用CLI 3 创建发布Web Components

    本文翻译自:codementor 翻译不当之处,欢迎指正交流 Web Components是web平台的未来吗?关于这一问题支持和反对的观点有很多.事实上浏览器对Web Components的支持正在 ...

  9. iOS - .a静态库的打包(包括打包的文件中用到了一些别人的三方库和分类的处理)

    一.概念篇 什么是库? 库是程序代码的集合,是共享程序代码的一种方式 根据源代码的公开情况,库可以分为2种类型 开源库 公开源代码,能看到具体实现 比如SDWebImage.AFNetworking ...

  10. 网络请求三方库——OkHttp

    我们知道在Android开发中是可以直接使用现成的API进行网络请求的,就是使用 HttpClient 和 HttpURLConnention ,而Android 4.4 之后 HttpClient  ...

随机推荐

  1. 多线程系列(十) -ReadWriteLock用法详解

    一.摘要 在上篇文章中,我们讲到ReentrantLock可以保证了只有一个线程能执行加锁的代码. 但是有些时候,这种保护显的有点过头,比如下面这个方法,它仅仅就是只读取数据,不修改数据,它实际上允许 ...

  2. java学生管理系统(界面版)

    运行截图 项目说明: 本系统界面我个人就从简设计了,本来打算使用windowbuilder插件设计的,可想到使用windowbuilder插件之后导致代码冗余,会影响到代码可读性,可能对小白不友好.虽 ...

  3. 大众点评cat报警源码

    类时序 时许说明 判断是否是报警机器. 1分钟启动一个线程根据设置的报警条件,时间段去查询CAT报告数据. 根据返回的报告数据,逐层解析TYPE,NAME,RANGE中的数据是否满足报警条件. 只有全 ...

  4. Redis稳定性之战:AOF日志支撑数据持久化

    ★ Redis24篇集合 1 介绍 AOF(Append Only File)持久化:以独立日志的方式存储了 Redis 服务器的顺序指令序列,并只记录对内存进行修改的指令. 当Redis服务发生雪崩 ...

  5. [VueJsDev] 目录列表

    [VueJsDev] 目录列表 云服务器域名就一年,gitee上有不给发布,没办法 https://www.vuejsdev.com/ 还是迁移到博客园吧. 文章大部分是2022年9月份左右写的. 已 ...

  6. F12 Preserve log 查看之前的api接口返回数据,只有火狐浏览器能用

    F12 Preserve log 查看之前的api接口返回数据,只有火狐浏览器能用

  7. WPF之认识XAML

    目录 新建项目 剖析XAML代码 参考资料 新建项目 在Visual Studio 2019中使用WPF项目模板建立一个最简单的WPF项目,如下图所示: 可以看到,项目里面主要有两个分支: App.x ...

  8. day26--Java集合09

    Java集合09 18.TreeSet 元素无序:插入顺序和输出顺序不一致 可以按照一定的规则进行排序,具体排序方式取决于构造方法: TreeSet () :根据其元素的自然排序进行排序 TreeSe ...

  9. eclipse错误之Errors occurred during the build. Errors running builder 'JavaScript Validator' on project

    把JavaScript Validator去掉.去掉的方法是:选择一个项目--右键Properties--Builders(排第二)--点一下右侧会有四项--取消第一项"JavaScript ...

  10. new vs malloc

    https://www.cnblogs.com/qg-whz/p/5140930.html 1.申请内存位置 new操作符从自由存储区(free store)上为对象动态分配内存空间,而malloc函 ...