1 研究背景1.1 问题Android软件由于其来源特性容易受到hacker攻击现有的基于传统机器学习的apk检测方法在挖掘软件行为语义信息方面存在局限性且检测结果缺乏可解释性1.2 传统机器学习方法基于字符串方法将提取的特征表示成字符串序列然后编码成向量优点易于理解和实现缺点未能捕捉特征之间的深层语义关系基于图像方法将APK转换为图像并应用图像识别技术进行分类优点简单高效缺点容易忽视应用内的关键语义信息基于图的方法方法构建图结构以捕捉特征之间的语义关系优点能更有效地表示复杂的应用行为缺点构建复杂的图结构会带来较大计算负担和资源消耗一般流程反编译APK-提取多种不同的特征-以不同方式组合和处理获得所应用的表示向量-将表示向量用于训练分类器以检测恶意软件2 方法论2.1 特征提取方法静态特征提取文件Manifest.xml、class.dex特征permission、API、URL、uses-feature三视图permission view、API view、URL uses-feature viewURL、uses-feature的数量较少因此合并工具Androguard反编译apk提取特征PScout建立apk及其使用的权限的映射2.2 多视图文本生成使用gpt-4-1106-preview2.2.1 功能描述模板生成键值对形式的功能描述例如[“android.permission.WRITE_SMS”: “allows sending and editing SMS”]存储机制若某个permission、API、URL、uses-feature之前生成过对应的功能描述则直接使用先前的描述而不再生成显著提升了LLM生成效率并减少token消耗2.2.2 视图总结模板2.3 检测分类使用OpenAI 的嵌入模型text-embedding-ada-002将文本描述转化为向量使用向量训练DNN模型进行二分类2.4 获取诊断报告结合多视图文本描述与DNN检测结果生成检测结果诊断报告为检测结果提供可解释性分析3 实验3.1 实验数据来源AndroZoo良性样本11189恶意样本121283.2 基准实验3.3 消融实验去除其中一个视图或者去除功能描述、视图总结后检测效果对比API视图对结果的影响最大4 改进方向引入更多静态特征丰富视图种类采用交互式动态与静态组合特征检测方法建立有效的错误检查和纠正机制预防LLM幻觉调用远程LLM易受到网络波动影响导致巨大token开销。可以本地部署LLM并使用Android安全领域的知识微调基于开源LLM结合检索增强生成RAG进一步设计思维链以确保输出的质量和稳定性原文链接AppPoet: Large Language Model based Android malware detection via multi-view prompt engineering