我们的 AI 引擎 Neutron 在加州大学伯克利分校的 CyberGym 基准测试中取得了 96.75% 的成绩。 了解更多

安全

安全

HarmonyOS Next 安全测试:工具与风险

HarmonyOS Next 安全测试与 Android 有何不同:ArkTS、DSoftBus、测试工具、SafetyDetect、ArkGuard、常见缺陷及 OWASP MASVS 对应关系。

引言

随着运行 HarmonyOS 的设备接近十亿台,对于许多从事移动应用开发的团队而言,安全测试已变得至关重要。然而,随着 HarmonyOS Next 的推出,一个重大转变发生了:不再包含 Android 兼容性。 这一点很重要,因为它意味着该系统不再依赖大多数安全工具所构建于其上的 Android 运行时或框架。因此,许多 Android 测试工具要么无法运行,要么产生不完整的结果。正因如此,如今的安全测试需要专门为 HarmonyOS 设计的方法,而不是假定其行为基于 Android。

什么是 HarmonyOS Next

HarmonyOS Next(HarmonyOS 5.0) 是华为于 2024 年推出的最新版本之一,它脱离了 Android,成为一个完全独立的操作系统。早期的 HarmonyOS 版本仍包含 Android 组件,从而允许 Android 应用运行。然而,HarmonyOS Next 彻底移除了这种兼容性。它完全构建在华为自有的系统之上,包括其自有内核(鸿蒙,HongMeng)。因此,它不再支持 Android 应用,只运行专门为 HarmonyOS 开发的应用(.app)。

为什么 HarmonyOS Next 安全测试不同于 Android

HarmonyOS 在表层上与 Android 有相似之处,包括应用商店(AppGallery)、权限系统以及对原生代码的支持。然而,其内部架构完全不同,这直接影响了安全测试必须如何进行。

应用运行时与 ArkTS

HarmonyOS 应用使用 ArkTS(Ark TypeScript) 构建,这是华为设计的一种基于 TypeScript 的语言,用于通过 ArkUI 框架构建应用。它采用声明式 UI 方式,意味着开发者描述界面应呈现的样子,而不是手动控制每一个渲染步骤。

ArkTS 应用不会被编译成 Android 的 DEX 字节码,而是被编译成 Panda 字节码(.abc)。这使得所有 Android 安全工具都不再兼容。为 Java/Kotlin 构建的静态分析工具,以及为 DEX 文件设计的逆向工程工作流程,在这里都不能直接套用。

Android 与 HarmonyOS 的并排对比
Android vs HarmonyOS architecture

进程间通信与 DSoftBus

HarmonyOS 没有采用 Android 的 Binder 系统,而是使用 DSoftBus,一个为跨设备交互而设计的通信层。

这将模型从应用在单台手机内部通信,转变为应用和服务在多台设备之间交互。因此,安全测试不再只是关于孤立的单台设备,还涉及数据如何在互联设备之间流动。

HarmonyOS 最大的转变在于,它是围绕多设备协同工作而构建的。

与 Android 不同——在 Android 中,手机、平板或手表是彼此独立的环境——HarmonyOS 允许应用和服务跨越手机、平板、手表、电视和其他互联设备运行。

这意味着攻击面不再局限于单台设备。您还需要应对当设备彼此信任并共享数据时所发生的情况。

HarmonyOS 的权限也可以跨设备延伸,而不仅仅停留在一台设备上。

因此,应用不仅在请求访问手机本身上的内容,有时还在请求涉及生态系统中其他互联设备的能力。这使得权限行为更难以推断,一旦未经仔细检查就更容易被滥用。

Android Binder IPC 与 HarmonyOS DSoftBus IPC 的并排对比
Android Binder IPC vs HarmonyOS DSoftBus IPC

HarmonyOS NEXT 安全测试工具

与成熟的 Android 生态系统相比,HarmonyOS 安全测试工具仍处于早期发展阶段。以下是当今可用的一些最重要的工具:

