当前位置:首页 > 报告详情

鸿蒙ArkTS代码安全风险检测-盛锦辰.pdf

上传人: Fl****zo 编号:624482 2025-03-31 28页 30.80MB

1、鸿蒙ArkTS代码安全风险检测 盛锦辰(幻猫)3盛锦辰支付宝安全专家-负责蚂蚁集团SDL平台建设-安全研究员/Java开源生态安全贡献者-Qcon2022上海站优秀讲师(幻猫/fantasy cat)41.项目背景鸿蒙原生应用开发与安全新的架构2023.12.7 鸿蒙原生应用开发正式启动。鸿蒙应用可以分为系统能力层(C+)、业务native层(ArkTS)、业务跨端层(小程序/h5/卡片)。其中主要业务逻辑是在ArkTS层。安全要求鸿蒙客户端存在传统端安全风险,也可能引入新的风险面。包括但不限于安全漏洞、隐私合规、数据安全、内容安全、业务风险等风险领域。技术挑战新的分析语言:ArkTS,没有现

2、成工具复杂的分析目标:纵向跨技术栈、横向跨bundle/模块高分析技术要求:调用链、污点分析、变更分析、业务理解典型案例 JSAPI实现不当 任意文件上传小程序bundle1bundle2C+modulecallsite:upload(file,url)function:upload(path,url)72.技术实现2.1 面向ArkTS 语言程序分析工具程序分析框架 抽取+算法+建模代码数据抽取源码COREFDatalog Based Extractor AST CFG DFG Call Graph Class Hierarchy Documentation蚂蚁程序分析团队:https:/

3、Compiler抽象语法树Datalog:带递归的SQL 声明式语言 没有基础 bug(空指针、数组越界、死循环)专注于分析算法的设计和提升COREFCOREF:将程序数据存储到关系表中coref 数据库语言语言编译器编译器AST节点数节点数JavaPSI133C+/Objective-CClang397ArkTSohos-typescript387ArkTS 及常见语言 AST 节点数代码数据抽取 函数内数据流1.学习语言:-建模影响程序执行的语义-控制流e.g.i f/for/switch/try-catch/throw-建模影响值传递的语义-数据流e.g.let/var/assign/o

4、perator2.做方法内数据流摘要-param-return-param-sink-src-return数据流分析:模拟数据在程序运行时如何流转bb1bb2bb4bb3代码数据抽取 函数间数据流 Bottom-UpFunction1Function2Function3Function4Function5算法核心思路:1.从叶子方法结点开始,自底向上分析,分析方向与方法调用方向相反。2.并行分析所有的同级节点。3.记录所有节点的3类缓存,并在分析父节点时inline子节点缓存:param-returnparam-sinksource-return算法特点:1.仅需一次迭代完成全程序分析。2.分

5、析过程无上文信息分析方向代码数据抽取 函数间数据流 Trace Slotfunction1function2function3function4function5算法核心思路:1.第一阶段:并行分析所有方法节点,记录所有节点的6类缓存。并构建图可达性缓存。2.第二阶段:按需做top-down分析。算法特点:1.构建缓存阶段可充分利用多核特性。2.分析过程包含完整上文信息。3.需要记录更多的缓存信息。4.更利于进行变更分析。蚂蚁程序分析团队:https:/dl.acm.org/doi/10.1145/3632743 Octopus:Scaling Value-Flow Analysis via

6、Parallel Collection of Realizable Path Conditions二阶段分析方向LLM for 程序建模源代码以外的影响因素:引入的三方库 应用/系统框架bundle代码中import鸿蒙依赖bundle源代码中使用依赖鸿蒙SDK中API的声明API的声明不包含方法体,怎么分析?Basicblock 1Basicblock 2Basicblock 3LLM for 程序建模鸿蒙SDK程序分析API方法声明、注释支付宝bundleAPI调用上下文鸿蒙API标注结果Qwen-2.5-72b提示词标注结果从9508个API中得到

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文主要介绍了鸿蒙ArkTS代码安全风险检测的相关内容。项目背景是鸿蒙原生应用开发与安全新的架构,主要业务逻辑在ArkTS层。文章提出了安全要求,包括传统端安全风险和新的风险面,如安全漏洞、隐私合规、数据安全、内容安全、业务风险等。技术挑战包括新的分析语言ArkTS、复杂的分析目标和高的分析技术要求。文章详细介绍了两种技术实现:面向ArkTS语言的程序分析工具和知识图谱代码架构。其中,程序分析工具包括数据抽取、算法和建模等步骤,而知识图谱代码架构则包括入口节点、出口节点、sink节点、link节点和特征节点等。文章还提到了鸿蒙SDK程序分析API方法声明、注释和支付宝bundle API调用上下文等。最后,文章阐述了基于知识图谱的风险检测架构,以及成果与展望,包括程序分析引擎开发、知识图谱构建和风险检测等。
"鸿蒙ArkTS代码安全风险检测如何进行?" "知识图谱在鸿蒙端代码风险检测中起到什么作用?" "未来鸿蒙ArkTS代码安全风险检测有哪些展望?"
客服
商务合作
小程序
服务号
折叠