随着人工智能在安全领域的渗透,GitHub Security Lab团队开发了Taskflow Agent。该工具旨在帮助安全研究人员自动化、打包并分享有效的AI提示词和工作流,从而更高效地在Android应用中挖掘漏洞。

尽管大语言模型(LLM)理解代码的能力日益精进,但自定义工作流能将研究任务分解为增量步骤,引导LLM更快发现复杂漏洞,或捕捉其原本可能遗漏的安全隐患。据团队透露,通过这些工作流,研究人员已在Android应用中报告了24个漏洞。

如何运行审计工作流

该工作流已开源,但运行需具备GitHub Copilot许可证,且会消耗大量高级模型Token。在中等规模仓库中,完整审计过程约需一至两小时。

  1. 访问seclab-taskflows仓库并启动Codespace;
  2. 等待初始化完成后,在终端运行./scripts/audit/run_mobile.sh myorg/myrepo;
  3. 审计结束后,通过SQLite查看器检查“audit_results”表中“has_vulnerability”列标记为真的行。

针对Android的定制化优化

针对Android应用的特定漏洞模式,团队对工作流进行了针对性引导:

首先,新增gather_mobile_entry_point_info.yaml工作流,将入口点分离为移动端与非移动端,确保AI能准确识别移动应用的攻击面。其次,编辑classify_application_local.yaml,指定常见漏洞类别列表。例如,当识别出基于Intent的入口点时,强制LLM检查混淆副手(confused deputy)或不安全广播等特定风险,以弥补移动漏洞知识普及度低及LLM非确定性带来的盲区。

典型漏洞案例解析

OsmAnd:恶意应用可追踪用户位置

OsmAnd是一款下载量超1000万的第三方导航应用。工作流发现其导出的MapActivity存在逻辑缺陷。Android中,任何应用均可向导出Activity的Intent中添加任意Extra参数。OsmAnd在处理设置导入时,未校验来源,允许外部应用通过Intent Extra控制silent_import(静默导入)、replace(替换设置)等关键参数。

攻击者可利用此漏洞替换地图瓦片URL,将请求指向攻击者控制的服务器。由于瓦片坐标包含精确地理位置信息,攻击者可在用户无感知的情况下,窃取其浏览轨迹及路线起点终点数据。

Wikipedia:深度链接劫持导致账号接管

Wikipedia Android应用注册了wikipedia://深度链接。然而,其主机名解析逻辑存在缺陷,仅检查域名是否以wikipedia.org结尾,导致攻击者可构造如evil-wikipedia.org的恶意域名通过校验。

结合WebView中Cookie域匹配逻辑的宽松限制(仅检查后缀),攻击者可诱导用户点击恶意链接,使应用在WebView中加载攻击者控制的页面并泄露长期有效的会话Cookie。这将导致受害者在所有Wikimedia项目中的账号被完全接管。

LLM的优势与局限

实践表明,LLM擅长发现通用Bug及高影响力逻辑漏洞,且对各类语言的安全API行为有深刻理解,生成的概念验证(PoC)代码往往只需少量修改即可运行。

然而,LLM在评估漏洞严重程度方面存在明显短板。它常误报低严重性问题,或忽略路径遍历中的缓解因素(如内部存储覆盖外部数据)。此外,LLM难以自主判断某些漏洞在现实场景中的触发难度。因此,所有AI发现的漏洞仍需具备移动安全知识的研究人员进行人工审核与PoC验证。

GitHub Security Lab表示,AI驱动的安全研究已成为保护开源项目的重要手段。团队呼吁社区贡献更多提示词与工具,共同推动AI在Web、移动及桌面应用安全领域的落地。