类别 工具 / 资源 主要用途 关键能力 局限性
华为官方工具 AppGallery Cloud Testing 自动化基线检查 检查已知的配置问题和漏洞模式。 不能替代深入的或人工的安全评估。
DevEco Studio 集成开发环境(IDE) 调试工具、设备模拟器和性能分析器。 缺乏内置的 SAST 或 DAST 以进行专门的安全分析。
漏洞赏金计划 外部安全研究 激励独立研究人员发现并报告漏洞。 不适用于内部、持续或自动化的测试工作流程。
社区与新兴工具 ArkTS 反编译器 逆向工程 支持对已编译代码和应用逻辑进行检查。 处于早期开发阶段;需要手动配置。
模糊测试工具 IPC 安全测试 测试进程间通信是否存在崩溃或漏洞。 往往缺乏稳定性和 CI/CD 集成。
安全测试平台 Ostorlab 自动化漏洞扫描器 对 HarmonyOS 应用(包括 ArkTS/.abc 制品)进行自动化分析;检测常见的安全问题和配置错误;集成到安全测试工作流程中。 作为人工安全审查的补充,但不能替代它。

使用 Ostorlab 对 HarmonyOS 及华为 AppGallery 进行自动化漏洞扫描

为了补充人工测试并填补现有工具中的空白,自动化扫描可以为 HarmonyOS 特有的风险提供一致且可重复的覆盖。

对于需要可重复、可扩展覆盖的团队,Ostorlab 的漏洞扫描器直接支持 HarmonyOS 应用和华为 AppGallery 扫描。扫描针对 HarmonyOS 特有的风险类别,包括:

  • 被导出的 Ability 劫持与隐式 Want 拦截
  • Distributed Soft Bus 滥用(跨设备数据泄露、远程 Ability 调用)
  • 通过 ArkUI WebView 进行的 JavaScript 接口注入
  • Preferences 或 RDB 中未加密的不安全数据存储
  • 绕过 HUKS 的硬编码密钥和弱加密
  • 原生 NAPI 模块中的缓冲区溢出和释放后使用(UAF)
  • 供应链中存在漏洞的第三方 HAR/HAP 包

注意: 这些风险类别是 HarmonyOS 架构所特有的,通常不会被面向 Android 的扫描器覆盖。如需定义,请参阅华为官方术语表。

检测结果附带有实证级别的证据,使团队能够快速核实风险并对修复进行优先级排序。它可集成到现有的 AppSec 流水线中,用于发布前验证以及持续的、基于版本的安全评估

您可以从 ostorlab.co 扫描一个 AppGallery 应用(无需登录),或通过账户直接上传 .HAP / .APP 包。

Ostorlab HarmonyOS 与华为 AppGallery 漏洞扫描菜单
Ostorlab HarmonyOs & Huawei Appgallery Vulnerability Scan Menu

HarmonyOS NEXT 关键安全特性

HarmonyOS 包含一些内置特性,它们影响着应用如何被保护和测试。这些并不是工具,而是系统级的控制机制,用于定义应用如何运行、它们能访问什么,以及数据如何受到保护。

虽然这些特性提供了安全机制,但它们在测试期间仍需要正确的实现和验证

运行时安全:HarmonyOS SafetyDetect API

HarmonyOS 提供了 SafetyDetect,这是一个运行时安全框架,允许应用在运行时评估设备的安全态势。它包含四项主要能力:

API 技术用途 安全验证重点
SysIntegrity 检测设备是否处于已 Root/被篡改状态。 验证仅在设备端进行。审计人员必须检查应用逻辑是否可在本地被操纵以返回“干净”状态,因为它缺乏原生的服务器端证明(attestation)。
URLCheck 对照威胁情报扫描 URL。 验证应用在遇到恶意返回时是否终止会话,而不是仅仅记录一条可被绕过的警告。
AppsCheck 检测设备上的恶意/风险应用。 确认应用利用它来保护敏感操作(例如检测屏幕抓取工具),而不是用于被动的遥测。
UserDetect 区分人类交互与机器人(Bot)。 确保所产生的令牌在后端得到验证,以防止通过原生 API(NAPI)注入进行绕过。

