论文

FlowArk:通过上下文感知知识重用促进 Android 应用程序的代理数据流分析

FlowArk: Boosting Agentic Data-flow Analysis for Android Apps via Context-Aware Knowledge Reuse

上下文与知识记忆Agent记忆

摘要

数据流分析是 Android 应用隐私和安全审核的基础。最近的 编码智能体 可以通过搜索、读取和推理存储库代码来协助完成重要的源到接收器数据流分析任务。然而,当这些任务作为批处理工作负载执行时,当前的代理分析设置会产生大量的重新分析成本。分配给不同污点源的代理实例可以检查共享代码片段,因为目标应用程序中的代码重用可能会导致不同的数据流路径汇聚到共享程序逻辑上。由于这些代理实例是上下文隔离的,因此可以在批次内重复对这些共享代码片段的分析,从而不必要地消耗 API 预算并限制可扩展性。我们提出了 FlowArk,这是一种知识重用系统,通过将已完成分析中的知识提供给以后的代理实例,可以降低批量代理数据流分析中的重新分析成本。具体来说,FlowArk 将完整的分析历史提炼为可重用的知识候选,将这些候选打包为可匹配的知识条目,并将匹配的条目注入到稍后的代理实例的上下文中。我们在 OpenCode 上实现 FlowArk,并在来自 50 个开源 Android 应用程序的 4,685 个源到接收器数据流分析任务上对其进行评估。与标准 OpenCode 相比,支持 FlowArk 的 OpenCode 保持了相当的分析质量,同时将端到端 API 成本降低了 26.83%。此外,在 100 美元的预算下,FlowArk 完成的任务增加了 36.66%(1,060 项 vs. 776 项)。