We're Hiring!

华为鸿蒙系统 HarmonyOS Safety Detect 的局限性:你需要知道的事项

HarmonyOS logo and text next to pile of stones on a red background

本概述介绍了华为鸿蒙系统(HarmonyOS)的发展与采用以及相关的安全解决方案Safety Detect,强调了该方法的一些局限性。随着欧盟《数字市场法》等法规强制使用替代应用商店,华为安全功能对华为AppGallery应用商店和生态系统的依赖将成为开发者的问题。我们还比较了华为HarmonyOS Safety Detect与Approov提供的全面移动安全。

HarmonyOS的发展与采用

鸿蒙系统于2019年推出,最初作为物联网设备的操作系统,后来适配于智能手机和其他硬件。华为的目标是提供跨可穿戴设备、平板电脑、智能手机和智能电视的统一体验。

2020年9月,华为推出乐鸿蒙 2.0,并在2021年进行推广。2022年,华为推出了鸿蒙 3 (HarmonyOS 3),提高了智能手机、平板电脑、打印机、汽车和电视等多个设备的体验。第四版于2023年发布。

最初,鸿蒙系统兼容Android,但在2024年初,华为推出了HarmonyOS Next,声称整个栈不再依赖Android,并且内核性能优于Android。

生态系统的采用至关重要,这也似乎在进行中。华为表示正培训数百万开发者,并声称已经获得数千个原生应用在该操作系统上运行,其中包括一些中国最流行的应用。

华为还创建了一个“开放”版本的HarmonyOS Next,供第三方使用该操作系统来驱动自己的设备。如果成功,这可能会成为Android/iOS双寡头之外的可行替代方案。

华为的复兴智能手机系列定位为中国买家的爱国替代品,在中国市场取得了显著渗透率。它在其他市场也获得了显著的市场份额,鸿蒙系统已经成为市场份额第三大的移动操作系统。

对于有全球雄心的应用开发者来说,支持鸿蒙系统越来越像是一个必需条件。

移动应用安全和认证的重要性

移动应用面临两个基本问题:首先,即使尝试混淆代码,应用也可以被逆向工程。其次,应用运行在客户端环境中,应用所有者既不拥有也不控制该环境。

这意味着,除非采取措施,否则应用本身可以被分析、理解、克隆或复制,它们运行的环境可以被黑客入侵、root、工具化和操控,从而干扰应用的运行。

利用这些攻击面,黑客可以直接拦截或篡改应用与服务器之间传输的数据,拦截或操控金融交易,或者干扰甚至停止服务的运行。

被操控的应用可以被重新打包并重新分发含有恶意软件的版本。重新打包的应用可以变成自动化工具(即机器人)用于攻击API和后端服务器。秘密也可以从应用中提取出来,然后在脚本中使用以创建机器人。坏人利用这些技术进行暴力攻击,利用API漏洞窃取数据,或发起DDoS攻击。

因此,防止应用和设备被篡改必须是任何旨在保护移动应用的安全策略的核心。然而,这只是整个故事的一部分,如下所述。应用和设备认证是拼图的一部分,但自身并不充分。

HarmonyOS Safety Detect的历史

华为的Safety Detect于2019年作为华为移动服务(HMS)核心的一部分正式推出,旨在为应用开发者提供一系列安全功能。华为的设备检查SysIntegrity在API和认证过程方面与Android的SafetyNet非常相似。

发布时间表包括多年来的几个更新和增强:

  • 2019年:推出Safety Detect,提供基本的安全功能,如SysIntegrity、AppsCheck、URLCheck和UserDetect。这些功能有助于验证系统完整性、检测恶意应用、检查URL是否存在潜在威胁,并区分人类用户和机器人。
  • 2019-2020年:持续更新以增强安全功能,使其更健壮,并与HMS核心深度集成,为开发者提供全面的安全解决方案。
  • 2021-2022年:功能进一步改进和扩展,包括增强的API功能和与其他华为服务的更好集成(Huawei Developer - Safety Detect) (Huawei Developer - Safety Detect (Android))

此外,应用上架华为AppGallery需要开发者进行全面验证,华为会检查恶意软件、恶意代码和其他问题,确保应用在发布前没有问题。

HarmonyOS Safety Detect旨在解决什么问题?

HMS核心Safety Detect套件旨在提供安全功能,使开发者能够专注于应用开发。它是一个多功能的安全检测服务,使用华为手机上的可信执行环境(TEE)。

