想象一下,你正试图教一个机器人如何闯入一个非常新、高科技的房屋(HarmonyOS),以寻找锁具和窗户的弱点。问题在于,这个房子太新了,几乎没有任何蓝图,没有“如何操作”的视频,而且你仅有的少量说明书是用机器人不太擅长的语言编写的,其中充满了令人困惑的图片而非文字。
这篇论文介绍了一个名为 HMFuzzer 的新型机器人专家团队来解决这个问题。他们并没有让一个机器人尝试做所有事情,而是使用了一个三人小组协同工作,就像一个专门的侦探小队一样。
以下是他们团队的工作方式,通过简单的类比进行解释:
1. 问题:“缺少手册”的新房子
HarmonyOS 就像一座全新的智能城市。它拥有数百万个门(API),让不同的设备可以相互通信。但因为它很新:
- 关于如何使用这些门的示例非常少。
- 官方说明书充满了图表和图像,文本型机器人无法阅读这些内容。
- 现有的工具(其他机器人)试图猜测如何闯入,但由于缺乏足够的信息,它们总是失败。
2. 解决方案:三智能体团队
HMFuzzer 团队由三个专门的智能体组成,他们沿着流水线传递工作:
智能体 A:“翻译与组织者”(预处理智能体)
- 工作内容: 这个智能体负责处理杂乱的说明书。由于说明书中有很多机器人无法理解的图片(如流程图),该智能体使用“超级眼睛”AI(多模态大模型)来观察图片并将它们描述为纯文本。
- 类比: 想象一位图书管理员,他把一本充满混乱草图的书变成了详细的故事描述,以便机器人能够真正读懂。
- 权限检查: 该智能体还会检查“保安”规则。它确保机器人只尝试打开它被允许触碰的门,以免因尝试闯入受限区域而被标记。
智能体 B:“驱动构建者”(驱动生成智能体)
- 工作内容: 这个智能体负责构建实际的“钥匙”(模糊测试驱动程序)来测试这些门。但由于没有 HarmonyOS 的钥匙可以模仿,这个智能体想出了一个聪明的办法:它观察 Android。
- 类比: HarmonyOS 和 Android 就像堂兄弟;它们穿着不同的衣服,但有着相似的家族谱系。如果机器人需要知道如何打开 HarmonyOS 的蓝牙门,它会观察 Android 是如何打开其蓝牙门的。它利用庞大的 Android 示例库作为“小抄”,来推测 HarmonyOS 门的运作方式。
- “教练”(强化学习): 如果机器人构建的钥匙不匹配(出现语法错误),一位“教练”就会介入。教练不会仅仅说“错误”,而是使用评分系统告诉机器人:“下次尝试这种特定类型的钥匙形状。”机器人能从错误中学习,并随着每次尝试变得越来越擅长构建钥匙。
智能体 C:“犯罪现场调查员”(漏洞分析智能体)
- 工作内容: 当测试导致系统崩溃(例如门卡住了或窗户破碎了)时,这个智能体会进行调查。
- 类比: 在过去,机器人只能查看文本日志。但 HarmonyOS 有时不会提供清晰的文本日志。因此,该智能体会拍摄一张崩溃时的照片(截图),并使用“超级眼睛”AI 来描述照片中发生了什么。
- 侦探工作: 它将照片描述、文本日志以及已知犯罪数据库(漏洞)结合起来,以判断:“这是一个简单的失误,还是一个真正的安全漏洞?”它使用“思维链”方法,即在得出结论之前,先逐步说出自己的推理过程。
3. 结果:他们发现了什么?
该团队在 HarmonyOS 5.0 上测试了他们的这个新小队,并发现了一些其他工具错过的真实安全漏洞。
- 重大胜利: 他们在系统处理 SVG 图像(用于应用的微型图形)的方式中发现了一个特定的漏洞。他们创建了一个测试,向系统输入了一串极长的数字,从而破坏了缓冲区(就像试图把大海倒入茶杯)。系统崩溃了,暴露了一个安全缺陷。
- 效率: 由于他们更聪明地进行测试,而不是盲目地进行暴力测试,因此他们的团队比其他工具消耗更少的计算内存。
- 通用性: 他们甚至在其他系统(如 PyTorch 和 TensorFlow)上测试了他们的团队,并在那里也发现了新的漏洞,证明该团队擅长于破坏事物本身,而不仅仅是针对 HarmonyOS。
总结
简而言之,这篇论文描述了一个智能的三部分机器人团队,它能够:
- 通过将图像转化为文本,来阅读充满图片的复杂手册。
- 通过模仿一个类似的旧系统(Android)来构建更好的测试钥匙。
- 通过分析截图和日志来调查崩溃,从而找到真正的安全漏洞。
他们称之为 HMFuzzer,它成功地发现了其他工具无法看到的 HarmonyOS 漏洞,并在过程中不断学习和改进。
技术摘要:面向 HarmonyOS API 的多智能体协同模糊测试
1. 问题陈述
HarmonyOS 是一个基于微内核、拥有统一 API 框架的操作系统,已在异构设备中实现大规模部署。然而,其安全性正受到不断扩大的攻击面(特别是其 API 内部)的威胁。现有的模糊测试工具由于以下三个主要挑战,难以对 HarmonyOS 进行有效测试:
- 示例匮乏: 与成熟的生态系统不同,HarmonyOS 缺乏公开可用的 API 使用示例,导致自动化工具难以理解逻辑结构。
- 文档局限性: 官方开发者文档质量通常较低,图像较多,且文本与工作流图表(如流程图、时序图)交织在一起,这些内容并非机器可读,阻碍了语义提取。
- 崩溃分析困难: HarmonyOS API 的微内核架构和异步特性导致其崩溃特征与传统操作系统不同。现有的去重和分类算法经常失效,导致不同漏洞被错误合并或单个漏洞被过度碎片化。
2. 方法论:HMFuzzer 框架
作者提出了 HMFuzzer,这是一个多智能体协同模糊测试框架,旨在以最小的人工干预实现漏洞识别自动化。该框架集成了三个协作智能体:
A. 预处理智能体 (Preprocessing Agent)
该智能体负责准备输入数据,以克服文档和权限障碍:
- 多模态语义对齐: 为了应对图像丰富的文档,该智能体采用三个多模态大语言模型(LLM)——Qwen、Llama 和 Gemini ——将 API 工作流图(JPG/PNG)转换为文本描述。随后使用文本 LLM(DeepSeek)融合这些描述,生成最终准确的文本表示,并通过文件路径将其与原始文档进行对齐。
- 权限提取: 为了防止因缺失权限导致的误报,该智能体自动从官方文档中提取权限要求(名称、描述、级别、模式、有效性),并为相应的 API 生成配置文件。
B. 驱动生成智能体 (Driver Generation Agent)
该智能体通过利用跨平台知识和强化学习,解决缺乏 HarmonyOS 特定示例的问题:
- Android 知识库 (RAG): 意识到 HarmonyOS 与 Android 在设计上的相似性,系统将一个精选的包含 231 个 Android 示例代码(涵盖 UI、存储、网络等)的库嵌入到向量数据库中。通过检索增强生成(RAG)技术,系统检索语义相似的 Android 代码片段,以补充用于生成 HarmonyOS 驱动程序的训练数据。
- 用于提示词优化的强化学习 (RL): 为了提高驱动程序质量,该智能体使用强化学习方案来动态选择和变异提示词模板(基于 CRISPE、CO-STAR 等标准)。其奖励函数 (R) 平衡了语法正确性、错误最小化(警告、语法、语义、链接器、预处理器错误)以及生成时间。
- 语法校验: 生成的驱动程序使用 ArkCompiler 进行编译。语法检查失败的驱动程序会被返回给智能体,并在 RL 选择的提示词引导下进行自动化修复。
C. 漏洞分析智能体 (Vulnerability Analysis Agent)
该智能体分析执行结果以识别漏洞:
- 崩溃捕获: 由于某些 HarmonyOS 版本在日志收集方面的限制,系统除了日志外还会捕获崩溃截图。
- 多模态崩溃分析: 截图通过多模态 LLM 转换为文本。这些描述与日志以及漏洞知识库(包含已知 CVE)一起,通过思维链(CoT)推理输入到 LLM(DeepSeek)中。
- 分类: 智能体识别漏洞类型,并与已知数据库进行交叉验证,同时将未知崩溃标记出来以进行人工核实。
D. 模糊测试循环 (Fuzzing Loop)
系统在一个循环中运行,其中种子(API 参数列表)被赋予初始能量值。LLM 对这些种子进行类型感知的变异。种子能量根据日志输出(警告、错误、致命错误)以及截图中是否存在崩溃进行重新计算,从而指导下一个测试用例的选择。
3. 核心贡献
- 首个针对 HarmonyOS 的模糊测试工具: HMFuzzer 被呈现为第一个专门设计用于对 HarmonyOS API 进行模糊测试的工具。
- 跨平台知识迁移: 创新性地整合了 Android 示例代码库作为知识库,以补偿 HarmonyOS 特定示例的匮乏。
- 多模态文档处理: 使用多模态 LLM 将基于图像的工作流图转换为文本的流水线,实现了与代码生成的语义对齐。
- RL 驱动的驱动生成: 一种强化学习机制,能够动态优化提示词模板,以修复语法错误并提高驱动程序的有效性。
- 开源实现: 作者开源了 HMFuzzer 代码,以促进实际应用和进一步研究。
4. 实验结果
实验在搭载华为 Nova 12 Ultra 设备的 HarmonyOS Next 5.0 上进行,并将 HMFuzzer 与基准工具 fuzz4ALL 和 TitanFuzz 进行对比。
- 漏洞发现: HMFuzzer 成功检测到了一个涉及缓冲区溢出的已知 SVG 解析漏洞(CVE-2024-58115),而这两个基准工具均未识别出该漏洞。基准工具由于缺乏特定示例,无法生成有效的 SVG 相关驱动程序。
- 驱动质量: 在消融实验中,各模块的集成在可用驱动程序(UD)数量上显示出增量改进:
- 基准线:134 UD
-
- RL + Android 示例 (AEC):167 UD (+25%)
- RL + AEC + 多模态生成 (MMG):174 UD (+30%)
- LLM 选择: DeepSeek 被确定为用于驱动生成的最高效模型,在 141 次迭代中生成了 134 个有效驱动,表现优于 Qwen(160 次迭代生成 72 个有效驱动)和 ChatGPT(236 次迭代生成 106 个有效驱动)。
- 泛化能力: 在非 HarmonyOS 目标(PyTorch 和 TensorFlow)上进行测试时,HMFuzzer 在 PyTorch 中确认了 2 个已知和 3 个新漏洞,在 TensorFlow 中确认了 4 个已知和 3 个新漏洞。
- 效率: 由于采用了轻量级的随机变异策略,HMFuzzer 展示了比 TitanFuzz 和 Fuzz4All 更低的内存占用。
- 组合漏洞: HMFuzzer 发现的漏洞中,98.25% 被鉴定为组合漏洞,显著高于 TitanFuzz 的 41.5%。
5. 重要性与主张
本文声称 HMFuzzer 有效解决了对 HarmonyOS 生态进行模糊测试的独特挑战,特别是缺乏示例和多模态文档的复杂性。通过利用成熟的 Android 生态作为代理知识库,并利用多模态 LLM 进行文档解析,该框架显著提高了驱动生成的质量和漏洞发现的效率。作者断言,其方法减少了人工投入,同时发现了包括缓冲区溢出和拒绝服务(DoS)向量在内的关键漏洞,从而为快速扩张的 HarmonyOS 生态系统的安全性做出了贡献。
每周获取最佳 computer science 论文。
受到斯坦福、剑桥和法国科学院研究人员的信赖。
请查收邮箱确认订阅。
出了点问题,再试一次?
无垃圾邮件,随时退订。