这些 API 可以集成到应用逻辑中,以动态地强制执行信任决策。然而,在全球范围内部署的团队应注意,某些 SafetyDetect 功能(包括与 Wi-Fi 相关的检测)可能仅限于中国大陆。在依赖这些控制机制用于生产安全架构之前,请在您的目标部署区域中验证 API 的行为。

HarmonyOS 中的数据加密级别

HarmonyOS 使用一套多级加密系统,让开发者能够控制应用数据何时可被访问。有些数据始终可用,而更敏感的数据则可要求每次访问时都进行用户身份验证。

与典型的 Android 默认设置相比,这一模型提供了更强的控制力,并且与 iOS 中的数据保护系统相似。

在实践中,您所选择的加密级别既影响安全性,也影响用户访问应用的便捷程度。

级别 名称 行为 典型用途
EL1 始终开启 设备开机期间即可访问数据 非敏感的系统或应用数据
EL2 首次解锁后 在设备首次解锁后可用,并在设备运行期间持续可访问,即使处于锁定状态 后台服务(闹钟、系统功能)
EL3 初次解锁后 在至少一次解锁后可访问;即使屏幕锁定也持续可用 低敏感度功能(无障碍、紧急数据)
EL4 仅解锁时 仅在设备处于活动解锁状态时可访问;屏幕关闭时再次锁定 大多数应用数据的默认级别
EL5 每次访问都需验证 每次访问数据时都要求用户身份验证 高度敏感数据(凭据、健康、财务信息)

将 HarmonyOS 数据加密级别映射到 iOS

为便于理解,这些级别可以大致类比为 iOS 处理数据保护的方式,但二者并不等同。在 iOS 上,并不存在 EL1–EL5 这些级别。相反,数据访问取决于设备状态和身份验证。简单来说:iOS 上始终可用的系统数据最接近 EL1,首次解锁后变得可用的数据类似于 EL2–EL3,需要设备处于活动解锁状态的数据类似于 EL4,而每次都需要身份验证(Face ID / Touch ID)的数据最接近 EL5。

代码保护:ArkGuard 混淆

编译为 Panda 字节码的 HarmonyOS 应用,如果从设备中提取出来,是可以被静态分析的。为了提高逆向工程的门槛,华为提供了 ArkGuard,这是一款在构建过程中重命名符号并降低代码可读性的混淆工具。

ArkGuard 增加了静态分析所需的投入,但本身不应被当作一道安全边界。

要为敏感应用提供有效保护,需要采取分层的方法:

1. 在可能的情况下,将敏感逻辑迁移到后端系统
2. 在运行时使用 SysIntegrity 或等效机制验证应用完整性
3. 在已被攻陷或已 Root 的设备上限制功能
4. 在风险状况需要时,实现反调试机制
5. 将 ArkGuard 与运行时保护相结合,而非以前者替代后者

HarmonyOS 主要安全测试漏洞

基于平台架构和 Ostorlab 的扫描检测结果,HarmonyOS 应用最重要的风险领域包括:

