Evaluating Large Language Models in detecting Secrets in Android Apps
文章核心总结与创新点一、主要内容本文聚焦Android应用中硬编码密钥(如API密钥、令牌、客户端ID等)的检测问题——这类密钥因开发者直接嵌入代码,易被逆向工程提取,引发数据泄露、资源滥用等安全风险。现有检测方法(正则表达式、静态分析、机器学习)需依赖预定义模式、API签名或标注训练数据,难以识别未知类型或混淆后的密钥。为此,作者提出基于大语言模型(LLM)的检测方案SecretLoc,通过分析Android应用的strings.xml资源文件和代码字节码,利用上下文语义与结构特征识别密钥,无需预先定义检测规则。实验验证分为两部分:在含5135个Android应用的基准数据集上,SecretLoc成功复现了93%的已知密钥,还新增检测出3671个未被现有工具发现的密钥,包括OpenAI API密钥、GitHub个人访问令牌等10余种新类型;在5000个新爬取的Google Play应用中,42.5%(2124个)被检测出硬编码密钥,部分开发者已确认并修复相关问题。同时,文章评估了LLM模型选择、代码上下文引入等设计决策的影响,讨论了工具的误报问题、防御实用性、可扩展性及“双重用途”风险(攻击者可能滥用该工具提取密钥)。二、创新点无依赖检测范式:突破现有方法对预定义模式、API签名或训练数据的依赖,利用LLM的上下文推理能力,直接从代码和资源文件中推断密钥,支持未知类型密钥检测;双模