此外,如果你的应用需要上架AppGallery,它必须通过一系列验证测试,检查是否存在恶意软件和其他威胁。华为使用数字证书(.cer格式)和配置文件(.p7b格式)等签名信息确保应用完整性。

目前,Safety Detect提供四个功能:SysIntegrity(系统完整性检查)、UserDetect(假用户检测)、AppsCheck(应用安全检查)和URLCheck(恶意URL检查)。

SysIntegrity

SysIntegrity可以检查用户设备是否已root、解锁或具有升级权限,从而帮助开发者评估是否限制应用行为,以避免在用户进行在线支付或发送电子邮件等操作期间的信息泄漏或财务损失。TEE允许集成SysIntegrity的应用在隔离环境中运行。

UserDetect

UserDetect可以根据屏幕触摸和传感器行为识别假用户,并通过使用验证码防止批量注册、凭据填充攻击、奖励狩猎和内容爬虫。

AppsCheck

AppsCheck旨在提供防病毒保护。它可以获取用户设备上的恶意应用列表。开发者可以评估风险并警告用户,或者提示用户退出应用。

URLCheck

为了提供安全的互联网浏览体验,URLCheck允许应用快速检查用户要访问的URL是否为恶意URL。

第五个API Wifi Detect旨在检测来自恶意Wi-Fi的攻击,但目前仅在中国大陆可用。

Safety Detect的工作原理

你需要将核心HMS SDK集成到你的应用中,并在应用代码中为每项服务设置API调用——SysIntegrity、AppsCheck、URLCheck和UserDetect。你的应用解释返回的结果并决定采取什么行动。

HarmonyOS Safety Detect无法解决的问题

Safety Detect仅限于华为生态系统。此外,它不提供运行时应用认证,接下来我们还会看到华为Harmony Safety Detect在设备完整性检查方面的一些局限性。要使其有效,它必须成为更广泛安全努力的一部分。

例如,如果我们使用OWASP MASVS(移动应用安全验证标准)框架来评估端到端移动应用安全性,华为Harmony Safety Detect部分符合MASVS-RESILIENCE类别中的指南,这只是指南中的七个类别之一。MASVS-RESILIENCE旨在确保应用运行在受信任的平台上,防止运行时篡改,并确保应用预期功能的完整性。

特别需要注意以下两点:

  • 网络和通道安全:应用与API之间的API和通信通道也必须受到保护。
  • API密钥和机密的管理与安全:用于认证和授权从移动应用访问后端服务的机密必须受到保护,防止被盗用。

现在我们了解了范围,接下来具体看一下华为提供的应用认证和设备完整性检查,并将其与Approov移动安全进行比较。

与Approov相比,HarmonyOS Safety Detect的局限性

HarmonyOS Safety Detect仅在华为生态系统中工作

  • 显然,华为的解决方案仅适用于华为设备,不能在iOS或其他客户端/应用生态系统中使用。Safety Detect功能仅在应用安装HarmonyOS SDK时才有效。为HarmonyOS、Android和iOS实施不同的安全解决方案,与使用Flutter和React Native等跨平台开发工具节省开发和维护成本的努力不一致。
  • Approov覆盖所有可能访问你API的设备,包括Android、iOS、WatchOS和鸿蒙系统(HarmonyOS)。Approov还轻松集成多个跨平台解决方案,包括Flutter和React Native。

需要HarmonyOS支持

  • Safety Detect需要HMS核心服务和HarmonyOS TEE。
  • Approov适用于任何移动环境,不依赖于本机服务。

有限的运行时应用认证

  • 要在华为AppGallery上架,你的应用必须通过四步验证流程,这会为你的应用发出签名密钥。Safety Detect SysIntegrity可以返回应用包的SHA256,但文档中不清楚如何使用它来验证访问你API的应用是否真实,因为SysIntegrity API是由应用本身调用的。
  • Approov提供一种专利的独特远程认证方法,运行的应用必须通过一系列完整性测量证明自己是真实的。这些结果通过专利的挑战响应协议发送到Approov云服务,免受重放攻击。Approov服务决定应用是否真实。

客户端问题由Safety Detect SysIntegrity API定义(而不是由你定义)

  • 客户环境是否有问题由华为定义,而不是由应用开发者定义——仅报告以下完整性检查结果:
    • unlocked:表示设备已解锁
    • root:表示设备已root
    • emulator:正在使用模拟器
    • attack:表示设备受到攻击