安全风险 描述
被导出的 Ability 劫持 HarmonyOS 的 Ability(类似于 Android 的 Activity/Service)如果被不当导出,就可能被滥用,使恶意应用得以调用它们并绕过访问控制。
Distributed Soft Bus 滥用 配置错误的 DSoftBus(跨设备通信层)可能导致数据泄露、未经授权的远程 Ability 调用以及跨设备任务劫持。
ArkUI WebView 注入 ArkUI WebView 中不安全的 JavaScript 桥接可能允许不受信任的 Web 内容调用原生 API,需要针对 HarmonyOS 做出特定的测试调整。
不安全的本地数据存储 存储在 Preferences 或 RDB 中而未经妥善加密的敏感数据,可能在被攻陷的设备上遭到暴露;这在自动化扫描中很常见。
通过 HAR/HAP 包引入的供应链风险 HAR(Harmony Archive)和 HAP(Harmony Ability Package)模块内部存在漏洞的第三方依赖,随着生态系统的发展会带来供应链风险。
弱加密与硬编码凭据 绕过 HUKS(Huawei Universal Keystore)或将密钥嵌入代码中,会导致薄弱的加密安全性和暴露的凭据。

HarmonyOS 的 OWASP MASVS 对应关系

下表将 OWASP MASVS 类别映射到其 HarmonyOS 对应项,以帮助团队调整现有的测试计划。

OWASP MASVS 类别 HarmonyOS 状态 说明
MASVS-STORAGE:敏感数据存储 适用,需调整 HarmonyOS 加密级别(EL1-EL5)取代了 Android 基于文件的加密模型。测试敏感数据是否存储在 EL4 或 EL5,而非停留在平台默认值。
MASVS-CRYPTO:加密 直接适用 HUKS(HarmonyOS Universal Keystore)取代了 Android Keystore。测试是否存在硬编码密钥、弱算法,以及 HUKS 是否被正确使用或被完全绕过。
MASVS-AUTH:身份验证 直接适用 与 Android 可在服务器端验证的令牌不同,SysIntegrity 证明仅在设备端进行。后端验证必须单独测试。
MASVS-NETWORK:网络通信 直接适用 标准的 TLS 测试适用。此外还要测试设备之间的 DSoftBus 流量,这在 Android 中没有对应项。
MASVS-PLATFORM:平台交互 适用,需调整 被导出的 Ability 测试取代了 Activity/Service 导出测试。基于 Intent 的测试大致对应于 HarmonyOS 中基于 Want 的调用。
MASVS-CODE:代码质量 适用,需调整 静态分析工具完全不同。基于 DEX 的工具不适用。Panda 字节码需要 ark_disasm 和 ArkTS 专用反编译器。
MASVS-RESILIENCE:防篡改与混淆 适用,需调整 ArkGuard 提供混淆,但在服务器层面没有与 Android 的 SafetyNet/Play Integrity 等效的运行时完整性机制。Star Shield 仅处理安装时验证。
分布式/跨设备攻击面 无 OWASP 对应项 DSoftBus、分布式权限和跨设备 Ability 调用没有直接的 MASVS 映射,需要针对 HarmonyOS 的威胁建模。

常见问题

问:HarmonyOS 中的 Ability 是什么?
Ability 是 HarmonyOS 应用的一个核心组件,类似于 Android 中的 Activity 或 Service。它代表应用的某项特定功能,例如一个屏幕界面或一个后台任务,具体取决于其设计方式。

从安全角度看,Ability 可以被暴露给其他应用,甚至其他设备。如果它们未被妥善配置,就可能在没有适当授权的情况下被调用,从而导致意外行为或数据暴露。

问:什么是微内核,以及为什么 HarmonyOS 要使用它?
微内核只处理线程调度和进程间通信等核心任务,而将摄像头、网络和存储等服务移入隔离的用户态进程中。HarmonyOS 使用其自有的微内核——鸿蒙(HongMeng),以在某项服务被攻陷时限制损害范围,因为攻击者无法轻易跳转到系统的其余部分。这与传统的基于 Linux 的内核形成对比,后者在单一特权内核空间中运行大多数服务。

问:HarmonyOS 的安全性与 Android 相比如何?
HarmonyOS 对系统的部分组成部分应用了形式化验证,以证明某些漏洞类别不可能发生。与此同时,其鸿蒙微内核显著小于传统的 Linux 内核,从而减少了可被攻击者攻击的代码量。

