
俱乐部开源实习课题任务书
2026-06-09 发布5 浏览 · 0 点赞 · 0 收藏
-
课题名称:基于 LLM 与代码分析的 OpenHarmony 智能漏洞检测工具
-
指导导师:慕冬亮
-
开发语言:Python(核心引擎),C/C++(测试用例与目标分析对象)
-
预计项目时长:88 小时 / 6 周
-
难度等级:高级
-
课题背景信息介绍: OpenHarmony(鸿蒙开源版)是一个面向全场景的分布式操作系统,代码量庞大且持续增长。由于系统内核、驱动框架、多媒体框架等底层模块大量使用 C/C++ 编写,内存安全漏洞(如缓冲区溢出、UAF、双重释放等)是影响系统安全性的主要威胁之一。传统的静态分析工具(如 Coverity、CodeQL)在检测 OpenHarmony 特有安全边界(Parcel IPC、NAPI 跨语言调用、Ability Token 校验)方面覆盖不足,需要大量领域特定的规则定制。
本课题旨在构建一个结合大语言模型(LLM)推理能力与传统静态分析技术(AST 解析、数据流追踪、调用图构建) 的混合式漏洞检测工具,专门针对 OpenHarmony 生态进行优化。工具采用多 Agent 架构(分析 Agent + 验证 Agent),通过两阶段辩论机制降低误报率,并集成鸿蒙专属检测规则与跨函数过程间分析引擎,实现对常见内存安全漏洞(堆溢出、越界读、UAF、双重释放、内存泄漏、空指针等)及鸿蒙特有安全边界漏洞(Token 验证、类型混淆、未受信任指针等)的全覆盖检测。
- 具备 Python 编程能力,能进行模块化开发
- 具备 C/C++ 代码阅读能力,能理解底层系统代码逻辑
- 了解常见内存安全漏洞类型(如缓冲区溢出、UAF、双重释放、内存泄漏等)及其基本原理
- 对 LLM API 调用与 Prompt Engineering 有基本了解或学习意愿
- 熟悉 Git 版本控制与协作流程
- 加分项:对静态分析技术(如 AST 解析、数据流分析)、OpenHarmony 系统架构有了解
- 设计并实现 LLM 客户端模块,支持多 Agent 协作分析(如分析 Agent + 验证 Agent 的双阶段架构),鼓励探索降低误报率的 Agent 交互策略
- 实现代码语义分块与批量文件扫描能力,支持断点续扫,提升大规模代码库扫描效率
- 设计合理的 Prompt 策略(如思维链推理),引导 LLM 完成从漏洞线索发现到确认的分析链路
- 研究 OpenHarmony 特有安全边界(如 Parcel IPC 序列化、NAPI 跨语言调用生命周期、Ability Token 鉴权机制等)
- 实现若干漏洞检测规则,覆盖内存安全(堆溢出、UAF、双重释放、越界读等)及鸿蒙特有安全边界漏洞类型
- 定义鸿蒙相关的危险函数(Sink)与安全缓解措施(Validation/Killer)知识库
- 探索规则检测与 LLM 分析的结合方式(如规则预筛 + LLM 确认),提升检测效率与准确率
- 集成 AST 解析能力(如 tree-sitter),实现函数级代码分块,作为 LLM 分析的结构化输入基础
- 实现过程间数据流分析能力,至少涵盖:调用图构建、堆分配点追踪、跨函数指针状态分析
- 利用数据流分析检测跨函数漏洞(如指针在不同函数中分配、释放、使用导致的 UAF/双重释放/内存泄漏)
- 将数据流分析模块集成至主扫描管道,作为 LLM 分析的补充
- 设计合成测试用例,覆盖 OpenHarmony 代码中常见漏洞模式,用例数量应能有效评估工具性能
- 实现自动化评估框架,计算 Precision(精确率)、Recall(召回率)、F1 Score 等指标
- 建立"扫描 → 评估 → 优化"的迭代闭环,持续提升检测效果
- 性能目标参考:Recall 力争达到较高水平(尽量不漏报),Precision 与 F1 达到 90% 以上
- 拉取并扫描若干个核心 OpenHarmony 仓库(建议涵盖内核、驱动、应用框架等不同层次模块)
- 对比合成测试与真实代码的检测效果,分析差异与漏报根因
- 输出漏洞扫描报告,总结工具能力边界与改进方向
- 搭建 DAYU200(RK3568)开发板验证环境,包括设备连接(hdc)、系统版本确认与日志取证链路(hilog、faultlog、dmesg)
- 建立从静态分析告警到真机复现的自动化工作流,支持两条验证路径:应用侧 HAP 验证(DevEco Studio 签名部署)与源码侧 Native/系统组件验证(交叉编译 + hdc 推送)
- 实现告警分诊与版本匹配流程:从大量静态分析报告中筛选高价值告警,核对告警文件与目标函数在当前设备版本中的可达性,标记版本漂移
- 探索在 DAYU200 上运行 Native PoC 的环境适配问题(如 musl libc 兼容性、裸 syscall 方案),形成可复用的设备端验证模板
- 收集复现证据并输出结论(真阳性 / 未证实 / 未能复现),形成闭环反馈,反哺工具检测规则的优化
验收时间:本课题预计于领取后 2-3 月内开展课题验收,验收项如下所示:
- 代码:完整的功能实现代码,提交至开源仓库并通过 CI 检查
- 文档:用户使用手册、开发设计文档、测试报告
- 汇报:课题总结 PPT/技术博客
- 展示:成功合入开源项目主分支或获得导师认可
请前往 登录/注册 即可发表您的看法…