与Google PlayIntegrity一样,内部工作细节没有披露,如何解释结果的信息也有限。这种缺乏细粒度和检查内容的可见性可能是一个问题。

  • Approov提供一套丰富的设备认证检查,随着新威胁的出现定期更新。检测到root和越狱的手机。检测到Cycript、Cydia、Xposed、Frida、Magisk、Zygisk等框架和挂钩环境。可接受的内容可以通过空中政策更新进行高细粒度控制。

Safety Detect无法防止中间人(MitM)攻击

  • 移动电话在应用与API之间的通道上特别容易受到中间人攻击,即使流量已加密。HarmonyOS Safety Detect无法防止这种类型的攻击。
  • Approov动态证书固定保护通道免受移动中间人攻击,并使证书管理变得简单,无需代码更改或强制用户更新应用版本。

区域限制

  • 由于法规和兼容性问题,华为HarmonyOS Safety Detect的一些功能在某些地区受到限制或效果较差。一些功能在不同地区实施方式不同,例如在中国大陆。这会影响安全措施的全球适用性,并使开发者的生活变得复杂。
  • Approov在全球范围内部署,工作一致,同时符合当地法规。

用户隐私问题

  • 与任何收集和分析用户数据以检测威胁的安全工具一样,可能存在隐私问题。用户和开发者必须了解数据处理实践并确保遵守隐私法规。
  • Approov遵守GPDR和其他隐私法规,从不收集和存储任何个人信息。

性能开销和防止DDoS攻击的保护

  • 实施全面的安全检查可能会引入性能开销,影响应用性能和用户体验,使服务容易受到DDoS攻击。开发者需要在安全性和可用性之间取得平衡,以保持应用的最佳功能。谷歌和苹果都提供了关于可以执行的完整性检查次数和频率限制的信息,但华为目前没有讨论这个话题。
  • Approov没有流量配额或阈值,可以轻松扩展以支持数百万活跃的移动应用,始终提供一致的高性能。因此,Approov始终准备与我们的企业客户签订严格的性能SLA。

HarmonyOS Safety Detect无法阻止API密钥被盗和滥用

  • 华为HarmonyOS目前没有采取措施从应用代码中删除密钥,也没有提供任何帮助,以在密钥被泄露时保持应用运行,例如允许你动态轮换被盗的API密钥。华为单独提供云密钥管理服务,但它不能与HarmonyOS一起工作,以在交付密钥前验证完整性检查。
  • Approov提供单独的密钥管理解决方案,在云中安全地管理API密钥和证书,仅在应用和设备通过完整性检查时“实时”交付。它还允许在其他地方泄露时通过空中更新轻松轮换密钥。

开发挑战

  • 实施Safety Detect需要开发者在函数级别上防御API调用,这意味着没有任何保护是开箱即用的。开发者需要审核所有API调用点并对其进行修改。每个需要保护的API请求都需要明确保护。开发者文档目前有限。
  • Approov部署简单,操作也通过空中更新变得简单。Approov快速启动适用于所有主要的移动开发平台,提供快速集成。网络拦截器模型自动将Approov令牌或安全API密钥添加到所需的API请求中,开发者无需在移动客户端上做太多,SDK会为你处理这些。Approov的多平台方法也意味着单一且简单的后端检查可以拒绝任何客户端的无效流量,例如Android、iOS、AppleOS、鸿蒙系统:使用鸿蒙系统你需要在服务器端代码中单独识别和处理鸿蒙系统流量。

总结

华为HarmonyOS Safety Detect为移动应用提供了一套安全功能,特别是在华为生态系统内。然而,其在集成、区域适用性、对华为基础设施的依赖、潜在隐私问题、性能影响和偶尔检测不准确方面的局限性必须由开发者仔细考虑和解决,以确保应用安全性强大和可靠。

Approov移动应用保护确保所有移动API流量确实来自真实且未篡改的移动应用,在安全的环境中运行。这样可以阻止所有脚本、机器人和修改或重新打包的移动应用滥用API。Approov支持在Android、iOS、WatchOS和鸿蒙系统上运行的任何应用,提供全面且强大的安全性,并在所有支持的平台上轻松一致地管理。


  •  





George McGregor

- VP Marketing, Approov
George is based in the Bay Area and has an extensive background in cyber-security, cloud services and communications software. Before joining Approov he held leadership positions in Imperva, Citrix, Juniper Networks and HP.

Read On