问:华为如何处理 HarmonyOS 应用和系统组件的安全更新与打补丁?
华为每月为 HarmonyOS 和 EMUI 发布安全更新,修复系统和内置应用中的多个 CVE。这些补丁涵盖诸如媒体模块中的高危竞态条件以及文件管理中的权限绕过等问题。

问:什么是 Star Shield,它防范什么?
Star Shield 是一个 HarmonyOS NEXT 安全框架,在系统层面强制执行严格的应用安全审查和代码签名检查。每个应用在安装前都必须经过华为的签名和验证,这阻断了大多数对敏感数据的未经授权访问,并在很大程度上消除了早期兼容 Android 的 HarmonyOS 版本中存在的侧载(sideloading)向量。

在 Ostorlab 上开始进行 HarmonyOS 扫描

如果您想对自己的 HarmonyOS 应用运行上述自动化扫描,以下是您需要准备的内容,以及覆盖的边界所在。

您需要什么。

  • 应用,来自 AppGallery 或作为文件。 在 New Scan 菜单中,选择 AppGallery 并按名称或 bundle 名称搜索您的应用,或选择 HarmonyOS App 并上传安装包。受支持的 HarmonyOS 文件为 .HAP、.APP、.RPK、.APK 和 .AAB。您也可以从 ostorlab.co 扫描一个 AppGallery 应用而无需登录。
  • 一个扫描配置文件。 Fast 运行快速的静态分析,Full 运行静态、动态和后端分析,Privacy Scan 查找隐私风险。您可以选择性地上传 SBOM 或锁文件,以进行扩展的依赖检测。
  • 测试凭据,用于登录后的流程。 在 Set scan credentials 步骤中添加它们,以便动态分析能够触达登录之后的界面。有关受支持的凭据类型,请参阅认证扫描。

您将获得什么。 针对本指南前文列出的 HarmonyOS 风险类别的检测结果,并附带用于核实和排定优先级的技术证据。一个 HarmonyOS 应用也可以作为多资产扫描中的移动资产,与其 API、Web 后端和源代码在一次扫描中一同测试;一次多资产扫描最多包含一个移动应用。

覆盖边界。

  • Mobile Shielding Scan 用于验证代码混淆、防篡改、反调试以及 Root 或越狱检测,其文档面向 Android 和 iOS 应用。
  • 正如上面的工具表所指出的,自动化扫描是对 HarmonyOS 应用人工安全审查的补充;它不能替代人工审查。

实证。 隆重推出 HarmonyOS 应用扫描 + 华为 AppGallery 扫描 介绍了 HarmonyOS 和 AppGallery 扫描的发布,而应用商店扫描和文件扫描的分步指南展示了每一个界面。

下一步。 从 AppGallery 在 ostorlab.co 上免费扫描您的应用,或预约演示,以规划横跨您 Android、iOS 和 HarmonyOS 版本的测试。

结论

HarmonyOS 提供了一套现代化的安全架构,具备坚实的基础组件。但该生态系统的工具、测试方法以及区域性功能可用性,要求安全团队调整其现有做法,而不是直接套用 Android 的工作流程。

对于任何测试 HarmonyOS 应用的团队,关键要点如下:

  • Panda 字节码需要全新的静态分析工具,现有的 DEX 流水线不适用
  • DSoftBus 引入了 Android 中不存在的跨设备攻击面
  • SysIntegrity 仅限运行时的信任模型,对于高风险应用需要后端加以强化
  • 数据加密级别应被审慎选择,而不是任其停留在默认值
  • 使用 Ostorlab 进行自动化扫描,可为 HarmonyOS 特有的风险类别提供基线覆盖

Ostorlab 是一个支持 Android、iOS 和 HarmonyOS 的移动应用安全测试平台。安全团队使用 Ostorlab 持续评估应用,并在整个应用生命周期中检测漏洞。免费试用 Ostorlab →

标签:

HarmonyOS